Skip to content

v0.12.1

Choose a tag to compare

@ami-facturadirecta ami-facturadirecta released this 27 Sep 15:51
· 1 commit to main since this release

Corregido

  • Las búsquedas y filtros con espacios (contacts list --search "Acme SL")
    fallaban con 400: el SDK Go codificaba el espacio como +, que la API
    rechaza ("must be url encoded"); ahora va como %20 (RFC 3986).
  • facturadirecta whoami y auth profile fallaban con un perfil de API key
    (HTTP 401: Es necesaria identificación para usar este servicio): llamaban
    a GET /profile, que solo admite OAuth, y las API keys son por empresa y
    no tienen usuario. Ahora detectan el perfil apikey y, sin pasar por
    /profile, devuelven la empresa de la clave (la de
    login --api-key --company; --company y FACTURADIRECTA_COMPANY siguen
    mandando): en JSON con authType: "apikey", company y companies (solo
    esa), y en la tabla como "Perfil con API key: empresa ". Comprueban
    además que la clave es válida para esa empresa con
    GET /{companyId}/apiKeyInfo e incluyen sus scopes (scopes en JSON); si
    la API responde 401/403, el error (auth_required) indica que la API key
    no es válida o ha sido revocada y cómo volver a iniciar sesión. Un perfil
    de API key sin empresa ya no consulta /profile en ningún comando: pide
    --company o un nuevo login.
  • Un 401 de la API (sesión caducada, API key no válida o revocada) se
    clasificaba como insufficient_scope y sugería facturadirecta login --scope full, que no lo arregla. Ahora es auth_required (exit 3) con el
    mensaje "La API no ha aceptado las credenciales (HTTP 401)…" y la pista
    facturadirecta login. El 403 sigue siendo insufficient_scope con la
    pista --scope full.
  • Las pistas de login (auth_required, readonly e insufficient_scope)
    añaden --profile <nombre> cuando el perfil activo no es el por defecto,
    para que el comando sugerido repare la sesión que ha fallado y no cree
    otra.
  • Cuando el refresh token OAuth ha caducado o ha sido revocado, el CLI
    devolvía un error genérico (internal, exit 1). Ahora es auth_required
    (exit 3) con la respuesta del servidor de identidad en detail y la pista
    de login; si lo que falla es la red al renovar, es network_error. El
    error "No hay sesión activa" del cliente HTTP también es auth_required.
  • --profile <nombre> (o FACTURADIRECTA_PROFILE) con un perfil que no
    existe devolvía un error genérico. Ahora es auth_required con la pista
    facturadirecta login --profile <nombre> y los perfiles disponibles en
    data.profiles.