Skip to Content
Telemetria Anonima

Telemetria Anonima

SagraFacile Community Edition invia statistiche d’uso anonime per capire quali funzionalità vengono effettivamente utilizzate e su cosa concentrare lo sviluppo. Sono solo conteggi: nessun dato personale lascia mai la tua installazione.

La versione Cloud non usa questo meccanismo: i dati di utilizzo sono già nella piattaforma.

Cosa non raccogliamo mai

Questo elenco è vincolante. Nessuno di questi valori compare nel messaggio inviato, in nessuna forma:

  • Nomi, cognomi, indirizzi email, numeri di telefono
  • Nomi dell’organizzazione, degli eventi, delle aree o delle postazioni
  • Il menu: nomi dei prodotti, categorie, prezzi
  • Contenuto degli ordini, importi, incassi, dati fiscali
  • Nome host, indirizzo IP, dominio configurato
  • Credenziali, token, chiavi API
  • Log applicativi

Quando viene inviato

  • Una volta all’avvio dell’API, dopo circa un minuto
  • Poi una volta al giorno, finché il sistema resta acceso
  • Un ultimo invio quando disinstalli con --uninstall (vedi Disinstallazione)

Se l’invio non riesce — rete assente, server irraggiungibile — l’errore viene ignorato e si riprova al ciclo successivo. La telemetria non rallenta né blocca mai l’avvio o l’arresto del sistema.

Le build di sviluppo locali non inviano nulla: solo le immagini prodotte dalla pipeline ufficiale sono considerate valide.

Cosa viene inviato

Identità

CampoContenutoPerché
instanceIdUUID casuale dell’installazioneDistinguere 10 installazioni che pingano una volta al giorno da 1 installazione che pinga dieci volte. Non è collegato a te né ai tuoi dati.
dbInstanceIdSecondo UUID casuale, conservato solo nel volume PostgreSQLRiconoscere una cartella d’installazione copiata su una seconda macchina: instanceId viaggia con la cartella, questo no.
idSourcefile, db-adopted, new oppure db-fallbackSapere da dove è arrivata l’identità (vedi Il file di identità). Serve a verificare che un aggiornamento non abbia azzerato le installazioni già note.

Versione e ciclo di vita

CampoContenutoPerché
versionLa versione CE in esecuzioneSapere quante installazioni restano su versioni vecchie prima di rimuovere una funzionalità.
channelrelease per una versione rilasciata, edge per una build di sviluppoSeparare le installazioni reali dai test interni.
lifecyclestartup, periodic oppure goodbyeDistinguere un riavvio da una disinstallazione. Senza questo campo, un sistema spento a fine sagra e uno rimosso definitivamente sono indistinguibili.
firstInstallVersionLa versione con cui l’identità è stata creataCapire da quale versione parte chi installa oggi.
schemaVersionAttualmente 3Permette di far evolvere il formato senza rompere le installazioni non aggiornate.

Dimensione della configurazione

CampoContenuto
orgsCountNumero di organizzazioni
areasCountNumero di aree
eventsCountNumero di eventi
activeEventsCountNumero di eventi in stato attivo
menuItemsCountNumero di voci di menu

Sono conteggi: quante aree, non come si chiamano.

Funzionalità in uso

CampoContenuto
features.kdsEverUsedSe esiste almeno una postazione KDS
features.printingEverUsedSe esiste almeno una stampante configurata
features.preordineLinkedSe almeno un’area è collegata a SagraPreOrdine

Tre booleani. Servono a sapere se una funzionalità viene configurata o solo ignorata.

Attività

CampoContenuto
activity.operationalOrdersLast7DaysOrdini negli ultimi 7 giorni
activity.operationalOrdersLast30DaysOrdini negli ultimi 30 giorni
activity.totalOperationalOrdersOrdini totali
activity.lastOperationalOrderAtData e ora dell’ultimo ordine, se esiste

Sono conteggi di ordini non annullati e non pre-ordine. Il contenuto degli ordini e gli importi non vengono letti. Servono a distinguere un’installazione in produzione durante una sagra da una lasciata accesa e mai usata.

Ambiente

CampoContenuto
environment.osFamilylinux, windows, macos oppure unknown
environment.isContainerSe l’API gira dentro un container

Due valori grossolani, utili per sapere su cosa vale la pena fare i test. Non includono versione del sistema operativo, nome host né architettura.

Come disattivarla

Imposta questa variabile nel file .env della tua installazione:

SAGRAFACILE_TELEMETRY_DISABLED=true

Il file .env viene rigenerato da start.sh a ogni avvio a partire da sagrafacile_config.json. Modificarlo a mano non basta: rispondi “yes” alla domanda sulla telemetria nella sezione avanzata di start.sh (o start.bat), oppure imposta "SAGRAFACILE_TELEMETRY_DISABLED": true direttamente in sagrafacile_config.json.

Con la telemetria disattivata non viene inviato nulla: né i ping periodici, né quello di disinstallazione.

Il file di identità

L’identificativo anonimo dell’installazione è conservato in data/instance.json, nella cartella d’installazione, montata nel container come /app/data. È anche rispecchiato nel database.

Questo significa che l’identificativo sopravvive a:

  • la ricreazione dei container
  • un docker compose down -v, che cancella il volume del database
  • un ripristino da backup o uno spostamento su un altro server

Prima viveva solo nel database, quindi ogni ripristino faceva risultare la stessa installazione come nuova. Ora un ripristino resta la stessa installazione.

Il campo idSource racconta quale dei due archivi ha risposto:

ValoreSignificato
fileLetto da data/instance.json. È il caso normale.
db-adoptedIl file non c’era, l’identificativo già presente nel database è stato ripreso e scritto su disco. È quello che succede aggiornando un’installazione precedente.
newNessuno dei due archivi aveva un identificativo: installazione nuova.
db-fallbackIl file non è scrivibile (per esempio con un mount in sola lettura), quindi vale il database.

Per azzerare completamente l’identità servono entrambe le cancellazioni: il file data/instance.json e il volume del database.

Disinstallazione

./stop.sh --uninstall

Su Windows, stop.bat --uninstall.

L’operazione elimina definitivamente il volume del database — con tutti gli ordini, i menu e i report — i media caricati e la cartella ./data. Non è reversibile: fai un backup prima, se pensi di poterne avere ancora bisogno.

Prima di rimuovere qualsiasi cosa viene inviato un ultimo ping anonimo, con lifecycle uguale a goodbye. Contiene solo instanceId, version, lifecycle e schemaVersion: serve unicamente a distinguere una disinstallazione da un sistema semplicemente spento a fine stagione.

Se la telemetria è disattivata, questo invio non avviene.

Dove vengono inviati i dati

I dati vengono inviati a https://api.sagrafacile.it/api/ce-telemetry e sono usati solo internamente: non vengono condivisi con terze parti né usati per profilazione pubblicitaria.

Le versioni CE più vecchie inviano a app.sagrafacile.it, che inoltra /api/ce-telemetry a api.sagrafacile.it. L’inoltro è permanente, quindi anche le installazioni non aggiornate continuano a funzionare.

Last updated on