diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 247000282b388..04aed7c9be52a 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -9281,7 +9281,9 @@ const docTemplate = `{ "api_key", "group", "license", - "convert_login" + "convert_login", + "workspace_proxy", + "organization" ], "x-enum-varnames": [ "ResourceTypeTemplate", @@ -9293,7 +9295,9 @@ const docTemplate = `{ "ResourceTypeAPIKey", "ResourceTypeGroup", "ResourceTypeLicense", - "ResourceTypeConvertLogin" + "ResourceTypeConvertLogin", + "ResourceTypeWorkspaceProxy", + "ResourceTypeOrganization" ] }, "codersdk.Response": { diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index b21fd94032a90..ee710a7f8e51f 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -8354,7 +8354,9 @@ "api_key", "group", "license", - "convert_login" + "convert_login", + "workspace_proxy", + "organization" ], "x-enum-varnames": [ "ResourceTypeTemplate", @@ -8366,7 +8368,9 @@ "ResourceTypeAPIKey", "ResourceTypeGroup", "ResourceTypeLicense", - "ResourceTypeConvertLogin" + "ResourceTypeConvertLogin", + "ResourceTypeWorkspaceProxy", + "ResourceTypeOrganization" ] }, "codersdk.Response": { diff --git a/coderd/database/models_test.go b/coderd/database/models_test.go index 78eaab40fffa5..a3c37683ac2c8 100644 --- a/coderd/database/models_test.go +++ b/coderd/database/models_test.go @@ -5,10 +5,24 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/coder/coder/v2/coderd/database" + "github.com/coder/coder/v2/codersdk" ) +// TestAuditDBEnumsCovered ensures that all enums in the database are covered by the codersdk enums +// for audit log strings. +func TestAuditDBEnumsCovered(t *testing.T) { + t.Parallel() + + dbTypes := database.AllResourceTypeValues() + for _, ty := range dbTypes { + str := codersdk.ResourceType(ty).FriendlyString() + require.NotEqualf(t, "unknown", str, "ResourceType %q not covered by codersdk.ResourceType", ty) + } +} + // TestViewSubsetTemplate ensures TemplateTable is a subset of Template func TestViewSubsetTemplate(t *testing.T) { t.Parallel() diff --git a/codersdk/audit.go b/codersdk/audit.go index 1ff2fb8ac97a1..5ceae81a21c42 100644 --- a/codersdk/audit.go +++ b/codersdk/audit.go @@ -24,6 +24,8 @@ const ( ResourceTypeGroup ResourceType = "group" ResourceTypeLicense ResourceType = "license" ResourceTypeConvertLogin ResourceType = "convert_login" + ResourceTypeWorkspaceProxy ResourceType = "workspace_proxy" + ResourceTypeOrganization ResourceType = "organization" ) func (r ResourceType) FriendlyString() string { @@ -50,6 +52,10 @@ func (r ResourceType) FriendlyString() string { return "license" case ResourceTypeConvertLogin: return "login type conversion" + case ResourceTypeWorkspaceProxy: + return "workspace proxy" + case ResourceTypeOrganization: + return "organization" default: return "unknown" } diff --git a/docs/api/schemas.md b/docs/api/schemas.md index dca1dd3d6c1be..a615825d266d3 100644 --- a/docs/api/schemas.md +++ b/docs/api/schemas.md @@ -3987,6 +3987,8 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in | `group` | | `license` | | `convert_login` | +| `workspace_proxy` | +| `organization` | ## codersdk.Response diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 3960997706c6a..e0592b966bca4 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1785,22 +1785,26 @@ export type ResourceType = | "git_ssh_key" | "group" | "license" + | "organization" | "template" | "template_version" | "user" | "workspace" | "workspace_build" + | "workspace_proxy" export const ResourceTypes: ResourceType[] = [ "api_key", "convert_login", "git_ssh_key", "group", "license", + "organization", "template", "template_version", "user", "workspace", "workspace_build", + "workspace_proxy", ] // From codersdk/serversentevents.go