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"; type Props = { auditLog: AuditLog; }; export const LogsTableRow = ({ auditLog }: Props) => { const renderActor = (actor: Actor) => { switch (actor.type) { case ActorType.USER: return (

{actor.metadata.email}

User

); case ActorType.SERVICE: return (

{`${actor.metadata.name}`}

Service token

); case ActorType.IDENTITY: return (

{`${actor.metadata.name}`}

Machine Identity

); default: return ; } }; const renderMetadata = (event: Event) => { 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}`}

{`Webhook URL: ${event.metadata.webhookUrl}`}

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

); case EventType.UPDATE_WEBHOOK_STATUS: return (

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

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

{`Webhook URL: ${event.metadata.webhookUrl}`}

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

); case EventType.DELETE_WEBHOOK: return (

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

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

{`Webhook URL: ${event.metadata.webhookUrl}`}

{`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.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}`}

); default: return ; } }; const formatDate = (dateToFormat: string) => { const date = new Date(dateToFormat); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, "0"); const day = String(date.getDate()).padStart(2, "0"); let hours = date.getHours(); const minutes = String(date.getMinutes()).padStart(2, "0"); // convert from 24h to 12h format const period = hours >= 12 ? "PM" : "AM"; hours %= 12; hours = hours || 12; // the hour '0' should be '12' const formattedDate = `${day}-${month}-${year} at ${hours}:${minutes} ${period}`; return formattedDate; }; return ( {formatDate(auditLog.createdAt)} {`${eventToNameMap[auditLog.event.type]}`} {renderActor(auditLog.actor)}

{userAgentTTypeoNameMap[auditLog.userAgentType]}

{auditLog.ipAddress}

{renderMetadata(auditLog.event)} ); };