Ga naar inhoud

Data model — wat we wel/niet bewaren

copilot_seats — actieve seats

Per pull-cycle vervangen we de hele snapshot van een org.

VeldBronHashed?
user_login_hashSHA256(lowercase login)
user_login_prefixEerste 4 chars + ’…‘partial
plan_type”business” / “enterprise”nee
assignee_teamNaam van de team die de seat toeweesnee
last_activity_atRFC3339 timestampnee
last_activity_editor”VSCode” / “JetBrains” / “Neovim” / …nee
pending_cancellation_dateDATE of NULLnee
snapshot_atWanneer wij gepulled hebbennee

copilot_events — audit-log entries

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

VeldBronHashed?
github_event_idGitHub’s _document_idnee
event_typeaction veld (bv. copilot.seat_assigned)nee
actor_login_hashSHA256(lowercase actor.login)
actor_login_prefixEerste 4 chars + ’…‘partial
target_login_hashSHA256(lowercase user.login)
target_login_prefixEerste 4 chars + ’…‘partial
occurred_at@timestamp veldnee
payload_jsonRest van GitHub’s payload, met PII-velden gefilterdpartial

Gefilterde payload-velden

Volgende velden uit GitHub’s audit-log entries worden voor opslag gedropt (zie isPIIField in hub/api/handlers/copilot_worker.go):

  • actor, user, actor_login, user_login — al opgeslagen als hash
  • actor_id, user_id — interne GitHub user IDs
  • actor_email, user_email, emails — e-mails
  • name, full_name — weergave-namen

Alles wat overblijft (action codes, org metadata, repository names, business-namen) gaat onveranderd in payload_json.

Wat we NIET hebben

  • Volledige username, e-mailadres, weergave-naam — gedropt bij ingest
  • Code-suggesties, prompts, completions — Copilot bewaart die zelf, wij hebben er geen toegang toe
  • IP-adressen — niet in GitHub’s admin API beschikbaar
  • Welke files de dev open had — privé bij de dev
  • Hoe vaak / hoe lang Copilot gebruikt is per dev — alleen last_activity_at; GitHub geeft geen granulaire tijd-tracking

Hoe een naam terugvinden

Het user_login_prefix veld toont jan… voor user jan.peeters. Match dit prefix in jouw HR-systeem of GitHub-organisatie-bestand om te weten wie het is. Wij hebben de mapping niet en willen die niet hebben.