Repository navigation
[ONB-4067] Paridad con la API pública - #58
Draft
FranciscaOtero wants to merge 9 commits into
Draft
FranciscaOtero wants to merge 9 commits into
FranciscaOtero wants to merge 9 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Con --json, handleError emite {error: {type, code, param, message}} en stderr. --from-json lanza UsageError en vez de salir directo, y trigger lee el JSON dentro de su try. Los errores de la API también incluyen param.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
El factory pasa a generar cualquier operación a partir de ResourceDef, y el registry declara todos los recursos, verbos, acciones y parámetros de los specs main-api y core-api.
- Verbo update, acciones genéricas (cancel, pay, voucher_url, submit, ...) con confirmación para las destructivas, recursos anidados con path params y subida de archivos con --file
- Commander parsea y valida los flags: integer, boolean (también sin valor), listas repetibles o separadas por coma, y map para --metadata key=value
- Los errores de uso y los de Commander salen como JSON con --json, con códigos estables
- --idempotency-key en create y en las acciones POST, aviso de modo live al confirmar y delete --json con {id, deleted}
- Alias en kebab-case y sugerencias ante comandos mal escritos
- --type de v2 accounts list queda deprecado: se acepta, no se envía y avisa
Co-Authored-By: Claude Opus 5.5 <[email protected]>
fintoc --json commands lista cada comando con sus argumentos, flags (tipo, parámetro de la API y si va en path, query o body), opciones y alias. Co-Authored-By: Claude Opus 5.5 <[email protected]>
fixtures/published-surface.json parte de la superficie de v0.4.0 y suma los comandos nuevos. El test falla si se quita un comando, flag u opción, cambia un tipo o los argumentos, un flag pasa a ser obligatorio o un comando empieza a pedir confirmación. UPDATE_CLI_SURFACE=1 solo agrega, así que no puede esconder una ruptura. Co-Authored-By: Claude Opus 5.5 <[email protected]>
FranciscaOtero
force-pushed
the
compose/paridad-api-publica-1bb9
branch
from
October 30, 2026 20:04
8e7db45 to
2c17338
Compare
…a mano - logout, config set, open y doctor imprimen JSON con --json; doctor entrega cada chequeo con su estado - login usa la misma confirmación que el resto (stderr, No por defecto, "Aborted.") y, con --api-key y --json, imprime el resultado en JSON - Los errores de config set y login pasan por UsageError, así que también salen en JSON - webhooks listen ya no se cae sin API key: el error pasa por handleError - Los mensajes de JWS listan todos los comandos que firman Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Los flags compartidos usan el mismo texto en todos los recursos, con reglas comunes para valores, notas por país, montos y fechas - Mensajes de éxito con mayúscula y el ID del objeto, y confirmaciones que se leen bien (remove lines from invoice 'in_1') - Los recursos que existen en v1 y v2 dicen a qué API pertenecen, y la ayuda usa Options, ID y sentence case en todos lados - transfers return recibe el ID como argumento posicional, check_eligibility es una escritura y los path params faltantes quedan marcados - Los flags obligatorios, incluidos los path params, fallan con el mismo mensaje y sus hints de uso - Tests de estilo que fallan si una descripción se sale de la guía o si un flag compartido cambia de texto Co-Authored-By: Claude Opus 5.5 <[email protected]>
login, config, doctor, open, trigger, webhooks y commands aparecen con kind "utility", sus argumentos y sus opciones, leídos del árbol de Commander. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…o mantener la compatibilidad Co-Authored-By: Claude Opus 5.5 <[email protected]>
FranciscaOtero
force-pushed
the
compose/paridad-api-publica-1bb9
branch
from
October 30, 2026 20:46
2c17338 to
8c7314d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
La CLI solo cubría una parte de la API pública. Este PR la deja al día con los specs OpenAPI (
main-api.jsonde fintoc-rails ycore-api.jsonde pacioli): todas las operaciones públicas de/v1y/v2tienen comando, y sus parámetros tienen flag.Que hay de nuevo?
fintocsube a 1.30.1, que trae la subida de documentos de disputas y los query params de refresh intents.update, acciones declaradas en el registry (cancel,pay,void,voucher_url,submit, etc.), recursos anidados (v2 subscription_items,v2 invoice_lines) y subida de archivos con--file. Hoy son 147 comandos.--metadata key=value(repetible) en todo lo que acepta metadata, y los parámetros que faltaban según los specs.--json, todos los errores salen como JSON en stderr contype,codeestable yparam, y no se escribe nada más en stderrfintoc --json commandslista cada comando con sus flags y el parámetro de la API que mandansubmit-for-review) y sugerencias ante typoscreatey las acciones POST (pay,cancel,return, ...) aceptan--idempotency-keylistavisa cuando puede haber más resultados que--limit(sin--json, para no ensuciar stderr)argParser,makeOptionMandatory,helpGroup). La ayuda muestra primero los parámetros de la API.Tests
fintoc commandsbackward-compat.test.tscompara el registry con la superficie publicada (fixtures/published-surface.json, que parte de v0.4.0). Falla si se quita un comando, flag u opción, cambia un tipo, un flag pasa a ser obligatorio o un comando empieza a pedir confirmación. Regenerarlo solo agrega, así que no puede esconder una rupturaConsideraciones
mainy los 33 comandos publicados conservan sus flags, tipos y argumentos.--typedev2 accounts list, que la API ignoraba, queda deprecado: se acepta, avisa y no se envía.delete --jsonimprime{id, deleted}.items,lines,transfers) y campos ennullsiguen yendo por--from-json.--dry-run, cursores de paginación (starting_after) y ejemplos en--help.🤖 Generated with Claude Code