Skip to content

feat(login): el login va por @faable/auth-sdk e identifica al CLI como faable-cli - #8

Merged
boyander merged 2 commits into
mainfrom
feat/login-through-auth-sdk
Sep 15, 2026
Merged

boyander merged 2 commits into
mainfrom
feat/login-through-auth-sdk

Conversation

@boyander

Copy link
Copy Markdown
Member

Borrador hasta que @faable/auth-sdk 2.6.0 esté en npm (authBearer y el fix de precedencia de clientInfo.client); entonces npm install para refrescar el lockfile — hoy apunta a ^2.6.0 y npm ci fallará.

Qué cambia

  • src/api/auth.ts: dos FaableAuthApianónimo (device code, /oauth/token, refresh; POST, sin reintentos) y authBearer (/me, y faable auth vía auth_admin.ts, con el getter de loadLiveCredentials).
  • clientInfo: { client: 'faable-cli/<version>', instance: '' }: identificado como el CLI y sin x-faable-instance (sería el hostname del usuario).
  • session.ts: la detección de user_suspended lee response.data igual que antes; solo cambia el tipo del catch.

Verificación

src/api/auth.test.ts (adapter, sin red): cabecera faable-cli/<version> dentro del tope de 32, sin x-faable-instance, bearer + x-faableauth-account, y un authorization_pending conserva el cuerpo OAuth y no se reintenta. tsc limpio.

Tras desplegar: la fila del CLI en la sección SDKs del tenant faable debe resolver a su app; si dice «No application identified», el UUID a fuego (c879023b-…) no es el client_id de client_69d68dc6ce7927172854acf2.

…o faable-cli

`src/api/auth.ts` era un axios a pelo contra faable.auth.faable.link, así
que todo el login del CLI (device code, token, refresh, /me) llegaba a auth
como «not identified». Ahora son dos `FaableAuthApi`: uno anónimo para el
device flow y el refresh (POST, que el fetcher no reintenta — cada
`authorization_pending` es un error esperado) y otro con `authBearer` para
`/me` y `faable auth`, con el getter de `loadLiveCredentials`. Ambos mandan
`x-faable-client: faable-cli/<version>` y ningún `x-faable-instance`, que
en un portátil sería el hostname del usuario en nuestro log de auditoría.
`session.ts` sigue leyendo `user_suspended` de `response.data`.
@boyander
boyander marked this pull request as ready for review September 15, 2026 15:35
@boyander
boyander merged commit 5d20eb0 into main Sep 15, 2026
1 check passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 3.3.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant