Skip to content

Commit e9ec10d

Browse files
committed
feat: add SQL queries for v2 PG Coordinator
1 parent f400d8a commit e9ec10d

File tree

8 files changed

+644
-2
lines changed

8 files changed

+644
-2
lines changed

coderd/database/dbauthz/dbauthz.go

+56
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,13 @@ func (q *querier) DeleteAllTailnetClientSubscriptions(ctx context.Context, arg d
715715
return q.db.DeleteAllTailnetClientSubscriptions(ctx, arg)
716716
}
717717

718+
func (q *querier) DeleteAllTailnetTunnels(ctx context.Context, arg database.DeleteAllTailnetTunnelsParams) error {
719+
if err := q.authorizeContext(ctx, rbac.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
720+
return err
721+
}
722+
return q.db.DeleteAllTailnetTunnels(ctx, arg)
723+
}
724+
718725
func (q *querier) DeleteApplicationConnectAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error {
719726
// TODO: This is not 100% correct because it omits apikey IDs.
720727
err := q.authorizeContext(ctx, rbac.ActionDelete,
@@ -811,6 +818,20 @@ func (q *querier) DeleteTailnetClientSubscription(ctx context.Context, arg datab
811818
return q.db.DeleteTailnetClientSubscription(ctx, arg)
812819
}
813820

821+
func (q *querier) DeleteTailnetPeer(ctx context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) {
822+
if err := q.authorizeContext(ctx, rbac.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
823+
return database.DeleteTailnetPeerRow{}, err
824+
}
825+
return q.db.DeleteTailnetPeer(ctx, arg)
826+
}
827+
828+
func (q *querier) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) {
829+
if err := q.authorizeContext(ctx, rbac.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
830+
return database.DeleteTailnetTunnelRow{}, err
831+
}
832+
return q.db.DeleteTailnetTunnel(ctx, arg)
833+
}
834+
814835
func (q *querier) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) {
815836
return fetch(q.log, q.auth, q.db.GetAPIKeyByID)(ctx, id)
816837
}
@@ -1246,6 +1267,27 @@ func (q *querier) GetTailnetClientsForAgent(ctx context.Context, agentID uuid.UU
12461267
return q.db.GetTailnetClientsForAgent(ctx, agentID)
12471268
}
12481269

