Skip to main content

Architecture

Les audit logs Finkare utilisent une hash chain SHA-256 pour garantir l’immutabilité et la traçabilité de chaque opération sensible. Chaque entrée contient le hash de l’entrée précédente, formant une chaîne cryptographique inviolable.
Entry N: { data, hash: SHA-256(data + hash_N-1) }
Entry N+1: { data, hash: SHA-256(data + hash_N) }
Toute modification ou suppression d’une entrée invalide la chaîne et est immédiatement détectable.

Événements audités

Authentification

ÉvénementDescription
CLIENT_CREATEDCréation d’une nouvelle clé API
CLIENT_UPDATEDMise à jour d’un client (rotation de clé, scopes)
CLIENT_DISABLEDRévocation d’une clé API
AUTH_SUCCESSAuthentification réussie
AUTH_FAILURETentative d’authentification échouée
TOKEN_ISSUEDToken OAuth émis
TOKEN_REVOKEDToken OAuth révoqué

Actions métier

ÉvénementDescription
INVOICE_CREATEDFacture importée
INVOICE_CANCELLEDRecouvrement annulé
WORKFLOW_TRIGGEREDAction de workflow déclenchée (start, pause, resume, escalate)
PAYMENT_RECEIVEDPaiement enregistré
COMMUNICATION_SENTRelance envoyée (email, SMS, LRAR, appel)
ANTI_HARASSMENT_CORRECTIONCorrection appliquée par validateCascadePlan()

Administration

ÉvénementDescription
WEBHOOK_CREATEDWebhook configuré
WEBHOOK_DELETEDWebhook supprimé
SECRET_ROTATEDSecret de webhook régénéré
DATA_EXPORTExport de données (RGPD)
DATA_DELETIONEffacement de données (RGPD)

Structure d’une entrée

{
  "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"
}

Rétention

Type de logDurée de conservationJustification
Audit métier5 ansObligations légales (Code de commerce)
Audit sécurité3 ansConformité SOC 2
Corrections anti-harcèlement5 ansPreuve de conformité CPCE
Logs techniques (requêtes API)12 moisMonitoring et debug

SOC 2 — Readiness

L’architecture des audit logs Finkare est conçue pour la conformité SOC 2 Type II :
Critère SOC 2Implémentation
CC6.1 — Accès logiqueAuthentification API Key / OAuth, scopes granulaires
CC6.2 — Restrictions d’accèsIP whitelist, rate limiting, CORS restrictif
CC7.2 — MonitoringAudit logs immutables, hash chain SHA-256
CC7.3 — Réponse aux incidentsAlerting automatique, rotation de secrets
CC8.1 — Gestion des changementsVersioning API, changelog public

Intégrité de la chaîne

La vérification de l’intégrité de la hash chain peut être effectuée par un auditeur externe :
// 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;
}

Export pour audit

Les audit logs peuvent être exportés en format JSON ou CSV pour audit externe. Contactez hello@finkare.io pour organiser un accès auditeur dédié.