--login / --logout / --whoami è ancora accettata come alias per compatibilità retroattiva.
L’autenticazione è facoltativa. Le politiche, la dashboard, la pagina /audit e tutte le altre funzioni locali funzionano esattamente allo stesso modo, che tu sia connesso o meno. La pagina di accesso esiste affinché le funzioni che richiedono un’identità stabile (promemoria per la re-audizione oggi, altre in futuro) abbiano un punto di ancoraggio.
Flusso di accesso
~/.failproofai/auth.json (modalità 0600). La stessa sessione è quindi visibile nella dashboard dell’app — facendo clic su [ set a reminder ] su /audit ti vedrà come connesso.
La dashboard espone lo stesso flusso come finestra di dialogo modale su /audit per gli utenti che non toccano mai la CLI.
Disconnessione
~/.failproofai/auth.json. Se il server API non è raggiungibile, il file locale viene comunque rimosso — l’intenzione locale di disconnessione ha sempre priorità.
Verifica identità
<email> (<user uuid>) ed esce con codice 0 quando esiste una sessione valida, oppure stampa not signed in ed esce con codice 1 in caso contrario. Aggiorna silenziosamente il token di accesso in background se è a meno di un minuto dalla scadenza.
Promemoria persistente per re-audizione
Quando fai clic su[ set a reminder ] sulla pagina /audit (o accedi tramite la finestra modale che il pulsante attiva), 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 (imposta / riprogramma) e DELETE (cancella) e richiede una sessione attiva.
Cosa contiene ~/.failproofai/auth.json
0600 (lettura/scrittura solo 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 memorizza come SHA-256(token). La riproduzione del token di refresh viene rilevata lato server e revoca tutte le sessioni per l’utente.
Variabili di ambiente
Consulta Variabili di ambiente per l’elenco completo.
Risoluzione dei problemi
“Could not reach the api-server” — la CLI non può aprire una connessione TCP aFAILPROOF_API_URL. Controlla la tua rete o imposta FAILPROOF_API_URL se stai utilizzando un server API self-hosted.
“Rate limited” — troppi tentativi di accesso in una finestra di 15 minuti per quell’email (5/email) o IP (20/IP), oppure un cooldown di ripetizione di 30 secondi dopo la richiesta precedente per la stessa email. Il messaggio di errore include la finestra retry-after in secondi.
Code rejected — l’OTP era errato, scaduto, oppure la riga ha raggiunto il blocco di 5 tentativi sbagliati. Esegui nuovamente failproofai auth login per richiedere un codice nuovo.
