API para acuerdos en Supabase, contactos, búsqueda de perfiles y relay interno hacia Trustless Work (clave solo en servidor).
- Node.js 20+
- pnpm o npm
- Proyecto Supabase con las tablas usadas por el frontend (
agreements,agreement_participants,agreement_activity,profiles,contacts,auth_users, …). Migraciones recomendadas:009_agreements_contract_id.sql,010_agreements_nest_columns.sql(columnas y checks que espera Nest).
Copiá .env.example a .env y completá valores. JWT_SECRET debe coincidir con el del frontend (ThalosFrontend).
SUPABASE_URL: misma URL pública del proyecto (sin depender deNEXT_PUBLICen Nest).THALOS_INTERNAL_SECRET: compartido con Next enTHALOS_INTERNAL_SECRETpara/api/trustless/relay.
pnpm install
pnpm run start:devPor defecto escucha en el puerto 3001.
- Documentación interactiva (Swagger UI):
http://localhost:3001/v1/docs - OpenAPI JSON:
http://localhost:3001/v1/docs-json - Raíz del API (punteros):
GET http://localhost:3001/v1
| Prefijo | Auth | Descripción |
|---|---|---|
POST /v1/internal/trustless/relay |
Header x-thalos-internal-secret |
Proxy hacia Trustless Work (solo servidor Next) |
POST /v1/trustless/prepare |
Bearer JWT app | Mismo relay que arriba; respuesta incluye unsignedTransaction cuando TW la envía |
| `GET | POST | PATCH /v1/agreements/*` |
GET /v1/users/search |
Bearer JWT | Búsqueda de perfiles |
| `GET | POST | DELETE /v1/contacts` |
El navegador debe llamar al front en /api/thalos/... y /api/trustless/relay para no exponer secretos ni pelear CORS.
Ver docs/SCOPE.md.