Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Logs d’audit immutables avec hash chain SHA-256, prêts pour la conformité SOC 2.
Entry N: { data, hash: SHA-256(data + hash_N-1) } Entry N+1: { data, hash: SHA-256(data + hash_N) }
CLIENT_CREATED
CLIENT_UPDATED
CLIENT_DISABLED
AUTH_SUCCESS
AUTH_FAILURE
TOKEN_ISSUED
TOKEN_REVOKED
INVOICE_CREATED
INVOICE_CANCELLED
WORKFLOW_TRIGGERED
PAYMENT_RECEIVED
COMMUNICATION_SENT
ANTI_HARASSMENT_CORRECTION
WEBHOOK_CREATED
WEBHOOK_DELETED
SECRET_ROTATED
DATA_EXPORT
DATA_DELETION
{ "id": "audit_a1b2c3d4", "type": "INVOICE_CREATED", "timestamp": "2026-04-08T10:00:00.000Z", "clientId": "fk_client_mgen_prod", "companyId": "company_abc123", "requestId": "req_xyz789", "outcome": "success", "metadata": { "invoiceId": "c3d4e5f6-a1b2-7890-cdef-1234567890ab", "invoiceNumber": "FAC-2026-042", "amountCents": 285000 }, "hash": "a7f3b2c1d4e5...sha256", "previousHash": "e5d4c3b2a1f0...sha256" }
// Pseudo-code de vérification function verifyChain(entries: AuditEntry[]): boolean { for (let i = 1; i < entries.length; i++) { const expectedHash = sha256( JSON.stringify(entries[i].data) + entries[i - 1].hash ); if (entries[i].hash !== expectedHash) { console.error(`Chaîne brisée à l'entrée ${i}`); return false; } } return true; }