Das Archiv¶
Was der OS-Teil eines Exports enthält und wie er aufgebaut ist, für alle, die ihn mit einem Programm lesen. Was ein Export ist, steht unter Exporte; wie Sie einen nehmen, unter Exporte über die API.
Aufbau¶
Ein OS-Teil ist eine Zip-Datei. Jede Datei außer manifest.json, organisation.json und den Fotos unter
files/ enthält ein JSON-Objekt pro Zeile.
| Datei | Enthält | In |
|---|---|---|
organisation.json |
die Organisation: ihre id, ihr Name, die Organisation darüber, Status, Labels, Aufbewahrung des Prüfprotokolls, angelegt und Status geändert | dem Export einer Organisation |
control/membership.jsonl |
Mitgliedschaften: id, Organisation, Person, Status, angelegt und Status geändert | jedem Export |
control/person.jsonl |
die Personen der Mitgliedschaften: id, Adresse, Name, Status und Foto (die Adresse mit jeder Größe, und file, wo das Archiv das Foto selbst enthält); in Ihrem eigenen auch, ob Ihre Adresse bestätigt ist |
jedem Export |
files/photo/<id> |
das Foto einer Person, das vollständigste gespeicherte Bild, ohne Endung: sein Typ steht im Manifest; ihre Zeile in control/person.jsonl nennt es in photo.file, und nur was das Manifest nennt, ist in der Zip-Datei |
jedem Export, für die Personen, die die anfordernde Person sehen darf |
control/invitation.jsonl |
Einladungen: id, Mitgliedschaft, Adresse, Zweck, wer eingeladen hat, Status, Ablauf | jedem Export; in Ihrem eigenen die, die Sie angenommen haben |
control/coresubject.jsonl |
die id, unter der die KI-Funktionen jede Person in jeder Organisation kennen: so verbinden Sie dieses Archiv mit dem Teil der KI-Funktionen | jedem Export |
control/personpreference.jsonl |
Ihre Sprache, Startseite, Navigation, Benachrichtigungswahl und was Sie schon gesehen haben (etwa die Tour) | dem Kontoteil Ihres eigenen Exports |
control/controlevent.jsonl, control/organisationplan.jsonl, control/serviceexception.jsonl |
der Lebenslauf der Organisation, ihre Pläne und Ausnahmen | dem Export einer Organisation |
tables/member.jsonl, tables/groupmember.jsonl, tables/memberattribute.jsonl, tables/roleassignment.jsonl |
Mitglieder, ihre Gruppen, Werte und Rollen | jedem Export außer Ihrem Kontoteil |
tables/group.jsonl, tables/role.jsonl, tables/policy.jsonl, tables/attributedefinition.jsonl, tables/groupattribute.jsonl, tables/invitationgrant.jsonl |
Gruppen, eigene Rollen, das Regeldokument, Attribute und was Einladungen geben | dem Export einer Organisation |
tables/auditevent.jsonl |
das Prüfprotokoll; im Export eines Mitglieds oder Ihrem eigenen, was diese Person getan hat | jedem Export außer Ihrem Kontoteil |
tables/notification.jsonl, tables/notificationitem.jsonl, tables/notificationdefault.jsonl |
Benachrichtigungen, die Einträge, die Mitglieder sahen, die Standards der Organisation; der Export eines Mitglieds und Ihr eigener enthalten deren Einträge | wie gesagt |
tables/event.jsonl, tables/webhooksubscription.jsonl, tables/webhookdelivery.jsonl |
Ereignisse, Webhooks ohne ihre Geheimnisse, Zustellungen | dem Export einer Organisation |
tables/slackwebhook.jsonl |
Slack-Kanäle, die die Organisation verbunden hat, ohne ihre Adressen | dem Export einer Organisation |
tables/handover.jsonl, tables/handoverstep.jsonl |
der Direct-Chat-Schalter: jede Anfrage nach einem Mitarbeiter mit Stand, Anlass und Zeitpunkten und jeder Schritt dazu; nie ein Wort des Gesprächs | der Export einer Organisation |
manifest.json |
was das Archiv ist, als Letztes in der Zip-Datei | jedem Export |
Zeiten sind ISO 8601 in UTC (2026-10-17T09:14:03Z), und ids sind die, die die API nennt: eine Zeile
im Archiv und dasselbe aus der API bezeichnen dieselben Dinge.
Das Manifest¶
{"format": "artific-os/export", "format_version": 1, "export_id": "xpt_...",
"scope": "organisation", "organisation_id": "org_...", "membership_id": null,
"created_at": "2026-10-17T09:14:03Z", "completed_at": "2026-10-17T09:21:40Z",
"requested_by": "mem_...", "consistency": "per_table_batch",
"files": {"tables/auditevent.jsonl": {"rows": 48211, "sha256": "...", "withheld": 0},
"files/photo/per_...": {"bytes": 48113, "sha256": "...", "media_type": "image/webp"}},
"not_contained": {"corekey": "a key OS holds at Core, a secret"},
"core": {"export_id": "exp_...", "status": "running"}}
filesnennt je Datei die Zeilen, den SHA-256 ihres Inhalts und wie viele Zeilen weggelassen wurden, weil die anfordernde Person sie nicht sehen darf. Ein Foto steht darin mit seiner Größe in Bytes (bytes), seinem SHA-256 und seinem Typ (media_type, etwaimage/webp).not_containednennt, was absichtlich weggelassen wird, und warum.consistency: per_table_batch: OS liest eine Datei Stapel für Stapel, eine Zeile, die sich während des Exports änderte, kann also im alten oder im neuen Zustand stehen.corenennt den Teil der KI-Funktionen, wenn er angefordert wurde; seine Größe und sein Digest stehen am Export selbst (corein der Antwort der API).- Der SHA-256 der ganzen Zip-Datei steht am Export (
sha256) und imDigestdes Downloads, nie in der Zip-Datei.
Versionen¶
format_version ist 1. Felder und Dateien kommen hinzu, nie fallen sie weg oder werden umbenannt;
eine Änderung, die Ihren Leser brechen würde, erhöht format_version.