From d844be70c88a78400c55c82b77694499c6ab11b9 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 11:30:46 -0500 Subject: [PATCH 01/10] chore: remove multi-organization and custom role experiment --- enterprise/cli/create_test.go | 1 - enterprise/cli/organization_test.go | 2 -- enterprise/cli/organizationmembers_test.go | 1 - enterprise/cli/organizationsettings_test.go | 2 -- enterprise/cli/provisionerdaemonstart_test.go | 7 ---- enterprise/cli/provisionerkeys_test.go | 1 - enterprise/cli/templatecreate_test.go | 4 --- enterprise/cli/templatelist_test.go | 1 - enterprise/coderd/audit_test.go | 1 - enterprise/coderd/coderd.go | 3 -- enterprise/coderd/idpsync_test.go | 33 ------------------- enterprise/coderd/organizations_test.go | 20 ----------- enterprise/coderd/provisionerdaemons_test.go | 1 - enterprise/coderd/provisionerkeys_test.go | 1 - enterprise/coderd/roles_test.go | 1 - enterprise/coderd/templates_test.go | 4 --- enterprise/coderd/userauth_test.go | 1 - enterprise/coderd/users_test.go | 9 ----- enterprise/coderd/workspacequota_test.go | 1 - enterprise/coderd/workspaces_test.go | 3 -- enterprise/members_test.go | 4 --- enterprise/workspaceapps_test.go | 1 - enterprise/wsproxy/wsproxy_test.go | 9 ----- 23 files changed, 111 deletions(-) diff --git a/enterprise/cli/create_test.go b/enterprise/cli/create_test.go index 1c0804e4d92eb..399af895d40f3 100644 --- a/enterprise/cli/create_test.go +++ b/enterprise/cli/create_test.go @@ -38,7 +38,6 @@ func TestEnterpriseCreate(t *testing.T) { // both organizations, and optionally creates templates in each organization. setupMultipleOrganizations := func(t *testing.T, args setupArgs) setupData { dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/cli/organization_test.go b/enterprise/cli/organization_test.go index 4b98cc90d7411..6ca4f439effcb 100644 --- a/enterprise/cli/organization_test.go +++ b/enterprise/cli/organization_test.go @@ -120,7 +120,6 @@ func TestShowOrganizations(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, @@ -160,7 +159,6 @@ func TestShowOrganizations(t *testing.T) { t.Run("UsingFlag", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, diff --git a/enterprise/cli/organizationmembers_test.go b/enterprise/cli/organizationmembers_test.go index c996f0e734a50..94321f8ea50bd 100644 --- a/enterprise/cli/organizationmembers_test.go +++ b/enterprise/cli/organizationmembers_test.go @@ -21,7 +21,6 @@ func TestRemoveOrganizationMembers(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ diff --git a/enterprise/cli/organizationsettings_test.go b/enterprise/cli/organizationsettings_test.go index 44438a6fb088f..2aa2b112c6764 100644 --- a/enterprise/cli/organizationsettings_test.go +++ b/enterprise/cli/organizationsettings_test.go @@ -25,7 +25,6 @@ func TestUpdateGroupSync(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ @@ -82,7 +81,6 @@ func TestUpdateRoleSync(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ diff --git a/enterprise/cli/provisionerdaemonstart_test.go b/enterprise/cli/provisionerdaemonstart_test.go index 4a4a1f9f5ce46..febc25d3c4d26 100644 --- a/enterprise/cli/provisionerdaemonstart_test.go +++ b/enterprise/cli/provisionerdaemonstart_test.go @@ -31,7 +31,6 @@ func TestProvisionerDaemon_PSK(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -71,7 +70,6 @@ func TestProvisionerDaemon_PSK(t *testing.T) { t.Run("AnotherOrgByNameWithUser", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -225,7 +223,6 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) { t.Run("ScopeUserAnotherOrg", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -274,7 +271,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() dv := coderdtest.DeploymentValues(t) - dv.Experiments.Append(string(codersdk.ExperimentMultiOrganization)) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -320,7 +316,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() dv := coderdtest.DeploymentValues(t) - dv.Experiments.Append(string(codersdk.ExperimentMultiOrganization)) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -351,7 +346,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() dv := coderdtest.DeploymentValues(t) - dv.Experiments.Append(string(codersdk.ExperimentMultiOrganization)) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -382,7 +376,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() dv := coderdtest.DeploymentValues(t) - dv.Experiments.Append(string(codersdk.ExperimentMultiOrganization)) client, _ := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ diff --git a/enterprise/cli/provisionerkeys_test.go b/enterprise/cli/provisionerkeys_test.go index 10de80d3caf1d..11b1d18fadfc3 100644 --- a/enterprise/cli/provisionerkeys_test.go +++ b/enterprise/cli/provisionerkeys_test.go @@ -24,7 +24,6 @@ func TestProvisionerKeys(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/cli/templatecreate_test.go b/enterprise/cli/templatecreate_test.go index f180234d85e85..ac38a24c75686 100644 --- a/enterprise/cli/templatecreate_test.go +++ b/enterprise/cli/templatecreate_test.go @@ -140,10 +140,6 @@ func TestTemplateCreate(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/cli/templatelist_test.go b/enterprise/cli/templatelist_test.go index e0044455feeb4..7689727e0de9f 100644 --- a/enterprise/cli/templatelist_test.go +++ b/enterprise/cli/templatelist_test.go @@ -24,7 +24,6 @@ func TestEnterpriseListTemplates(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, diff --git a/enterprise/coderd/audit_test.go b/enterprise/coderd/audit_test.go index 1758b1b06fae1..c7468b1cf69ab 100644 --- a/enterprise/coderd/audit_test.go +++ b/enterprise/coderd/audit_test.go @@ -21,7 +21,6 @@ func TestEnterpriseAuditLogs(t *testing.T) { ctx := context.Background() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/coderd.go b/enterprise/coderd/coderd.go index e1d1f72a98132..b839843700bcc 100644 --- a/enterprise/coderd/coderd.go +++ b/enterprise/coderd/coderd.go @@ -261,7 +261,6 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { r.Use( apiKeyMiddleware, api.RequireFeatureMW(codersdk.FeatureMultipleOrganizations), - httpmw.RequireExperiment(api.AGPL.Experiments, codersdk.ExperimentMultiOrganization), ) r.Post("/organizations", api.postOrganizations) }) @@ -270,7 +269,6 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { r.Use( apiKeyMiddleware, api.RequireFeatureMW(codersdk.FeatureMultipleOrganizations), - httpmw.RequireExperiment(api.AGPL.Experiments, codersdk.ExperimentMultiOrganization), httpmw.ExtractOrganizationParam(api.Database), ) r.Patch("/organizations/{organization}", api.patchOrganization) @@ -336,7 +334,6 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { apiKeyMiddleware, httpmw.ExtractOrganizationParam(api.Database), api.RequireFeatureMW(codersdk.FeatureMultipleOrganizations), - httpmw.RequireExperiment(api.AGPL.Experiments, codersdk.ExperimentMultiOrganization), ) r.Get("/", api.provisionerKeys) r.Post("/", api.postProvisionerKey) diff --git a/enterprise/coderd/idpsync_test.go b/enterprise/coderd/idpsync_test.go index 374e318d23793..5b04f8b9e5d4b 100644 --- a/enterprise/coderd/idpsync_test.go +++ b/enterprise/coderd/idpsync_test.go @@ -26,10 +26,6 @@ func TestGetGroupSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } owner, db, user := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ @@ -60,10 +56,6 @@ func TestGetGroupSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } dv.OIDC.GroupField = "legacy-group" dv.OIDC.GroupRegexFilter = serpent.Regexp(*regexp.MustCompile("legacy-filter")) dv.OIDC.GroupMapping = serpent.Struct[map[string]string]{ @@ -102,11 +94,6 @@ func TestPostGroupSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } - owner, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -138,11 +125,6 @@ func TestPostGroupSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } - owner, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -178,11 +160,6 @@ func TestGetRoleSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } - owner, _, _, user := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -221,11 +198,6 @@ func TestPostRoleSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } - owner, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -257,11 +229,6 @@ func TestPostRoleSyncConfig(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{ - string(codersdk.ExperimentCustomRoles), - string(codersdk.ExperimentMultiOrganization), - } - owner, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/organizations_test.go b/enterprise/coderd/organizations_test.go index 512ca9bac2847..2ac8d5be2a4ee 100644 --- a/enterprise/coderd/organizations_test.go +++ b/enterprise/coderd/organizations_test.go @@ -19,7 +19,6 @@ import ( func TestMultiOrgFetch(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -61,7 +60,6 @@ func TestOrganizationsByUser(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -94,7 +92,6 @@ func TestOrganizationsByUser(t *testing.T) { t.Run("NoMember", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -129,7 +126,6 @@ func TestAddOrganizationMembers(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -175,7 +171,6 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Run("Default", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -202,7 +197,6 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Run("DeleteById", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -225,7 +219,6 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Run("DeleteByName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -251,7 +244,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("Conflict", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -282,7 +274,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("ReservedName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -309,7 +300,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("InvalidName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -336,7 +326,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateById", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -362,7 +351,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateByName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -392,7 +380,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateDisplayName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -423,7 +410,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateDescription", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -457,7 +443,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateIcon", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -492,7 +477,6 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("RevokedLicense", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -535,7 +519,6 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("Conflict", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -565,7 +548,6 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("InvalidName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -591,7 +573,6 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("Create", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -621,7 +602,6 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("CreateWithoutExplicitDisplayName", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/provisionerdaemons_test.go b/enterprise/coderd/provisionerdaemons_test.go index 83475c31bba9d..a57b0259b7888 100644 --- a/enterprise/coderd/provisionerdaemons_test.go +++ b/enterprise/coderd/provisionerdaemons_test.go @@ -738,7 +738,6 @@ func TestGetProvisionerDaemons(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/provisionerkeys_test.go b/enterprise/coderd/provisionerkeys_test.go index 84e6e590d2d5f..d3615c1ccc931 100644 --- a/enterprise/coderd/provisionerkeys_test.go +++ b/enterprise/coderd/provisionerkeys_test.go @@ -20,7 +20,6 @@ func TestProvisionerKeys(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong*10) t.Cleanup(cancel) dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/roles_test.go b/enterprise/coderd/roles_test.go index c919ecf00f780..039e4ca165de9 100644 --- a/enterprise/coderd/roles_test.go +++ b/enterprise/coderd/roles_test.go @@ -444,7 +444,6 @@ func TestListRoles(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/templates_test.go b/enterprise/coderd/templates_test.go index 8769bba2f0c01..5d9cb8ee9fa35 100644 --- a/enterprise/coderd/templates_test.go +++ b/enterprise/coderd/templates_test.go @@ -732,7 +732,6 @@ func TestTemplates(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles), string(codersdk.ExperimentMultiOrganization)} ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -782,7 +781,6 @@ func TestTemplates(t *testing.T) { t.Run("MultipleOrganizations", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -1735,7 +1733,6 @@ func TestTemplateAccess(t *testing.T) { t.Cleanup(cancel) dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -1946,7 +1943,6 @@ func TestMultipleOrganizationTemplates(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ // This only affects the first org. diff --git a/enterprise/coderd/userauth_test.go b/enterprise/coderd/userauth_test.go index f4e774461e406..fe979020a52e6 100644 --- a/enterprise/coderd/userauth_test.go +++ b/enterprise/coderd/userauth_test.go @@ -1131,7 +1131,6 @@ func setupOIDCTest(t *testing.T, settings oidcTestConfig) *oidcTestRunner { if settings.DeploymentValues != nil { settings.DeploymentValues(dv) } - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, _, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ Options: &coderdtest.Options{ OIDCConfig: cfg, diff --git a/enterprise/coderd/users_test.go b/enterprise/coderd/users_test.go index 54f2c8d0d3460..8d46ab6396b79 100644 --- a/enterprise/coderd/users_test.go +++ b/enterprise/coderd/users_test.go @@ -314,7 +314,6 @@ func TestGrantSiteRoles(t *testing.T) { } dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} admin, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -485,8 +484,6 @@ func TestEnterprisePostUser(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} - client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -522,8 +519,6 @@ func TestEnterprisePostUser(t *testing.T) { t.Run("OrganizationNoAccess", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} - client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -556,8 +551,6 @@ func TestEnterprisePostUser(t *testing.T) { t.Run("CreateWithoutOrg", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} - client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -588,8 +581,6 @@ func TestEnterprisePostUser(t *testing.T) { t.Run("MultipleOrganizations", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} - client, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/workspacequota_test.go b/enterprise/coderd/workspacequota_test.go index fdb70c154fa19..0432ff8c98b15 100644 --- a/enterprise/coderd/workspacequota_test.go +++ b/enterprise/coderd/workspacequota_test.go @@ -260,7 +260,6 @@ func TestWorkspaceQuota(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/coderd/workspaces_test.go b/enterprise/coderd/workspaces_test.go index 0b758e0491e1b..e03544db35db0 100644 --- a/enterprise/coderd/workspaces_test.go +++ b/enterprise/coderd/workspaces_test.go @@ -51,7 +51,6 @@ func TestCreateWorkspace(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -196,7 +195,6 @@ func TestCreateUserWorkspace(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -1485,7 +1483,6 @@ func TestAdminViewAllWorkspaces(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, diff --git a/enterprise/members_test.go b/enterprise/members_test.go index f1944f5c9b9c8..9120a025287a7 100644 --- a/enterprise/members_test.go +++ b/enterprise/members_test.go @@ -21,7 +21,6 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("Remove", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -105,7 +104,6 @@ func TestEnterpriseMembers(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -146,7 +144,6 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("PostUserNotExists", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -175,7 +172,6 @@ func TestEnterpriseMembers(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, diff --git a/enterprise/workspaceapps_test.go b/enterprise/workspaceapps_test.go index e9d758b7d4d62..f4ba577f13e33 100644 --- a/enterprise/workspaceapps_test.go +++ b/enterprise/workspaceapps_test.go @@ -23,7 +23,6 @@ func TestWorkspaceApps(t *testing.T) { deploymentValues.Dangerous.AllowPathAppSiteOwnerAccess = serpent.Bool(opts.DangerousAllowPathAppSiteOwnerAccess) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } if opts.DisableSubdomainApps { diff --git a/enterprise/wsproxy/wsproxy_test.go b/enterprise/wsproxy/wsproxy_test.go index b3768c3603f16..3d3926c5afae7 100644 --- a/enterprise/wsproxy/wsproxy_test.go +++ b/enterprise/wsproxy/wsproxy_test.go @@ -45,7 +45,6 @@ func TestDERPOnly(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -94,7 +93,6 @@ func TestDERP(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, user := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -327,7 +325,6 @@ func TestDERPEndToEnd(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } deploymentValues.DERP.Config.BlockDirect = true @@ -467,7 +464,6 @@ func TestDERPMesh(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -610,7 +606,6 @@ func TestWorkspaceProxyDERPMeshProbe(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -722,7 +717,6 @@ func TestWorkspaceProxyDERPMeshProbe(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -811,7 +805,6 @@ func TestWorkspaceProxyDERPMeshProbe(t *testing.T) { deploymentValues := coderdtest.DeploymentValues(t) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } client, closer, api, _ := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ @@ -927,7 +920,6 @@ func TestWorkspaceProxyWorkspaceApps(t *testing.T) { deploymentValues.Dangerous.AllowPathAppSiteOwnerAccess = serpent.Bool(opts.DangerousAllowPathAppSiteOwnerAccess) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } proxyStatsCollectorFlushCh := make(chan chan<- struct{}, 1) @@ -998,7 +990,6 @@ func TestWorkspaceProxyWorkspaceApps_BlockDirect(t *testing.T) { deploymentValues.Dangerous.AllowPathAppSiteOwnerAccess = serpent.Bool(opts.DangerousAllowPathAppSiteOwnerAccess) deploymentValues.Experiments = []string{ "*", - string(codersdk.ExperimentMultiOrganization), } proxyStatsCollectorFlushCh := make(chan chan<- struct{}, 1) From 2837ebcc165c39e2e69b60c4d099c2d908bbc728 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:05:09 -0500 Subject: [PATCH 02/10] remove multi org check from psk auth --- coderd/httpmw/provisionerdaemon.go | 19 +--- enterprise/coderd/coderd.go | 7 +- enterprise/coderd/provisionerdaemons_test.go | 93 +++++++++----------- 3 files changed, 47 insertions(+), 72 deletions(-) diff --git a/coderd/httpmw/provisionerdaemon.go b/coderd/httpmw/provisionerdaemon.go index cac4aa0cba0a9..b2b4e2c04088e 100644 --- a/coderd/httpmw/provisionerdaemon.go +++ b/coderd/httpmw/provisionerdaemon.go @@ -20,10 +20,9 @@ func ProvisionerDaemonAuthenticated(r *http.Request) bool { } type ExtractProvisionerAuthConfig struct { - DB database.Store - Optional bool - PSK string - MultiOrgEnabled bool + DB database.Store + Optional bool + PSK string } func ExtractProvisionerDaemonAuthenticated(opts ExtractProvisionerAuthConfig) func(next http.Handler) http.Handler { @@ -39,18 +38,6 @@ func ExtractProvisionerDaemonAuthenticated(opts ExtractProvisionerAuthConfig) fu httpapi.Write(ctx, w, code, response) } - if !opts.MultiOrgEnabled { - if opts.PSK == "" { - handleOptional(http.StatusUnauthorized, codersdk.Response{ - Message: "External provisioner daemons not enabled", - }) - return - } - - fallbackToPSK(ctx, opts.PSK, next, w, r, handleOptional) - return - } - psk := r.Header.Get(codersdk.ProvisionerDaemonPSK) key := r.Header.Get(codersdk.ProvisionerDaemonKey) if key == "" { diff --git a/enterprise/coderd/coderd.go b/enterprise/coderd/coderd.go index b839843700bcc..c0d34997e6722 100644 --- a/enterprise/coderd/coderd.go +++ b/enterprise/coderd/coderd.go @@ -359,10 +359,9 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { api.provisionerDaemonsEnabledMW, apiKeyMiddlewareOptional, httpmw.ExtractProvisionerDaemonAuthenticated(httpmw.ExtractProvisionerAuthConfig{ - DB: api.Database, - Optional: true, - PSK: api.ProvisionerDaemonPSK, - MultiOrgEnabled: api.AGPL.Experiments.Enabled(codersdk.ExperimentMultiOrganization), + DB: api.Database, + Optional: true, + PSK: api.ProvisionerDaemonPSK, }), // Either a user auth or provisioner auth is required // to move forward. diff --git a/enterprise/coderd/provisionerdaemons_test.go b/enterprise/coderd/provisionerdaemons_test.go index a57b0259b7888..09a4de5806e88 100644 --- a/enterprise/coderd/provisionerdaemons_test.go +++ b/enterprise/coderd/provisionerdaemons_test.go @@ -597,17 +597,16 @@ func TestProvisionerDaemonServe(t *testing.T) { require.NoError(t, err) tcs := []struct { - name string - psk string - multiOrgFeatureEnabled bool - multiOrgExperimentEnabled bool - insertParams database.InsertProvisionerKeyParams - requestProvisionerKey string - requestPSK string - errStatusCode int + name string + psk string + multiOrgFeatureEnabled bool + insertParams database.InsertProvisionerKeyParams + requestProvisionerKey string + requestPSK string + errStatusCode int }{ { - name: "MultiOrgDisabledPSKAuthOK", + name: "PSKAuthOK", psk: "provisionersftw", requestPSK: "provisionersftw", }, @@ -618,58 +617,51 @@ func TestProvisionerDaemonServe(t *testing.T) { requestPSK: "provisionersftw", }, { - name: "MultiOrgFeatureDisabledPSKAuthOK", - multiOrgExperimentEnabled: true, - psk: "provisionersftw", - requestPSK: "provisionersftw", + name: "MultiOrgFeatureDisabledPSKAuthOK", + psk: "provisionersftw", + requestPSK: "provisionersftw", }, { - name: "MultiOrgEnabledPSKAuthOK", - psk: "provisionersftw", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - requestPSK: "provisionersftw", + name: "MultiOrgEnabledPSKAuthOK", + psk: "provisionersftw", + multiOrgFeatureEnabled: true, + requestPSK: "provisionersftw", }, { - name: "MultiOrgEnabledKeyAuthOK", - psk: "provisionersftw", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - insertParams: insertParams, - requestProvisionerKey: token, + name: "MultiOrgEnabledKeyAuthOK", + psk: "provisionersftw", + multiOrgFeatureEnabled: true, + insertParams: insertParams, + requestProvisionerKey: token, }, { - name: "MultiOrgEnabledPSKAuthDisabled", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - requestPSK: "provisionersftw", - errStatusCode: http.StatusUnauthorized, + name: "MultiOrgEnabledPSKAuthDisabled", + multiOrgFeatureEnabled: true, + requestPSK: "provisionersftw", + errStatusCode: http.StatusUnauthorized, }, { - name: "InvalidKey", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - insertParams: insertParams, - requestProvisionerKey: "provisionersftw", - errStatusCode: http.StatusBadRequest, + name: "InvalidKey", + multiOrgFeatureEnabled: true, + insertParams: insertParams, + requestProvisionerKey: "provisionersftw", + errStatusCode: http.StatusBadRequest, }, { - name: "KeyAndPSK", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - psk: "provisionersftw", - insertParams: insertParams, - requestProvisionerKey: token, - requestPSK: "provisionersftw", - errStatusCode: http.StatusUnauthorized, + name: "KeyAndPSK", + multiOrgFeatureEnabled: true, + psk: "provisionersftw", + insertParams: insertParams, + requestProvisionerKey: token, + requestPSK: "provisionersftw", + errStatusCode: http.StatusUnauthorized, }, { - name: "None", - multiOrgFeatureEnabled: true, - multiOrgExperimentEnabled: true, - psk: "provisionersftw", - insertParams: insertParams, - errStatusCode: http.StatusUnauthorized, + name: "None", + multiOrgFeatureEnabled: true, + psk: "provisionersftw", + insertParams: insertParams, + errStatusCode: http.StatusUnauthorized, }, } @@ -683,9 +675,6 @@ func TestProvisionerDaemonServe(t *testing.T) { features[codersdk.FeatureMultipleOrganizations] = 1 } dv := coderdtest.DeploymentValues(t) - if tc.multiOrgExperimentEnabled { - dv.Experiments.Append(string(codersdk.ExperimentMultiOrganization)) - } client, db, user := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ LicenseOptions: &coderdenttest.LicenseOptions{ Features: features, From 245296789cafe62da851b8e81e45600889a1ba32 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:06:46 -0500 Subject: [PATCH 03/10] remove multi-org experiment from backend --- codersdk/deployment.go | 1 - 1 file changed, 1 deletion(-) diff --git a/codersdk/deployment.go b/codersdk/deployment.go index e8b90a07af98f..c643904b11d81 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -2893,7 +2893,6 @@ const ( // Add new experiments here! ExperimentExample Experiment = "example" // This isn't used for anything. ExperimentAutoFillParameters Experiment = "auto-fill-parameters" // This should not be taken out of experiments until we have redesigned the feature. - ExperimentMultiOrganization Experiment = "multi-organization" // Requires organization context for interactions, default org is assumed. ExperimentCustomRoles Experiment = "custom-roles" // Allows creating runtime custom roles. ExperimentNotifications Experiment = "notifications" // Sends notifications via SMTP and webhooks following certain events. ExperimentWorkspaceUsage Experiment = "workspace-usage" // Enables the new workspace usage tracking. From aea3688474ed69918f2fc42b54d0982d673f313c Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:26:20 -0500 Subject: [PATCH 04/10] remove db from tests that do no need it --- enterprise/cli/create_test.go | 2 - enterprise/cli/organization_test.go | 14 ---- enterprise/cli/organizationmembers_test.go | 15 ---- enterprise/cli/organizationsettings_test.go | 15 +--- enterprise/cli/provisionerdaemonstart_test.go | 28 ------- enterprise/cli/provisionerkeys_test.go | 4 - enterprise/cli/templatecreate_test.go | 2 - enterprise/cli/templatelist_test.go | 2 - enterprise/coderd/audit_test.go | 5 -- enterprise/coderd/coderd.go | 1 - enterprise/coderd/idpsync_test.go | 25 ------ enterprise/coderd/organizations_test.go | 80 ------------------- enterprise/coderd/roles_test.go | 49 ------------ enterprise/coderd/userauth_test.go | 8 +- enterprise/coderd/users_test.go | 3 - enterprise/coderd/workspacequota_test.go | 4 - enterprise/coderd/workspaces_test.go | 10 --- enterprise/members_test.go | 16 ---- site/e2e/playwright.config.ts | 2 +- 19 files changed, 4 insertions(+), 281 deletions(-) diff --git a/enterprise/cli/create_test.go b/enterprise/cli/create_test.go index 399af895d40f3..040768473c55d 100644 --- a/enterprise/cli/create_test.go +++ b/enterprise/cli/create_test.go @@ -37,10 +37,8 @@ func TestEnterpriseCreate(t *testing.T) { // setupMultipleOrganizations creates an extra organization, assigns a member // both organizations, and optionally creates templates in each organization. setupMultipleOrganizations := func(t *testing.T, args setupArgs) setupData { - dv := coderdtest.DeploymentValues(t) ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, // This only affects the first org. IncludeProvisionerDaemon: true, }, diff --git a/enterprise/cli/organization_test.go b/enterprise/cli/organization_test.go index 6ca4f439effcb..9b166a8e94568 100644 --- a/enterprise/cli/organization_test.go +++ b/enterprise/cli/organization_test.go @@ -25,12 +25,7 @@ func TestEditOrganizationRoles(t *testing.T) { t.Run("JSON", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -68,12 +63,7 @@ func TestEditOrganizationRoles(t *testing.T) { t.Run("InvalidRole", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} client, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -119,11 +109,9 @@ func TestShowOrganizations(t *testing.T) { t.Run("OnlyID", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, - DeploymentValues: dv, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -158,11 +146,9 @@ func TestShowOrganizations(t *testing.T) { t.Run("UsingFlag", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) ownerClient, first := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, - DeploymentValues: dv, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ diff --git a/enterprise/cli/organizationmembers_test.go b/enterprise/cli/organizationmembers_test.go index 94321f8ea50bd..0569929548baf 100644 --- a/enterprise/cli/organizationmembers_test.go +++ b/enterprise/cli/organizationmembers_test.go @@ -20,12 +20,8 @@ func TestRemoveOrganizationMembers(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -78,12 +74,7 @@ func TestEnterpriseListOrganizationMembers(t *testing.T) { t.Run("CustomRole", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -129,13 +120,7 @@ func TestAssignOrganizationMemberRole(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} - ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, diff --git a/enterprise/cli/organizationsettings_test.go b/enterprise/cli/organizationsettings_test.go index 2aa2b112c6764..072173e2c7c6c 100644 --- a/enterprise/cli/organizationsettings_test.go +++ b/enterprise/cli/organizationsettings_test.go @@ -10,7 +10,6 @@ import ( "github.com/stretchr/testify/require" "github.com/coder/coder/v2/cli/clitest" - "github.com/coder/coder/v2/coderd/coderdtest" "github.com/coder/coder/v2/coderd/rbac" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/enterprise/coderd/coderdenttest" @@ -24,12 +23,7 @@ func TestUpdateGroupSync(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -80,12 +74,7 @@ func TestUpdateRoleSync(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - owner, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -123,6 +112,4 @@ func TestUpdateRoleSync(t *testing.T) { inv.Stdout = buf err = inv.WithContext(ctx).Run() require.NoError(t, err) - require.JSONEq(t, string(expectedData), buf.String()) - }) -} + require.JSONE diff --git a/enterprise/cli/provisionerdaemonstart_test.go b/enterprise/cli/provisionerdaemonstart_test.go index febc25d3c4d26..3132e80a4c68e 100644 --- a/enterprise/cli/provisionerdaemonstart_test.go +++ b/enterprise/cli/provisionerdaemonstart_test.go @@ -30,11 +30,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -69,11 +65,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) { t.Run("AnotherOrgByNameWithUser", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -222,11 +214,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) { t.Run("ScopeUserAnotherOrg", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -270,7 +258,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -279,9 +266,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { codersdk.FeatureMultipleOrganizations: 1, }, }, - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, }) // nolint:gocritic // test res, err := client.CreateProvisionerKey(ctx, user.OrganizationID, codersdk.CreateProvisionerKeyRequest{ @@ -315,7 +299,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -324,9 +307,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { codersdk.FeatureMultipleOrganizations: 1, }, }, - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, }) // nolint:gocritic // test res, err := client.CreateProvisionerKey(ctx, user.OrganizationID, codersdk.CreateProvisionerKeyRequest{ @@ -345,7 +325,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -354,9 +333,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { codersdk.FeatureMultipleOrganizations: 1, }, }, - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, }) // nolint:gocritic // test res, err := client.CreateProvisionerKey(ctx, user.OrganizationID, codersdk.CreateProvisionerKeyRequest{ @@ -375,7 +351,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ ProvisionerDaemonPSK: "provisionersftw", LicenseOptions: &coderdenttest.LicenseOptions{ @@ -384,9 +359,6 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) { codersdk.FeatureMultipleOrganizations: 1, }, }, - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, }) anotherOrg := coderdenttest.CreateOrganization(t, client, coderdenttest.CreateOrganizationOptions{}) // nolint:gocritic // test diff --git a/enterprise/cli/provisionerkeys_test.go b/enterprise/cli/provisionerkeys_test.go index 11b1d18fadfc3..051bb0b1790b8 100644 --- a/enterprise/cli/provisionerkeys_test.go +++ b/enterprise/cli/provisionerkeys_test.go @@ -23,11 +23,7 @@ func TestProvisionerKeys(t *testing.T) { t.Run("CRUD", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, diff --git a/enterprise/cli/templatecreate_test.go b/enterprise/cli/templatecreate_test.go index ac38a24c75686..28bbb0ea83038 100644 --- a/enterprise/cli/templatecreate_test.go +++ b/enterprise/cli/templatecreate_test.go @@ -139,10 +139,8 @@ func TestTemplateCreate(t *testing.T) { t.Run("SecondOrganization", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, // This only affects the first org. IncludeProvisionerDaemon: false, }, diff --git a/enterprise/cli/templatelist_test.go b/enterprise/cli/templatelist_test.go index 7689727e0de9f..55a09cbe1f87e 100644 --- a/enterprise/cli/templatelist_test.go +++ b/enterprise/cli/templatelist_test.go @@ -23,11 +23,9 @@ func TestEnterpriseListTemplates(t *testing.T) { t.Run("MultiOrg", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, - DeploymentValues: dv, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ diff --git a/enterprise/coderd/audit_test.go b/enterprise/coderd/audit_test.go index c7468b1cf69ab..d5616ea3888b9 100644 --- a/enterprise/coderd/audit_test.go +++ b/enterprise/coderd/audit_test.go @@ -7,7 +7,6 @@ import ( "github.com/google/uuid" "github.com/stretchr/testify/require" - "github.com/coder/coder/v2/coderd/coderdtest" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/enterprise/coderd/coderdenttest" "github.com/coder/coder/v2/enterprise/coderd/license" @@ -20,11 +19,7 @@ func TestEnterpriseAuditLogs(t *testing.T) { t.Parallel() ctx := context.Background() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, diff --git a/enterprise/coderd/coderd.go b/enterprise/coderd/coderd.go index c0d34997e6722..5127e6ec0887f 100644 --- a/enterprise/coderd/coderd.go +++ b/enterprise/coderd/coderd.go @@ -279,7 +279,6 @@ func New(ctx context.Context, options *Options) (_ *API, err error) { r.Use( apiKeyMiddleware, api.RequireFeatureMW(codersdk.FeatureCustomRoles), - httpmw.RequireExperiment(api.AGPL.Experiments, codersdk.ExperimentCustomRoles), httpmw.ExtractOrganizationParam(api.Database), ) r.Post("/organizations/{organization}/members/roles", api.postOrgRoles) diff --git a/enterprise/coderd/idpsync_test.go b/enterprise/coderd/idpsync_test.go index 5b04f8b9e5d4b..41a8db2dd0792 100644 --- a/enterprise/coderd/idpsync_test.go +++ b/enterprise/coderd/idpsync_test.go @@ -25,12 +25,7 @@ func TestGetGroupSyncConfig(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - owner, db, user := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -93,11 +88,7 @@ func TestPostGroupSyncConfig(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -124,11 +115,7 @@ func TestPostGroupSyncConfig(t *testing.T) { t.Run("NotAuthorized", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -159,11 +146,7 @@ func TestGetRoleSyncConfig(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, _, _, user := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -197,11 +180,7 @@ func TestPostRoleSyncConfig(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -228,11 +207,7 @@ func TestPostRoleSyncConfig(t *testing.T) { t.Run("NotAuthorized", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, diff --git a/enterprise/coderd/organizations_test.go b/enterprise/coderd/organizations_test.go index 2ac8d5be2a4ee..e7b01b0163c00 100644 --- a/enterprise/coderd/organizations_test.go +++ b/enterprise/coderd/organizations_test.go @@ -18,11 +18,7 @@ import ( func TestMultiOrgFetch(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -59,11 +55,7 @@ func TestOrganizationsByUser(t *testing.T) { t.Run("IsDefault", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -91,11 +83,7 @@ func TestOrganizationsByUser(t *testing.T) { t.Run("NoMember", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -125,11 +113,7 @@ func TestAddOrganizationMembers(t *testing.T) { t.Run("OK", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -170,11 +154,7 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Parallel() t.Run("Default", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -196,11 +176,7 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Run("DeleteById", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -218,11 +194,7 @@ func TestDeleteOrganizationsByUser(t *testing.T) { t.Run("DeleteByName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -243,11 +215,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Parallel() t.Run("Conflict", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -273,11 +241,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("ReservedName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -299,11 +263,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("InvalidName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -325,11 +285,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateById", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -350,11 +306,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateByName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -379,11 +331,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateDisplayName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -409,11 +357,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateDescription", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -442,11 +386,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("UpdateIcon", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -476,11 +416,7 @@ func TestPatchOrganizationsByUser(t *testing.T) { t.Run("RevokedLicense", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -518,11 +454,7 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Parallel() t.Run("Conflict", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -547,11 +479,7 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("InvalidName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -572,11 +500,7 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("Create", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -601,11 +525,7 @@ func TestPostOrganizationsByUser(t *testing.T) { t.Run("CreateWithoutExplicitDisplayName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, diff --git a/enterprise/coderd/roles_test.go b/enterprise/coderd/roles_test.go index 039e4ca165de9..8bbf9218058e7 100644 --- a/enterprise/coderd/roles_test.go +++ b/enterprise/coderd/roles_test.go @@ -41,12 +41,7 @@ func TestCustomOrganizationRole(t *testing.T) { // Create, assign, and use a custom role t.Run("Success", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -95,12 +90,7 @@ func TestCustomOrganizationRole(t *testing.T) { // use the existing roles. t.Run("RevokedLicense", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -137,12 +127,7 @@ func TestCustomOrganizationRole(t *testing.T) { // Role patches are complete, as in the request overrides the existing role. t.Run("RoleOverrides", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -187,12 +172,7 @@ func TestCustomOrganizationRole(t *testing.T) { t.Run("InvalidName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -216,12 +196,7 @@ func TestCustomOrganizationRole(t *testing.T) { t.Run("ReservedName", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -246,12 +221,7 @@ func TestCustomOrganizationRole(t *testing.T) { // Attempt to add site & user permissions, which is not allowed t.Run("ExcessPermissions", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -288,12 +258,7 @@ func TestCustomOrganizationRole(t *testing.T) { t.Run("NotFound", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -313,12 +278,7 @@ func TestCustomOrganizationRole(t *testing.T) { t.Run("Delete", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -373,12 +333,7 @@ func TestCustomOrganizationRole(t *testing.T) { // Verify deleting a custom role cascades to all members t.Run("DeleteRoleCascadeMembers", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureCustomRoles: 1, @@ -443,11 +398,7 @@ func TestCustomOrganizationRole(t *testing.T) { func TestListRoles(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, owner := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureExternalProvisionerDaemons: 1, diff --git a/enterprise/coderd/userauth_test.go b/enterprise/coderd/userauth_test.go index fe979020a52e6..538904cd5b428 100644 --- a/enterprise/coderd/userauth_test.go +++ b/enterprise/coderd/userauth_test.go @@ -939,7 +939,6 @@ func TestEnterpriseUserLogin(t *testing.T) { t.Run("CustomRole", func(t *testing.T) { t.Parallel() dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ DeploymentValues: dv, @@ -985,13 +984,10 @@ func TestEnterpriseUserLogin(t *testing.T) { // database directly to corrupt it. rawDB, pubsub := dbtestutil.NewDB(t) - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, - Database: rawDB, - Pubsub: pubsub, + Database: rawDB, + Pubsub: pubsub, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ diff --git a/enterprise/coderd/users_test.go b/enterprise/coderd/users_test.go index 8d46ab6396b79..5aa1ab1e8215c 100644 --- a/enterprise/coderd/users_test.go +++ b/enterprise/coderd/users_test.go @@ -249,12 +249,9 @@ func TestCreateFirstUser_Entitlements_Trial(t *testing.T) { // a custom role and assign it to an organization user. func TestAssignCustomOrgRoles(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)} ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, IncludeProvisionerDaemon: true, }, LicenseOptions: &coderdenttest.LicenseOptions{ diff --git a/enterprise/coderd/workspacequota_test.go b/enterprise/coderd/workspacequota_test.go index 0432ff8c98b15..ac4a77eaec8b4 100644 --- a/enterprise/coderd/workspacequota_test.go +++ b/enterprise/coderd/workspacequota_test.go @@ -259,11 +259,7 @@ func TestWorkspaceQuota(t *testing.T) { t.Run("AllowanceEveryone", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureTemplateRBAC: 1, diff --git a/enterprise/coderd/workspaces_test.go b/enterprise/coderd/workspaces_test.go index e03544db35db0..dc685c46cec41 100644 --- a/enterprise/coderd/workspaces_test.go +++ b/enterprise/coderd/workspaces_test.go @@ -50,11 +50,7 @@ func TestCreateWorkspace(t *testing.T) { t.Run("NoTemplateAccess", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureTemplateRBAC: 1, @@ -194,11 +190,7 @@ func TestCreateUserWorkspace(t *testing.T) { t.Run("NoTemplateAccess", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureTemplateRBAC: 1, @@ -1482,11 +1474,9 @@ func TestResolveAutostart(t *testing.T) { func TestAdminViewAllWorkspaces(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, - DeploymentValues: dv, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ diff --git a/enterprise/members_test.go b/enterprise/members_test.go index 9120a025287a7..0180f323da357 100644 --- a/enterprise/members_test.go +++ b/enterprise/members_test.go @@ -20,11 +20,7 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("Remove", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -103,11 +99,7 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("PostUser", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -143,11 +135,7 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("PostUserNotExists", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, _ := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, @@ -171,11 +159,7 @@ func TestEnterpriseMembers(t *testing.T) { t.Run("ListNotInOrg", func(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) owner, first := coderdenttest.New(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: dv, - }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ codersdk.FeatureMultipleOrganizations: 1, diff --git a/site/e2e/playwright.config.ts b/site/e2e/playwright.config.ts index 6d309eab49c10..f85d2209f99e2 100644 --- a/site/e2e/playwright.config.ts +++ b/site/e2e/playwright.config.ts @@ -148,7 +148,7 @@ export default defineConfig({ gitAuth.validatePath, ), CODER_PPROF_ADDRESS: `127.0.0.1:${coderdPProfPort}`, - CODER_EXPERIMENTS: `multi-organization,${e2eFakeExperiment1},${e2eFakeExperiment2}`, + CODER_EXPERIMENTS: `${e2eFakeExperiment1},${e2eFakeExperiment2}`, // Tests for Deployment / User Authentication / OIDC CODER_OIDC_ISSUER_URL: "https://accounts.google.com", From 311b5cb0295a3a3b0802bd9e641b5c6ff1f78876 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:27:15 -0500 Subject: [PATCH 05/10] remove custom roles --- codersdk/deployment.go | 1 - 1 file changed, 1 deletion(-) diff --git a/codersdk/deployment.go b/codersdk/deployment.go index c643904b11d81..da4f3daabea06 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -2893,7 +2893,6 @@ const ( // Add new experiments here! ExperimentExample Experiment = "example" // This isn't used for anything. ExperimentAutoFillParameters Experiment = "auto-fill-parameters" // This should not be taken out of experiments until we have redesigned the feature. - ExperimentCustomRoles Experiment = "custom-roles" // Allows creating runtime custom roles. ExperimentNotifications Experiment = "notifications" // Sends notifications via SMTP and webhooks following certain events. ExperimentWorkspaceUsage Experiment = "workspace-usage" // Enables the new workspace usage tracking. ) From d02ef99184434878ea72923cc2a96c00d3ef2c4c Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:30:36 -0500 Subject: [PATCH 06/10] make gen --- coderd/apidoc/docs.go | 6 ------ coderd/apidoc/swagger.json | 6 ------ docs/reference/api/schemas.md | 2 -- site/src/api/typesGenerated.ts | 4 ++-- 4 files changed, 2 insertions(+), 16 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index f850540fec2e9..de2bb1e6b91a9 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -10308,24 +10308,18 @@ const docTemplate = `{ "enum": [ "example", "auto-fill-parameters", - "multi-organization", - "custom-roles", "notifications", "workspace-usage" ], "x-enum-comments": { "ExperimentAutoFillParameters": "This should not be taken out of experiments until we have redesigned the feature.", - "ExperimentCustomRoles": "Allows creating runtime custom roles.", "ExperimentExample": "This isn't used for anything.", - "ExperimentMultiOrganization": "Requires organization context for interactions, default org is assumed.", "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." }, "x-enum-varnames": [ "ExperimentExample", "ExperimentAutoFillParameters", - "ExperimentMultiOrganization", - "ExperimentCustomRoles", "ExperimentNotifications", "ExperimentWorkspaceUsage" ] diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index e9b5f028c6965..ed640dd50262f 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -9224,24 +9224,18 @@ "enum": [ "example", "auto-fill-parameters", - "multi-organization", - "custom-roles", "notifications", "workspace-usage" ], "x-enum-comments": { "ExperimentAutoFillParameters": "This should not be taken out of experiments until we have redesigned the feature.", - "ExperimentCustomRoles": "Allows creating runtime custom roles.", "ExperimentExample": "This isn't used for anything.", - "ExperimentMultiOrganization": "Requires organization context for interactions, default org is assumed.", "ExperimentNotifications": "Sends notifications via SMTP and webhooks following certain events.", "ExperimentWorkspaceUsage": "Enables the new workspace usage tracking." }, "x-enum-varnames": [ "ExperimentExample", "ExperimentAutoFillParameters", - "ExperimentMultiOrganization", - "ExperimentCustomRoles", "ExperimentNotifications", "ExperimentWorkspaceUsage" ] diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md index df3c402a92fa6..00004bb83e74b 100644 --- a/docs/reference/api/schemas.md +++ b/docs/reference/api/schemas.md @@ -2558,8 +2558,6 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o | ---------------------- | | `example` | | `auto-fill-parameters` | -| `multi-organization` | -| `custom-roles` | | `notifications` | | `workspace-usage` | diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 1a988dc23c5f6..ebc296f57db1b 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -2090,8 +2090,8 @@ export type Entitlement = "entitled" | "grace_period" | "not_entitled" export const Entitlements: Entitlement[] = ["entitled", "grace_period", "not_entitled"] // From codersdk/deployment.go -export type Experiment = "auto-fill-parameters" | "custom-roles" | "example" | "multi-organization" | "notifications" | "workspace-usage" -export const Experiments: Experiment[] = ["auto-fill-parameters", "custom-roles", "example", "multi-organization", "notifications", "workspace-usage"] +export type Experiment = "auto-fill-parameters" | "example" | "notifications" | "workspace-usage" +export const Experiments: Experiment[] = ["auto-fill-parameters", "example", "notifications", "workspace-usage"] // From codersdk/deployment.go export type FeatureName = "access_control" | "advanced_template_scheduling" | "appearance" | "audit_log" | "browser_only" | "control_shared_ports" | "custom_roles" | "external_provisioner_daemons" | "external_token_encryption" | "high_availability" | "multiple_external_auth" | "multiple_organizations" | "scim" | "template_rbac" | "user_limit" | "user_role_management" | "workspace_batch_actions" | "workspace_proxy" From 9b5304428778e8f4bdcdb003902db46284e0c531 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Sep 2024 12:34:00 -0500 Subject: [PATCH 07/10] missed one --- enterprise/cli/organizationsettings_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/enterprise/cli/organizationsettings_test.go b/enterprise/cli/organizationsettings_test.go index 072173e2c7c6c..ad80c57cb3671 100644 --- a/enterprise/cli/organizationsettings_test.go +++ b/enterprise/cli/organizationsettings_test.go @@ -112,4 +112,6 @@ func TestUpdateRoleSync(t *testing.T) { inv.Stdout = buf err = inv.WithContext(ctx).Run() require.NoError(t, err) - require.JSONE + require.JSONEq(t, string(expectedData), buf.String()) + }) +} From 917030b8854747a5a66192370817366697a60991 Mon Sep 17 00:00:00 2001 From: Kayla Washburn-Love Date: Fri, 27 Sep 2024 12:00:46 -0600 Subject: [PATCH 08/10] remove custom-roles check from SidebarView --- .../pages/ManagementSettingsPage/SidebarView.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/site/src/pages/ManagementSettingsPage/SidebarView.tsx b/site/src/pages/ManagementSettingsPage/SidebarView.tsx index eeae70bec80dd..91390491d6c4e 100644 --- a/site/src/pages/ManagementSettingsPage/SidebarView.tsx +++ b/site/src/pages/ManagementSettingsPage/SidebarView.tsx @@ -282,14 +282,13 @@ const OrganizationSettingsNavigation: FC< Groups )} - {organization.permissions.assignOrgRole && - experiments.includes("custom-roles") && ( - - Roles - - )} + {organization.permissions.assignOrgRole && ( + + Roles + + )} {organization.permissions.viewProvisioners && ( Date: Fri, 27 Sep 2024 18:04:08 +0000 Subject: [PATCH 09/10] fmt --- site/src/pages/ManagementSettingsPage/SidebarView.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/site/src/pages/ManagementSettingsPage/SidebarView.tsx b/site/src/pages/ManagementSettingsPage/SidebarView.tsx index 91390491d6c4e..f76b4da5b339f 100644 --- a/site/src/pages/ManagementSettingsPage/SidebarView.tsx +++ b/site/src/pages/ManagementSettingsPage/SidebarView.tsx @@ -283,9 +283,7 @@ const OrganizationSettingsNavigation: FC< )} {organization.permissions.assignOrgRole && ( - + Roles )} From 72021d11c5295963596d062451f6ec9b0ecc11e8 Mon Sep 17 00:00:00 2001 From: McKayla Washburn Date: Fri, 27 Sep 2024 18:09:31 +0000 Subject: [PATCH 10/10] get out of here --- site/src/modules/dashboard/DashboardProvider.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/src/modules/dashboard/DashboardProvider.tsx b/site/src/modules/dashboard/DashboardProvider.tsx index 7744f16e5fdeb..d8fa339deccbb 100644 --- a/site/src/modules/dashboard/DashboardProvider.tsx +++ b/site/src/modules/dashboard/DashboardProvider.tsx @@ -55,9 +55,9 @@ export const DashboardProvider: FC = ({ children }) => { } const hasMultipleOrganizations = organizationsQuery.data.length > 1; - const organizationsEnabled = - experimentsQuery.data.includes("multi-organization") && - selectFeatureVisibility(entitlementsQuery.data).multiple_organizations; + const organizationsEnabled = selectFeatureVisibility( + entitlementsQuery.data, + ).multiple_organizations; return (