API Sistema, Storage e Utility

Questi endpoint gestiscono la configurazione pubblica, le query dirette al DB, la dashboard e le integrazioni cloud.

Configurazione e Stato

GET /api/config

(Endpoint Pubblico)
Restituisce le chiavi anonime per inizializzare il client Supabase dal frontend.

  • Risposta:
{
  "supabaseUrl": "https://xyz.supabase.co",
  "supabaseKey": "eyJhbGciOiJIUzI1NiIsInR..."
}

GET /api/version

Restituisce la versione attuale del package e le info sull’ultimo deploy. Ha una cache di 5 minuti.

  • Risposta:
{
  "version": "1.0.0",
  "latestCommit": "a1b2c3d",
  "vercelDeploy": "READY"
}

GET /api/settings/features

(Endpoint Pubblico)
Scarica tutti i “Feature Flags” dal database. Utilizzato dalla UI per mostrare o nascondere pulsanti.

  • Risposta: Array di oggetti con key e enabled.

POST /api/settings/features

Attiva o disattiva una specifica feature. (Richiede permessi Admin).

  • Body: { "key": "feature.export", "enabled": true }

GET /api/settings/maintenance

Controlla lo stato della Modalità Manutenzione.

Widget e Statistiche

GET /api/widget/data

Fornisce i dati per la card principale della Dashboard.

  • Risposta:
{
  "todayArrivals": 2,
  "todayDepartures": 1,
  "nextGuest": "Bianchi"
}

GET /api/map/top-countries

Restituisce l’aggregazione delle nazionalità per la mappa globale.

  • Query Params: ?limit=10
  • Risposta:
[
  { "country": "IT", "count": 150 },
  { "country": "US", "count": 45 }
]

Strumenti Sviluppatore e Storage

POST /api/querysql

Permette l’esecuzione di SQL crudo su Postgres via Supabase RPC. Estremamente pericoloso.

  • Auth: Necessaria
  • Body:
{
  "password": "La_Password_Di_Query_Dal_Env",
  "sql": "SELECT * FROM ospiti LIMIT 5;"
}

GET /api/storage/signed-url

Genera un URL firmato temporaneo per scaricare un file privato da Supabase Storage.

  • Query: ?bucket=documenti&file=123.pdf
  • Risposta: L’URL firmato valido per 60 secondi.

GET /api/storage/:bucket/:filename

Proxy che scarica il file dal bucket Supabase e lo serve direttamente al client (utile per aggirare le policy CORS in casi specifici).

GET /api/cli/auth/key

Restituisce la API_KEY del server all’utente che fa login tramite UI, per permettergli di configurare la CLI Carrubo locale.

GET /sitemap.xml

Genera la Sitemap XML dinamicamente basandosi sulle pagine pubbliche registrate nel sistema.