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 --helpVerifica l’installazione:
auris --versionAutenticazione
Prima di usare la CLI, autenticati con il tuo tenant Auris. Esegui:
auris loginSi 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 listFile 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:
| Chiave | Tipo | Default | Descrizione |
|---|---|---|---|
domain | string | — | Dominio del tenant Auris (senza https://) |
clientId | string | — | Client ID dell’applicazione |
tenant | string | '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.
| Variabile | Descrizione |
|---|---|
AURIS_DOMAIN | Dominio del tenant Auris |
AURIS_CLIENT_ID | Client ID dell’applicazione |
AURIS_CLIENT_SECRET | Client secret (abilita l’autenticazione M2M — per CI/CD) |
AURIS_TENANT | Identificativo tenant |
AURIS_CONFIG_PATH | Percorso al file .aurisrc (default: ~/.aurisrc) |
AURIS_OUTPUT_FORMAT | table o json (default: table) |
Flag Globali
Questi flag si applicano a tutti i comandi:
| Flag | Descrizione |
|---|---|
--json | Output come JSON (sovrascrive outputFormat nella configurazione) |
--tenant <id> | Sovrascrive il tenant per questo comando |
--config <percorso> | Usa un file di configurazione personalizzato |
--no-color | Disabilita l’output colorato |
--quiet | Sopprime tutto l’output tranne gli errori |
--verbose | Mostra i dettagli delle richieste/risposte HTTP |
--help | Mostra l’aiuto per il comando corrente |
--version | Mostra 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 --globalauris 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-tenantDopo un login riuscito, la CLI mostra il nome e l’email dell’utente autenticato.
auris whoami
Mostra informazioni sull’utente attualmente autenticato.
auris whoamiUtente: Alice Smith
Email: [email protected]
ID: usr_abc123
Ruoli: admin, editor
Tenant: my-tenantauris 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 testConnessione 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 --jsonID NOME TIPO STATO
app_abc123 La Mia Web App WEB attivo
app_def456 App Mobile MOBILE attivo
app_ghi789 Servizio Reporting M2M attivoFlag:
--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_newxxxPassa --non-interactive con i flag per creare senza prompt (utile negli script):
auris applications create \
--name "La Mia API" \
--type M2M \
--non-interactiveauris 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 aliceFlag:
| Flag | Descrizione |
|---|---|
--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 |
--json | Output come array JSON |
EMAIL NOME RUOLI STATO
[email protected] Alice Smith admin abilitato
[email protected] Bob Jones editor abilitato
[email protected] Charlie Lee subscriber disabilitatoauris users get <id-o-email>
Ottieni informazioni dettagliate su un singolo utente.
auris users get [email protected]
auris users get usr_abc123ID: 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:00Zauris 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-inviteFlag:
| Flag | Descrizione |
|---|---|
--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-invite | Invia un’email di benvenuto/invito al nuovo utente |
--non-interactive | Non 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 viewerFlag:
| Flag | Descrizione |
|---|---|
--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) |
--enable | Riabilita un account disabilitato |
--disable | Disabilita 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] --yesauris roles list
Elenca tutti i ruoli nel tenant corrente.
auris roles listID 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 45auris roles get <id-o-nome>
Ottieni informazioni dettagliate su un ruolo inclusi i suoi permessi.
auris roles get admin
auris roles get role_abc123auris 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 billingFlag:
| Flag | Descrizione |
|---|---|
--role <nome> | Mostra solo i permessi assegnati a questo ruolo |
--category <nome> | Filtra per categoria di permesso |
--json | Output 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:
| Flag | Descrizione |
|---|---|
--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) |
--follow | Polling per nuove voci ogni 5 secondi (come tail -f) |
--json | Output 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 --listTemplate 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" --yesCodici di uscita:
| Codice | Significato |
|---|---|
0 | Successo |
1 | Errore generico |
2 | Errore di configurazione (dominio mancante, client ID, ecc.) |
3 | Errore di autenticazione (token non valido o scaduto) |
4 | Non trovato (utente, ruolo, applicazione non esiste) |
5 | Permesso 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
fiIntegrazione 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-interactiveUsando 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
- SDK JavaScript — Per la gestione programmatica del tenant dal codice Node.js
- Riferimento REST API — API HTTP completa per l’automazione avanzata
- Audit Log — Formato dei log e tipi di azione disponibili