test(server-nestjs): parité reconcile-only des rôles admin keycloak + garde d'émission - #2581
test(server-nestjs): parité reconcile-only des rôles admin keycloak + garde d'émission#2581shikanime wants to merge 1 commit into
Conversation
f89913c to
b768efb
Compare
shikanime
left a comment
There was a problem hiding this comment.
Verdict : Changements demandés
Les gardes de parité (« cet évènement n'existe pas volontairement ») sont une bonne idée et les specs sont bien rédigées. En revanche la PR mélange trois sujets : la parité keycloak (le titre), l'audit migration-parité et la parité vault/zone + e2e, plus deux documents de notes internes. À scinder — le cœur keycloak est prêt.
| - `adminRole.*`, `cluster.*` — no nestjs module yet; these are the next migration units, not bugs today. | ||
| 3. **Redundant emission:** `projectMember.*` events have no consumer. Either add a thin `@OnEvent('projectMember.upsert')` that no-ops intentionally, or stop emitting. Not a bug; note for cleanup. | ||
|
|
||
| ## In-progress work preserved (do NOT clobber) |
There was a problem hiding this comment.
[🔴 Bloquant] Ce fichier (et TESTING-CAMPAIGN.md) sont des notes de travail internes (« in-progress work preserved », « per user », état d'un checkout local) : à retirer de la PR — ils ne sont pas destinés au dépôt. Le contenu utile (audit de parité) a sa place dans les issues #2574/#2576 ou une documentation validée, pas en pièces jointes de commit.
| await service.handleCron() | ||
|
|
||
| // Legacy fires `hook.adminRole.upsert(roleId)` on create/patch and | ||
| // `hook.adminRole.delete(role)` on delete (admin-role/business.ts). |
There was a problem hiding this comment.
| }) | ||
| }) | ||
|
|
||
| describe('migration parity: admin-role event path (legacy hook.adminRole.*)', () => { |
There was a problem hiding this comment.
[✨ Éloge] Les gardes négatives documentées (« pas d'emitAdminRoleEvent ») transforment un choix de migration en contrat testé — bon filet anti-régression pour le cutover.
aa86db0 to
597423f
Compare
… garde d'émission - keycloak.service.spec.ts : verrouille la synchronisation des groupes OIDC admin via le cron reconcile uniquement et ajoute une garde négative (pas d'emitAdminRoleEvent sur AppEventsService) pour forcer tout futur chemin évènementiel à passer par l'audit de parité. - app-events.service.spec.ts : épingle la surface d'émission publique (emitProjectEvent/emitProjectMemberEvent/emitRepositoryEvent) et interdit l'apparition accidentelle d'un emitZoneEvent tant que la migration zone n'est pas passée par l'audit de parité. Refs #2574 #2576 Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr> Change-Id: Ia5161f97df87545876558fcb51f463bb6a6a6964
597423f to
3c6b765
Compare
|

0 New Issues
0 Fixed Issues
0 Accepted Issues
No data about coverage (24.10% Estimated after merge)
Issues liées
#2574 #2576
Quel est le comportement actuel ?
Legacy déclenche
hook.adminRole.upsert/deleteà chaque create/patch/delete de rôle admin ; server-nestjs ne synchronise les groupes OIDC que via le cronreconcile, sans chemin évènementiel ni module admin-role.Quel est le nouveau comportement ?
keycloak.service.spec.ts: +35 lignes —describe('migration parity: admin-role event path'): (a) verrouille la sync des groupes OIDC via cron uniquement, (b) garde négative « pas d'emitAdminRoleEvent » sur AppEventsService pour forcer tout futur chemin évènementiel à passer par l'audit de parité.12/12 tests verts sur Node 24.
Cette PR introduit-elle un breaking change ?
Non.
Autres informations
Blocant cutover latent tracé côté migration (matrice u5/u9).