--login / --logout / --whoami è ancora accettata come alias per compatibilità retroattiva.
L’autenticazione è facoltativa. Le policy, la dashboard, la pagina /audit e tutte le altre funzioni locali funzionano esattamente allo stesso modo che tu sia connesso o meno. La superficie di login esiste affinché le funzioni che richiedono un’identità stabile (promemoria di re-audit oggi, altre in futuro) abbiano un punto di ancoraggio.
Flusso di accesso
~/.failproofai/auth.json (permessi 0600). La stessa sessione sarà quindi visibile nella dashboard in-app — cliccando su [ imposta un promemoria ] in /audit ti vedrà come connesso.
La dashboard espone lo stesso flusso come finestra di dialogo modale su /audit per gli utenti che non usano mai la CLI.
Disconnessione
~/.failproofai/auth.json. Se l’api-server è irraggiungibile, il file locale viene rimosso comunque — l’intenzione locale di disconnessione ha sempre la priorità.
Controllo identità
<email> (<user uuid>) e esce con codice 0 quando esiste una sessione valida, oppure stampa not signed in e esce con codice 1 altrimenti. Aggiorna silenziosamente il token di accesso in background se è entro un minuto dalla scadenza.
Promemoria persistente di re-audit
Quando clicchi su[ imposta un promemoria ] nella pagina /audit (o accedi tramite la finestra di dialogo modale a cui il pulsante è collegato), la dashboard scrive un piccolo file companion in ~/.failproofai/next-audit.json:
0600 come auth.json.
L’endpoint /api/auth/reminder della dashboard espone GET (lettura), POST (impostazione / riprogrammazione) e DELETE (cancellazione) e richiede una sessione attiva.
Cosa contiene ~/.failproofai/auth.json
0600 (lettura/scrittura solo del proprietario). Il token di accesso è un JWT HS256 di 1 ora; il token di refresh è una stringa casuale opaca di 256 bit che il server archivia come SHA-256(token). La riproduzione del token di refresh viene rilevata lato server e revoca ogni sessione dell’utente.
Variabili di ambiente
| Variabile | Predefinita | Scopo |
|---|---|---|
FAILPROOF_API_URL | https://api.befailproof.ai | Sovrascrivi l’URL base dell’api-server. Utile per lo sviluppo locale con un api-server self-hosted. |
FAILPROOFAI_AUTH_DIR | ~/.failproofai | Sovrascrivi dove viene archiviato auth.json. Principalmente per i test. |
Risoluzione dei problemi
“Could not reach the api-server” — la CLI non riesce ad aprire una connessione TCP aFAILPROOF_API_URL. Controlla la tua rete, oppure imposta FAILPROOF_API_URL se stai eseguendo un api-server self-hosted.
“Rate limited” — troppi tentativi di login in una finestra di 15 minuti per quell’email (5/email) o IP (20/IP), oppure un cooldown di resend di 30 secondi dopo la richiesta precedente per la stessa email. Il messaggio di errore include la finestra di retry-after in secondi.
Code rejected — l’OTP era sbagliato, scaduto, o la riga ha raggiunto il suo blocco di 5 tentativi errati. Esegui di nuovo failproofai auth login per richiedere un codice nuovo.
