Multi-Tenant (Usuario-Clientes)
Gestión de la relación entre usuarios y clientes en un entorno multi-tenant. Permite a un usuario acceder a múltiples organizaciones.
GET /api/usuario_clientes/usuarios/{user_id}/clientes
Lista los clientes asociados a un usuario específico.
/api/usuario_clientes/usuarios/{user_id}/clientesHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"clientes": [{"id": "client-uuid", "nombre": "Empresa A", "activo": true}]}Lista de clientes a los que el usuario tiene acceso.
Errores
404Not FoundUsuario no encontrado.
{"error": "Usuario no encontrado"}POST /api/usuario_clientes/usuarios/{user_id}/clientes
Asocia un usuario a un cliente adicional.
/api/usuario_clientes/usuarios/{user_id}/clientesHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{"cliente_id": "client-uuid"} cliente_id: (obligatorio) ID del cliente a asociar.
Ejemplos
curl -X POST https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"cliente_id": "client-uuid"}' Respuesta
{"message": "Cliente asociado exitosamente"}El usuario ahora tiene acceso al cliente especificado.
Errores
404Not FoundUsuario o cliente no encontrado.
{"error": "Cliente no encontrado"}409ConflictYa está asociado.
{"error": "El usuario ya está asociado a este cliente"}PUT /api/usuario_clientes/usuarios/{user_id}/clientes
Actualiza la lista de clientes asociados a un usuario (reemplaza completamente).
/api/usuario_clientes/usuarios/{user_id}/clientesHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{"clientes_ids": ["client-uuid-1", "client-uuid-2"]} clientes_ids: (obligatorio) Lista de IDs de clientes.
Ejemplos
curl -X PUT https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"clientes_ids": ["uuid-1", "uuid-2"]}' Respuesta
{"message": "Clientes actualizados exitosamente"}La lista de clientes del usuario se reemplaza completamente.
Errores
400Bad RequestLista vacía o IDs inválidos.
{"error": "Se requiere al menos un cliente"}DELETE /api/usuario_clientes/usuarios/{user_id}/clientes/{cliente_id}
Desasocia un usuario de un cliente específico.
/api/usuario_clientes/usuarios/{user_id}/clientes/{cliente_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X DELETE https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes/CLIENT_ID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"message": "Cliente desasociado exitosamente"}El usuario pierde acceso al cliente especificado.
Errores
404Not FoundAsociación no encontrada.
{"error": "Asociación no encontrada"}GET /api/usuario_clientes/mi-usuario/clientes
Lista los clientes del usuario autenticado.
/api/usuario_clientes/mi-usuario/clientesHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/api/usuario_clientes/mi-usuario/clientes \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"clientes": [{"id": "client-uuid", "nombre": "Mi Empresa", "activo": true}], "cliente_activo": "client-uuid"}Lista de clientes accesibles y cuál es el activo actualmente.
Errores
401UnauthorizedToken inválido.
{"msg": "Token inválido"}POST /api/usuario_clientes/mi-usuario/cliente-activo
Cambia el cliente activo del usuario autenticado. Genera un nuevo JWT.
/api/usuario_clientes/mi-usuario/cliente-activoHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{"cliente_id": "client-uuid-2"} cliente_id: (obligatorio) ID del cliente al que cambiar.
Ejemplos
curl -X POST https://api-docmind.devol.es/api/usuario_clientes/mi-usuario/cliente-activo \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"cliente_id": "client-uuid-2"}' Respuesta
{"message": "Cliente activo cambiado", "access_token": "eyJ...(nuevo)", "cliente_nombre": "Empresa B"}Se genera un nuevo JWT con el contexto del cliente seleccionado.
Errores
400Bad RequestFalta cliente_id.
{"error": "Se requiere cliente_id"}403ForbiddenNo tiene acceso al cliente.
{"error": "No tienes acceso a este cliente"}