Aller au contenu

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

copilot_seats — sièges actifs

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

ChampSourceHaché?
user_login_hashSHA256(lowercase login)
user_login_prefix4 premiers chars + ’…‘partiel
plan_type”business” / “enterprise”non
assignee_teamÉquipe qui a attribué le siègenon
last_activity_atTimestamp RFC3339non
last_activity_editor”VSCode” / “JetBrains” / …non
pending_cancellation_dateDATE ou NULLnon
snapshot_atMoment du pullnon

copilot_events — entrées audit-log

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

ChampSourceHaché?
github_event_id_document_id GitHubnon
event_typeChamp actionnon
actor_login_hashSHA256(lowercase actor.login)
actor_login_prefix4 premiers chars + ’…‘partiel
target_login_hashSHA256(lowercase user.login)
target_login_prefix4 premiers chars + ’…‘partiel
occurred_atChamp @timestampnon
payload_jsonReste de la payload GitHub, PII filtréespartiel

Champs payload filtrés

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.

Ce que nous n’AVONS PAS

  • 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

Retrouver une personne depuis un hash

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.