Skip to content

Commit 05468e3

Browse files
committed
feat: database tables & queries
1 parent 7958c52 commit 05468e3

File tree

14 files changed

+1010
-3
lines changed

14 files changed

+1010
-3
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,13 @@ func (q *querier) AcquireLock(ctx context.Context, id int64) error {
785785
return q.db.AcquireLock(ctx, id)
786786
}
787787

788+
func (q *querier) AcquireNotificationMessages(ctx context.Context, arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow, error) {
789+
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {
790+
return nil, err
791+
}
792+
return q.db.AcquireNotificationMessages(ctx, arg)
793+
}
794+
788795
// TODO: We need to create a ProvisionerJob resource type
789796
func (q *querier) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) {
790797
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {
@@ -829,6 +836,20 @@ func (q *querier) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg databa
829836
return q.db.BatchUpdateWorkspaceLastUsedAt(ctx, arg)
830837
}
831838

839+
func (q *querier) BulkMarkNotificationMessagesFailed(ctx context.Context, arg database.BulkMarkNotificationMessagesFailedParams) (int64, error) {
840+
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {
841+
return 0, err
842+
}
843+
return q.db.BulkMarkNotificationMessagesFailed(ctx, arg)
844+
}
845+
846+
func (q *querier) BulkMarkNotificationMessagesSent(ctx context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) {
847+
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {
848+
return 0, err
849+
}
850+
return q.db.BulkMarkNotificationMessagesSent(ctx, arg)
851+
}
852+
832853
func (q *querier) CleanTailnetCoordinators(ctx context.Context) error {
833854
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
834855
return err
@@ -978,6 +999,13 @@ func (q *querier) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Contex
978999
return q.db.DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx, arg)
9791000
}
9801001

1002+
func (q *querier) DeleteOldNotificationMessages(ctx context.Context) error {
1003+
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceSystem); err != nil {
1004+
return err
1005+
}
1006+
return q.db.DeleteOldNotificationMessages(ctx)
1007+
}
1008+
9811009
func (q *querier) DeleteOldProvisionerDaemons(ctx context.Context) error {
9821010
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceSystem); err != nil {
9831011
return err
@@ -1072,13 +1100,27 @@ func (q *querier) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context,
10721100
return q.db.DeleteWorkspaceAgentPortSharesByTemplate(ctx, templateID)
10731101
}
10741102

1103+
func (q *querier) EnqueueNotificationMessage(ctx context.Context, arg database.EnqueueNotificationMessageParams) (database.NotificationMessage, error) {
1104+
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil {
1105+
return database.NotificationMessage{}, err
1106+
}
1107+
return q.db.EnqueueNotificationMessage(ctx, arg)
1108+
}
1109+
10751110
func (q *querier) FavoriteWorkspace(ctx context.Context, id uuid.UUID) error {
10761111
fetch := func(ctx context.Context, id uuid.UUID) (database.Workspace, error) {
10771112
return q.db.GetWorkspaceByID(ctx, id)
10781113
}
10791114
return update(q.log, q.auth, fetch, q.db.FavoriteWorkspace)(ctx, id)
10801115
}
10811116

1117+
func (q *querier) FetchNewMessageMetadata(ctx context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) {
1118+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
1119+
return database.FetchNewMessageMetadataRow{}, err
1120+
}
1121+
return q.db.FetchNewMessageMetadata(ctx, arg)
1122+
}
1123+
10821124
func (q *querier) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) {
10831125
return fetch(q.log, q.auth, q.db.GetAPIKeyByID)(ctx, id)
10841126
}
@@ -2433,6 +2475,13 @@ func (q *querier) InsertMissingGroups(ctx context.Context, arg database.InsertMi
24332475
return q.db.InsertMissingGroups(ctx, arg)
24342476
}
24352477

2478+
func (q *querier) InsertNotificationTemplate(ctx context.Context, arg database.InsertNotificationTemplateParams) (database.NotificationTemplate, error) {
2479+
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil {
2480+
return database.NotificationTemplate{}, err
2481+
}
2482+
return q.db.InsertNotificationTemplate(ctx, arg)
2483+
}
2484+
24362485
func (q *querier) InsertOAuth2ProviderApp(ctx context.Context, arg database.InsertOAuth2ProviderAppParams) (database.OAuth2ProviderApp, error) {
24372486
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceOauth2App); err != nil {
24382487
return database.OAuth2ProviderApp{}, err

coderd/database/dbmetrics/dbmetrics.go

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 104 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbpurge/dbpurge.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
5858
if err := tx.DeleteOldProvisionerDaemons(ctx); err != nil {
5959
return xerrors.Errorf("failed to delete old provisioner daemons: %w", err)
6060
}
61+
if err := tx.DeleteOldNotificationMessages(ctx); err != nil {
62+
return xerrors.Errorf("failed to delete old notification messages: %w", err)
63+
}
6164

6265
logger.Info(ctx, "purged old database entries", slog.F("duration", time.Since(start)))
6366

0 commit comments

Comments
 (0)