Skip to content

feat: add SSO exception sync and KMS envelopes - #20

Merged
mawoole merged 1 commit into
mainfrom
codex/enterprise-sync-kms
Jul 30, 2026
Merged

mawoole merged 1 commit into
mainfrom
codex/enterprise-sync-kms

Conversation

@mawoole

@mawoole mawoole commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Ce qui change

  • ajoute une API de synchronisation des exceptions protégée par l’identité SSO transmise par Sites ;
  • partage automatiquement le registre entre les membres autorisés du site privé ;
  • chiffre chaque exception avec une clé de données AES-256-GCM indépendante ;
  • enveloppe les clés de données avec un secret Sites versionné ou une passerelle KMS HTTPS ;
  • pseudonymise les acteurs et les identifiants avant stockage D1 ;
  • ajoute une fusion optimiste qui préserve les révocations et évite les écrasements concurrents ;
  • ajoute un journal borné des écritures, la rotation de clés et la migration D1 ;
  • conserve le bundle chiffré comme solution hors ligne.

Impact sécurité

D1 ne contient aucun nom de serveur, motif, règle ou identifiant d’exception en clair. L’API refuse les requêtes non authentifiées, inter-origines ou surdimensionnées. Une ancienne clé peut rester disponible pendant une rotation bornée et les enregistrements sont réenveloppés automatiquement lors de leur prochaine synchronisation.

Validation

  • npm run lint
  • npm run test:unit — 88 tests réussis
  • npm run build
  • npm run test:rendered — 4 scénarios Worker réussis
  • inspection de la migration D1 générée
  • vérification que les enveloppes D1 ne contiennent aucune donnée métier en clair
  • git diff --check

@mawoole
mawoole marked this pull request as ready for review July 30, 2026 18:41
@mawoole
mawoole merged commit dbaa1f6 into main Jul 30, 2026
4 checks passed
@mawoole
mawoole deleted the codex/enterprise-sync-kms branch July 30, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant