Skip to content

Commit 343f8ec

Browse files
authored
chore: join owner, template, and org in new workspace view (coder#15116)
Joins in fields like `username`, `avatar_url`, `organization_name`, `template_name` to `workspaces` via a **view**. The view must be maintained moving forward, but this prevents needing to add RBAC permissions to fetch related workspace fields.
1 parent 5076161 commit 343f8ec

File tree

81 files changed

+1060
-732
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+1060
-732
lines changed

cli/agent_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestWorkspaceAgent(t *testing.T) {
3535

3636
client, db := coderdtest.NewWithDatabase(t, nil)
3737
user := coderdtest.CreateFirstUser(t, client)
38-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
38+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
3939
OrganizationID: user.OrganizationID,
4040
OwnerID: user.UserID,
4141
}).
@@ -71,7 +71,7 @@ func TestWorkspaceAgent(t *testing.T) {
7171
AzureCertificates: certificates,
7272
})
7373
user := coderdtest.CreateFirstUser(t, client)
74-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
74+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
7575
OrganizationID: user.OrganizationID,
7676
OwnerID: user.UserID,
7777
}).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
@@ -110,7 +110,7 @@ func TestWorkspaceAgent(t *testing.T) {
110110
AWSCertificates: certificates,
111111
})
112112
user := coderdtest.CreateFirstUser(t, client)
113-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
113+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
114114
OrganizationID: user.OrganizationID,
115115
OwnerID: user.UserID,
116116
}).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
@@ -151,7 +151,7 @@ func TestWorkspaceAgent(t *testing.T) {
151151
})
152152
owner := coderdtest.CreateFirstUser(t, client)
153153
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
154-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
154+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
155155
OrganizationID: owner.OrganizationID,
156156
OwnerID: memberUser.ID,
157157
}).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
@@ -205,7 +205,7 @@ func TestWorkspaceAgent(t *testing.T) {
205205

206206
client, db := coderdtest.NewWithDatabase(t, nil)
207207
user := coderdtest.CreateFirstUser(t, client)
208-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
208+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
209209
OrganizationID: user.OrganizationID,
210210
OwnerID: user.UserID,
211211
}).WithAgent().Do()
@@ -279,7 +279,7 @@ func TestWorkspaceAgent(t *testing.T) {
279279
}
280280
coderAPI.RootHandler.ServeHTTP(w, r)
281281
}))
282-
r := dbfake.WorkspaceBuild(t, coderAPI.Database, database.Workspace{
282+
r := dbfake.WorkspaceBuild(t, coderAPI.Database, database.WorkspaceTable{
283283
OrganizationID: memberUser.OrganizationIDs[0],
284284
OwnerID: memberUser.ID,
285285
}).WithAgent().Do()

cli/configssh_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func TestConfigSSH(t *testing.T) {
8383
})
8484
owner := coderdtest.CreateFirstUser(t, client)
8585
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
86-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
86+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
8787
OrganizationID: owner.OrganizationID,
8888
OwnerID: memberUser.ID,
8989
}).WithAgent().Do()
@@ -647,7 +647,7 @@ func TestConfigSSH_FileWriteAndOptionsFlow(t *testing.T) {
647647
client, db := coderdtest.NewWithDatabase(t, nil)
648648
user := coderdtest.CreateFirstUser(t, client)
649649
if tt.hasAgent {
650-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
650+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
651651
OrganizationID: user.OrganizationID,
652652
OwnerID: user.UserID,
653653
}).WithAgent().Do()
@@ -767,7 +767,7 @@ func TestConfigSSH_Hostnames(t *testing.T) {
767767
owner := coderdtest.CreateFirstUser(t, client)
768768
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
769769

770-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
770+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
771771
OrganizationID: owner.OrganizationID,
772772
OwnerID: memberUser.ID,
773773
}).Resource(resources...).Do()

