Aller au contenu

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"}}
  • files donne 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 exemple image/webp).
  • not_contained nomme 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.
  • core nomme la partie des fonctions d'IA quand elle a été demandée ; sa taille et son empreinte figurent sur l'export lui-même (core dans la réponse de l'API).
  • Le SHA-256 du zip entier figure sur l'export (sha256) et dans le Digest du 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.