Die CLI nutzt denselben Auth-Flow wie alle anderen aYOUne-Clients: OAuth2-PKCE gegen auth.ayoune.app, JWT-Tokens mit 60-Minuten-Lifetime und automatischem Refresh 5 Minuten vor Ablauf.
Flow
ay loginstartet einen lokalen HTTP-Listener auf einem freien Port.- Browser öffnet
https://auth.ayoune.app/?continue=http://localhost:{port}&code_challenge=.... - Nach Login redirected der Auth-Service mit
?code=...zurück auf den Listener. - CLI tauscht Code gegen
{ accessToken, refreshToken }via/oauth/token. - Tokens werden in
~/.aYOUne/storage/tokens.jsonabgelegt (OS-Dateirechte0600).
Token-Lifecycle
| Token | TTL | Refresh |
|---|---|---|
accessToken |
60 min | Automatisch 55min nach Ausstellung |
refreshToken |
30 Tage | Nur beim Re-Login erneuert |
Wenn der Refresh fehlschlägt (z.B. Refresh-Token expired), wird der User zum erneuten ay login aufgefordert.
Service-Accounts (Headless)
Für CI/CD + scheduled Scripts: API-Keys statt Browser-Login.
ay login --api-key $AYOUNE_API_KEY
API-Keys werden pro Customer im Admin-UI angelegt (mobile-app → Einstellungen → Integrationen → API-Keys). Sie haben dieselben Rechte wie der erzeugende User und können widerrufen werden.
Rechte-Scope
Die CLI respektiert die serverseitigen Rechte-Gates (<module>.<entity>.<verb>, z.B. crm.consumers.read). Unzureichende Rechte resultieren in HTTP-403 mit klarer Meldung.
Prüfen, welche Module dem aktiven User zugänglich sind:
ay access