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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy