Audit Trail
Audit Trail fournit un journal d'événements immutable (append-only) stocké dans PostgreSQL avec garantie d'intégrité. Chaque événement est horodaté, signé et indexé pour un requêtage rapide. Le service est nativement conforme RGPD avec des fonctions d'export de données personnelles (droit d'accès) et d'anonymisation (droit à l'oubli). L'ingestion asynchrone via Redis Streams garantit des performances élevées sans impact sur vos services métier. Idéal pour la conformité réglementaire, les audits internes et la traçabilité des opérations.
Comment ça marche
Émission d'un événement
Envoyez un événement structuré (acteur, action, ressource, metadata) via l'API REST. L'ingestion est asynchrone via Redis Streams.
Persistance immutable
L'événement est persisté dans PostgreSQL en mode append-only avec horodatage, hash d'intégrité et index de recherche.
Requêtage et filtrage
Recherchez les événements par acteur, action, ressource, période ou metadata avec pagination et tri.
Export et anonymisation
Exportez les événements d'un utilisateur (RGPD accès) ou anonymisez-les (RGPD oubli) en un seul appel API.
Exemple d'appel API
import httpx
class=class="text-teal">"text-text-faint italic"># Log an audit event
response = httpx.post(
class="text-teal">"https:class="text-text-faint italicclass="text-teal">">//api.djinn.dev/v1/events",
headers={class="text-teal">"X-API-Key": class="text-teal">"djinn_live_..."},
json={
class="text-teal">"actor": {class="text-teal">"id": class="text-teal">"user_42", class="text-teal">"type": class="text-teal">"user", class="text-teal">"email": class="text-teal">"alice@acme.fr"},
class="text-teal">"action": class="text-teal">"document.extracted",
class="text-teal">"resource": {class="text-teal">"id": class="text-teal">"doc_789", class="text-teal">"type": class="text-teal">"invoice"},
class="text-teal">"metadata": {
class="text-teal">"confidence": 0.97,
class="text-teal">"processing_time_ms": 1250,
},
},
)
event = response.json()
print(fclass="text-teal">"Event ID: {event['id']}")
print(fclass="text-teal">"Timestamp: {event['timestamp']}")
print(fclass="text-teal">"Hash: {event['integrity_hash']}")
class=class="text-teal">"text-text-faint italic"># Query events for GDPR export
events = httpx.get(
class="text-teal">"https:class="text-text-faint italicclass="text-teal">">//api.djinn.dev/v1/events",
headers={class="text-teal">"X-API-Key": class="text-teal">"djinn_live_..."},
params={class="text-teal">"actor_id": class="text-teal">"user_42", class="text-teal">"limit": 100},
).json()
print(fclass="text-teal">"Total events: {events['total']}")Spécifications techniques
Prêt à intégrer ce service ?
Testez l'API gratuitement avec 1 000 appels offerts. Intégration en quelques minutes.