Skip to main content
failproofai auth login    # email + codice monouso
failproofai auth logout   # revoca questa sessione
failproofai auth whoami   # stampa l'identità dell'utente connesso
La forma legacy con flag --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 login
Richiede la tua email, invia un codice monouso a 6 cifre a quell’indirizzo, richiede il codice e al termine scrive ~/.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 logout
Revoca la sessione corrente sul server ed elimina ~/.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à

failproofai auth whoami
Stampa <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:
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
Questo file è associato all’email per cui è stato impostato — cambiando la sessione CLI su un account diverso nascondi qualsiasi promemoria che appartiene all’utente precedente. L’offset predefinito è 7 giorni, configurabile in seguito quando arriverà lo scheduler. Creato con permessi 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

{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
Creato con permessi 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

VariabilePredefinitaScopo
FAILPROOF_API_URLhttps://api.befailproof.aiSovrascrivi l’URL base dell’api-server. Utile per lo sviluppo locale con un api-server self-hosted.
FAILPROOFAI_AUTH_DIR~/.failproofaiSovrascrivi dove viene archiviato auth.json. Principalmente per i test.
Vedi Variabili di ambiente per l’elenco completo.

Risoluzione dei problemi

“Could not reach the api-server” — la CLI non riesce ad aprire una connessione TCP a FAILPROOF_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.