Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a7c27ca

Browse files
authored
feat: add database support for dismissed healthchecks (#10845)
1 parent f342d10 commit a7c27ca

File tree

7 files changed

+108
-0
lines changed

7 files changed

+108
-0
lines changed

coderd/database/dbauthz/dbauthz.go

+12
Original file line numberDiff line numberDiff line change
@@ -1021,6 +1021,11 @@ func (q *querier) GetGroupsByOrganizationID(ctx context.Context, organizationID
10211021
return fetchWithPostFilter(q.auth, q.db.GetGroupsByOrganizationID)(ctx, organizationID)
10221022
}
10231023

1024+
func (q *querier) GetHealthSettings(ctx context.Context) (string, error) {
1025+
// No authz checks
1026+
return q.db.GetHealthSettings(ctx)
1027+
}
1028+
10241029
// TODO: We need to create a ProvisionerJob resource type
10251030
func (q *querier) GetHungProvisionerJobs(ctx context.Context, hungSince time.Time) ([]database.ProvisionerJob, error) {
10261031
// if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceSystem); err != nil {
@@ -2958,6 +2963,13 @@ func (q *querier) UpsertDefaultProxy(ctx context.Context, arg database.UpsertDef
29582963
return q.db.UpsertDefaultProxy(ctx, arg)
29592964
}
29602965

2966+
func (q *querier) UpsertHealthSettings(ctx context.Context, value string) error {
2967+
if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceDeploymentValues); err != nil {
2968+
return err
2969+
}
2970+
return q.db.UpsertHealthSettings(ctx, value)
2971+
}
2972+
29612973
func (q *querier) UpsertLastUpdateCheck(ctx context.Context, value string) error {
29622974
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceSystem); err != nil {
29632975
return err

coderd/database/dbmem/dbmem.go

+20
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ type data struct {
159159
derpMeshKey string
160160
lastUpdateCheck []byte
161161
serviceBanner []byte
162+
healthSettings []byte
162163
applicationName string
163164
logoURL string
164165
appSecurityKey string
@@ -1771,6 +1772,17 @@ func (q *FakeQuerier) GetGroupsByOrganizationID(_ context.Context, id uuid.UUID)
17711772
return groups, nil
17721773
}
17731774

1775+
func (q *FakeQuerier) GetHealthSettings(_ context.Context) (string, error) {
1776+
q.mutex.RLock()
1777+
defer q.mutex.RUnlock()
1778+
1779+
if q.healthSettings == nil {
1780+
return "{}", nil
1781+
}
1782+
1783+
return string(q.healthSettings), nil
1784+
}
1785+
17741786
func (q *FakeQuerier) GetHungProvisionerJobs(_ context.Context, hungSince time.Time) ([]database.ProvisionerJob, error) {
17751787
q.mutex.RLock()
17761788
defer q.mutex.RUnlock()
@@ -6790,6 +6802,14 @@ func (q *FakeQuerier) UpsertDefaultProxy(_ context.Context, arg database.UpsertD
67906802
return nil
67916803
}
67926804

6805+
func (q *FakeQuerier) UpsertHealthSettings(_ context.Context, data string) error {
6806+
q.mutex.RLock()
6807+
defer q.mutex.RUnlock()
6808+
6809+
q.healthSettings = []byte(data)
6810+
return nil
6811+
}
6812+
67936813
func (q *FakeQuerier) UpsertLastUpdateCheck(_ context.Context, data string) error {
67946814
q.mutex.Lock()
67956815
defer q.mutex.Unlock()

coderd/database/dbmetrics/dbmetrics.go

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

+29
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/siteconfig.sql

+9
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,12 @@ SELECT value FROM site_configs WHERE key = 'oauth_signing_key';
7070
-- name: UpsertOAuthSigningKey :exec
7171
INSERT INTO site_configs (key, value) VALUES ('oauth_signing_key', $1)
7272
ON CONFLICT (key) DO UPDATE set value = $1 WHERE site_configs.key = 'oauth_signing_key';
73+
74+
-- name: GetHealthSettings :one
75+
SELECT
76+
COALESCE((SELECT value FROM site_configs WHERE key = 'health_settings'), '{}') :: text AS health_settings
77+
;
78+
79+
-- name: UpsertHealthSettings :exec
80+
INSERT INTO site_configs (key, value) VALUES ('health_settings', $1)
81+
ON CONFLICT (key) DO UPDATE SET value = $1 WHERE site_configs.key = 'health_settings';

0 commit comments

Comments
 (0)