Skip to Content

Audit API

⚡ 5 min read

The trackUserAction() method records actions for audit logs (method name is fixed; tag identifies the event). Use it for sensitive operations, compliance, and activity trails.

Login / logout are not automatic. After hosted sign-in succeeds, and before token.signOut(), call trackUserAction with member:login / member:signout.


trackUserAction()

Records a user action for audit logging. Supports severity levels, success/failure status, and optional metadata

transcodes.trackUserAction( event: { tag: string; severity?: 'low' | 'medium' | 'high'; status?: boolean; error?: string; metadata?: Record<string, unknown>; page?: string; }, options?: { requireAuth?: boolean; webhookNotification?: boolean; memberId?: string; projectId?: string; } ): Promise<void>

Event Parameters

ParameterTypeRequiredDescription
tagstringYesTag identifying the action (e.g., ‘user:login’, ‘document:create’)
severity'low' | 'medium' | 'high'NoSeverity level. Default: 'low'
statusbooleanNoSuccess/failure. Default: true
errorstringNoError message when status: false
metadataRecord<string, unknown>NoAdditional metadata (e.g., { method: 'passkey' })
pagestringNoPage URL for the audit entry. Default: window.location.href

Options

ParameterTypeRequiredDescription
requireAuthbooleanNoIf true, calls redirectToSignIn() when no member is found. Default: true. Set false to no-op silently when unauthenticated (no anonymous log)
webhookNotificationbooleanNoSend Slack webhook regardless of severity. Default: false
memberIdstringNoSkip session lookup and POST as this member (advanced — e.g. step-up context)
projectIdstringNoProject ID paired with memberId (defaults to SDK project)

Examples

// After successful hosted sign-in await transcodes.trackUserAction({ tag: 'member:login', severity: 'medium', status: true, metadata: { method: 'hosted-redirect' }, }); // Before sign-out (session still valid) await transcodes.trackUserAction({ tag: 'member:signout', severity: 'medium', status: true, metadata: { method: 'manual' }, }); await transcodes.token.signOut();

Other actions

await transcodes.trackUserAction({ tag: 'document:create', metadata: { documentId: 'doc_123' }, });

With severity and status

await transcodes.trackUserAction({ tag: 'document:delete', severity: 'high', status: true, metadata: { documentId: 'doc_123' }, });

Failed action with error

await transcodes.trackUserAction( { tag: 'payment:process', severity: 'high', status: false, error: 'Payment gateway timeout', metadata: { amount: 99.99 }, }, { webhookNotification: true } );

Require authentication

// Redirects to Transcodes Auth if user not authenticated await transcodes.trackUserAction( { tag: 'sensitive:action', severity: 'medium' }, { requireAuth: true } );

Skip auth (fire-and-forget only when signed in)

await transcodes.trackUserAction( { tag: 'analytics:view', severity: 'low' }, { requireAuth: false } );

Common Tags

Tag PatternExample Use Case
user:loginMember login event (example tag)
user:registerNew member registration (example)
user:logoutMember sign-out (example tag)
document:createDocument created
document:deleteDocument deleted
payment:*Payment-related actions

Last updated on