Gate: nessun modulo può dichiarare ruoli in auth.ruoli #7
Notifications
Total Time Spent: 1 hour
LucaZanni
1 hour
No due date set.
Dependencies
No dependencies set.
Reference: devops/shared-actions#7
Reference in New Issue
Block a user
Perché
auth.ruoliappartiene a node-user-profiling e il suo contratto (seed13, esteso dalla migrazione19) vieta agli altri moduli di crearne. Non è una formalità: il claimroledel JWT è il primo ruolo applicativo dell'utente e PostgREST ci fa unSET ROLE, ma i ruoli PostgreSQL esistono solo per i tredici livelli di piattaforma. Un ruolo per-modulo in quel claim è una sessione che non parte.Il contratto prevedeva un controllo in CI che non è mai stato scritto, e nel frattempo nove microfrontend lo hanno disatteso: 21 ruoli creati, 27 su 35 senza omonimo PostgreSQL, e un'utenza di collaudo che PostgREST respingeva. Il riassetto ha sistemato lo stato; questo gate serve perché non si ripeta.
Cosa fa
Nuovo step in
quality-gates.yml, attivo per tutti i repo che usano il workflow condiviso. CercaINSERT INTO auth.ruolinei file.sqlsottomigrations/,seeds/,sql/edatabase/migrations/, e fallisce indicando cosa fare invece — dichiarare un gruppo d'area con i propri permessi, scegliendo il livello fra i tredici di piattaforma.Dettagli di implementazione:
ruolievita cheauth.ruolipermessifinisca fra i match;--sono ignorate: i commenti spesso spiegano proprio questa regola;una-tantumerollbacksono escluse: raccolgono delta generati e script di ritorno, strumenti operativi che fotografano stati passati, e riscriverli falserebbe la storia che documentano;L'eccezione
Nuovo input
owns-auth-roles(defaultfalse): solo node-user-profiling lo imposta atruenel proprioci.yml, perché è il proprietario dello schema. È l'unica deroga, ed è esplicita.Prima di attivarlo
I nove repository che dichiaravano ruoli sono stati ripuliti: la dichiarazione è sostituita da un commento che rimanda al file dei gruppi d'area e alla migrazione
20che li ha ritirati. Verificato su tutti e 30 i frontend con migrazioni e sui backend principali — nessuno fallisce, tranne node-user-profiling che ha la deroga.Nota
Il tag
v1, che tutti i repo referenziano, va spostato perché il gate entri in vigore.