diff --git a/frontend/src/views/Org/AuditLogsPage/AuditLogsPage.tsx b/frontend/src/views/Org/AuditLogsPage/AuditLogsPage.tsx index 2b6ec6744..faa026baa 100644 --- a/frontend/src/views/Org/AuditLogsPage/AuditLogsPage.tsx +++ b/frontend/src/views/Org/AuditLogsPage/AuditLogsPage.tsx @@ -12,7 +12,7 @@ export const AuditLogsPage = withPermission(

Audit Logs

- + ); diff --git a/frontend/src/views/Org/AuditLogsPage/components/LogsSection.tsx b/frontend/src/views/Org/AuditLogsPage/components/LogsSection.tsx index 65f481712..dc1fb03ef 100644 --- a/frontend/src/views/Org/AuditLogsPage/components/LogsSection.tsx +++ b/frontend/src/views/Org/AuditLogsPage/components/LogsSection.tsx @@ -88,7 +88,7 @@ export const LogsSection = ({ refetchInterval={refetchInterval} remappedHeaders={remappedHeaders} isOrgAuditLogs={isOrgAuditLogs} - showActorColumn={!!showActorColumn && !isOrgAuditLogs} + showActorColumn={!!showActorColumn} filter={{ eventMetadata: presets?.eventMetadata, projectId, diff --git a/frontend/src/views/Org/AuditLogsPage/components/LogsTableRow.tsx b/frontend/src/views/Org/AuditLogsPage/components/LogsTableRow.tsx index 2e8e01871..b7053b80a 100644 --- a/frontend/src/views/Org/AuditLogsPage/components/LogsTableRow.tsx +++ b/frontend/src/views/Org/AuditLogsPage/components/LogsTableRow.tsx @@ -1,7 +1,7 @@ -import { Badge, Td, Tooltip, Tr } from "@app/components/v2"; +import { Td, Tr } from "@app/components/v2"; import { eventToNameMap, userAgentTTypeoNameMap } from "@app/hooks/api/auditLogs/constants"; import { ActorType, EventType } from "@app/hooks/api/auditLogs/enums"; -import { Actor, AuditLog, Event } from "@app/hooks/api/auditLogs/types"; +import { Actor, AuditLog } from "@app/hooks/api/auditLogs/types"; type Props = { auditLog: AuditLog; @@ -38,491 +38,6 @@ export const LogsTableRow = ({ auditLog, isOrgAuditLogs, showActorColumn }: Prop } }; - const renderMetadata = (event: Event) => { - const metadataKeys = Object.keys(event.metadata); - - switch (event.type) { - case EventType.GET_SECRETS: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

-

{`# Secrets: ${event.metadata.numberOfSecrets}`}

- - ); - case EventType.GET_SECRET: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

-

{`Secret: ${event.metadata.secretKey}`}

- - ); - case EventType.CREATE_SECRET: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

-

{`Secret: ${event.metadata.secretKey}`}

- - ); - case EventType.UPDATE_SECRET: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

-

{`Secret: ${event.metadata.secretKey}`}

- - ); - case EventType.DELETE_SECRET: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

-

{`Secret: ${event.metadata.secretKey}`}

- - ); - case EventType.AUTHORIZE_INTEGRATION: - return ( - -

{`Integration: ${event.metadata.integration}`}

- - ); - case EventType.UNAUTHORIZE_INTEGRATION: - return ( - -

{`Integration: ${event.metadata.integration}`}

- - ); - case EventType.CREATE_INTEGRATION: - return ( - -

{`Integration: ${event.metadata.integration}`}

-

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

- {event.metadata.app &&

{`Target app: ${event.metadata.app}`}

} - {event.metadata.appId &&

{`Target app: ${event.metadata.appId}`}

} - {event.metadata.targetEnvironment && ( -

{`Target environment: ${event.metadata.targetEnvironment}`}

- )} - {event.metadata.targetEnvironmentId && ( -

{`Target environment ID: ${event.metadata.targetEnvironmentId}`}

- )} - - ); - case EventType.DELETE_INTEGRATION: - return ( - -

{`Integration: ${event.metadata.integration}`}

-

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.secretPath}`}

- {event.metadata.app &&

{`Target App: ${event.metadata.app}`}

} - {event.metadata.appId &&

{`Target app: ${event.metadata.appId}`}

} - {event.metadata.targetEnvironment && ( -

{`Target environment: ${event.metadata.targetEnvironment}`}

- )} - {event.metadata.targetEnvironmentId && ( -

{`Target environment ID: ${event.metadata.targetEnvironmentId}`}

- )} - - ); - case EventType.ADD_TRUSTED_IP: - return ( - -

{`IP: ${event.metadata.ipAddress}${ - event.metadata.prefix !== undefined ? `/${event.metadata.prefix}` : "" - }`}

- - ); - case EventType.UPDATE_TRUSTED_IP: - return ( - -

{`IP: ${event.metadata.ipAddress}${ - event.metadata.prefix !== undefined ? `/${event.metadata.prefix}` : "" - }`}

- - ); - case EventType.DELETE_TRUSTED_IP: - return ( - -

{`IP: ${event.metadata.ipAddress}${ - event.metadata.prefix !== undefined ? `/${event.metadata.prefix}` : "" - }`}

- - ); - case EventType.CREATE_SERVICE_TOKEN: - return ( - -

{`Name: ${event.metadata.name}`}

- - ); - case EventType.DELETE_SERVICE_TOKEN: - return ( - -

{`Name: ${event.metadata.name}`}

- - ); - case EventType.CREATE_IDENTITY: - return ( - -

{`ID: ${event.metadata.identityId}`}

-

{`Name: ${event.metadata.name}`}

- - ); - case EventType.UPDATE_IDENTITY: - return ( - -

{`ID: ${event.metadata.identityId}`}

-

{`Name: ${event.metadata.name}`}

- - ); - case EventType.DELETE_IDENTITY: - return ( - -

{`ID: ${event.metadata.identityId}`}

- - ); - case EventType.CREATE_ENVIRONMENT: - return ( - -

{`Name: ${event.metadata.name}`}

-

{`Slug: ${event.metadata.slug}`}

- - ); - case EventType.UPDATE_ENVIRONMENT: - return ( - -

{`Old name: ${event.metadata.oldName}`}

-

{`New name: ${event.metadata.newName}`}

-

{`Old slug: ${event.metadata.oldSlug}`}

-

{`New slug: ${event.metadata.newSlug}`}

- - ); - case EventType.DELETE_ENVIRONMENT: - return ( - -

{`Name: ${event.metadata.name}`}

-

{`Slug: ${event.metadata.slug}`}

- - ); - case EventType.ADD_WORKSPACE_MEMBER: - return ( - -

{`Email: ${event.metadata.email}`}

- - ); - case EventType.REMOVE_WORKSPACE_MEMBER: - return ( - -

{`Email: ${event.metadata.email}`}

- - ); - case EventType.CREATE_FOLDER: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.folderPath}`}

