@@ -367,6 +367,26 @@ func (api *API) auditLogIsResourceDeleted(ctx context.Context, alog database.Get
367
367
api .Logger .Error (ctx , "unable to fetch workspace" , slog .Error (err ))
368
368
}
369
369
return workspace .Deleted
370
+ case database .ResourceTypeWorkspaceAgent :
371
+ // We use workspace as a proxy for workspace agents.
372
+ workspace , err := api .Database .GetWorkspaceByAgentID (ctx , alog .AuditLog .ResourceID )
373
+ if err != nil {
374
+ if xerrors .Is (err , sql .ErrNoRows ) {
375
+ return true
376
+ }
377
+ api .Logger .Error (ctx , "unable to fetch workspace" , slog .Error (err ))
378
+ }
379
+ return workspace .Deleted
380
+ case database .ResourceTypeWorkspaceApp :
381
+ // We use workspace as a proxy for workspace apps.
382
+ workspace , err := api .Database .GetWorkspaceByWorkspaceAppID (ctx , alog .AuditLog .ResourceID )
383
+ if err != nil {
384
+ if xerrors .Is (err , sql .ErrNoRows ) {
385
+ return true
386
+ }
387
+ api .Logger .Error (ctx , "unable to fetch workspace" , slog .Error (err ))
388
+ }
389
+ return workspace .Deleted
370
390
case database .ResourceTypeOauth2ProviderApp :
371
391
_ , err := api .Database .GetOAuth2ProviderAppByID (ctx , alog .AuditLog .ResourceID )
372
392
if xerrors .Is (err , sql .ErrNoRows ) {
@@ -429,6 +449,26 @@ func (api *API) auditLogResourceLink(ctx context.Context, alog database.GetAudit
429
449
return fmt .Sprintf ("/@%s/%s/builds/%s" ,
430
450
workspaceOwner .Username , additionalFields .WorkspaceName , additionalFields .BuildNumber )
431
451
452
+ case database .ResourceTypeWorkspaceAgent :
453
+ if additionalFields .WorkspaceOwner != "" && additionalFields .WorkspaceName != "" {
454
+ return fmt .Sprintf ("/@%s/%s" , additionalFields .WorkspaceOwner , additionalFields .WorkspaceName )
455
+ }
456
+ workspace , getWorkspaceErr := api .Database .GetWorkspaceByAgentID (ctx , alog .AuditLog .ResourceID )
457
+ if getWorkspaceErr != nil {
458
+ return ""
459
+ }
460
+ return fmt .Sprintf ("/@%s/%s" , workspace .OwnerUsername , workspace .Name )
461
+
462
+ case database .ResourceTypeWorkspaceApp :
463
+ if additionalFields .WorkspaceOwner != "" && additionalFields .WorkspaceName != "" {
464
+ return fmt .Sprintf ("/@%s/%s" , additionalFields .WorkspaceOwner , additionalFields .WorkspaceName )
465
+ }
466
+ workspace , getWorkspaceErr := api .Database .GetWorkspaceByWorkspaceAppID (ctx , alog .AuditLog .ResourceID )
467
+ if getWorkspaceErr != nil {
468
+ return ""
469
+ }
470
+ return fmt .Sprintf ("/@%s/%s" , workspace .OwnerUsername , workspace .Name )
471
+
432
472
case database .ResourceTypeOauth2ProviderApp :
433
473
return fmt .Sprintf ("/deployment/oauth2-provider/apps/%s" , alog .AuditLog .ResourceID )
434
474
0 commit comments