1270+
func (q *querier) GetTailnetPeers(ctx context.Context, id uuid.UUID) ([]database.TailnetPeer, error) {
1271+
if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceTailnetCoordinator); err != nil {
1272+
return nil, err
1273+
}
1274+
return q.db.GetTailnetPeers(ctx, id)
1275+
}
1276+
1277+
func (q *querier) GetTailnetTunnelPeerBindings(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) {
1278+
if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceTailnetCoordinator); err != nil {
1279+
return nil, err
1280+
}
1281+
return q.db.GetTailnetTunnelPeerBindings(ctx, srcID)
1282+
}
1283+
1284+
func (q *querier) GetTailnetTunnelPeerIDs(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) {
1285+
if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceTailnetCoordinator); err != nil {
1286+
return nil, err
1287+
}
1288+
return q.db.GetTailnetTunnelPeerIDs(ctx, srcID)
1289+
}
1290+
12491291
func (q *querier) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) {
12501292
for _, templateID := range arg.TemplateIDs {
12511293
template, err := q.db.GetTemplateByID(ctx, templateID)
@@ -2972,6 +3014,20 @@ func (q *querier) UpsertTailnetCoordinator(ctx context.Context, id uuid.UUID) (d
29723014
return q.db.UpsertTailnetCoordinator(ctx, id)
29733015
}
29743016

3017+
func (q *querier) UpsertTailnetPeer(ctx context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) {
3018+
if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceTailnetCoordinator); err != nil {
3019+
return database.TailnetPeer{}, err
3020+
}
3021+
return q.db.UpsertTailnetPeer(ctx, arg)
3022+
}
3023+
3024+
func (q *querier) UpsertTailnetTunnel(ctx context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) {
3025+
if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceTailnetCoordinator); err != nil {
3026+
return database.TailnetTunnel{}, err
3027+
}
3028+
return q.db.UpsertTailnetTunnel(ctx, arg)
3029+
}
3030+
29753031
func (q *querier) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, _ rbac.PreparedAuthorized) ([]database.Template, error) {
29763032
// TODO Delete this function, all GetTemplates should be authorized. For now just call getTemplates on the authz querier.
29773033
return q.GetTemplatesWithFilter(ctx, arg)

coderd/database/dbmem/dbmem.go

+57
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,15 @@ func (*FakeQuerier) DeleteAllTailnetClientSubscriptions(_ context.Context, arg d
981981
return ErrUnimplemented
982982
}
983983

984+
func (*FakeQuerier) DeleteAllTailnetTunnels(_ context.Context, arg database.DeleteAllTailnetTunnelsParams) error {
985+
err := validateDatabaseType(arg)
986+
if err != nil {
987+
return err
988+
}
989+
990+
return ErrUnimplemented
991+
}
992+
984993
func (q *FakeQuerier) DeleteApplicationConnectAPIKeysByUserID(_ context.Context, userID uuid.UUID) error {
985994
q.mutex.Lock()
986995
defer q.mutex.Unlock()
@@ -1118,6 +1127,24 @@ func (*FakeQuerier) DeleteTailnetClientSubscription(context.Context, database.De
11181127
return ErrUnimplemented
11191128
}
11201129

1130+
func (*FakeQuerier) DeleteTailnetPeer(_ context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) {
1131+
err := validateDatabaseType(arg)
1132+
if err != nil {
1133+
return database.DeleteTailnetPeerRow{}, err
1134+
}
1135+
1136+
return database.DeleteTailnetPeerRow{}, ErrUnimplemented
1137+
}
1138+
1139+
func (*FakeQuerier) DeleteTailnetTunnel(_ context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) {
1140+
err := validateDatabaseType(arg)
1141+
if err != nil {
1142+
return database.DeleteTailnetTunnelRow{}, err
1143+
}
1144+
1145+
return database.DeleteTailnetTunnelRow{}, ErrUnimplemented
1146+
}
1147+
11211148
func (q *FakeQuerier) GetAPIKeyByID(_ context.Context, id string) (database.APIKey, error) {
11221149
q.mutex.RLock()
11231150
defer q.mutex.RUnlock()
@@ -2240,6 +2267,18 @@ func (*FakeQuerier) GetTailnetClientsForAgent(context.Context, uuid.UUID) ([]dat
22402267
return nil, ErrUnimplemented
22412268
}
22422269

2270+
func (*FakeQuerier) GetTailnetPeers(context.Context, uuid.UUID) ([]database.TailnetPeer, error) {
2271+
return nil, ErrUnimplemented
2272+
}
2273+
2274+
func (*FakeQuerier) GetTailnetTunnelPeerBindings(context.Context, uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) {
2275+
return nil, ErrUnimplemented
2276+
}
2277+
2278+
func (*FakeQuerier) GetTailnetTunnelPeerIDs(context.Context, uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) {
2279+
return nil, ErrUnimplemented
2280+
}
2281+
22432282
func (q *FakeQuerier) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) {
22442283
err := validateDatabaseType(arg)
22452284
if err != nil {
@@ -6786,6 +6825,24 @@ func (*FakeQuerier) UpsertTailnetCoordinator(context.Context, uuid.UUID) (databa
67866825
return database.TailnetCoordinator{}, ErrUnimplemented
67876826
}
67886827

6828+
func (*FakeQuerier) UpsertTailnetPeer(_ context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) {
6829+
err := validateDatabaseType(arg)
6830+
if err != nil {
6831+
return database.TailnetPeer{}, err
6832+
}
6833+
6834+
return database.TailnetPeer{}, ErrUnimplemented
6835+
}
6836+
6837+
func (*FakeQuerier) UpsertTailnetTunnel(_ context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) {
6838+
err := validateDatabaseType(arg)
6839+
if err != nil {
6840+
return database.TailnetTunnel{}, err
6841+
}
6842+
6843+
return database.TailnetTunnel{}, ErrUnimplemented
6844+
}
6845+
67896846
func (q *FakeQuerier) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, prepared rbac.PreparedAuthorized) ([]database.Template, error) {
67906847
if err := validateDatabaseType(arg); err != nil {
67916848
return nil, err

coderd/database/dbmetrics/dbmetrics.go

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

coderd/database/dbmock/dbmock.go

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

0 commit comments

Comments
 (0)