cli/favorite_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func TestFavoriteUnfavorite(t *testing.T) {
1919
client, db = coderdtest.NewWithDatabase(t, nil)
2020
owner = coderdtest.CreateFirstUser(t, client)
2121
memberClient, member = coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
22-
ws = dbfake.WorkspaceBuild(t, db, database.Workspace{OwnerID: member.ID, OrganizationID: owner.OrganizationID}).Do()
22+
ws = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{OwnerID: member.ID, OrganizationID: owner.OrganizationID}).Do()
2323
)
2424

2525
inv, root := clitest.New(t, "favorite", ws.Workspace.Name)

cli/gitssh_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func prepareTestGitSSH(ctx context.Context, t *testing.T) (*agentsdk.Client, str
4848
require.NoError(t, err)
4949

5050
// setup template
51-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
51+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
5252
OrganizationID: user.OrganizationID,
5353
OwnerID: user.UserID,
5454
}).WithAgent().Do()

cli/list_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestList(t *testing.T) {
2626
owner := coderdtest.CreateFirstUser(t, client)
2727
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
2828
// setup template
29-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
29+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
3030
OrganizationID: owner.OrganizationID,
3131
OwnerID: memberUser.ID,
3232
}).WithAgent().Do()
@@ -54,7 +54,7 @@ func TestList(t *testing.T) {
5454
client, db := coderdtest.NewWithDatabase(t, nil)
5555
owner := coderdtest.CreateFirstUser(t, client)
5656
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
57-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
57+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
5858
OrganizationID: owner.OrganizationID,
5959
OwnerID: memberUser.ID,
6060
}).WithAgent().Do()

cli/portforward_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,12 +290,12 @@ func TestPortForward(t *testing.T) {
290290
// runAgent creates a fake workspace and starts an agent locally for that
291291
// workspace. The agent will be cleaned up on test completion.
292292
// nolint:unused
293-
func runAgent(t *testing.T, client *codersdk.Client, owner uuid.UUID, db database.Store) database.Workspace {
293+
func runAgent(t *testing.T, client *codersdk.Client, owner uuid.UUID, db database.Store) database.WorkspaceTable {
294294
user, err := client.User(context.Background(), codersdk.Me)
295295
require.NoError(t, err, "specified user does not exist")
296296
require.Greater(t, len(user.OrganizationIDs), 0, "user has no organizations")
297297
orgID := user.OrganizationIDs[0]
298-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
298+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
299299
OrganizationID: orgID,
300300
OwnerID: owner,
301301
}).WithAgent().Do()

cli/schedule_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,27 @@ func setupTestSchedule(t *testing.T, sched *cron.Schedule) (ownerClient, memberC
3838
memberClient, memberUser := coderdtest.CreateAnotherUserMutators(t, ownerClient, owner.OrganizationID, nil, func(r *codersdk.CreateUserRequestWithOrgs) {
3939
r.Username = "testuser2" // ensure deterministic ordering
4040
})
41-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
41+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
4242
Name: "a-owner",
4343
OwnerID: owner.UserID,
4444
OrganizationID: owner.OrganizationID,
4545
AutostartSchedule: sql.NullString{String: sched.String(), Valid: true},
4646
Ttl: sql.NullInt64{Int64: 8 * time.Hour.Nanoseconds(), Valid: true},
4747
}).WithAgent().Do()
4848

