Referencia de API: Organizaciones
Referencia de API para los endpoints de gestión de organizaciones y administración de usuarios.
Endpoint: GET /v1/tenant/{tenantId}
Autenticación: Clave de API con alcance de inquilino · read alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
Respuesta (200):
Detalles del inquilino
{
"id": "00000000-0000-0000-0000-000000000000",
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdAt": "2024-03-15T16:30:00Z",
"displayName": "string",
"contactEmail": "string",
"isActive": true,
"shortName": "string",
"useOrganizationTheme": true,
"description": "string",
"organizationId": "00000000-0000-0000-0000-000000000000",
"allowedLogins": {
"Microsoft": true,
"Google": true,
"LinkedIn": true
},
"url": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | Sí | Formato: uuid |
| createdBy | string | Sí | Formato: uuid |
| createdAt | string | Sí | Formato: date-time |
| displayName | string | Sí | Predeterminado: ""Longitud máxima: 128 |
| contactEmail | string | Sí | Formato: email |
| isActive | boolean | Sí | Predeterminado: true |
| shortName | string | Sí | |
| useOrganizationTheme | boolean | Sí | Predeterminado: true |
| description | string | Sí | Longitud máxima: 200 |
| organizationId | string | Sí | Formato: uuid |
| allowedLogins | object | Sí | |
| url | string | Sí | Formato: uri |
Errores:
Endpoint: PUT /v1/tenant/{tenantId}
Autenticación: Clave de API con alcance de inquilino · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
{
"id": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"contactEmail": "string",
"shortName": "string",
"description": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | No | Formato: uuid |
| displayName | string | No | |
| contactEmail | string | No | |
| shortName | string | No | |
| description | string | No |
Respuesta (200):
Inquilino actualizado
{
"id": "00000000-0000-0000-0000-000000000000",
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdAt": "2024-03-15T16:30:00Z",
"displayName": "string",
"contactEmail": "string",
"isActive": true,
"shortName": "string",
"useOrganizationTheme": true,
"description": "string",
"organizationId": "00000000-0000-0000-0000-000000000000",
"allowedLogins": {
"Microsoft": true,
"Google": true,
"LinkedIn": true
},
"url": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | Sí | Formato: uuid |
| createdBy | string | Sí | Formato: uuid |
| createdAt | string | Sí | Formato: date-time |
| displayName | string | Sí | Predeterminado: ""Longitud máxima: 128 |
| contactEmail | string | Sí | Formato: email |
| isActive | boolean | Sí | Predeterminado: true |
| shortName | string | Sí | |
| useOrganizationTheme | boolean | Sí | Predeterminado: true |
| description | string | Sí | Longitud máxima: 200 |
| organizationId | string | Sí | Formato: uuid |
| allowedLogins | object | Sí | |
| url | string | Sí | Formato: uri |
Errores:
Endpoint: GET /v1/tenant/{tenantId}/statistics
Autenticación: Clave de API con alcance de inquilino · read alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
Respuesta (200):
Estadísticas del inquilino
{
"tenantId": "00000000-0000-0000-0000-000000000000",
"uploadedDataSize": 0,
"uploadedDataCount": 0,
"modelCount": 0,
"simulationCount": 0,
"userCount": 0
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| tenantId | string | Sí | Formato: uuid |
| uploadedDataSize | number | Sí | |
| uploadedDataCount | number | Sí | |
| modelCount | number | Sí | |
| simulationCount | number | Sí | |
| userCount | number | Sí |
Errores:
Devuelve los usuarios coincidentes como una matriz JSON sin envoltorio: no incluye el recuento total; utilice limit/offset para paginar.
Endpoint: GET /v1/tenant/{tenantId}/users
Autenticación: Clave de API con alcance de inquilino · read alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| limit | integer | consulta | No | Número máximo de elementos que se devolverán |
| offset | integer | consulta | No | Número de elementos que se omitirán |
Respuesta (200):
Lista de usuarios
[
{
"id": "00000000-0000-0000-0000-000000000000",
"email": "string",
"firstName": "string",
"lastName": "string",
"createdAt": "2024-03-15T16:30:00Z",
"lastLoginAt": "2024-03-15T16:30:00Z",
"tenantId": "00000000-0000-0000-0000-000000000000",
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true,
"organizationId": "00000000-0000-0000-0000-000000000000",
"isActiveInOrganization": true,
"isAdminInOrganization": true
}
] Errores:
Los campos de rol del cuerpo (isAdminInTenant, access: none|portalViewer|designer|architect|intelligence, isDashboardViewer) se respetan literalmente; este endpoint ofrece acceso completo de administración del inquilino, por lo que solo debe proporcionar claves con permisos de escritura a personas de confianza. La visualización de Dashboards se controla mediante el booleano isDashboardViewer; se ha eliminado el nivel heredado de usuario de solo lectura.
Endpoint: POST /v1/tenant/{tenantId}/users
Autenticación: Clave de API con alcance de inquilino · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
{
"email": "string",
"firstName": "string",
"lastName": "string",
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true,
"preferredLocale": "en"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| string | Sí | Dirección de correo electrónico del usuario, que también es su identidad de inicio de sesión Formato: email | |
| firstName | string | No | Nombre opcional Longitud máxima: 64 |
| lastName | string | No | Apellido opcional Longitud máxima: 64 |
| isActiveInTenant | boolean | No | Indica si el usuario está activo en este inquilino |
| isAdminInTenant | boolean | No | Derechos de administración en este inquilino, respetados literalmente: acceso completo de administración del inquilino |
| access | none | portalViewer | designer | architect | intelligence | No | Licencia de selección única: none | portalViewer | designer | architect | intelligence Valores permitidos: none, portalViewer, designer, architect, intelligence |
| isDashboardViewer | boolean | No | Indica si el usuario tiene acceso de solo lectura a Dashboards |
| preferredLocale | en | zh | es | fr | de | pt | it | nl | ja | tr | No | Configuración regional preferida de la interfaz del usuario Valores permitidos: en, zh, es, fr, de, pt, it, nl, ja, tr |
Respuesta (201):
Usuario añadido
{
"id": "string",
"message": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | Sí | ID del usuario recién añadido |
| message | string | Sí |
Errores:
Endpoint: PUT /v1/tenant/{tenantId}/users/{userId}
Autenticación: Clave de API con alcance de inquilino · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| userId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
{
"isActiveInTenant": true,
"isAdminInTenant": true,
"access": "none",
"isDashboardViewer": true
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| isActiveInTenant | boolean | No | Indica si el usuario está activo en este inquilino |
| isAdminInTenant | boolean | No | Derechos de administración en este inquilino, respetados literalmente: acceso completo de administración del inquilino |
| access | none | portalViewer | designer | architect | intelligence | No | Licencia de selección única: none | portalViewer | designer | architect | intelligence. La visualización de Dashboards se controla mediante el booleano isDashboardViewer. Valores permitidos: none, portalViewer, designer, architect, intelligence |
| isDashboardViewer | boolean | No | Indica si el usuario tiene acceso de solo lectura a Dashboards |
Respuesta (200):
Actualizado
{
"message": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| message | string | Sí |
Errores:
Endpoint: DELETE /v1/tenant/{tenantId}/users/{userId}
Autenticación: Clave de API con alcance de inquilino · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| userId | string | ruta | Sí | Formato: uuid |
Respuesta (200):
Usuario eliminado
{
"message": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| message | string | Sí |
Errores:
Devuelve un token de un solo uso, con una validez de 60 s, vinculado al usuario, al inquilino y a la organización, además de la url a la que debe dirigirse el navegador del usuario. Abra la URL en el navegador del usuario para que acceda a ProcessMind con la autenticación ya realizada: no se utiliza ningún enlace de correo ni suplantación; el usuario obtiene su propia sesión. Requiere el alcance dedicado sessions en la clave de API: una clave con alcance de organización puede generar tokens para cualquier inquilino de su organización, mientras que una clave con alcance de inquilino solo puede hacerlo para usuarios de su propio inquilino. Trate el token como equivalente a una contraseña: se devuelve una sola vez, nunca se registra y se revoca al deshabilitar la clave o el usuario.
Endpoint: POST /v1/tenant/{tenantId}/users/{userId}/login-token
Autenticación: Clave de API con alcance de inquilino u organización · sessions alcance · límite de frecuencia: 2 solicitudes/s (ráfaga de 4)
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| userId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
Ruta de destino opcional, relativa a la aplicación; por ejemplo, “app” o “app/dashboards”
{
"path": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| path | string | No | Longitud máxima: 512 |
Respuesta (200):
Token de transferencia de inicio de sesión
{
"token": "string",
"url": "string",
"expiresInSeconds": 0,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| token | string | Sí | |
| url | string | Sí | |
| expiresInSeconds | number | Sí | |
| expiresAt | string | Sí | Formato: date-time |
Errores:
Las claves de API autentican sus integraciones. Las claves con alcance de organización pueden aprovisionar y gestionar las claves de cualquier inquilino de la organización.
Requiere una clave de API con alcance de organización. El secreto nunca se devuelve.
Endpoint: GET /v1/tenant/{tenantId}/api-keys
Autenticación: Clave de API con alcance de organización · read alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| limit | integer | consulta | No | Número máximo de elementos que se devolverán |
| offset | integer | consulta | No | Número de elementos que se omitirán |
Respuesta (200):
Lista de claves de API
[
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
}
}
] Errores:
Requiere una clave de escritura con alcance de organización. El secreto se genera en el servidor y se devuelve exactamente una vez en la respuesta; guárdelo de forma segura. Solo se conserva su hash.
Endpoint: POST /v1/tenant/{tenantId}/api-keys
Autenticación: Clave de API con alcance de organización · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
{
"displayName": "string",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"enabled": true,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| displayName | string | Sí | Longitud máxima: 128 |
| scope | object | No | |
| enabled | boolean | No | |
| expiresAt | string | No | Formato: date-time |
Respuesta (201):
Clave de API creada (incluye el secreto de un solo uso)
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"secret": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | Sí | Formato: uuid |
| tenantId | string | Sí | Formato: uuid |
| organizationId | string | Sí | Formato: uuid |
| displayName | string | Sí | Longitud máxima: 128 |
| partialKey | string | Sí | Longitud máxima: 128 |
| enabled | boolean | Sí | Predeterminado: true |
| createdAt | string | Sí | Formato: date-time |
| lastUsedAt | string | Sí | Formato: date-time |
| expiresAt | string | Sí | Formato: date-time |
| scope | object | Sí | |
| secret | string | Sí | Longitud máxima: 128 |
Errores:
Requiere una clave de escritura con alcance de organización. Los campos de alcance se combinan con el alcance almacenado.
Endpoint: PUT /v1/tenant/{tenantId}/api-keys/{keyId}
Autenticación: Clave de API con alcance de organización · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| keyId | string | ruta | Sí | Formato: uuid |
Cuerpo de la solicitud:
{
"displayName": "string",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
},
"enabled": true,
"expiresAt": "2024-03-15T16:30:00Z"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| displayName | string | No | Longitud máxima: 128 |
| scope | object | No | |
| enabled | boolean | No | |
| expiresAt | string | No | Formato: date-time |
Respuesta (200):
Clave de API actualizada
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"organizationId": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"partialKey": "string",
"enabled": true,
"createdAt": "2024-03-15T16:30:00Z",
"lastUsedAt": "2024-03-15T16:30:00Z",
"expiresAt": "2024-03-15T16:30:00Z",
"scope": {
"read": true,
"write": true,
"uploadData": true,
"sessions": true
}
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string | Sí | Formato: uuid |
| tenantId | string | Sí | Formato: uuid |
| organizationId | string | Sí | Formato: uuid |
| displayName | string | Sí | Longitud máxima: 128 |
| partialKey | string | Sí | Longitud máxima: 128 |
| enabled | boolean | Sí | Predeterminado: true |
| createdAt | string | Sí | Formato: date-time |
| lastUsedAt | string | Sí | Formato: date-time |
| expiresAt | string | Sí | Formato: date-time |
| scope | object | Sí |
Errores:
Requiere una clave de escritura con alcance de organización. La clave se elimina de forma lógica y deja de autenticar inmediatamente.
Endpoint: DELETE /v1/tenant/{tenantId}/api-keys/{keyId}
Autenticación: Clave de API con alcance de organización · write alcance
Parámetros:
| Nombre | Tipo | Ubicación | Obligatorio | Descripción |
|---|---|---|---|---|
| tenantId | string | ruta | Sí | Formato: uuid |
| keyId | string | ruta | Sí | Formato: uuid |
Respuesta (200):
Clave de API eliminada
{
"message": "string"
} | Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| message | string | Sí |
Errores:
Utilizamos cookies para mejorar su experiencia, personalizar el contenido y analizar el tráfico. Al hacer clic en «Aceptar todo», acepta nuestro uso de cookies.