- quality-gates.yml: nuovo step prima dell'install che scansiona i Dockerfile
del repository e segnala con ::warning file/riga, più una tabella nel job
summary, (a) il registry @pzeta scritto pzeta_touch o pzeta e (b) le ARG
usate in uno stage che non le dichiara
- solo avviso (continue-on-error, uscita sempre 0): bloccante oggi
fermerebbe i ~46 repo che reggono solo perché pinnano npm 11; lo diventa
con la tappa 2 di flux-repo#133
- analisi per stage in awk POSIX, collaudata anche con gawk --posix:
scada-runtime 19 avvisi, pzeta-king 2, vue-pzportal 1, node-xmlvalidation 0
Fixes#9 @1h30m
refs PZeta_Touch/flux-repo#133
- quality-gates.yml: `owns-auth-roles` esce dal campo `if:` dello step e viene
letta come env `OWNS_AUTH_ROLES`. In posizione `if:` i valori `with:` del
chiamante non raggiungono il contesto `inputs` di act_runner, quindi il gate
bocciava proprio node-user-profiling, l'unico repo autorizzato a dichiarare
ruoli: tre run rossi e ogni gate successivo saltato
- il nome del repository fa da rete di sicurezza accanto all'input: una deroga
dichiarata e una constatata, cosi' regge anche se `inputs` non arrivasse
- verificato sui tre casi: deroga via input, deroga via nome con input vuoto,
repo terzo con le stesse migrazioni (continua a fallire, nessuna regressione)
Fixes#8 @1h30m
- nuovo step in quality-gates.yml: cerca INSERT INTO auth.ruoli nei file .sql di
migrations, seeds, sql e database/migrations, e fallisce spiegando cosa fare
invece — dichiarare un gruppo d'area con i propri permessi, scegliendo il
livello fra i tredici di piattaforma
- il contratto esisteva dal seed 13 di node-user-profiling e prevedeva questo
controllo, che non era mai stato scritto: nove microfrontend lo hanno
disatteso, 21 ruoli creati e 27 su 35 senza omonimo PostgreSQL. Un ruolo cosi'
nel claim role del JWT e' un SET ROLE che non riesce, e l'utenza di collaudo
del timesheet ne era la prova
- il boundary dopo `ruoli` tiene fuori auth.ruolipermessi; le righe di commento
sono ignorate perche' spesso spiegano proprio questa regola
- una-tantum e rollback sono escluse: raccolgono delta generati e script di
ritorno, fotografie di stati passati che riscrivere falserebbe
- nuovo input owns-auth-roles (default false): solo node-user-profiling, che
possiede lo schema, lo mette a true. Unica deroga, ed e' esplicita
- verificato su tutti i 30 frontend con migrazioni e sui backend principali:
nessuno fallisce dopo la ripulitura dei nove repo
Fixes#7 @1h
- .gitea/workflows/*.yml: il registry @pzeta scritto in ~/.npmrc passa da
`pzeta_touch` a `PZeta_Touch` (12 file, 24 righe). E' la stessa causa dei
Dockerfile: i package-lock.json della flotta risolvono i tarball su
`.../api/packages/PZeta_Touch/npm/`, npm confronta gli URL come stringhe e
con la grafia minuscola tratta il pacchetto come tarball remota (EALLOWREMOTE
da npm 11) e non applica il _authToken
- e' il punto di massima leva: quality-gates.yml e docker-release.yml sono
chiamati via `uses:` da 51 repo `node-*` ed eseguono `npm ci` sul runner
PRIMA di `docker build`, quindi la release si ferma li' anche con il
Dockerfile gia' corretto
- il REGISTRY delle immagini (`gitea.pzetatouch.it/pzeta_touch`) resta
minuscolo: i nomi dei repository Docker devono esserlo, ed e' la grafia usata
dai defaults di flux-repo
refs PZeta_Touch/flux-repo#129 @45m
- quality-gates, dependency-check, dependency-outdated, npm-publish e
auto-release accettano ora working-directory (default "."), applicato via
defaults.run a livello di job: copre tutti gli step run senza toccare gli
step uses, che devono restare sulla root
- Allineate le varianti -github dei cinque workflow
- Sblocca i repo dove package.json non e' in root (pzeta-calendar in
typescript/, pzeta-king in server/), che finora dovevano rinunciare ai
template e reinlineare i job, perdendo la working-directory a ogni
riallineamento
- Retrocompatibile: con l'input omesso il comportamento resta identico
refs #4
gitea.com/actions/cache@v4 restituisce HTTP 500 in modo intermittente.
github.com/actions/cache@v4 già usato dal runner per altri step (setup-java, ecc.).