49-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
49+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
5050
Name: "b-owner",
5151
OwnerID: owner.UserID,
5252
OrganizationID: owner.OrganizationID,
5353
AutostartSchedule: sql.NullString{String: sched.String(), Valid: true},
5454
}).WithAgent().Do()
55-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
55+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
5656
Name: "c-member",
5757
OwnerID: memberUser.ID,
5858
OrganizationID: owner.OrganizationID,
5959
Ttl: sql.NullInt64{Int64: 8 * time.Hour.Nanoseconds(), Valid: true},
6060
}).WithAgent().Do()
61-
_ = dbfake.WorkspaceBuild(t, db, database.Workspace{
61+
_ = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
6262
Name: "d-member",
6363
OwnerID: memberUser.ID,
6464
OrganizationID: owner.OrganizationID,

cli/ssh_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ import (
5353
"github.com/coder/coder/v2/testutil"
5454
)
5555

56-
func setupWorkspaceForAgent(t *testing.T, mutations ...func([]*proto.Agent) []*proto.Agent) (*codersdk.Client, database.Workspace, string) {
56+
func setupWorkspaceForAgent(t *testing.T, mutations ...func([]*proto.Agent) []*proto.Agent) (*codersdk.Client, database.WorkspaceTable, string) {
5757
t.Helper()
5858

5959
client, store := coderdtest.NewWithDatabase(t, nil)
6060
client.SetLogger(slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug))
6161
first := coderdtest.CreateFirstUser(t, client)
6262
userClient, user := coderdtest.CreateAnotherUser(t, client, first.OrganizationID)
63-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
63+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
6464
OrganizationID: first.OrganizationID,
6565
OwnerID: user.ID,
6666
}).WithAgent(mutations...).Do()
@@ -260,7 +260,7 @@ func TestSSH(t *testing.T) {
260260
client.SetLogger(slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug))
261261
first := coderdtest.CreateFirstUser(t, client)
262262
userClient, user := coderdtest.CreateAnotherUser(t, client, first.OrganizationID)
263-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
263+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
264264
OrganizationID: first.OrganizationID,
265265
OwnerID: user.ID,
266266
}).WithAgent().Do()
@@ -763,7 +763,7 @@ func TestSSH(t *testing.T) {
763763
client.SetLogger(slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug))
764764
first := coderdtest.CreateFirstUser(t, client)
765765
userClient, user := coderdtest.CreateAnotherUser(t, client, first.OrganizationID)
766-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
766+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
767767
OrganizationID: first.OrganizationID,
768768
OwnerID: user.ID,
769769
}).WithAgent().Do()
@@ -1370,7 +1370,7 @@ func TestSSH(t *testing.T) {
13701370
admin.SetLogger(slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug))
13711371
first := coderdtest.CreateFirstUser(t, admin)
13721372
client, user := coderdtest.CreateAnotherUser(t, admin, first.OrganizationID)
1373-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
1373+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
13741374
OrganizationID: first.OrganizationID,
13751375
OwnerID: user.ID,
13761376
}).WithAgent().Do()

cli/start_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ func TestStart_AlreadyRunning(t *testing.T) {
390390
client, db := coderdtest.NewWithDatabase(t, nil)
391391
owner := coderdtest.CreateFirstUser(t, client)
392392
memberClient, member := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
393-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
393+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
394394
OwnerID: member.ID,
395395
OrganizationID: owner.OrganizationID,
396396
}).Do()
@@ -417,7 +417,7 @@ func TestStart_Starting(t *testing.T) {
417417
client := coderdtest.New(t, &coderdtest.Options{Pubsub: ps, Database: store})
418418
owner := coderdtest.CreateFirstUser(t, client)
419419
memberClient, member := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
420-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
420+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
421421
OwnerID: member.ID,
422422
OrganizationID: owner.OrganizationID,
423423
}).

cli/state_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestStatePull(t *testing.T) {
2828
owner := coderdtest.CreateFirstUser(t, client)
2929
templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
3030
wantState := []byte("some state")
31-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
31+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
3232
OrganizationID: owner.OrganizationID,
3333
OwnerID: taUser.ID,
3434
}).
@@ -49,7 +49,7 @@ func TestStatePull(t *testing.T) {
4949
owner := coderdtest.CreateFirstUser(t, client)
5050
templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
5151
wantState := []byte("some state")
52-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
52+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
5353
OrganizationID: owner.OrganizationID,
5454
OwnerID: taUser.ID,
5555
}).
@@ -69,7 +69,7 @@ func TestStatePull(t *testing.T) {
6969
owner := coderdtest.CreateFirstUser(t, client)
7070
_, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
7171
wantState := []byte("some state")
72-
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
72+
r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
7373
OrganizationID: owner.OrganizationID,
7474
OwnerID: taUser.ID,
7575
}).

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