Skip to content

feat: CFO reconciliation (v1.1.0) + superadmin admin client (v0.3.0)#2

Merged
LucasLeguizamo merged 2 commits into
mainfrom
feat/cfo-reconciliation-and-admin
Jun 30, 2026
Merged

feat: CFO reconciliation (v1.1.0) + superadmin admin client (v0.3.0)#2
LucasLeguizamo merged 2 commits into
mainfrom
feat/cfo-reconciliation-and-admin

Conversation

@LucasLeguizamo

Copy link
Copy Markdown
Contributor

Qué

Propaga dos adiciones de contrato de free-admin al CLI. Bumps 0.1.1 → 0.3.0.

1. Conciliación CFO — contrato B2B v1.1.0

  • ft reports reconciliation (+ ft reports export reconciliation CSV)
  • Cruza Mercado Pago ↔ venta ↔ factura Siigo con un match_status por venta:
    OK · MISSING_INVOICE · MISSING_CUFE · AMOUNT_MISMATCH · MISSING_PAYMENT
  • Cierra issues #146

2. Superadmin — contrato nuevo /api/admin v1.0.0 (Opción B)

  • Namespace ft admin read-only: me, workspaces, users, plans, feature-flags, audit-log
  • Segundo cliente generado (src/admin-client/) con su propio singleton y auth
  • Auth = sesión SUPER_ADMIN better-auth (FT_ADMIN_SESSION), no API key
  • MVP con cookie; converge a service token → free-admin#157
  • Cierra issues #145

Pipeline

  • openapi-ts.admin.config.ts (segundo output) + sync-openapi:admin (FT_ADMIN_OPENAPI_URL)
  • generate ahora construye ambos clientes

Verificación

  • typecheck ✅ · tests ✅ · build ✅ · lint ✅
  • smokes: ft reports reconciliation --help, ft admin --help, fallo limpio sin FT_ADMIN_SESSION
  • Specs reales bajados de prod (B2B 1.1.0, admin 1.0.0)

Notas

  • Writes admin (suspend/restore/patch, impersonate, flags put) = segunda pasada
  • Clientes generados (src/client/, src/admin-client/) están gitignored; el contrato vive en openapi.json / admin-openapi.json

🤖 Generated with Claude Code

Two contract additions propagated from free-admin into the CLI:

- CFO reconciliation (B2B v1.1.0): `ft reports reconciliation` + CSV export,
  crossing Mercado Pago ↔ sale ↔ Siigo invoice with a per-sale match_status
  (MISSING_INVOICE / MISSING_CUFE / AMOUNT_MISMATCH / MISSING_PAYMENT / OK).
- Superadmin (Admin API v1.0.0, /api/admin): `ft admin` read-only namespace
  (me, workspaces, users, plans, feature-flags, audit-log) on a second
  generated client with its own auth — a SUPER_ADMIN better-auth session
  (FT_ADMIN_SESSION), not an API key. Service token is tracked in free-admin#157.

Pipeline: `sync-openapi:admin` + dual-output codegen. Bumps 0.1.1 → 0.3.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

Extend the CLI from read-only to full CRUD against the B2B v1 and admin
contracts, mirroring what the web app can do:

- resource.ts: generic create/update/delete + id-bound actions
  (events publish, sales cancel/refund, staff set-role). Bodies via
  --data (inline JSON or @file.json); delete confirms unless --yes.
- event-dates: dedicated group for the nested /events/{id}/dates resource.
- admin.ts: workspaces create/update/suspend/restore, users update,
  plans create/update, feature-flags set, impersonate/impersonate-stop.
- --csv on every list command (B2B + admin) for spreadsheets/accounting.
- lib/input.ts: parseData + interactive confirm (auto-aborts on non-TTY).
- toCsv (RFC 4180) in lib/output.ts.

Bump to 0.4.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@LucasLeguizamo LucasLeguizamo merged commit 863de8c into main Jun 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant