From 9e845213f59f2eae704d15e1c69a0ad9a5dbe4b6 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Thu, 28 Sep 2023 11:29:12 -0500 Subject: [PATCH] chore: include organization id in workspace build audit log (#9905) * chore: include organization id in workspace build audit log * rename 'BuildAudit' to 'WorkspaceBuildAudit' --- coderd/audit/request.go | 6 ++++-- coderd/provisionerdserver/provisionerdserver.go | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/coderd/audit/request.go b/coderd/audit/request.go index 5f09244b44..812dc1e5c5 100644 --- a/coderd/audit/request.go +++ b/coderd/audit/request.go @@ -53,6 +53,7 @@ type BuildAuditParams[T Auditable] struct { JobID uuid.UUID Status int Action database.AuditAction + OrganizationID uuid.UUID AdditionalFields json.RawMessage New T @@ -244,9 +245,9 @@ func InitRequest[T Auditable](w http.ResponseWriter, p *RequestParams) (*Request } } -// BuildAudit creates an audit log for a workspace build. +// WorkspaceBuildAudit creates an audit log for a workspace build. // The audit log is committed upon invocation. -func BuildAudit[T Auditable](ctx context.Context, p *BuildAuditParams[T]) { +func WorkspaceBuildAudit[T Auditable](ctx context.Context, p *BuildAuditParams[T]) { // As the audit request has not been initiated directly by a user, we omit // certain user details. ip := parseIP("") @@ -267,6 +268,7 @@ func BuildAudit[T Auditable](ctx context.Context, p *BuildAuditParams[T]) { ID: uuid.New(), Time: dbtime.Now(), UserID: p.UserID, + OrganizationID: p.OrganizationID, Ip: ip, UserAgent: sql.NullString{}, ResourceType: either(p.Old, p.New, ResourceType[T], p.Action), diff --git a/coderd/provisionerdserver/provisionerdserver.go b/coderd/provisionerdserver/provisionerdserver.go index 92a7b988c7..0d5768cbbd 100644 --- a/coderd/provisionerdserver/provisionerdserver.go +++ b/coderd/provisionerdserver/provisionerdserver.go @@ -898,10 +898,11 @@ func (s *server) FailJob(ctx context.Context, failJob *proto.FailedJob) (*proto. s.Logger.Error(ctx, "marshal workspace resource info for failed job", slog.Error(err)) } - audit.BuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{ + audit.WorkspaceBuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{ Audit: *auditor, Log: s.Logger, UserID: job.InitiatorID, + OrganizationID: workspace.OrganizationID, JobID: job.ID, Action: auditAction, Old: previousBuild, @@ -1236,10 +1237,11 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob) s.Logger.Error(ctx, "marshal resource info for successful job", slog.Error(err)) } - audit.BuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{ + audit.WorkspaceBuildAudit(ctx, &audit.BuildAuditParams[database.WorkspaceBuild]{ Audit: *auditor, Log: s.Logger, UserID: job.InitiatorID, + OrganizationID: workspace.OrganizationID, JobID: job.ID, Action: auditAction, Old: previousBuild,