L'archive¶
Ce que contient la partie OS d'un export et comment elle est organisée, pour qui la lit avec un programme. Ce qu'est un export figure dans Exports ; comment en prendre un dans Exports via l'API.
Organisation¶
Une partie OS est un zip. Chaque fichier sauf manifest.json, organisation.json et les photos sous
files/ contient un objet JSON par ligne.
| Fichier | Contient | Dans |
|---|---|---|
organisation.json |
l'organisation : son id, son nom, l'organisation au-dessus, son statut, ses labels, la conservation du journal d'audit, création et changement de statut | l'export d'une organisation |
control/membership.jsonl |
les adhésions : id, organisation, personne, statut, création et changement de statut | tout export |
control/person.jsonl |
les personnes des adhésions : id, adresse, nom, statut et photo (son adresse avec chaque taille, et file là où l'archive contient la photo elle-même) ; dans le vôtre, aussi si votre adresse est vérifiée |
tout export |
files/photo/<id> |
la photo d'une personne, l'image la plus complète conservée, sans extension : son type figure dans le manifeste ; sa ligne dans control/person.jsonl la nomme dans photo.file, et seul ce que le manifeste liste est dans le zip |
tout export, pour les personnes que le demandeur peut voir |
control/invitation.jsonl |
les invitations : id, adhésion, adresse, but, qui a invité, statut, expiration | tout export ; dans le vôtre, celles que vous avez acceptées |
control/coresubject.jsonl |
l'id sous lequel les fonctions d'IA connaissent chaque personne dans chaque organisation : c'est ainsi que vous joignez cette archive à la partie des fonctions d'IA | tout export |
control/personpreference.jsonl |
votre langue, page d'accueil, navigation, choix de notification et ce que vous avez déjà vu (comme la visite guidée) | la partie compte de votre propre export |
control/controlevent.jsonl, control/organisationplan.jsonl, control/serviceexception.jsonl |
la vie de l'organisation, ses offres et exceptions | l'export d'une organisation |
tables/member.jsonl, tables/groupmember.jsonl, tables/memberattribute.jsonl, tables/roleassignment.jsonl |
les membres, leurs groupes, valeurs et rôles | tout export sauf votre partie compte |
tables/group.jsonl, tables/role.jsonl, tables/policy.jsonl, tables/attributedefinition.jsonl, tables/groupattribute.jsonl, tables/invitationgrant.jsonl |
les groupes, les rôles propres, le document de règles, les attributs et ce que donnent les invitations | l'export d'une organisation |
tables/auditevent.jsonl |
le journal d'audit ; dans l'export d'un membre ou le vôtre, ce que cette personne a fait | tout export sauf votre partie compte |
tables/notification.jsonl, tables/notificationitem.jsonl, tables/notificationdefault.jsonl |
les notifications, les éléments que les membres ont vus, les valeurs par défaut de l'organisation ; l'export d'un membre et le vôtre contiennent leurs éléments | comme dit |
tables/event.jsonl, tables/webhooksubscription.jsonl, tables/webhookdelivery.jsonl |
les événements, les webhooks sans leurs secrets, les livraisons | l'export d'une organisation |
tables/slackwebhook.jsonl |
les canaux Slack connectés par l'organisation, sans leurs adresses | l'export d'une organisation |
tables/handover.jsonl, tables/handoverstep.jsonl |
le guichet Direct Chat : chaque demande d'un collaborateur avec son état, son déclencheur et ses moments, et chacune de ses étapes ; jamais un mot de la conversation | l'export d'une organisation |
manifest.json |
ce qu'est l'archive, en dernier dans le zip | tout export |
Les heures sont en ISO 8601 en UTC (2026-10-17T09:14:03Z), et les ids sont ceux que renvoie l'API :
une ligne de l'archive et la même chose venant de l'API désignent les mêmes éléments.
Le manifeste¶
{"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"}}
filesdonne pour chaque fichier le nombre de lignes, le SHA-256 de son contenu et combien de lignes ont été exclues parce que le demandeur ne peut pas les voir. Une photo y figure avec sa taille en octets (bytes), son SHA-256 et son type (media_type, par exempleimage/webp).not_containednomme ce qui est exclu volontairement, et pourquoi.consistency: per_table_batch: OS lit un fichier lot par lot, donc une ligne modifiée pendant l'export peut s'y trouver dans son ancien ou son nouvel état.corenomme la partie des fonctions d'IA quand elle a été demandée ; sa taille et son empreinte figurent sur l'export lui-même (coredans la réponse de l'API).- Le SHA-256 du zip entier figure sur l'export (
sha256) et dans leDigestdu téléchargement, jamais dans le zip.
Versions¶
format_version vaut 1. Des champs et des fichiers sont ajoutés, jamais retirés ni renommés ; un
changement qui casserait votre lecteur augmente format_version.