diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 91bae7945e422..4483ba6b802d7 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -7397,10 +7397,12 @@ const docTemplate = `{ "codersdk.Experiment": { "type": "string", "enum": [ - "moons" + "moons", + "workspace_actions" ], "x-enum-varnames": [ - "ExperimentMoons" + "ExperimentMoons", + "ExperimentWorkspaceActions" ] }, "codersdk.Feature": { diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 7e279b3643e56..1fb14f664d45e 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -6613,8 +6613,8 @@ }, "codersdk.Experiment": { "type": "string", - "enum": ["moons"], - "x-enum-varnames": ["ExperimentMoons"] + "enum": ["moons", "workspace_actions"], + "x-enum-varnames": ["ExperimentMoons", "ExperimentWorkspaceActions"] }, "codersdk.Feature": { "type": "object", diff --git a/codersdk/deployment.go b/codersdk/deployment.go index 61ab6658f3732..aaee164d5a2b3 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -46,6 +46,7 @@ const ( FeatureAppearance FeatureName = "appearance" FeatureAdvancedTemplateScheduling FeatureName = "advanced_template_scheduling" FeatureWorkspaceProxy FeatureName = "workspace_proxy" + FeatureWorkspaceActions FeatureName = "workspace_actions" ) // FeatureNames must be kept in-sync with the Feature enum above. @@ -61,6 +62,7 @@ var FeatureNames = []FeatureName{ FeatureAppearance, FeatureAdvancedTemplateScheduling, FeatureWorkspaceProxy, + FeatureWorkspaceActions, } // Humanize returns the feature name in a human-readable format. @@ -1668,6 +1670,9 @@ const ( // feature is not yet complete in functionality. ExperimentMoons Experiment = "moons" + // https://github.com/coder/coder/milestone/19 + ExperimentWorkspaceActions Experiment = "workspace_actions" + // Add new experiments here! // ExperimentExample Experiment = "example" ) diff --git a/docs/api/schemas.md b/docs/api/schemas.md index ee8e52e07a4a4..6c6dfcd692ccd 100644 --- a/docs/api/schemas.md +++ b/docs/api/schemas.md @@ -2502,9 +2502,10 @@ CreateParameterRequest is a structure used to create a new parameter value for a #### Enumerated Values -| Value | -| ------- | -| `moons` | +| Value | +| ------------------- | +| `moons` | +| `workspace_actions` | ## codersdk.Feature diff --git a/enterprise/coderd/coderd.go b/enterprise/coderd/coderd.go index 990faae898cb0..6fe25261ab9ad 100644 --- a/enterprise/coderd/coderd.go +++ b/enterprise/coderd/coderd.go @@ -322,6 +322,7 @@ func (api *API) updateEntitlements(ctx context.Context) error { codersdk.FeatureExternalProvisionerDaemons: true, codersdk.FeatureAdvancedTemplateScheduling: true, codersdk.FeatureWorkspaceProxy: true, + codersdk.FeatureWorkspaceActions: true, }) if err != nil { return err diff --git a/enterprise/coderd/coderd_test.go b/enterprise/coderd/coderd_test.go index 27aa2cb4c33eb..26526721f1f8c 100644 --- a/enterprise/coderd/coderd_test.go +++ b/enterprise/coderd/coderd_test.go @@ -54,6 +54,7 @@ func TestEntitlements(t *testing.T) { codersdk.FeatureExternalProvisionerDaemons: 1, codersdk.FeatureAdvancedTemplateScheduling: 1, codersdk.FeatureWorkspaceProxy: 1, + codersdk.FeatureWorkspaceActions: 1, }, GraceAt: time.Now().Add(59 * 24 * time.Hour), }) diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 6c3e7f0cea6bf..aa72e51f3f687 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1361,8 +1361,8 @@ export const Entitlements: Entitlement[] = [ ] // From codersdk/deployment.go -export type Experiment = "moons" -export const Experiments: Experiment[] = ["moons"] +export type Experiment = "moons" | "workspace_actions" +export const Experiments: Experiment[] = ["moons", "workspace_actions"] // From codersdk/deployment.go export type FeatureName = @@ -1376,6 +1376,7 @@ export type FeatureName = | "scim" | "template_rbac" | "user_limit" + | "workspace_actions" | "workspace_proxy" export const FeatureNames: FeatureName[] = [ "advanced_template_scheduling", @@ -1388,6 +1389,7 @@ export const FeatureNames: FeatureName[] = [ "scim", "template_rbac", "user_limit", + "workspace_actions", "workspace_proxy", ]