Skip to content

Commit bf4b7ab

Browse files
authored
chore(coderd): allow creating workspaces without specifying an organization (coder#14048)
1 parent 56dfc64 commit bf4b7ab

Some content is hidden

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

53 files changed

+814
-254
lines changed

cli/autoupdate_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestAutoUpdate(t *testing.T) {
2424
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
2525
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2626
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
27-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
27+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
2828
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
2929
require.Equal(t, codersdk.AutomaticUpdatesNever, workspace.AutomaticUpdates)
3030

cli/clitest/golden.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ func prepareTestData(t *testing.T) (*codersdk.Client, map[string]string) {
195195
template := coderdtest.CreateTemplate(t, rootClient, firstUser.OrganizationID, version.ID, func(req *codersdk.CreateTemplateRequest) {
196196
req.Name = "test-template"
197197
})
198-
workspace := coderdtest.CreateWorkspace(t, rootClient, firstUser.OrganizationID, template.ID, func(req *codersdk.CreateWorkspaceRequest) {
198+
workspace := coderdtest.CreateWorkspace(t, rootClient, template.ID, func(req *codersdk.CreateWorkspaceRequest) {
199199
req.Name = "test-workspace"
200200
})
201201
workspaceBuild := coderdtest.AwaitWorkspaceBuildJobCompleted(t, rootClient, workspace.LatestBuild.ID)

cli/delete_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestDelete(t *testing.T) {
2727
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
2828
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2929
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
30-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
30+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
3131
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
3232
inv, root := clitest.New(t, "delete", workspace.Name, "-y")
3333
clitest.SetupConfig(t, member, root)
@@ -52,7 +52,7 @@ func TestDelete(t *testing.T) {
5252
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
5353
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
5454
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
55-
workspace := coderdtest.CreateWorkspace(t, client, owner.OrganizationID, template.ID)
55+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
5656
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
5757
inv, root := clitest.New(t, "delete", workspace.Name, "-y", "--orphan")
5858

@@ -86,8 +86,7 @@ func TestDelete(t *testing.T) {
8686
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
8787
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
8888
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
89-
90-
workspace := coderdtest.CreateWorkspace(t, deleteMeClient, owner.OrganizationID, template.ID)
89+
workspace := coderdtest.CreateWorkspace(t, deleteMeClient, template.ID)
9190
coderdtest.AwaitWorkspaceBuildJobCompleted(t, deleteMeClient, workspace.LatestBuild.ID)
9291

9392
// The API checks if the user has any workspaces, so we cannot delete a user
@@ -128,7 +127,7 @@ func TestDelete(t *testing.T) {
128127
version := coderdtest.CreateTemplateVersion(t, adminClient, orgID, nil)
129128
coderdtest.AwaitTemplateVersionJobCompleted(t, adminClient, version.ID)
130129
template := coderdtest.CreateTemplate(t, adminClient, orgID, version.ID)
131-
workspace := coderdtest.CreateWorkspace(t, client, orgID, template.ID)
130+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
132131
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
133132

134133
inv, root := clitest.New(t, "delete", user.Username+"/"+workspace.Name, "-y")

cli/rename_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestRename(t *testing.T) {
2121
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
2222
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2323
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
24-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
24+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
2525
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
2626

2727
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)

cli/restart_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func TestRestart(t *testing.T) {
3838
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
3939
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
4040
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
41-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
41+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
4242
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
4343

4444
ctx := testutil.Context(t, testutil.WaitLong)
@@ -69,7 +69,7 @@ func TestRestart(t *testing.T) {
6969
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
7070
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
7171
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
72-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
72+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
7373
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
7474

7575
inv, root := clitest.New(t, "restart", workspace.Name, "--build-options")
@@ -123,7 +123,7 @@ func TestRestart(t *testing.T) {
123123
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
124124
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
125125
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
126-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
126+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
127127
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
128128

129129
inv, root := clitest.New(t, "restart", workspace.Name,
@@ -202,7 +202,7 @@ func TestRestartWithParameters(t *testing.T) {
202202
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
203203
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
204204
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
205-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
205+
workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
206206
cwr.RichParameterValues = []codersdk.WorkspaceBuildParameter{
207207
{
208208
Name: immutableParameterName,
@@ -250,7 +250,7 @@ func TestRestartWithParameters(t *testing.T) {
250250
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, mutableParamsResponse)
251251
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
252252
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
253-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
253+
workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
254254
cwr.RichParameterValues = []codersdk.WorkspaceBuildParameter{
255255
{
256256
Name: mutableParameterName,

cli/show_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestShow(t *testing.T) {
2020
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent())
2121
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2222
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
23-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
23+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
2424
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
2525

2626
args := []string{

cli/ssh_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func TestSSH(t *testing.T) {
108108
})
109109
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
110110
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
111-
workspace := coderdtest.CreateWorkspace(t, client, owner.OrganizationID, template.ID)
111+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
112112
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
113113
// Stop the workspace
114114
workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop)
@@ -166,7 +166,7 @@ func TestSSH(t *testing.T) {
166166
coderdtest.AwaitTemplateVersionJobCompleted(t, ownerClient, version.ID)
167167
template := coderdtest.CreateTemplate(t, ownerClient, owner.OrganizationID, version.ID)
168168

169-
workspace := coderdtest.CreateWorkspace(t, client, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
169+
workspace := coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
170170
cwr.AutomaticUpdates = codersdk.AutomaticUpdatesAlways
171171
})
172172
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
@@ -373,7 +373,7 @@ func TestSSH(t *testing.T) {
373373
})
374374
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
375375
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
376-
workspace := coderdtest.CreateWorkspace(t, client, owner.OrganizationID, template.ID)
376+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
377377
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
378378
// Stop the workspace
379379
workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop)

cli/start_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func TestStart(t *testing.T) {
109109
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
110110
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
111111
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
112-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
112+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
113113
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
114114
// Stop the workspace
115115
workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop)
@@ -163,7 +163,7 @@ func TestStart(t *testing.T) {
163163
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
164164
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
165165
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
166-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID)
166+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
167167
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
168168
// Stop the workspace
169169
workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop)
@@ -211,7 +211,7 @@ func TestStartWithParameters(t *testing.T) {
211211
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, immutableParamsResponse)
212212
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
213213
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
214-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
214+
workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
215215
cwr.RichParameterValues = []codersdk.WorkspaceBuildParameter{
216216
{
217217
Name: immutableParameterName,
@@ -263,7 +263,7 @@ func TestStartWithParameters(t *testing.T) {
263263
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, mutableParamsResponse)
264264
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
265265
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
266-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
266+
workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
267267
cwr.RichParameterValues = []codersdk.WorkspaceBuildParameter{
268268
{
269269
Name: mutableParameterName,
@@ -349,7 +349,7 @@ func TestStartAutoUpdate(t *testing.T) {
349349
version1 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
350350
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version1.ID)
351351
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version1.ID)
352-
workspace := coderdtest.CreateWorkspace(t, member, owner.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
352+
workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
353353
cwr.AutomaticUpdates = codersdk.AutomaticUpdatesAlways
354354
})
355355
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)

cli/state_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func TestStatePush(t *testing.T) {
100100
})
101101
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
102102
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
103-
workspace := coderdtest.CreateWorkspace(t, templateAdmin, owner.OrganizationID, template.ID)
103+
workspace := coderdtest.CreateWorkspace(t, templateAdmin, template.ID)
104104
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
105105
stateFile, err := os.CreateTemp(t.TempDir(), "")
106106
require.NoError(t, err)
@@ -126,7 +126,7 @@ func TestStatePush(t *testing.T) {
126126
})
127127
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
128128
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
129-
workspace := coderdtest.CreateWorkspace(t, templateAdmin, owner.OrganizationID, template.ID)
129+
workspace := coderdtest.CreateWorkspace(t, templateAdmin, template.ID)
130130
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
131131
inv, root := clitest.New(t, "state", "push", "--build", strconv.Itoa(int(workspace.LatestBuild.BuildNumber)), workspace.Name, "-")
132132
clitest.SetupConfig(t, templateAdmin, root)
@@ -146,7 +146,7 @@ func TestStatePush(t *testing.T) {
146146
})
147147
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
148148
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
149-
workspace := coderdtest.CreateWorkspace(t, templateAdmin, owner.OrganizationID, template.ID)
149+
workspace := coderdtest.CreateWorkspace(t, templateAdmin, template.ID)
150150
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
151151
inv, root := clitest.New(t, "state", "push",
152152
"--build", strconv.Itoa(int(workspace.LatestBuild.BuildNumber)),

coderd/activitybump_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func TestWorkspaceActivityBump(t *testing.T) {
6363
})
6464
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
6565
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
66-
workspace = coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
66+
workspace = coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
6767
cwr.TTLMillis = &ttlMillis
6868
})
6969
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)

coderd/apidoc/docs.go

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

coderd/audit/request.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ type Request[T Auditable] struct {
5151
Action database.AuditAction
5252
}
5353

54+
// UpdateOrganizationID can be used if the organization ID is not known
55+
// at the initiation of an audit log request.
56+
func (r *Request[T]) UpdateOrganizationID(id uuid.UUID) {
57+
r.params.OrganizationID = id
58+
}
59+
5460
type BackgroundAuditParams[T Auditable] struct {
5561
Audit Auditor
5662
Log slog.Logger

0 commit comments

Comments
 (0)