-

{`Folder: ${event.metadata.folderName}`}

- - ); - case EventType.UPDATE_FOLDER: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.folderPath}`}

-

{`Old folder: ${event.metadata.oldFolderName}`}

-

{`New folder: ${event.metadata.newFolderName}`}

- - ); - case EventType.DELETE_FOLDER: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Path: ${event.metadata.folderPath}`}

-

{`Folder: ${event.metadata.folderName}`}

- - ); - case EventType.CREATE_WEBHOOK: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Secret path: ${event.metadata.secretPath}`}

-

{`Disabled: ${event.metadata.isDisabled}`}

- - ); - case EventType.UPDATE_WEBHOOK_STATUS: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Secret path: ${event.metadata.secretPath}`}

-

{`Disabled: ${event.metadata.isDisabled}`}

- - ); - case EventType.DELETE_WEBHOOK: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`Secret path: ${event.metadata.secretPath}`}

-

{`Disabled: ${event.metadata.isDisabled}`}

- - ); - case EventType.GET_SECRET_IMPORTS: - return ( - -

{`Environment: ${event.metadata.environment}`}

-

{`# Imported paths: ${event.metadata.numberOfImports}`}

- - ); - case EventType.CREATE_SECRET_IMPORT: - return ( - -

{`Import from env: ${event.metadata.importFromEnvironment}`}

-

{`Import from path: ${event.metadata.importFromSecretPath}`}

-

{`Import to env: ${event.metadata.importToEnvironment}`}

-

{`Import to path: ${event.metadata.importToSecretPath}`}

- - ); - case EventType.UPDATE_SECRET_IMPORT: - return ( - -

{`Import to env: ${event.metadata.importToEnvironment}`}

-

{`Import to path: ${event.metadata.importToSecretPath}`}

- - ); - case EventType.DELETE_SECRET_IMPORT: - return ( - -

{`Import from env: ${event.metadata.importFromEnvironment}`}

-

{`Import from path: ${event.metadata.importFromSecretPath}`}

-

{`Import to env: ${event.metadata.importToEnvironment}`}

-

{`Import to path: ${event.metadata.importToSecretPath}`}

- - ); - case EventType.UPDATE_USER_WORKSPACE_ROLE: - return ( - -

{`Email: ${event.metadata.email}`}

-

{`Old role: ${event.metadata.oldRole}`}

-

{`New role: ${event.metadata.newRole}`}

- - ); - case EventType.UPDATE_USER_WORKSPACE_DENIED_PERMISSIONS: - return ( - -

{`Email: ${event.metadata.email}`}

- {event.metadata.deniedPermissions.map((permission) => { - return ( -

- {`Denied env-ability: ${permission.environmentSlug}-${permission.ability}`} -

- ); - })} - - ); - case EventType.ORG_ADMIN_ACCESS_PROJECT: - return ( - -

{`Email: ${event.metadata.email}`}

- - ); - case EventType.CREATE_PKI_ALERT: - case EventType.UPDATE_PKI_ALERT: - return ( - -

{`Alert ID: ${event.metadata.pkiAlertId}`}

-

{`Name: ${event.metadata.name}`}

-

{`Alert Before Days: ${event.metadata.alertBeforeDays}`}

- - ); - case EventType.GET_PKI_ALERT: - case EventType.DELETE_PKI_ALERT: - return ( - -

{`Alert ID: ${event.metadata.pkiAlertId}`}

- - ); - case EventType.CREATE_PKI_COLLECTION: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

