From 2e3be1ca928d73895a3782973b0b092294a024ad Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sat, 15 Aug 2026 02:06:49 -0500 Subject: [PATCH] feat(api): monta los endpoints VCard en /api/v2 con scope propio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La integración VCard vivía solo en /api/v1, que autentica por cookie de sesión: obliga a manejar cookie jar, no permite allowlist por IP y no se puede revocar sin tocar la contraseña del usuario (ver docs/api-v1-contrato.md, punto 7). Ahora los mismos controladores están también bajo /api/v2/vcard/* con Bearer + IP + scope, que es lo que administra la pantalla /app/api-keys. El scope "vcard" acota la llave a estos 12 endpoints: sin él, esa integración tendría acceso a los otros ~300 de v2. /api/v1 se mantiene intacto — esto es un camino nuevo, no un reemplazo forzado, así que lo que ya está instalado sigue andando mientras migran. Se agregan dos chequeos porque el compilador no ve ninguno de los dos errores: que las 12 rutas queden registradas con su método y path (un typo se descubriría recién con un 404 del lado del integrador), y que todas figuren en el spec de /api/v2, que se mantiene a mano y se desincroniza en silencio. Co-Authored-By: Claude Sonnet 5 --- resources/views/api_keys.html | 4 +- rest/controllers/hermes_spec_controller.go | 18 ++++++ rest/routes/hermes.go | 28 +++++++++ rest/routes/hermes_spec_helper_test.go | 13 ++++ rest/routes/hermes_vcard_test.go | 72 ++++++++++++++++++++++ 5 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 rest/routes/hermes_spec_helper_test.go create mode 100644 rest/routes/hermes_vcard_test.go diff --git a/resources/views/api_keys.html b/resources/views/api_keys.html index 3e1e81f..0201976 100644 --- a/resources/views/api_keys.html +++ b/resources/views/api_keys.html @@ -27,7 +27,7 @@
- Solo estos scopes restringen de verdad hoy: oss, query_runner, usuarios, pasarelas. El resto de /api/v2 sigue funcionando únicamente con la llave maestra (fase 2 pendiente). + Solo estos scopes restringen de verdad hoy: oss, query_runner, usuarios, pasarelas, vcard. El resto de /api/v2 sigue funcionando únicamente con la llave maestra (fase 2 pendiente).
@@ -105,7 +105,7 @@
-