Sprint 8 · Mundo desarrolladores

MPA por dentro.
MAG por fuera.

Contrato oficial para integrar Roustix: REST, JWT, multi-tenant, /api/v1, webhooks y buenas prácticas. No es solo una referencia de endpoints.

Toda la operación.Una sola plataforma.

Sprint 8Estado
MAG-01 – 10✅ Entregado
Sprint 8✅ MAG v1.0 completo
MAG-01-PHIL

01 · Filosofía de la API

La forma oficial de integrarse.

MPA (05) describe la arquitectura interna. MAG (07) define el contrato externo.

#Principio
1REST predecible · JSON
2Tenant-first — toda operación en contexto de empresa
3Segura por defecto — JWT, roles, límites
4Versionada — /api/v1 estable
MAG-02-AUTH · Entregado

02 · Autenticación JWT

Una identidad.
Un token.
Una empresa.

JWT identifica usuario, tenant, rol, plan y módulos. Sin reenviar credenciales en cada solicitud.

POST/api/v1/auth/login
{ "token": "<jwt>", "expires_in": 86400, "user": { "id": 15, "nombre": "Ana García", "rol": "admin" }, "empresa": { "id": 4, "slug": "empresa-xyz", "nombre": "Empresa XYZ" } }

HS256 · SECRET_KEY · ±30 s skew · Refresh POST /api/v1/auth/refresh → MAG v2

MAG-03-TNT · Entregado

03 · Multi-tenant

Una plataforma.
Miles de empresas.
Cero mezcla de datos.

Tenant (Empresa) · middleware Flask · Regla de Oro · 404 anti-enumeración.

Usuario → Tenant → Plan → Módulos → Permisos → Acción
ComponenteEstado
JWT + middleware
Filtrado empresa_id
Multi-sede🟡
MAG-04-RES · Entregado

04 · Recursos REST

La API no expone tablas.
Expone recursos de negocio.

/api/v1
├── auth · me
├── maintenance/assets · work-orders
├── inventory/products · movements
├── purchasing · sales · crm
└── admin · platform

Contrato en inglés · GET POST · data+meta+links · idempotencia

MAG-05-NAM · Entregado

05 · Convenciones de nombres

Una API consistente
es una API predecible.

Style guide oficial · inglés en contrato · snake_case · ISO 8601 · UPPER_SNAKE_CASE errors

MAG-06-ERR · Entregado

06 · Manejo de errores

Los errores también
forman parte del contrato.

{ "error": { "code": "RESOURCE_NOT_FOUND", "message": "Activo no encontrado", "details": {} } }

Catálogo oficial · cross-tenant → 404 · X-Request-Id · sin stack traces

MAG-07-VER · Entregado

07 · Versionado

Una API cambia.
El contrato no se rompe.

/api/v1 · legacy + Deprecation/Sunset · OpenAPI por versión

MAG-08-HOOK · Entregado

08 · Webhooks

REST responde.
Webhooks notifican.

work_order.created · stock.low · X-Roustix-Signature · X-Event-Id

MAG-09-EX · Entregado

09 · Ejemplos y SDK

Una buena API se entiende.
Una excelente API también se ejecuta.

cURL · Python · JavaScript · ROUSTIX_API · OpenAPI → SDK · estructura alineada a MAG-04

POST/api/v1/auth/login
GET/api/v1/maintenance/assets
MAG-10-LIM · Entregado

10 · Límites y buenas prácticas

Una API rápida no basta.
Debe ser estable, segura y predecible.

Rate limit · timeouts · reintentos · paginación · caché · seguridad · checklist integradores

429RATE_LIMIT_EXCEEDED · Retry-After: 60
MAG v1.0Estado
MAG-01 – 10✅ Completo
Sprint 8✅ Finalizado

Siguiente: Sprint 9 · MSD v1.0 — SDK, OpenAPI y Developer Portal.