App öffnen
Moonborn — Developers

Audit-Log-Export

Exportiere den hash-chained Audit-Log als signiertes Archiv. Verifiziere die Chain offline; archiviere in deinem eigenen Retention-System.

Der Audit-Log ist hash-chained und immutable. Exportiere ihn für offline-Archivierung in deinem Retention-System; verifiziere, dass die Chain nicht getampered wurde.

Export anfordern

const exportJob = await client.audit.requestExport({
  workspaceId: 'ws_...',
  range: { from: '2026-01-01', to: '2026-12-31' },
  format: 'jsonl',
});
 
console.log(exportJob.id); // für Status pollen

format: jsonl (Standard), csv, parquet.

Auf Completion pollen

let status = exportJob.status;
while (status === 'pending' || status === 'running') {
  await new Promise((r) => setTimeout(r, 5000));
  const fresh = await client.audit.getExport({ id: exportJob.id });
  status = fresh.status;
  if (status === 'ready') {
    console.log(fresh.downloadUrl); // signierte S3-URL, 24h gültig
    console.log(fresh.sha256);      // Archiv-Checksum
    console.log(fresh.chainSeed);   // Hash-Chain-Root für Verifikation
  }
}

Chain offline verifizieren

import { createHash } from 'node:crypto';
 
let expected = exportJob.chainSeed;
for (const event of events) {
  const computed = createHash('sha256')
    .update(JSON.stringify(event.payload) + expected)
    .digest('hex');
  if (computed !== event.hash) {
    throw new Error(`Tamper at event ${event.id}`);
  }
  expected = event.hash;
}

Wenn die Verifikation passiert, ist dein Archiv beweisbar unberührt.

Retention

Export-Artefakte werden 30 Tage gehalten, dann von der Moonborn- seitigen Storage gelöscht. Lade in dein eigenes System innerhalb des Grace-Fensters herunter.

Scope

Per Default workspace-scoped. Org-weite Exports erfordern die owner-Rolle und ein explizites orgWide: true-Flag.

Tarif

Team und höher.

Verwandt