diff --git a/.planning/STATE.md b/.planning/STATE.md index a83e6f8..4d57c44 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -39,9 +39,13 @@ Last activity: 2026-07-29 — dominio Resend verificato, deploy su `hub.iamcaval - **Mailer verificato**: `sendEmail()` col template OTP reale ha restituito `{ok:true, id:…}`. - Verificato che quando Resend rifiuta, la route risponde comunque col messaggio neutro e logga l'errore lato server — il no-enumeration tiene anche a provider guasto. -### Da fare dopo il deploy +### ✅ Verificato in produzione (2026-07-29, commit 27da969) -Popolare la whitelist dei 3 clienti reali da `/admin/clients/` → "Accessi al portale". Non è bloccante (l'utente li re-invita): la migration ha seedato solo `mario@test.it` (cliente di test "Rossi Inc"), mentre Protocollo Estetico, Caruso Speaker e Teckell partono con whitelist vuota e finché è vuota il loro portale non è accessibile. +Su `hub.iamcavalli.net`: gate mostrato senza cookie e **zero dati di progetto nell'HTML** (12.487 byte); email fuori whitelist e in whitelist danno risposta identica e solo la seconda genera un OTP; codice sbagliato rifiutato, corretto accettato; cookie `ch_sess_` con `Secure` + `HttpOnly` + `SameSite=lax` + `Max-Age=7776000` (90 giorni); rientro col cookie mostra la dashboard; sessione di un cliente sull'URL di un altro mostra il gate. Nessun errore d'invio nei log del container. Dati di test rimossi, tabelle protette invariate (4/5/11/10). + +### Da fare + +Popolare la whitelist dei 3 clienti reali da `/admin/clients/` → "Accessi al portale", e reinviare loro il link. La migration aveva seedato solo `mario@test.it` (cliente di test "Rossi Inc"); Protocollo Estetico, Caruso Speaker e Teckell hanno whitelist vuota e finché lo è il loro portale non è accessibile. ### Cosa è stato consegnato in v2.3 (codice locale, buildato e testato)