Skip to content

Commit 88d5eec

Browse files
feat: basic implementation of secrets feature
1 parent 935bd34 commit 88d5eec

25 files changed

+260
-0
lines changed

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/database/dbauthz/dbauthz.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3871,6 +3871,15 @@ func (q *querier) InsertUserLink(ctx context.Context, arg database.InsertUserLin
38713871
return q.db.InsertUserLink(ctx, arg)
38723872
}
38733873

3874+
func (q *querier) InsertUserSecret(ctx context.Context, arg database.InsertUserSecretParams) (database.UserSecret, error) {
3875+
obj := rbac.ResourceUserSecret.WithOwner(arg.UserID.String())
3876+
if err := q.authorizeContext(ctx, policy.ActionCreate, obj); err != nil {
3877+
return database.UserSecret{}, err
3878+
}
3879+
3880+
return q.db.InsertUserSecret(ctx, arg)
3881+
}
3882+
38743883
func (q *querier) InsertVolumeResourceMonitor(ctx context.Context, arg database.InsertVolumeResourceMonitorParams) (database.WorkspaceAgentVolumeResourceMonitor, error) {
38753884
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceWorkspaceAgentResourceMonitor); err != nil {
38763885
return database.WorkspaceAgentVolumeResourceMonitor{}, err

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5718,3 +5718,15 @@ func (s *MethodTestSuite) TestAuthorizePrebuiltWorkspace() {
57185718
}).Asserts(w, policy.ActionUpdate, w.AsPrebuild(), policy.ActionUpdate)
57195719
}))
57205720
}
5721+
5722+
func (s *MethodTestSuite) TestUserSecrets() {
5723+
s.Run("InsertUserSecret", s.Subtest(func(db database.Store, check *expects) {
5724+
user := dbgen.User(s.T(), db, database.User{})
5725+
arg := database.InsertUserSecretParams{
5726+
UserID: user.ID,
5727+
}
5728+
check.Args(arg).
5729+
Asserts(rbac.ResourceUserSecret.WithOwner(arg.UserID.String()), policy.ActionCreate).
5730+
ErrorsWithInMemDB(dbmem.ErrUnimplemented)
5731+
}))
5732+
}

coderd/database/dbgen/dbgen.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,6 +1352,19 @@ func PresetParameter(t testing.TB, db database.Store, seed database.InsertPreset
13521352
return parameters
13531353
}
13541354

1355+
func UserSecret(t testing.TB, db database.Store, seed database.InsertUserSecretParams) database.UserSecret {
1356+
schedule, err := db.InsertUserSecret(genCtx, database.InsertUserSecretParams{
1357+
ID: takeFirst(seed.ID, uuid.New()),
1358+
UserID: takeFirst(seed.UserID, uuid.New()),
1359+
Name: takeFirst(seed.Name, "secret-name"),
1360+
Description: takeFirst(seed.Description, "secret description"),
1361+
Value: takeFirst(seed.Value, "secret value"),
1362+
ValueKeyID: takeFirst(seed.ValueKeyID, sql.NullString{}),
1363+
})
1364+
require.NoError(t, err, "insert preset prebuild schedule")
1365+
return schedule
1366+
}
1367+
13551368
func provisionerJobTiming(t testing.TB, db database.Store, seed database.ProvisionerJobTiming) database.ProvisionerJobTiming {
13561369
timing, err := db.InsertProvisionerJobTimings(genCtx, database.InsertProvisionerJobTimingsParams{
13571370
JobID: takeFirst(seed.JobID, uuid.New()),

coderd/database/dbmem/dbmem.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9710,6 +9710,15 @@ func (q *FakeQuerier) InsertUserLink(_ context.Context, args database.InsertUser
97109710
return link, nil
97119711
}
97129712

9713+
func (q *FakeQuerier) InsertUserSecret(ctx context.Context, arg database.InsertUserSecretParams) (database.UserSecret, error) {
9714+
err := validateDatabaseType(arg)
9715+
if err != nil {
9716+
return database.UserSecret{}, err
9717+
}
9718+
9719+
return database.UserSecret{}, ErrUnimplemented
9720+
}
9721+
97139722
func (q *FakeQuerier) InsertVolumeResourceMonitor(_ context.Context, arg database.InsertVolumeResourceMonitorParams) (database.WorkspaceAgentVolumeResourceMonitor, error) {
97149723
err := validateDatabaseType(arg)
97159724
if err != nil {

coderd/database/dbmetrics/querymetrics.go

Lines changed: 7 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: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dump.sql

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

coderd/database/foreign_key_constraint.go

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

0 commit comments

Comments
 (0)