-

{`Name: ${event.metadata.name}`}

- - ); - case EventType.UPDATE_PKI_COLLECTION: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

-

{`Name: ${event.metadata.name}`}

- - ); - case EventType.GET_PKI_COLLECTION: - case EventType.DELETE_PKI_COLLECTION: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

- - ); - case EventType.GET_PKI_COLLECTION_ITEMS: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

- - ); - case EventType.ADD_PKI_COLLECTION_ITEM: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

-

{`Collection Item ID: ${event.metadata.pkiCollectionItemId}`}

-

{`Type: ${event.metadata.type}`}

-

{`Item ID: ${event.metadata.itemId}`}

- - ); - case EventType.DELETE_PKI_COLLECTION_ITEM: - return ( - -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

-

{`Collection Item ID: ${event.metadata.pkiCollectionItemId}`}

- - ); - case EventType.CREATE_CA: - case EventType.GET_CA: - case EventType.UPDATE_CA: - case EventType.DELETE_CA: - case EventType.GET_CA_CSR: - case EventType.GET_CA_CERT: - case EventType.IMPORT_CA_CERT: - case EventType.GET_CA_CRL: - case EventType.SIGN_INTERMEDIATE: - case EventType.ISSUE_CERT: - return ( - -

{`CA DN: ${event.metadata.dn}`}

- - ); - case EventType.GET_CERT: - case EventType.DELETE_CERT: - case EventType.REVOKE_CERT: - case EventType.GET_CERT_BODY: - return ( - -

{`Cert CN: ${event.metadata.cn}`}

- - ); - case EventType.CREATE_CERTIFICATE_TEMPLATE: - case EventType.UPDATE_CERTIFICATE_TEMPLATE: - return ( - -

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

-

{`Certificate Authority ID: ${event.metadata.caId}`}

-

{`Name: ${event.metadata.name}`}

-

{`Common Name: ${event.metadata.commonName}`}

-

{`Subject Alternative Name: ${event.metadata.subjectAlternativeName}`}

-

{`TTL: ${event.metadata.ttl}`}

- {event.metadata.pkiCollectionId && ( -

{`Collection ID: ${event.metadata.pkiCollectionId}`}

- )} - - ); - case EventType.GET_CERTIFICATE_TEMPLATE: - case EventType.DELETE_CERTIFICATE_TEMPLATE: - return ( - -

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

- - ); - case EventType.CREATE_CERTIFICATE_TEMPLATE_EST_CONFIG: - case EventType.UPDATE_CERTIFICATE_TEMPLATE_EST_CONFIG: - return ( - -

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

-

{`Enabled: ${event.metadata.isEnabled}`}

- - ); - case EventType.GET_CERTIFICATE_TEMPLATE_EST_CONFIG: - return ( - -

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

- - ); - case EventType.GET_PROJECT_SLACK_CONFIG: - return ( - -

{`Project Slack Config ID: ${event.metadata.id}`}

- - ); - case EventType.UPDATE_PROJECT_SLACK_CONFIG: - return ( - -

{`Project Slack Config ID: ${event.metadata.id}`}

-

{`Slack integration ID: ${event.metadata.slackIntegrationId}`}

-

{`Access Request Notification Status: ${event.metadata.isAccessRequestNotificationEnabled}`}

-

{`Access Request Channels: ${event.metadata.accessRequestChannels}`}

-

{`Secret Approval Request Notification Status: ${event.metadata.isSecretRequestNotificationEnabled}`}

-

{`Secret Request Channels: ${event.metadata.secretRequestChannels}`}

- - ); - - case EventType.INTEGRATION_SYNCED: - return ( - - - -

{event.metadata.isSynced ? "Successful" : "Failed"}

-
-
- - ); - - case EventType.GET_WORKSPACE_KEY: - return ( - -

{`Key ID: ${event.metadata.keyId}`}

- - ); - - case EventType.LOGIN_IDENTITY_UNIVERSAL_AUTH: - case EventType.ADD_IDENTITY_UNIVERSAL_AUTH: - case EventType.UPDATE_IDENTITY_UNIVERSAL_AUTH: - case EventType.GET_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRETS: - return ( - -

{`Identity ID: ${event.metadata.identityId}`}

- - ); - - case EventType.CREATE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET: - case EventType.REVOKE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET: - return ( - -

{`Identity ID: ${event.metadata.identityId}`}

-

{`Client Secret ID: ${event.metadata.clientSecretId}`}

- - ); - - // ? If for some reason non the above events are matched, we will display the first 3 metadata items in the metadata object. - default: - if (metadataKeys.length) { - const maxMetadataLength = metadataKeys.length > 3 ? 3 : metadataKeys.length; - return ( - - {Object.entries(event.metadata) - .slice(0, maxMetadataLength) - .map(([key, value]) => { - return

{`${key}: ${value}`}

; - })} - - ); - } - return ; - } - }; - const formatDate = (dateToFormat: string) => { const date = new Date(dateToFormat); const year = date.getFullYear(); @@ -576,7 +91,7 @@ export const LogsTableRow = ({ auditLog, isOrgAuditLogs, showActorColumn }: Prop {isOrgAuditLogs && {auditLog?.projectName ?? auditLog?.projectId ?? "N/A"}} {showActorColumn && renderActor(auditLog.actor)} {renderSource()} - {renderMetadata(auditLog.event)} + {JSON.stringify(auditLog.event.metadata || {})} ); };