Pannello Admin
Il Pannello Admin (/ad/dashboard/) è un’area ad altissima sicurezza destinata unicamente all’amministratore del sistema. Separa le funzioni operative quotidiane (inserire prenotazioni, stampare ricevute) dalle funzioni di configurazione dell’app.
Autenticazione e Sicurezza
Non è sufficiente il normale login a Supabase per entrare qui. L’accesso richiede un token generato server-side:
- Il normale utente richiede l’accesso admin via API.
- Il server valida il ruolo.
- Se l’utente è idoneo, l’API
/api/admin/grant-cookieimposta un cookieHttpOnlychiamatoil_carrubo_admin_access=granted. - Il Vercel Edge Middleware blocca qualsiasi richiesta verso la rotta
/ad/*in assenza di questo cookie, reindirizzando al gateway (/admin-gateway.html).
Feature Flags (Feature Gating)
La funzionalità più potente dell’area admin è il “Feature Gating”, ovvero la possibilità di accendere e spegnere parti intere dell’applicazione con un clic, senza toccare il codice.
Questi toggle modificano i valori nella tabella impostazioni del database (es: feature.generator, feature.export).
Se una feature viene spenta:
- I pulsanti relativi spariscono dall’interfaccia utente (UI).
- Il Middleware blocca l’accesso diretto via URL alla pagina, reindirizzando l’utente alla schermata “Funzione Non Disponibile” (
/feature-disabled.html).
Modalità Manutenzione
Oltre alle singole feature, l’Admin può attivare la Manutenzione Globale (maintenance_mode).
Quando attivata, tutto il traffico non-API verso l’applicazione web viene dirottato verso la pagina /maintenance.html, permettendo all’amministratore di lavorare sul database in sicurezza senza che gli utenti finali creino dati parziali.
Il Middleware mantiene una cache in memoria di 30 secondi per queste impostazioni, in modo da non saturare il database ad ogni singola richiesta HTTP.