diff --git a/app/controlplane/pkg/auditor/events/apitoken.go b/app/controlplane/pkg/auditor/events/apitoken.go index 48df4d29d..08a860836 100644 --- a/app/controlplane/pkg/auditor/events/apitoken.go +++ b/app/controlplane/pkg/auditor/events/apitoken.go @@ -86,9 +86,9 @@ func (a *APITokenCreated) ActionInfo() (json.RawMessage, error) { func (a *APITokenCreated) Description() string { if a.ExpiresAt != nil { - return fmt.Sprintf("{{ .ActorEmail }} has created the API token %s expiring at %s", a.APITokenName, a.ExpiresAt.Format(time.RFC3339)) + return fmt.Sprintf("%s has created the API token %s expiring at %s", auditor.GetActorIdentifier(), a.APITokenName, a.ExpiresAt.Format(time.RFC3339)) } - return fmt.Sprintf("{{ .ActorEmail }} has created the API token %s", a.APITokenName) + return fmt.Sprintf("%s has created the API token %s", auditor.GetActorIdentifier(), a.APITokenName) } type APITokenRevoked struct { @@ -109,5 +109,5 @@ func (a *APITokenRevoked) ActionInfo() (json.RawMessage, error) { } func (a *APITokenRevoked) Description() string { - return fmt.Sprintf("{{ .ActorEmail }} has revoked the API token %s", a.APITokenName) + return fmt.Sprintf("%s has revoked the API token %s", auditor.GetActorIdentifier(), a.APITokenName) } diff --git a/app/controlplane/pkg/auditor/events/events_test.go b/app/controlplane/pkg/auditor/events/events_test.go index 0c659600a..1110d0de1 100644 --- a/app/controlplane/pkg/auditor/events/events_test.go +++ b/app/controlplane/pkg/auditor/events/events_test.go @@ -25,7 +25,7 @@ var updateGolden bool const ( testEmail = "john@cyberdyne.io" - testName = "John Doe" + testName = "John Connor" testAPITokenName = "test-token" ) diff --git a/app/controlplane/pkg/auditor/events/group.go b/app/controlplane/pkg/auditor/events/group.go index afaef3cc4..9b747d99b 100644 --- a/app/controlplane/pkg/auditor/events/group.go +++ b/app/controlplane/pkg/auditor/events/group.go @@ -88,7 +88,7 @@ func (g *GroupCreated) ActionInfo() (json.RawMessage, error) { } func (g *GroupCreated) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has created the group %s", g.GroupName) + return fmt.Sprintf("%s has created the group %s", auditor.GetActorIdentifier(), g.GroupName) } // GroupUpdated represents an update to a group @@ -113,9 +113,9 @@ func (g *GroupUpdated) ActionInfo() (json.RawMessage, error) { func (g *GroupUpdated) Description() string { if g.OldName != nil && g.NewName != nil { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has renamed the group from %s to %s", *g.OldName, *g.NewName) + return fmt.Sprintf("%s has renamed the group from %s to %s", auditor.GetActorIdentifier(), *g.OldName, *g.NewName) } - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has updated the group %s", g.GroupName) + return fmt.Sprintf("%s has updated the group %s", auditor.GetActorIdentifier(), g.GroupName) } // GroupDeleted represents the deletion of a group @@ -136,7 +136,7 @@ func (g *GroupDeleted) ActionInfo() (json.RawMessage, error) { } func (g *GroupDeleted) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has deleted the group %s", g.GroupName) + return fmt.Sprintf("%s has deleted the group %s", auditor.GetActorIdentifier(), g.GroupName) } // GroupMemberAdded represents the addition of a member to a group @@ -169,8 +169,8 @@ func (g *GroupMemberAdded) Description() string { maintainerStatus = " as a maintainer" } - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has added user %s to the group %s%s", - g.UserEmail, g.GroupName, maintainerStatus) + return fmt.Sprintf("%s has added user %s to the group %s%s", + auditor.GetActorIdentifier(), g.UserEmail, g.GroupName, maintainerStatus) } // GroupMemberRemoved represents the removal of a member from a group @@ -197,8 +197,8 @@ func (g *GroupMemberRemoved) ActionInfo() (json.RawMessage, error) { } func (g *GroupMemberRemoved) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has removed user %s from the group %s", - g.UserEmail, g.GroupName) + return fmt.Sprintf("%s has removed user %s from the group %s", + auditor.GetActorIdentifier(), g.UserEmail, g.GroupName) } // GroupMemberUpdated represents the update of a group member @@ -227,6 +227,6 @@ func (g *GroupMemberUpdated) ActionInfo() (json.RawMessage, error) { } func (g *GroupMemberUpdated) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has updated user %s in the group %s", - g.UserEmail, g.GroupName) + return fmt.Sprintf("%s has updated user %s in the group %s", + auditor.GetActorIdentifier(), g.UserEmail, g.GroupName) } diff --git a/app/controlplane/pkg/auditor/events/organization.go b/app/controlplane/pkg/auditor/events/organization.go index 38342c37f..bcd3400d5 100644 --- a/app/controlplane/pkg/auditor/events/organization.go +++ b/app/controlplane/pkg/auditor/events/organization.go @@ -73,7 +73,7 @@ func (p *OrgCreated) ActionType() string { } func (p *OrgCreated) Description() string { - return fmt.Sprintf("{{ .ActorEmail }} has created the organization %s", p.OrgName) + return fmt.Sprintf("%s has created the organization %s", auditor.GetActorIdentifier(), p.OrgName) } // user joined the organization @@ -92,7 +92,7 @@ func (p *OrgUserJoined) ActionType() string { } func (p *OrgUserJoined) Description() string { - return fmt.Sprintf("{{ .ActorEmail }} has joined the organization %s", p.OrgName) + return fmt.Sprintf("%s has joined the organization %s", auditor.GetActorIdentifier(), p.OrgName) } func (p *OrgUserJoined) ActionInfo() (json.RawMessage, error) { @@ -113,7 +113,7 @@ func (p *OrgUserLeft) ActionType() string { } func (p *OrgUserLeft) Description() string { - return fmt.Sprintf("{{ .ActorEmail }} has left the organization %s", p.OrgName) + return fmt.Sprintf("%s has left the organization %s", auditor.GetActorIdentifier(), p.OrgName) } // user got invited to the organization @@ -128,7 +128,7 @@ func (p *OrgUserInvited) ActionType() string { } func (p *OrgUserInvited) Description() string { - return fmt.Sprintf("{{ .ActorEmail }} has invited %s to the organization %s with role %s", p.ReceiverEmail, p.OrgName, p.Role) + return fmt.Sprintf("%s has invited %s to the organization %s with role %s", auditor.GetActorIdentifier(), p.ReceiverEmail, p.OrgName, p.Role) } func (p *OrgUserInvited) ActionInfo() (json.RawMessage, error) { diff --git a/app/controlplane/pkg/auditor/events/project.go b/app/controlplane/pkg/auditor/events/project.go index d169bb9df..bc440644f 100644 --- a/app/controlplane/pkg/auditor/events/project.go +++ b/app/controlplane/pkg/auditor/events/project.go @@ -109,13 +109,13 @@ func (p *ProjectMemberRoleUpdated) ActionInfo() (json.RawMessage, error) { func (p *ProjectMemberRoleUpdated) Description() string { if p.UserID != nil { // User role update - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has updated user '%s' role in project '%s' from '%s' to '%s'", - p.UserEmail, p.ProjectName, prettyRole(p.OldRole), prettyRole(p.NewRole)) + return fmt.Sprintf("%s has updated user '%s' role in project '%s' from '%s' to '%s'", + auditor.GetActorIdentifier(), p.UserEmail, p.ProjectName, prettyRole(p.OldRole), prettyRole(p.NewRole)) } // Group role update - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has updated group '%s' role in project '%s' from '%s' to '%s'", - p.GroupName, p.ProjectName, prettyRole(p.OldRole), prettyRole(p.NewRole)) + return fmt.Sprintf("%s has updated group '%s' role in project '%s' from '%s' to '%s'", + auditor.GetActorIdentifier(), p.GroupName, p.ProjectName, prettyRole(p.OldRole), prettyRole(p.NewRole)) } // ProjectMembershipAdded represents the addition of a member (user or group) to a project @@ -156,13 +156,13 @@ func (p *ProjectMembershipAdded) Description() string { if p.UserID != nil { // User addition - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has added user '%s' to the project '%s'%s", - p.UserEmail, p.ProjectName, roleDesc) + return fmt.Sprintf("%s has added user '%s' to the project '%s'%s", + auditor.GetActorIdentifier(), p.UserEmail, p.ProjectName, roleDesc) } // Group addition - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has added group '%s' to the project '%s'%s", - p.GroupName, p.ProjectName, roleDesc) + return fmt.Sprintf("%s has added group '%s' to the project '%s'%s", + auditor.GetActorIdentifier(), p.GroupName, p.ProjectName, roleDesc) } // ProjectMembershipRemoved represents the removal of a member (user or group) from a project @@ -196,11 +196,11 @@ func (p *ProjectMembershipRemoved) ActionInfo() (json.RawMessage, error) { func (p *ProjectMembershipRemoved) Description() string { if p.UserID != nil { // User removal - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has removed user '%s' from the project '%s'", - p.UserEmail, p.ProjectName) + return fmt.Sprintf("%s has removed user '%s' from the project '%s'", + auditor.GetActorIdentifier(), p.UserEmail, p.ProjectName) } // Group removal - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}system@chainloop.dev{{ end }} has removed group '%s' from the project '%s'", - p.GroupName, p.ProjectName) + return fmt.Sprintf("%s has removed group '%s' from the project '%s'", + auditor.GetActorIdentifier(), p.GroupName, p.ProjectName) } diff --git a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created.json b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created.json index f97b52daf..bf1a68a16 100644 --- a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created.json +++ b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the API token test-token", + "Description": "John Connor has created the API token test-token", "Info": { "api_token_id": "2089bb36-e27b-428b-8009-d015c8737c55", "api_token_name": "test-token" diff --git a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_description.json b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_description.json index 0af3c4a81..5bad347d0 100644 --- a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_description.json +++ b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_description.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the API token test-token", + "Description": "John Connor has created the API token test-token", "Info": { "api_token_id": "2089bb36-e27b-428b-8009-d015c8737c55", "api_token_name": "test-token", diff --git a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_expiration_date.json b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_expiration_date.json index 29772549f..a3cbb7415 100644 --- a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_expiration_date.json +++ b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_created_with_expiration_date.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the API token test-token expiring at 2025-01-01T00:00:00Z", + "Description": "John Connor has created the API token test-token expiring at 2025-01-01T00:00:00Z", "Info": { "api_token_id": "2089bb36-e27b-428b-8009-d015c8737c55", "api_token_name": "test-token", diff --git a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_revoked.json b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_revoked.json index c0929e379..43ee0ed01 100644 --- a/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_revoked.json +++ b/app/controlplane/pkg/auditor/events/testdata/apitokens/api_token_revoked.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": " has revoked the API token test-token", + "Description": "test-token has revoked the API token test-token", "Info": { "api_token_id": "2089bb36-e27b-428b-8009-d015c8737c55", "api_token_name": "test-token" diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_created.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_created.json index f695838e4..e5f07a80f 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_created.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_created.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the group test-group", + "Description": "John Connor has created the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_deleted.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_deleted.json index e05264daf..cb771b7d7 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_deleted.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_deleted.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has deleted the group test-group", + "Description": "John Connor has deleted the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group" diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_added.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_added.json index 6bd2774c0..3ee426a41 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_added.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_added.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has added user test@example.com to the group test-group as a maintainer", + "Description": "John Connor has added user test@example.com to the group test-group as a maintainer", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_removed.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_removed.json index a0c2bbaf0..d07d547f1 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_removed.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_removed.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has removed user test@example.com from the group test-group", + "Description": "John Connor has removed user test@example.com from the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_updated.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_updated.json index c7f2aa522..3d8fee423 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_member_updated.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_member_updated.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated user test@example.com in the group test-group", + "Description": "John Connor has updated user test@example.com in the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_updated.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_updated.json index f68c22338..4d3720256 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_updated.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_updated.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated the group test-group", + "Description": "John Connor has updated the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/groups/group_updated_with_description.json b/app/controlplane/pkg/auditor/events/testdata/groups/group_updated_with_description.json index f68c22338..4d3720256 100644 --- a/app/controlplane/pkg/auditor/events/testdata/groups/group_updated_with_description.json +++ b/app/controlplane/pkg/auditor/events/testdata/groups/group_updated_with_description.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated the group test-group", + "Description": "John Connor has updated the group test-group", "Info": { "group_id": "3089bb36-e27b-428b-8009-d015c8737c56", "group_name": "test-group", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added.json index 8055a631c..c29ba6a58 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has added user 'test@example.com' to the project 'test-project' with role 'viewer'", + "Description": "John Connor has added user 'test@example.com' to the project 'test-project' with role 'viewer'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_as_admin.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_as_admin.json index 228c139ae..8b085f058 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_as_admin.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_as_admin.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has added user 'test@example.com' to the project 'test-project' with role 'admin'", + "Description": "John Connor has added user 'test@example.com' to the project 'test-project' with role 'admin'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_by_system.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_by_system.json index 2a38f5ae9..1f2858439 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_by_system.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_added_by_system.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "system@chainloop.dev has added user 'test@example.com' to the project 'test-project' with role 'viewer'", + "Description": "test-token has added user 'test@example.com' to the project 'test-project' with role 'viewer'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed.json index b63fc8986..a7e332c6a 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has removed user 'test@example.com' from the project 'test-project'", + "Description": "John Connor has removed user 'test@example.com' from the project 'test-project'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed_by_system.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed_by_system.json index c0a041576..ee340d618 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed_by_system.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_removed_by_system.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "system@chainloop.dev has removed user 'test@example.com' from the project 'test-project'", + "Description": "test-token has removed user 'test@example.com' from the project 'test-project'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated.json index a99a85ba6..27b9cf716 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated user 'test@example.com' role in project 'test-project' from 'viewer' to 'admin'", + "Description": "John Connor has updated user 'test@example.com' role in project 'test-project' from 'viewer' to 'admin'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated_by_system.json b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated_by_system.json index 0f16516d6..3bffabdb0 100644 --- a/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated_by_system.json +++ b/app/controlplane/pkg/auditor/events/testdata/projects/project_member_role_updated_by_system.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "system@chainloop.dev has updated user 'test@example.com' role in project 'test-project' from 'viewer' to 'admin'", + "Description": "test-token has updated user 'test@example.com' role in project 'test-project' from 'viewer' to 'admin'", "Info": { "project_id": "3089bb36-e27b-428b-8009-d015c8737c56", "project_name": "test-project", diff --git a/app/controlplane/pkg/auditor/events/testdata/users/user_logs_in.json b/app/controlplane/pkg/auditor/events/testdata/users/user_logs_in.json index 16a722297..c055dc988 100644 --- a/app/controlplane/pkg/auditor/events/testdata/users/user_logs_in.json +++ b/app/controlplane/pkg/auditor/events/testdata/users/user_logs_in.json @@ -5,7 +5,7 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", "Description": "john@cyberdyne.io has logged in", "Info": { diff --git a/app/controlplane/pkg/auditor/events/testdata/users/user_role_changed.json b/app/controlplane/pkg/auditor/events/testdata/users/user_role_changed.json index 142f5b081..2cb1dd7aa 100644 --- a/app/controlplane/pkg/auditor/events/testdata/users/user_role_changed.json +++ b/app/controlplane/pkg/auditor/events/testdata/users/user_role_changed.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io role changed from 'role:org:owner' to 'role:org:member'", + "Description": "John Connor has changed john@cyberdyne.io role from 'role:org:owner' to 'role:org:member'", "Info": { "user_id": "1089bb36-e27b-428b-8009-d015c8737c54", "email": "john@cyberdyne.io", diff --git a/app/controlplane/pkg/auditor/events/testdata/users/user_signs_up.json b/app/controlplane/pkg/auditor/events/testdata/users/user_signs_up.json index 01e82f57a..5ccb206ee 100644 --- a/app/controlplane/pkg/auditor/events/testdata/users/user_signs_up.json +++ b/app/controlplane/pkg/auditor/events/testdata/users/user_signs_up.json @@ -5,7 +5,7 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", "Description": "john@cyberdyne.io has signed up", "Info": { diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract.json index 4852af8fc..22d294c51 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has attached the workflow test-workflow to the workflow contract test-contract", + "Description": "John Connor has attached the workflow test-workflow to the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract_by_api_token.json index a717872ce..698e6ecc9 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_attached_to_contract_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has attached the workflow test-workflow to the workflow contract test-contract", + "Description": "test-token has attached the workflow test-workflow to the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created.json index 59662ef89..0ed9cb80c 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the workflow contract test-contract", + "Description": "John Connor has created the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract" diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created_by_api_token.json index 4a72866ab..ec7f6326c 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_created_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has created the workflow contract test-contract", + "Description": "test-token has created the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract" diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted.json index 44129538b..0061ace21 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has deleted the workflow contract test-contract", + "Description": "John Connor has deleted the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract" diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted_by_api_token.json index a8baead52..c6e18f44f 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_deleted_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has deleted the workflow contract test-contract", + "Description": "test-token has deleted the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract" diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated.json index 8ad4dfff6..5b9ee0815 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated the workflow contract test-contract", + "Description": "John Connor has updated the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated_by_api_token.json index b29e27415..aeb9c9b6d 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_contract_updated_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has updated the workflow contract test-contract", + "Description": "test-token has updated the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract.json index 255daf323..99c3121fa 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has detached the workflow test-workflow from the workflow contract test-contract", + "Description": "John Connor has detached the workflow test-workflow from the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract_by_api_token.json index bb0c8011b..11b25b03e 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflowcontracts/workflow_detached_from_contract_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has detached the workflow test-workflow from the workflow contract test-contract", + "Description": "test-token has detached the workflow test-workflow from the workflow contract test-contract", "Info": { "workflow_contract_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_contract_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created.json index 445dbb435..0e9c7ad61 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has created the workflow test-workflow on project test-project with the contract test-contract", + "Description": "John Connor has created the workflow test-workflow on project test-project with the contract test-contract", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-workflow", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created_by_api_token.json index bfb112e9e..daac3805d 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_created_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has created the workflow test-workflow on project test-project with the contract test-contract", + "Description": "test-token has created the workflow test-workflow on project test-project with the contract test-contract", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-workflow", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted.json index 204053bbd..779943411 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has deleted the workflow test-contract", + "Description": "John Connor has deleted the workflow test-contract", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted_by_api_token.json index 39373bd5c..3dd4a90c3 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_deleted_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has deleted the workflow test-contract", + "Description": "test-token has deleted the workflow test-contract", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated.json index c78b9abd7..8552d1535 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated the workflow test-contract on project test-project", + "Description": "John Connor has updated the workflow test-contract on project test-project", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_by_api_token.json index 4e951123a..5c14d7fb6 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 2089bb36-e27b-428b-8009-d015c8737c55 has updated the workflow test-contract on project test-project", + "Description": "test-token has updated the workflow test-contract on project test-project", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract.json index 0309f03d7..a1cdaad29 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract.json @@ -5,9 +5,9 @@ "ActorType": "USER", "ActorID": "1089bb36-e27b-428b-8009-d015c8737c54", "ActorEmail": "john@cyberdyne.io", - "ActorName": "John Doe", + "ActorName": "John Connor", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "john@cyberdyne.io has updated the workflow test-contract on project test-project", + "Description": "John Connor has updated the workflow test-contract on project test-project", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract_by_api_token.json b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract_by_api_token.json index 9f9cddfbb..5d70976d0 100644 --- a/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract_by_api_token.json +++ b/app/controlplane/pkg/auditor/events/testdata/workflows/workflow_updated_with_workflow_contract_by_api_token.json @@ -7,7 +7,7 @@ "ActorEmail": "", "ActorName": "test-token", "OrgID": "1089bb36-e27b-428b-8009-d015c8737c54", - "Description": "API Token 1089bb36-e27b-428b-8009-d015c8737c54 has updated the workflow test-contract on project test-project", + "Description": "test-token has updated the workflow test-contract on project test-project", "Info": { "workflow_id": "1089bb36-e27b-428b-8009-d015c8737c54", "workflow_name": "test-contract", diff --git a/app/controlplane/pkg/auditor/events/user.go b/app/controlplane/pkg/auditor/events/user.go index 912c1fd9b..235a9172b 100644 --- a/app/controlplane/pkg/auditor/events/user.go +++ b/app/controlplane/pkg/auditor/events/user.go @@ -109,7 +109,7 @@ func (p *UserRoleChanged) ActionType() string { } func (p *UserRoleChanged) Description() string { - return fmt.Sprintf("%s role changed from '%s' to '%s'", p.Email, p.OldRole, p.NewRole) + return fmt.Sprintf("%s has changed %s role from '%s' to '%s'", auditor.GetActorIdentifier(), p.Email, p.OldRole, p.NewRole) } func (p *UserRoleChanged) ActionInfo() (json.RawMessage, error) { diff --git a/app/controlplane/pkg/auditor/events/workflow.go b/app/controlplane/pkg/auditor/events/workflow.go index e2c5db939..2971c6d34 100644 --- a/app/controlplane/pkg/auditor/events/workflow.go +++ b/app/controlplane/pkg/auditor/events/workflow.go @@ -80,7 +80,7 @@ func (w *WorkflowCreated) Description() string { workflowName := w.WorkflowName projectName := w.ProjectName workflowContractName := w.WorkflowContractName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has created the workflow %s on project %s with the contract %s", workflowName, projectName, workflowContractName) + return fmt.Sprintf("%s has created the workflow %s on project %s with the contract %s", auditor.GetActorIdentifier(), workflowName, projectName, workflowContractName) } func (w *WorkflowCreated) ActionType() string { @@ -119,7 +119,7 @@ func (w *WorkflowUpdated) ActionInfo() (json.RawMessage, error) { func (w *WorkflowUpdated) Description() string { workflowName := w.WorkflowName projectName := w.ProjectName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has updated the workflow %s on project %s", workflowName, projectName) + return fmt.Sprintf("%s has updated the workflow %s on project %s", auditor.GetActorIdentifier(), workflowName, projectName) } type WorkflowDeleted struct { @@ -140,5 +140,5 @@ func (w *WorkflowDeleted) ActionInfo() (json.RawMessage, error) { func (w *WorkflowDeleted) Description() string { wfName := w.WorkflowName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has deleted the workflow %s", wfName) + return fmt.Sprintf("%s has deleted the workflow %s", auditor.GetActorIdentifier(), wfName) } diff --git a/app/controlplane/pkg/auditor/events/workflowcontract.go b/app/controlplane/pkg/auditor/events/workflowcontract.go index 120526161..39b63dc76 100644 --- a/app/controlplane/pkg/auditor/events/workflowcontract.go +++ b/app/controlplane/pkg/auditor/events/workflowcontract.go @@ -78,7 +78,7 @@ func (w *WorkflowContractCreated) TargetID() *uuid.UUID { func (w *WorkflowContractCreated) Description() string { wfContractName := w.WorkflowContractName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has created the workflow contract %s", wfContractName) + return fmt.Sprintf("%s has created the workflow contract %s", auditor.GetActorIdentifier(), wfContractName) } func (w *WorkflowContractCreated) ActionType() string { @@ -114,7 +114,7 @@ func (w *WorkflowContractUpdated) ActionInfo() (json.RawMessage, error) { func (w *WorkflowContractUpdated) Description() string { wfContractName := w.WorkflowContractName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has updated the workflow contract %s", wfContractName) + return fmt.Sprintf("%s has updated the workflow contract %s", auditor.GetActorIdentifier(), wfContractName) } type WorkflowContractDeleted struct { @@ -135,7 +135,7 @@ func (w *WorkflowContractDeleted) ActionInfo() (json.RawMessage, error) { func (w *WorkflowContractDeleted) Description() string { wfContractName := w.WorkflowContractName - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has deleted the workflow contract %s", wfContractName) + return fmt.Sprintf("%s has deleted the workflow contract %s", auditor.GetActorIdentifier(), wfContractName) } type WorkflowContractAttached struct { @@ -157,7 +157,7 @@ func (w *WorkflowContractAttached) ActionInfo() (json.RawMessage, error) { } func (w *WorkflowContractAttached) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has attached the workflow %s to the workflow contract %s", w.WorkflowName, w.WorkflowContractName) + return fmt.Sprintf("%s has attached the workflow %s to the workflow contract %s", auditor.GetActorIdentifier(), w.WorkflowName, w.WorkflowContractName) } type WorkflowContractDetached struct { @@ -179,5 +179,5 @@ func (w *WorkflowContractDetached) ActionInfo() (json.RawMessage, error) { } func (w *WorkflowContractDetached) Description() string { - return fmt.Sprintf("{{ if .ActorEmail }}{{ .ActorEmail }}{{ else }}API Token {{ .ActorID }}{{ end }} has detached the workflow %s from the workflow contract %s", w.WorkflowName, w.WorkflowContractName) + return fmt.Sprintf("%s has detached the workflow %s from the workflow contract %s", auditor.GetActorIdentifier(), w.WorkflowName, w.WorkflowContractName) } diff --git a/app/controlplane/pkg/auditor/logentry.go b/app/controlplane/pkg/auditor/logentry.go index 3580a6927..9163ed5bd 100644 --- a/app/controlplane/pkg/auditor/logentry.go +++ b/app/controlplane/pkg/auditor/logentry.go @@ -1,5 +1,5 @@ // -// Copyright 2024 The Chainloop Authors. +// Copyright 2024-2025 The Chainloop Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -254,3 +254,11 @@ func digest(entry LogEntry, orgID *uuid.UUID, userID *uuid.UUID) (*cr_v1.Hash, e return &h, nil } + +// GetActorIdentifier returns the actor identifier for audit log descriptions. +// It prioritizes ActorName, then ActorEmail, and finally falls back to system@chainloop.dev. +const ActorSystemIdentifier = "system@chainloop.dev" + +func GetActorIdentifier() string { + return fmt.Sprintf("{{ if .ActorName }}{{ .ActorName }}{{ else if .ActorEmail }}{{ .ActorEmail }}{{ else }}%s{{ end }}", ActorSystemIdentifier) +} diff --git a/app/controlplane/pkg/auditor/logentry_test.go b/app/controlplane/pkg/auditor/logentry_test.go new file mode 100644 index 000000000..3da9feba3 --- /dev/null +++ b/app/controlplane/pkg/auditor/logentry_test.go @@ -0,0 +1,110 @@ +// +// Copyright 2025 The Chainloop Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package auditor + +import ( + "bytes" + "testing" + "text/template" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// TemplateData represents the data structure used in audit log templates +type TemplateData struct { + ActorName string + ActorEmail string +} + +func TestGetActorIdentifier(t *testing.T) { + tests := []struct { + name string + data TemplateData + expected string + }{ + { + name: "ActorName present - should use ActorName", + data: TemplateData{ + ActorName: "John Connor", + ActorEmail: "john.doe@example.com", + }, + expected: "John Connor", + }, + { + name: "ActorName empty, ActorEmail present - should use ActorEmail", + data: TemplateData{ + ActorName: "", + ActorEmail: "john.doe@example.com", + }, + expected: "john.doe@example.com", + }, + { + name: "ActorName missing, ActorEmail present - should use ActorEmail", + data: TemplateData{ + ActorEmail: "jane.smith@example.com", + }, + expected: "jane.smith@example.com", + }, + { + name: "Both ActorName and ActorEmail empty - should use system fallback", + data: TemplateData{ + ActorName: "", + ActorEmail: "", + }, + expected: ActorSystemIdentifier, + }, + { + name: "Both ActorName and ActorEmail missing - should use system fallback", + data: TemplateData{}, + expected: ActorSystemIdentifier, + }, + { + name: "ActorName whitespace only, ActorEmail present - should use ActorEmail", + data: TemplateData{ + ActorName: " ", + ActorEmail: "test@example.com", + }, + expected: " ", // Template will consider whitespace as "truthy" + }, + { + name: "ActorEmail whitespace only - should use system fallback", + data: TemplateData{ + ActorName: "", + ActorEmail: " ", + }, + expected: " ", // Template will consider whitespace as "truthy" + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Get the template string from the helper + templateStr := GetActorIdentifier() + + // Parse and execute the template + tmpl, err := template.New("test").Parse(templateStr) + require.NoError(t, err, "Template should parse correctly") + + var buf bytes.Buffer + err = tmpl.Execute(&buf, tt.data) + require.NoError(t, err, "Template should execute correctly") + + result := buf.String() + assert.Equal(t, tt.expected, result) + }) + } +} diff --git a/app/controlplane/pkg/biz/auditor.go b/app/controlplane/pkg/biz/auditor.go index 1afe7f48b..87ecb37b3 100644 --- a/app/controlplane/pkg/biz/auditor.go +++ b/app/controlplane/pkg/biz/auditor.go @@ -18,6 +18,7 @@ package biz import ( "context" "fmt" + "strings" "github.com/chainloop-dev/chainloop/app/controlplane/internal/usercontext/entities" "github.com/chainloop-dev/chainloop/app/controlplane/pkg/auditor" @@ -49,7 +50,7 @@ func (uc *AuditorUseCase) Dispatch(ctx context.Context, entry auditor.LogEntry, case entities.CurrentUser(ctx) != nil: user := entities.CurrentUser(ctx) parsedUUID, _ := uuid.Parse(user.ID) - fullName := fmt.Sprintf("%s %s", user.FirstName, user.LastName) + fullName := strings.TrimSpace(fmt.Sprintf("%s %s", user.FirstName, user.LastName)) opts = append(opts, auditor.WithActor(auditor.ActorTypeUser, parsedUUID, user.Email, fullName)) gotActor = true case entities.CurrentAPIToken(ctx) != nil: