Skip to Content

Strumento CLI (@auris/cli)

@auris/cli v0.1.0

@auris/cli è lo strumento a riga di comando ufficiale per Auris IAM. Usalo per gestire utenti, ruoli, applicazioni e audit log dal terminale — o nelle pipeline CI/CD e negli script di automazione.


Installazione

# Installazione globale (consigliata) npm install -g @auris/cli # Oppure esegui senza installare con npx npx @auris/cli --help

Verifica l’installazione:

auris --version

Autenticazione

Prima di usare la CLI, autenticati con il tuo tenant Auris. Esegui:

auris login

Si apre il browser e ti reindirizza alla pagina di login ospitata da Auris. Dopo l’accesso, la CLI memorizza i token di accesso e refresh in ~/.aurisrc (o nel percorso impostato da AURIS_CONFIG_PATH).

Per autenticarsi in modo non interattivo (per CI/CD), imposta la variabile d’ambiente AURIS_CLIENT_SECRET e la CLI userà automaticamente l’autenticazione M2M client_credentials:

export AURIS_DOMAIN=auth.tuodominio.com export AURIS_CLIENT_ID=app_xxxxx export AURIS_CLIENT_SECRET=cs_live_xxxxx export AURIS_TENANT=my-tenant auris users list

File di Configurazione (.aurisrc)

La CLI legge la configurazione da un file .aurisrc. La posizione predefinita è ~/.aurisrc. Il file viene creato automaticamente da auris init o auris login.

{ "domain": "auth.tuodominio.com", "clientId": "app_xxxxx", "tenant": "my-tenant", "outputFormat": "table" }

Opzioni di configurazione:

ChiaveTipoDefaultDescrizione
domainstring—Dominio del tenant Auris (senza https://)
clientIdstring—Client ID dell’applicazione
tenantstring'default'Identificativo tenant inviato come header x-tenant
outputFormat'table' | 'json''table'Formato di output predefinito

Usa --config /percorso/.aurisrc per specificare un file di configurazione alternativo per flussi di lavoro multi-tenant.


Variabili d’Ambiente

Tutte le opzioni di configurazione possono essere impostate tramite variabili d’ambiente. Le variabili d’ambiente hanno precedenza sul file di configurazione.

VariabileDescrizione
AURIS_DOMAINDominio del tenant Auris
AURIS_CLIENT_IDClient ID dell’applicazione
AURIS_CLIENT_SECRETClient secret (abilita l’autenticazione M2M — per CI/CD)
AURIS_TENANTIdentificativo tenant
AURIS_CONFIG_PATHPercorso al file .aurisrc (default: ~/.aurisrc)
AURIS_OUTPUT_FORMATtable o json (default: table)

Flag Globali

Questi flag si applicano a tutti i comandi:

FlagDescrizione
--jsonOutput come JSON (sovrascrive outputFormat nella configurazione)
--tenant <id>Sovrascrive il tenant per questo comando
--config <percorso>Usa un file di configurazione personalizzato
--no-colorDisabilita l’output colorato
--quietSopprime tutto l’output tranne gli errori
--verboseMostra i dettagli delle richieste/risposte HTTP
--helpMostra l’aiuto per il comando corrente
--versionMostra la versione della CLI

Comandi

auris init

Crea interattivamente un file .aurisrc nella directory corrente. Chiede dominio, client ID e tenant.

auris init
? Dominio Auris: auth.tuodominio.com ? Client ID: app_xxxxx ? Tenant: my-tenant ? Formato di output predefinito: table Creato .aurisrc nella directory corrente.

Usa --global per scrivere in ~/.aurisrc invece della directory corrente.

auris init --global

auris login

Autenticati con Auris. Apre una finestra del browser per il flusso OAuth2 PKCE. Memorizza i token risultanti nel file di configurazione.

auris login
# Specifica un tenant al momento del login auris login --tenant my-tenant

Dopo un login riuscito, la CLI mostra il nome e l’email dell’utente autenticato.


auris whoami

Mostra informazioni sull’utente attualmente autenticato.

auris whoami
Utente: Alice Smith Email: [email protected] ID: usr_abc123 Ruoli: admin, editor Tenant: my-tenant

auris test

Testa la connettività all’istanza Auris configurata. Verifica che il dominio sia raggiungibile, il client ID sia valido e il token corrente sia accettato.

auris test
Connessione a auth.tuodominio.com... OK Client ID app_xxxxx... valido Token... valido (scade tra 42 minuti) Tutti i controlli superati.

auris applications list

Elenca tutte le applicazioni nel tenant corrente.

auris applications list auris applications list --json
ID NOME TIPO STATO app_abc123 La Mia Web App WEB attivo app_def456 App Mobile MOBILE attivo app_ghi789 Servizio Reporting M2M attivo

Flag:

  • --type <web|mobile|api|m2m> — Filtra per tipo di applicazione
  • --status <active|inactive> — Filtra per stato

auris applications create

Crea una nuova applicazione in modo interattivo.

auris applications create
? Nome applicazione: La Mia Nuova App ? Tipo applicazione: WEB ? URL di callback: http://localhost:3000/callback ? URL di logout consentito: http://localhost:3000 Applicazione app_newxxx creata. Client ID: app_newxxx

Passa --non-interactive con i flag per creare senza prompt (utile negli script):

auris applications create \ --name "La Mia API" \ --type M2M \ --non-interactive

auris users list

Elenca gli utenti nel tenant corrente con filtri opzionali e paginazione.

auris users list auris users list --page 2 --limit 25 auris users list --role admin auris users list --search alice

Flag:

FlagDescrizione
--page <n>Numero di pagina (default: 1)
--limit <n>Utenti per pagina (default: 20, max: 100)
--search <query>Cerca per email, username o nome
--role <nome>Filtra per nome del ruolo
--status <enabled|disabled>Filtra per stato dell’account
--jsonOutput come array JSON
EMAIL NOME RUOLI STATO [email protected] Alice Smith admin abilitato [email protected] Bob Jones editor abilitato [email protected] Charlie Lee subscriber disabilitato

auris users get <id-o-email>

Ottieni informazioni dettagliate su un singolo utente.

auris users get [email protected] auris users get usr_abc123
ID: usr_abc123 Email: [email protected] Nome: Alice Smith Username: alice Ruoli: admin, editor Stato: abilitato Email verificata: sì Creato: 2024-01-15T10:30:00Z Ultimo accesso: 2026-02-14T09:00:00Z

auris users create

Crea un nuovo utente in modo interattivo o con flag.

# Interattivo auris users create # Non interattivo auris users create \ --email "[email protected]" \ --first-name "Nuovo" \ --last-name "Utente" \ --role "editor" \ --send-invite

Flag:

FlagDescrizione
--email <email>Indirizzo email dell’utente
--first-name <nome>Nome
--last-name <cognome>Cognome
--username <username>Username (auto-generato dall’email se omesso)
--role <nome>Assegna un ruolo (può essere specificato più volte)
--send-inviteInvia un’email di benvenuto/invito al nuovo utente
--non-interactiveNon chiedere — fallisce se i flag obbligatori mancano

auris users update <id-o-email>

Aggiorna il profilo di un utente esistente.

auris users update [email protected] --first-name "Alicia" auris users update usr_abc123 --role editor --role viewer

Flag:

FlagDescrizione
--first-name <nome>Aggiorna il nome
--last-name <cognome>Aggiorna il cognome
--username <username>Aggiorna l’username
--role <nome>Sostituisce tutti i ruoli con questi (ripetibile)
--enableRiabilita un account disabilitato
--disableDisabilita l’account

auris users delete <id-o-email>

Elimina un utente. Chiede conferma a meno che non venga passato --yes.

auris users delete [email protected] auris users delete [email protected] --yes

auris roles list

Elenca tutti i ruoli nel tenant corrente.

auris roles list
ID NOME DESCRIZIONE UTENTI role_abc admin Accesso amministrativo pieno 3 role_def editor Può modificare i contenuti 12 role_ghi viewer Accesso in sola lettura 45

auris roles get <id-o-nome>

Ottieni informazioni dettagliate su un ruolo inclusi i suoi permessi.

auris roles get admin auris roles get role_abc123

auris roles create

Crea un nuovo ruolo.

auris roles create --name "billing-manager" --description "Gestisce fatturazione e pagamenti"

auris permissions list

Elenca tutte le definizioni di permesso disponibili nel tenant.

auris permissions list auris permissions list --role admin auris permissions list --category billing

Flag:

FlagDescrizione
--role <nome>Mostra solo i permessi assegnati a questo ruolo
--category <nome>Filtra per categoria di permesso
--jsonOutput come JSON

auris logs

Visualizza gli audit log con filtri opzionali. Default: ultime 50 voci.

# Mostra log recenti auris logs # Filtra per livello auris logs --level error # Filtra per tipo di azione auris logs --action user.login # Filtra per intervallo di tempo auris logs --since "2026-02-01T00:00:00Z" --until "2026-02-17T23:59:59Z" # Trasmetti log in tempo reale (polling ogni 5 secondi) auris logs --follow # Output come JSON per il piping auris logs --json | jq '.[] | select(.level == "error")'

Flag:

FlagDescrizione
--level <info|warn|error>Filtra per livello di log
--action <tipo>Filtra per tipo di azione (es. user.login, role.updated)
--since <ISO8601>Inizio dell’intervallo di tempo
--until <ISO8601>Fine dell’intervallo di tempo
--limit <n>Numero massimo di voci (default: 50, max: 500)
--followPolling per nuove voci ogni 5 secondi (come tail -f)
--jsonOutput come array JSON

auris generate

Genera template di codice per i pattern di integrazione più comuni. Utile per avviare un nuovo progetto.

# Elenca i template disponibili auris generate --list
Template disponibili: login-page Pagina di login con pulsante Auris (React, Next.js, Vue, Svelte) callback-page Handler pagina callback OAuth2 middleware Middleware auth Next.js / Express api-route Handler route API protetta (Next.js, Express) php-login Flusso di login PHP (login.php + callback.php + dashboard.php)
# Genera una pagina di login Next.js auris generate login-page --framework nextjs --output ./app/auth/login/page.tsx # Genera un middleware Express auris generate middleware --framework express --output ./middleware/auth.js # Genera il flusso di login PHP auris generate php-login --output ./public/

Il codice generato è pre-compilato con il tuo dominio e client ID da .aurisrc.


Scripting

Usa --json per ottenere output leggibile dalla macchina, poi invialo in pipe a strumenti come jq:

# Conta utenti per ruolo auris users list --json --limit 500 | jq '[.[].roles[]] | group_by(.) | map({role: .[0], count: length})' # Trova tutti gli account disabilitati auris users list --json --status disabled | jq '.[] | .email' # Esporta i log di errore recenti in un file auris logs --level error --since "2026-02-01T00:00:00Z" --json > errori.json # Elimina un utente di test in un passo di teardown CI auris users delete "test-$(echo $BUILD_ID)@example.com" --yes

Codici di uscita:

CodiceSignificato
0Successo
1Errore generico
2Errore di configurazione (dominio mancante, client ID, ecc.)
3Errore di autenticazione (token non valido o scaduto)
4Non trovato (utente, ruolo, applicazione non esiste)
5Permesso negato (l’utente corrente non ha il permesso richiesto)

Usa i codici di uscita negli script shell per gestire gli errori:

auris users get "[email protected]" --quiet if [ $? -eq 4 ]; then echo "Utente non trovato, creazione in corso..." auris users create --email "[email protected]" --non-interactive fi

Integrazione CI/CD

GitHub Actions

# .github/workflows/provision-users.yml name: Provisioning utenti on: workflow_dispatch: jobs: provision: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Installa Auris CLI run: npm install -g @auris/cli - name: Provisioning utenti env: AURIS_DOMAIN: ${{ secrets.AURIS_DOMAIN }} AURIS_CLIENT_ID: ${{ secrets.AURIS_CLIENT_ID }} AURIS_CLIENT_SECRET: ${{ secrets.AURIS_CLIENT_SECRET }} AURIS_TENANT: ${{ secrets.AURIS_TENANT }} run: | auris users create \ --email "[email protected]" \ --first-name "Deploy" \ --last-name "Bot" \ --role "ci-runner" \ --non-interactive

Usando un File Script

#!/bin/bash # provision-tenant.sh set -e export AURIS_DOMAIN="auth.tuodominio.com" export AURIS_CLIENT_ID="app_xxxxx" export AURIS_CLIENT_SECRET="$CI_AURIS_SECRET" export AURIS_TENANT="my-tenant" echo "Creazione ruoli..." auris roles create --name "billing-admin" --description "Gestisce la fatturazione" auris roles create --name "report-viewer" --description "Accesso in sola lettura ai report" echo "Creazione utente admin iniziale..." auris users create \ --email "[email protected]" \ --first-name "Admin" \ --last-name "Utente" \ --role "admin" \ --send-invite \ --non-interactive echo "Completato."

Correlati