Modèle de données
openai_users
Remplacé entièrement à chaque pull.
| Champ | Source | Haché? |
|---|---|---|
openai_user_id | user_... | non |
email_hash | SHA256(lowercase email) | ✓ |
email_prefix | 4 premiers chars avant @ | partiel |
role | ”owner” / “reader” | non |
added_at | Unix | non |
openai_projects
| Champ | Source | Haché? |
|---|---|---|
openai_project_id | proj_... | non |
name | Label fourni par l’opérateur | non |
status | ”active” / “archived” | non |
created_at_openai | Unix | non |
archived_at | Unix | non |
openai_api_keys
| Champ | Source | Haché? |
|---|---|---|
openai_key_id | key_... | non |
name | Label | non |
type | ”user” / “service_account” | non |
redacted_value | sk-...xxxx (4 derniers chars) | partiel |
owner_user_id | user_... pour user-keys | non |
created_at_openai | Unix | non |
last_used_at | Unix ou NULL | non |
openai_events
Append-only. Idempotent sur (connection_id, openai_event_id).
| Champ | Source | Haché? |
|---|---|---|
openai_event_id | OpenAI id | non |
event_type | OpenAI type | non |
actor_email_hash | SHA256(lowercase actor.session.user.email) | ✓ |
actor_email_prefix | 4 premiers chars + ’…‘ | partiel |
target_id | project.id | non |
occurred_at | OpenAI effective_at (Unix) | non |
payload_json | Reste de la payload, PII supprimées | partiel |
Champs payload filtrés
Ces clés sont supprimées :
actor,user,email,actor_email,session— déjà hachésname,full_name
Ce que nous n’AVONS PAS
- Emails complets — supprimés à l’ingestion
- Valeur complète de la clé API — seulement
sk-...4-char redacted - Ce qu’une clé a appelé — seulement
last_used_at - Contenu prompt/completion — pas dans l’admin API
- Conversations ChatGPT navigateur — Compliance API (Q4 2026)
Retrouver une personne depuis un hash
email_prefix affiche jan… pour jan.peeters@company.be. Comparez
avec votre SI RH ou LDAP. Nous n’avons pas le mapping.