Accedere con keenauth login

keenauth login ti fa accedere con il tuo account della dashboard, così puoi gestire i tuoi ambienti dal terminale senza creare una chiave API. Per i job di CI e gli script, continua a usare una chiave API in KEENAUTH_API_KEY (vedi Interfaccia a riga di comando).

Comandi

Comando Cosa fa
keenauth login Accedi con il flusso del dispositivo: la CLI mostra un indirizzo e un codice, tu apri l'indirizzo su un dispositivo qualsiasi, accedi alla dashboard e inserisci il codice.
keenauth login --web Accedi nel browser su questo computer. La CLI apre la pagina di accesso e riceve il risultato su http://127.0.0.1:<port>/callback (oppure http://[::1]:<port>/callback); la richiesta è protetta con PKCE (S256), state e il parametro iss.
keenauth whoami Mostra l'utente con cui hai effettuato l'accesso, l'organizzazione e l'ambiente selezionato.
keenauth env use <environment_id> Seleziona l'ambiente che i comandi successivi gestiranno. Il control plane verifica che tu abbia un ruolo nella dashboard per quell'ambiente.
keenauth env list Elenca gli ambienti su cui puoi lavorare, dal control plane. L'ambiente selezionato con env use è contrassegnato con *.
keenauth logout Revoca la sessione sul server e la rimuove da questo computer.
keenauth login
keenauth env use env_01j9z3c0000000000000000000
keenauth users list

Quando KEENAUTH_API_KEY è impostata, ha sempre la precedenza; la sessione salvata viene usata solo se non è impostata alcuna chiave API.

Elencare gli ambienti

keenauth env list chiede al control plane gli ambienti dell'account con cui hai effettuato l'accesso e nei quali hai un ruolo nella dashboard (GET /v1/environments, vedi Elenca i tuoi ambienti per la CLI). Serve una sessione; se non ce l'hai, ti chiede di eseguire keenauth login.

Flag Descrizione
--limit Dimensione della pagina, da 1 a 100 (predefinito 20).
--after Il cursore stampato dalla pagina precedente (more results: --after <cursor>).
--all Segue le pagine ed elenca tutti gli ambienti.
-o table|json|yaml Formato di output; la tabella contrassegna l'ambiente selezionato con *, mentre in JSON e YAML ogni riga ha current: true per esso.

Un cursore --after non valido o di un'altra sessione viene rifiutato (invalid_cursor); esegui di nuovo il comando senza di esso.

Come funziona la sessione

Dove viene salvata la sessione

Cosa Dove
Issuer, ID utente, organizzazione, impronta della chiave DPoP, ambienti selezionati config.json in KEENAUTH_CONFIG_DIR, oppure in keenauth nella tua directory di configurazione utente (modalità 0600)
Refresh token e chiave privata DPoP Il portachiavi del sistema operativo: Keychain di macOS (security) o Secret Service su Linux (secret-tool)

I segreti vengono passati allo strumento del portachiavi tramite lo standard input, mai come argomenti del comando. Se nessun portachiavi è disponibile (per esempio su Windows, o su un server Linux senza Secret Service), keenauth login si interrompe con un errore. Puoi allora passare --insecure-storage per salvare il refresh token e la chiave privata DPoP non cifrati in credentials.json (modalità 0600), accanto a config.json. La CLI mostra un avviso: chiunque possa leggere quel file può agire al posto tuo finché la sessione non scade. Su macchine condivise preferisci una chiave API.

Impostazioni

Variabile Predefinito Descrizione
KEENAUTH_LOGIN_ISSUER https://login.keenauth.com Il server di accesso. Deve essere un indirizzo https.
KEENAUTH_CONTROL_URL https://api.keenauth.com/v1 Il control plane che emette i token di gestione. Deve essere un indirizzo https.
KEENAUTH_CONFIG_DIR la tua directory di configurazione utente + keenauth Dove viene conservato config.json (e, con --insecure-storage, credentials.json).

Errori

Messaggio Cosa fare
you are not signed in / your session has expired or was revoked Esegui di nuovo keenauth login. Codice di uscita 3.
no environment is selected Esegui keenauth env use <environment_id>.
environment … does not exist or you have no dashboard role in it Controlla l'ID nella dashboard o chiedi a un proprietario un ruolo.
no OS keychain is available Installa un portachiavi, usa --insecure-storage oppure usa una chiave API.