Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb8b80fe

Browse files
authored
feat: storecoder_workspace_tags in the database (#13294)
1 parent45b45f1 commitb8b80fe

30 files changed

+1051
-396
lines changed

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,6 +1786,29 @@ func (q *querier) GetTemplateVersionVariables(ctx context.Context, templateVersi
17861786
returnq.db.GetTemplateVersionVariables(ctx,templateVersionID)
17871787
}
17881788

1789+
func (q*querier)GetTemplateVersionWorkspaceTags(ctx context.Context,templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag,error) {
1790+
tv,err:=q.db.GetTemplateVersionByID(ctx,templateVersionID)
1791+
iferr!=nil {
1792+
returnnil,err
1793+
}
1794+
1795+
varobject rbac.Objecter
1796+
template,err:=q.db.GetTemplateByID(ctx,tv.TemplateID.UUID)
1797+
iferr!=nil {
1798+
if!errors.Is(err,sql.ErrNoRows) {
1799+
returnnil,err
1800+
}
1801+
object=rbac.ResourceTemplate.InOrg(tv.OrganizationID)
1802+
}else {
1803+
object=tv.RBACObject(template)
1804+
}
1805+
1806+
iferr:=q.authorizeContext(ctx,policy.ActionRead,object);err!=nil {
1807+
returnnil,err
1808+
}
1809+
returnq.db.GetTemplateVersionWorkspaceTags(ctx,templateVersionID)
1810+
}
1811+
17891812
// GetTemplateVersionsByIDs is only used for workspace build data.
17901813
// The workspace is already fetched.
17911814
func (q*querier)GetTemplateVersionsByIDs(ctx context.Context,ids []uuid.UUID) ([]database.TemplateVersion,error) {
@@ -2507,6 +2530,13 @@ func (q *querier) InsertTemplateVersionVariable(ctx context.Context, arg databas
25072530
returnq.db.InsertTemplateVersionVariable(ctx,arg)
25082531
}
25092532

2533+
func (q*querier)InsertTemplateVersionWorkspaceTag(ctx context.Context,arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag,error) {
2534+
iferr:=q.authorizeContext(ctx,policy.ActionCreate,rbac.ResourceSystem);err!=nil {
2535+
return database.TemplateVersionWorkspaceTag{},err
2536+
}
2537+
returnq.db.InsertTemplateVersionWorkspaceTag(ctx,arg)
2538+
}
2539+
25102540
func (q*querier)InsertUser(ctx context.Context,arg database.InsertUserParams) (database.User,error) {
25112541
// Always check if the assigned roles can actually be assigned by this actor.
25122542
impliedRoles:=append([]string{rbac.RoleMember()},arg.RBACRoles...)

‎coderd/database/dbauthz/dbauthz_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,16 @@ func (s *MethodTestSuite) TestTemplate() {
778778
})
779779
check.Args(tv.ID).Asserts(t1,policy.ActionRead).Returns([]database.TemplateVersionVariable{tvv1})
780780
}))
781+
s.Run("GetTemplateVersionWorkspaceTags",s.Subtest(func(db database.Store,check*expects) {
782+
t1:=dbgen.Template(s.T(),db, database.Template{})
783+
tv:=dbgen.TemplateVersion(s.T(),db, database.TemplateVersion{
784+
TemplateID: uuid.NullUUID{UUID:t1.ID,Valid:true},
785+
})
786+
wt1:=dbgen.TemplateVersionWorkspaceTag(s.T(),db, database.TemplateVersionWorkspaceTag{
787+
TemplateVersionID:tv.ID,
788+
})
789+
check.Args(tv.ID).Asserts(t1,policy.ActionRead).Returns([]database.TemplateVersionWorkspaceTag{wt1})
790+
}))
781791
s.Run("GetTemplateGroupRoles",s.Subtest(func(db database.Store,check*expects) {
782792
t1:=dbgen.Template(s.T(),db, database.Template{})
783793
check.Args(t1.ID).Asserts(t1,policy.ActionUpdate)
@@ -2339,6 +2349,9 @@ func (s *MethodTestSuite) TestSystemFunctions() {
23392349
s.Run("InsertTemplateVersionVariable",s.Subtest(func(db database.Store,check*expects) {
23402350
check.Args(database.InsertTemplateVersionVariableParams{}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
23412351
}))
2352+
s.Run("InsertTemplateVersionWorkspaceTag",s.Subtest(func(db database.Store,check*expects) {
2353+
check.Args(database.InsertTemplateVersionWorkspaceTagParams{}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
2354+
}))
23422355
s.Run("UpdateInactiveUsersToDormant",s.Subtest(func(db database.Store,check*expects) {
23432356
check.Args(database.UpdateInactiveUsersToDormantParams{}).Asserts(rbac.ResourceSystem,policy.ActionCreate).Errors(sql.ErrNoRows)
23442357
}))

‎coderd/database/dbgen/dbgen.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,16 @@ func TemplateVersionVariable(t testing.TB, db database.Store, orig database.Temp
678678
returnversion
679679
}
680680

681+
funcTemplateVersionWorkspaceTag(t testing.TB,db database.Store,orig database.TemplateVersionWorkspaceTag) database.TemplateVersionWorkspaceTag {
682+
workspaceTag,err:=db.InsertTemplateVersionWorkspaceTag(genCtx, database.InsertTemplateVersionWorkspaceTagParams{
683+
TemplateVersionID:takeFirst(orig.TemplateVersionID,uuid.New()),
684+
Key:takeFirst(orig.Key,namesgenerator.GetRandomName(1)),
685+
Value:takeFirst(orig.Value,namesgenerator.GetRandomName(1)),
686+
})
687+
require.NoError(t,err,"insert template version workspace tag")
688+
returnworkspaceTag
689+
}
690+
681691
funcTemplateVersionParameter(t testing.TB,db database.Store,orig database.TemplateVersionParameter) database.TemplateVersionParameter {
682692
t.Helper()
683693

‎coderd/database/dbmem/dbmem.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ type data struct {
163163
templateVersions []database.TemplateVersionTable
164164
templateVersionParameters []database.TemplateVersionParameter
165165
templateVersionVariables []database.TemplateVersionVariable
166+
templateVersionWorkspaceTags []database.TemplateVersionWorkspaceTag
166167
templates []database.TemplateTable
167168
templateUsageStats []database.TemplateUsageStat
168169
workspaceAgents []database.WorkspaceAgent
@@ -4177,6 +4178,24 @@ func (q *FakeQuerier) GetTemplateVersionVariables(_ context.Context, templateVer
41774178
returnvariables,nil
41784179
}
41794180

4181+
func (q*FakeQuerier)GetTemplateVersionWorkspaceTags(_ context.Context,templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag,error) {
4182+
q.mutex.RLock()
4183+
deferq.mutex.RUnlock()
4184+
4185+
workspaceTags:=make([]database.TemplateVersionWorkspaceTag,0)
4186+
for_,workspaceTag:=rangeq.templateVersionWorkspaceTags {
4187+
ifworkspaceTag.TemplateVersionID!=templateVersionID {
4188+
continue
4189+
}
4190+
workspaceTags=append(workspaceTags,workspaceTag)
4191+
}
4192+
4193+
sort.Slice(workspaceTags,func(i,jint)bool {
4194+
returnworkspaceTags[i].Key<workspaceTags[j].Key
4195+
})
4196+
returnworkspaceTags,nil
4197+
}
4198+
41804199
func (q*FakeQuerier)GetTemplateVersionsByIDs(_ context.Context,ids []uuid.UUID) ([]database.TemplateVersion,error) {
41814200
q.mutex.RLock()
41824201
deferq.mutex.RUnlock()
@@ -6352,6 +6371,25 @@ func (q *FakeQuerier) InsertTemplateVersionVariable(_ context.Context, arg datab
63526371
returnvariable,nil
63536372
}
63546373

6374+
func (q*FakeQuerier)InsertTemplateVersionWorkspaceTag(_ context.Context,arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag,error) {
6375+
err:=validateDatabaseType(arg)
6376+
iferr!=nil {
6377+
return database.TemplateVersionWorkspaceTag{},err
6378+
}
6379+
6380+
q.mutex.Lock()
6381+
deferq.mutex.Unlock()
6382+
6383+
//nolint:gosimple
6384+
workspaceTag:= database.TemplateVersionWorkspaceTag{
6385+
TemplateVersionID:arg.TemplateVersionID,
6386+
Key:arg.Key,
6387+
Value:arg.Value,
6388+
}
6389+
q.templateVersionWorkspaceTags=append(q.templateVersionWorkspaceTags,workspaceTag)
6390+
returnworkspaceTag,nil
6391+
}
6392+
63556393
func (q*FakeQuerier)InsertUser(_ context.Context,arg database.InsertUserParams) (database.User,error) {
63566394
iferr:=validateDatabaseType(arg);err!=nil {
63576395
return database.User{},err

‎coderd/database/dbmetrics/dbmetrics.go

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

‎coderd/database/dbmock/dbmock.go

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

‎coderd/database/dump.sql

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp