From 2bc030eeec5f9d78aa6dc33ec9a98a0058dfc2ef Mon Sep 17 00:00:00 2001 From: Kira Pilot Date: Fri, 20 Jan 2023 15:25:04 +0000 Subject: [PATCH 1/3] fix: ufilter workspace_build resource on start/stop action --- coderd/audit.go | 4 ++++ coderd/audit_test.go | 43 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/coderd/audit.go b/coderd/audit.go index 185776c2ba1f3..79aade193ec66 100644 --- a/coderd/audit.go +++ b/coderd/audit.go @@ -478,6 +478,10 @@ func actionFromString(actionString string) string { return actionString case codersdk.AuditActionDelete: return actionString + case codersdk.AuditActionStart: + return actionString + case codersdk.AuditActionStop: + return actionString default: } return "" diff --git a/coderd/audit_test.go b/coderd/audit_test.go index 5495235d954e5..8fcc479c23de0 100644 --- a/coderd/audit_test.go +++ b/coderd/audit_test.go @@ -46,12 +46,15 @@ func TestAuditLogsFilter(t *testing.T) { var ( ctx = context.Background() - client = coderdtest.New(t, nil) + client = coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) user = coderdtest.CreateFirstUser(t, client) version = coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) template = coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) ) + coderdtest.AwaitTemplateVersionJob(t, client, version.ID) + workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID) + // Create two logs with "Create" err := client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{ Action: codersdk.AuditActionCreate, @@ -77,6 +80,24 @@ func TestAuditLogsFilter(t *testing.T) { }) require.NoError(t, err) + // Create one log with "Start" + err = client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{ + Action: codersdk.AuditActionStart, + ResourceType: codersdk.ResourceTypeWorkspaceBuild, + ResourceID: workspace.LatestBuild.ID, + Time: time.Date(2022, 8, 15, 14, 30, 45, 100, time.UTC), // 2022-8-15 14:30:45 + }) + require.NoError(t, err) + + // Create one log with "Stop" + err = client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{ + Action: codersdk.AuditActionStop, + ResourceType: codersdk.ResourceTypeWorkspaceBuild, + ResourceID: workspace.LatestBuild.ID, + Time: time.Date(2022, 8, 15, 14, 30, 45, 100, time.UTC), // 2022-8-15 14:30:45 + }) + require.NoError(t, err) + // Test cases testCases := []struct { Name string @@ -106,12 +127,12 @@ func TestAuditLogsFilter(t *testing.T) { { Name: "FilterByEmail", SearchQuery: "email:" + coderdtest.FirstUserParams.Email, - ExpectedResult: 3, + ExpectedResult: 5, }, { Name: "FilterByUsername", SearchQuery: "username:" + coderdtest.FirstUserParams.Username, - ExpectedResult: 3, + ExpectedResult: 5, }, { Name: "FilterByResourceID", @@ -121,17 +142,17 @@ func TestAuditLogsFilter(t *testing.T) { { Name: "FilterInvalidSingleValue", SearchQuery: "invalid", - ExpectedResult: 3, + ExpectedResult: 5, }, { Name: "FilterWithInvalidResourceType", SearchQuery: "resource_type:invalid", - ExpectedResult: 3, + ExpectedResult: 5, }, { Name: "FilterWithInvalidAction", SearchQuery: "action:invalid", - ExpectedResult: 3, + ExpectedResult: 5, }, { Name: "FilterOnCreateSingleDay", @@ -148,6 +169,16 @@ func TestAuditLogsFilter(t *testing.T) { SearchQuery: "action:create date_to:2022-08-15", ExpectedResult: 1, }, + { + Name: "FilterOnWorkspaceBuildStart", + SearchQuery: "resource_type:workspace_build action:start", + ExpectedResult: 1, + }, + { + Name: "FilterOnWorkspaceBuildStop", + SearchQuery: "resource_type:workspace_build action:stop", + ExpectedResult: 1, + }, } for _, testCase := range testCases { From 20b49f6de0feb075dcc1da39a47080b614442f92 Mon Sep 17 00:00:00 2001 From: Kira Pilot Date: Fri, 20 Jan 2023 15:30:22 +0000 Subject: [PATCH 2/3] added preset filter for workspace_build filtering --- site/src/pages/AuditPage/AuditPageView.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/src/pages/AuditPage/AuditPageView.tsx b/site/src/pages/AuditPage/AuditPageView.tsx index 71dc45af77516..9471339a0cc41 100644 --- a/site/src/pages/AuditPage/AuditPageView.tsx +++ b/site/src/pages/AuditPage/AuditPageView.tsx @@ -38,6 +38,10 @@ const presetFilters = [ { query: "resource_type:user action:create", name: "Added users" }, { query: "resource_type:template action:delete", name: "Deleted templates" }, { query: "resource_type:user action:delete", name: "Deleted users" }, + { + query: "resource_type:workspace_build action:start", + name: "Started builds", + }, ] export interface AuditPageViewProps { From 930b89d1effe06303e7bd97eea192b5e562fcf71 Mon Sep 17 00:00:00 2001 From: Kira Pilot Date: Fri, 20 Jan 2023 15:31:06 +0000 Subject: [PATCH 3/3] cleaning up the preset filters --- site/src/pages/AuditPage/AuditPageView.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/src/pages/AuditPage/AuditPageView.tsx b/site/src/pages/AuditPage/AuditPageView.tsx index 9471339a0cc41..dd057985a7f2b 100644 --- a/site/src/pages/AuditPage/AuditPageView.tsx +++ b/site/src/pages/AuditPage/AuditPageView.tsx @@ -35,8 +35,6 @@ const presetFilters = [ name: "Created workspaces", }, { query: "resource_type:template action:create", name: "Added templates" }, - { query: "resource_type:user action:create", name: "Added users" }, - { query: "resource_type:template action:delete", name: "Deleted templates" }, { query: "resource_type:user action:delete", name: "Deleted users" }, { query: "resource_type:workspace_build action:start",