Saltar al contenido principal
Migo Docs

Permisos (RBAC)

Migo usa control de acceso basado en roles (RBAC). Los usuarios tienen roles, los roles tienen permisos, y cada endpoint declara qué permiso(s) requiere.

Conceptos centrales

  • Permiso — una capacidad granular expresada como un par { action, resource } (p. ej. la acción checkCvv sobre el recurso cards, la acción transferBetweenCards sobre el recurso cards). Los permisos se identifican internamente por un permissionId numérico.
  • Rol — un paquete nombrado de permisos (p. ej. admin, support). Los permisos de un rol se referencian por sus IDs numéricos.
  • Usuario — una persona (titular u operador CMS) con uno o más roles asignados, más permisos opcionales otorgados directamente.

Endpoints del Wallet Gateway (usuarios finales)

Listar todos los permisos

curl https://api.ali.app/rest/users/permissions \
-H "Authorization: Bearer <token>"

Crear permisos (por lotes)

Rara vez se usa — los permisos vienen de las definiciones de Migo. El endpoint crea uno o más permisos, cada uno descrito por { resource, action, description? }:

curl -X POST https://api.ali.app/rest/users/permissions \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"permissions": [
{ "resource": "cards", "action": "checkCvv", "description": "Request a CVV view token" }
]
}'

Otorgar / revocar permisos a un usuario

Tanto otorgar como revocar usan la misma forma { permissions: [...] }, donde cada entrada es { roleId, permissionId, granted }. Establece granted: true para otorgar y granted: false para revocar:

# Crear / otorgar permisos directos de usuario
curl -X POST https://api.ali.app/rest/users/{id}/permissions \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "permissions": [ { "roleId": 1, "permissionId": 10, "granted": true } ] }'

# Actualizar (otorgar/revocar) permisos directos de usuario
curl -X PATCH https://api.ali.app/rest/users/{id}/permissions \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "permissions": [ { "roleId": 1, "permissionId": 10, "granted": false } ] }'

Roles (Wallet Gateway)

Listar roles

curl https://api.ali.app/rest/users/roles \
-H "Authorization: Bearer <token>"

Crear roles (por lotes)

El cuerpo es { roles: [...] }. Cada rol tiene un name, un arreglo permissions de IDs numéricos de permisos y una description opcional:

curl -X POST https://api.ali.app/rest/users/roles \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"roles": [
{ "name": "branch_manager", "permissions": [1, 2, 3], "description": "Branch operations" }
]
}'

Actualizar un rol

Las actualizaciones se expresan como conjuntos de agregar/quitar de IDs numéricos de permisos (no hay un campo permissions de reemplazo total):

curl -X PATCH https://api.ali.app/rest/users/roles/{name} \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "addPermissions": [4, 5], "removePermissions": [1], "description": "Updated role" }'

Permisos de un rol

curl https://api.ali.app/rest/users/roles/{name}/permissions \
-H "Authorization: Bearer <token>"

Asignar / desasignar roles a un usuario

La asignación de roles es un PATCH con conjuntos de agregar/quitar de nombres de roles (no hay un POST /users/{id}/roles):

curl -X PATCH https://api.ali.app/rest/users/{id}/roles \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "addRoles": ["branch_manager"], "removeRoles": [] }'

Endpoints CMS (operadores)

Mismo modelo, distintos endpoints — consulta CMS → Permisos y roles.

Permisos estándar

Los permisos son pares { action, resource } (acciones en camelCase), no cadenas con puntos. Una muestra no exhaustiva tomada del mapa de permisos del gateway:

RecursoAcciónOtorga
cardscreateCardEmitir una nueva tarjeta
cardscheckCardConsultar / verificar una tarjeta
cardscheckCvvSolicitar un view token de CVV
cardscardActivationActivar una tarjeta
cardsassignPINEstablecer / cambiar el PIN de una tarjeta
cardsupdateStatusBloquear / desbloquear (cambio de estado)
cardstransferBetweenCardsEjecutar transferencias tarjeta a tarjeta
cardsgetAllByUserListar las tarjetas de un usuario
userscreatePermissionCrear permisos en el catálogo
userscreateRole / updateRoleGestionar roles
usersupdateAuthUserRolesAsignar / desasignar roles de usuario
userscreateAuthUserPermissions / updateAuthUserPermissionsOtorgar / revocar permisos directos de usuario
leadscreate / update / fileUploadCiclo de vida de los leads de onboarding
businessescreateBusiness / createBranch / updateTerminalGestionar comercios
reportspayfacConciliationReporte de conciliación PayFac
webhooksvolcanWebhookWebhook entrante del procesador de tarjetas

La lista completa y autoritativa vive en el mapa de permisos del gateway (PermissionsMap); coordina con Migo antes de depender de un par específico.

Permisos efectivos

El conjunto efectivo de permisos de un usuario es la unión de todos los permisos de sus roles más los permisos otorgados directamente.

Verifica vía:

curl https://api.ali.app/rest/users/{id}/permissions \
-H "Authorization: Bearer <token>"