From 96f0c3d21d1eaa4f7f01d00f2c2114fb8e6bcb02 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 18 Aug 2023 12:26:17 -0500 Subject: [PATCH 1/6] fix: add workspace_proxy type to auditlog friendly strings --- codersdk/audit.go | 3 +++ site/src/api/typesGenerated.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/codersdk/audit.go b/codersdk/audit.go index 1ff2fb8ac97a1..21b06c6ed11cf 100644 --- a/codersdk/audit.go +++ b/codersdk/audit.go @@ -24,6 +24,7 @@ const ( ResourceTypeGroup ResourceType = "group" ResourceTypeLicense ResourceType = "license" ResourceTypeConvertLogin ResourceType = "convert_login" + ResourceTypeWorkspaceProxy ResourceType = "workspace_proxy" ) func (r ResourceType) FriendlyString() string { @@ -50,6 +51,8 @@ func (r ResourceType) FriendlyString() string { return "license" case ResourceTypeConvertLogin: return "login type conversion" + case ResourceTypeWorkspaceProxy: + return "workspace proxy" default: return "unknown" } diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index ccb37bc923004..185d5282470f6 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1790,6 +1790,7 @@ export type ResourceType = | "user" | "workspace" | "workspace_build" + | "workspace_proxy" export const ResourceTypes: ResourceType[] = [ "api_key", "convert_login", @@ -1801,6 +1802,7 @@ export const ResourceTypes: ResourceType[] = [ "user", "workspace", "workspace_build", + "workspace_proxy", ] // From codersdk/serversentevents.go From 66172fa41e6aa8c987f8b85a943762cd0fcf391a Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 18 Aug 2023 12:59:47 -0500 Subject: [PATCH 2/6] add unit test and organization type --- codersdk/audit.go | 3 +++ codersdk/audit_test.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 codersdk/audit_test.go diff --git a/codersdk/audit.go b/codersdk/audit.go index 21b06c6ed11cf..5ceae81a21c42 100644 --- a/codersdk/audit.go +++ b/codersdk/audit.go @@ -25,6 +25,7 @@ const ( ResourceTypeLicense ResourceType = "license" ResourceTypeConvertLogin ResourceType = "convert_login" ResourceTypeWorkspaceProxy ResourceType = "workspace_proxy" + ResourceTypeOrganization ResourceType = "organization" ) func (r ResourceType) FriendlyString() string { @@ -53,6 +54,8 @@ func (r ResourceType) FriendlyString() string { return "login type conversion" case ResourceTypeWorkspaceProxy: return "workspace proxy" + case ResourceTypeOrganization: + return "organization" default: return "unknown" } diff --git a/codersdk/audit_test.go b/codersdk/audit_test.go new file mode 100644 index 0000000000000..19ea7ebb92097 --- /dev/null +++ b/codersdk/audit_test.go @@ -0,0 +1,18 @@ +package codersdk_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/coder/coder/coderd/database" + "github.com/coder/coder/codersdk" +) + +func TestAuditDBEnumsCovered(t *testing.T) { + 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) + } +} From 9a02f9d325899c567486f668f39442902022c6e2 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 18 Aug 2023 13:05:20 -0500 Subject: [PATCH 3/6] Make gen --- coderd/apidoc/docs.go | 8 ++++++-- coderd/apidoc/swagger.json | 8 ++++++-- docs/api/schemas.md | 2 ++ site/src/api/typesGenerated.ts | 2 ++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index ea0979333b451..4abcfa2aadf84 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 375be4c013fff..deb63509fab6d 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/docs/api/schemas.md b/docs/api/schemas.md index 8d73e64e84aa6..0be2077c61abb 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 185d5282470f6..ca5c9b18b9d5f 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1785,6 +1785,7 @@ export type ResourceType = | "git_ssh_key" | "group" | "license" + | "organization" | "template" | "template_version" | "user" @@ -1797,6 +1798,7 @@ export const ResourceTypes: ResourceType[] = [ "git_ssh_key", "group", "license", + "organization", "template", "template_version", "user", From f36bc3b901190b224a1227c1d4aaa6628c66a667 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Mon, 21 Aug 2023 09:33:52 -0500 Subject: [PATCH 4/6] Linting --- codersdk/audit_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codersdk/audit_test.go b/codersdk/audit_test.go index 19ea7ebb92097..a0774bd8e72b2 100644 --- a/codersdk/audit_test.go +++ b/codersdk/audit_test.go @@ -10,6 +10,9 @@ import ( ) func TestAuditDBEnumsCovered(t *testing.T) { + t.Parallel() + + //nolint: gocritic dbTypes := database.AllResourceTypeValues() for _, ty := range dbTypes { str := codersdk.ResourceType(ty).FriendlyString() From 112b5f9f37d7810c9e2749fe31eb14022d74d0da Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Mon, 21 Aug 2023 10:06:56 -0500 Subject: [PATCH 5/6] Move test --- coderd/database/models_test.go | 15 +++++++++++++++ codersdk/audit_test.go | 21 --------------------- 2 files changed, 15 insertions(+), 21 deletions(-) delete mode 100644 codersdk/audit_test.go diff --git a/coderd/database/models_test.go b/coderd/database/models_test.go index 1ebb40ae2ff26..2526084f72f68 100644 --- a/coderd/database/models_test.go +++ b/coderd/database/models_test.go @@ -4,11 +4,26 @@ import ( "reflect" "testing" + "github.com/coder/coder/codersdk" + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/assert" "github.com/coder/coder/coderd/database" ) +// 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_test.go b/codersdk/audit_test.go deleted file mode 100644 index a0774bd8e72b2..0000000000000 --- a/codersdk/audit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package codersdk_test - -import ( - "testing" - - "github.com/stretchr/testify/require" - - "github.com/coder/coder/coderd/database" - "github.com/coder/coder/codersdk" -) - -func TestAuditDBEnumsCovered(t *testing.T) { - t.Parallel() - - //nolint: gocritic - 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) - } -} From 82c7f68ef0926c189eaf6b0055b8615a3882f38a Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Mon, 21 Aug 2023 10:30:12 -0500 Subject: [PATCH 6/6] import order --- coderd/database/models_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/coderd/database/models_test.go b/coderd/database/models_test.go index 2526084f72f68..d9a4a7081f9fb 100644 --- a/coderd/database/models_test.go +++ b/coderd/database/models_test.go @@ -4,12 +4,11 @@ import ( "reflect" "testing" - "github.com/coder/coder/codersdk" - "github.com/stretchr/testify/require" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/coder/coder/coderd/database" + "github.com/coder/coder/codersdk" ) // TestAuditDBEnumsCovered ensures that all enums in the database are covered by the codersdk enums