2. Cookie e storage utilizzati
Cookie di sessione Supabase (sb-access-token, sb-refresh-token e simili) — finalità: mantenere l'accesso autenticato. Durata: legata alla sessione/refresh token. Tecnico, esente da consenso. Se colleghi un secondo account sullo stesso browser (es. un account trainer e un account atleta), possono esistere due sessioni Supabase in parallelo sullo stesso dispositivo, una per ciascun account: vedi il cookie ds-active-profile qui sotto.
ds-active-profile — finalità: indicare quale dei due profili eventualmente collegati sullo stesso dispositivo è attivo in questo momento. Contenuto: solo il valore primary o secondary, nessun dato personale. Non è un token e non conferisce alcun privilegio: l'autorizzazione resta sempre sul token di sessione verificato e sulle policy di sicurezza a livello di riga del database. Durata: fino a 400 giorni. Tecnico, esente da consenso.
IndexedDB "ds-coaching-offline" — finalità: mettere in coda le serie di allenamento registrate senza connessione, per sincronizzarle appena torni online. Durata: fino alla sincronizzazione; viene svuotato automaticamente al logout. Tecnico, non è un cookie in senso stretto ma rientra nello stesso regime.
Cache del service worker — finalità: consentire il funzionamento offline dell'app (pagine e risorse statiche). Durata: fino all'aggiornamento della versione dell'app. Tecnico.
PostHog — strumento di analisi d'uso dell'app che l'applicazione prevede di utilizzare in forma aggregata, non per pubblicità né per profilazione individuale a fini commerciali verso terzi. È attualmente disattivato: il codice non lo inizializza, quindi non imposta alcun cookie e non riceve alcun dato. Se in futuro verrà attivato, sarà comunque configurato per non raccogliere automaticamente il contenuto delle pagine (autocapture) né registrare le sessioni (session replay), e per associare gli eventi solo all'identificativo interno dell'account, mai all'indirizzo email; questa pagina verrà aggiornata contestualmente.
localStorage "dsc:guida-vista" e "dsc:guida-invito-chiuso" — finalità: ricordare che hai già visto la guida introduttiva dell'app e che hai chiuso l'invito a rivederla in schermata iniziale. Contenuto: solo un numero di versione, nessun dato personale. Durata: finché non cancelli i dati del browser. Tecnico.
Cloudflare Turnstile — finalità: verifica anti-bot sul modulo di accesso, sul recupero/reimpostazione della password e sul collegamento di un secondo profilo allo stesso dispositivo, per impedire tentativi di accesso automatizzati. A differenza del player video più sotto, questo controllo non può attendere un tuo click: deve avvenire prima dell'invio del modulo, quindi lo script si carica automaticamente su quelle pagine. Nella configurazione attuale (modalità invisibile) non compare alcun elemento visibile finché non viene rilevata un'attività sospetta, e non imposta alcun cookie sul dominio dell'app: i soli dati che il tuo browser invia sono quelli ricevuti direttamente da Cloudflare (Cloudflare, Inc., USA) per completare la verifica — indirizzo IP, un identificatore tecnico della connessione (TLS fingerprint), user agent del browser. Tecnico/di sicurezza, esente da consenso.