Aller au contenu

Modèle de données — ce que nous gardons et pas

Chaque cycle de pull remplace tout le snapshot pour cette org.

Champ Source Haché?
user_login_hash SHA256(lowercase login) ✓
user_login_prefix 4 premiers chars + ‘…’ partiel
plan_type “business” / “enterprise” non
assignee_team Équipe qui a attribué le siège non
last_activity_at Timestamp RFC3339 non
last_activity_editor “VSCode” / “JetBrains” / … non
pending_cancellation_date DATE ou NULL non
snapshot_at Moment du pull non

Append-only. Idempotent sur (connection_id, github_event_id).

Champ Source Haché?
github_event_id _document_id GitHub non
event_type Champ action non
actor_login_hash SHA256(lowercase actor.login) ✓
actor_login_prefix 4 premiers chars + ‘…’ partiel
target_login_hash SHA256(lowercase user.login) ✓
target_login_prefix 4 premiers chars + ‘…’ partiel
occurred_at Champ @timestamp non
payload_json Reste de la payload GitHub, PII filtrées partiel

Ces champs des audit-log entries sont supprimés avant stockage :

  • actor, user, actor_login, user_login — déjà stockés comme hashes
  • actor_id, user_id — IDs GitHub internes
  • actor_email, user_email, emails
  • name, full_name

Le reste (action codes, métadonnées org, noms de repos) va tel quel dans payload_json.

  • Nom complet, email, nom d’affichage — supprimés à l’ingestion
  • Suggestions de code, prompts, completions — Copilot les garde, pas nous
  • Adresses IP — pas dans l’API admin GitHub
  • Fichiers ouverts par le dev — privé
  • Fréquence/durée d’usage par dev — seulement last_activity_at

Le user_login_prefix affiche jan… pour jan.peeters. Comparez ce préfixe avec votre système RH ou la liste des membres GitHub. Nous n’avons pas le mapping et ne le voulons pas.