Versione, edizione e capacità dell'istanza
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://example.com/api/admin/v1/meta"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://example.com/api/admin/v1/meta';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/admin/v1/metaSpec 29.1 e 29.2. Non richiede autenticazione: l’app mobile e l’app desktop lo leggono prima dell’abbinamento per verificare la compatibilità (versione minima) e la modalità dell’istanza. Non contiene dati dello stabilimento né dati personali. Il pannello lo usa per rilevare l’edizione desktop (pagina pubblica e pagamenti online disattivati).
Responses
Sezione intitolata “Responses”Metadati dell’istanza
Metadati pubblici dell’istanza (spec 29.2). I client confrontano version con la propria versione minima supportata e min_client_versions con la propria versione.
object
Versione del server (tag di release, dev in sviluppo).
Versione del contratto (info.version di api/openapi.yaml).
server: binario o immagine Docker (VPS, server in sede). desktop: server interno dell’app desktop sul PC della cassa (spec 29.1). La modalità remota dell’app desktop è un client: l’istanza a cui si collega riporta la propria edizione.
Presente solo con edition=desktop.
object
local: server raggiungibile solo da 127.0.0.1. lan: anche dalla rete locale del lido, in TLS con certificato autogenerato.
Indirizzo sulla rete locale (solo mode=lan), es. https://192.168.1.20:8443.
SHA-256 del certificato TLS autogenerato, esadecimale maiuscolo separato da : (solo mode=lan).
QR code (SVG) dell’indirizzo del pannello sulla rete locale (lan_url + /admin/), da inquadrare con la fotocamera di un telefono o tablet per aprirlo nel browser (solo mode=lan). Non contiene codici di abbinamento: per l’app si usa il QR di Configurazione → Dispositivi.
Istante in cui il certificato autogenerato verrà rigenerato (30 giorni prima della scadenza, solo mode=lan): da quel momento cambia l’impronta, i dispositivi abbinati vanno riabbinati e i browser devono riaccettare il certificato. Il pannello avvisa quando mancano meno di 60 giorni.
Ora del server (UTC), per segnalare orologi dei dispositivi molto sfasati.
Versioni minime dei client che questa istanza supporta (semver).
object
object
Pagina pubblica e widget disponibili (falso nell’edizione desktop).
Pagamenti online disponibili (falso nell’edizione desktop, solo driver manual).
Abbinamento dei dispositivi possibile ora (falso nell’edizione desktop senza rete locale).
L’istanza accetta un ponte fiscale da un’app desktop in modalità remota.
Flusso SSE GET /api/admin/v1/stream disponibile.
Notifiche push tramite relay configurate (M7).
Slug stabili delle funzioni attive su questa istanza (es. bookings, cash, season_passes, public_page, online_payments, device_pairing, fiscal_bridge, desktop_backups, lan_mode). I client ignorano gli slug sconosciuti.
Example
{ "product": "arenile", "edition": "server", "desktop": { "mode": "local" }}
