En esta página

Referencia de API: inquilinos

Obtener información del inquilino

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 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 Formato: uuid
createdBy string Formato: uuid
createdAt string Formato: date-time
displayName string Predeterminado: ""
Longitud máxima: 128
contactEmail string Formato: email
isActive boolean Predeterminado: true
shortName string
useOrganizationTheme boolean Predeterminado: true
description string Longitud máxima: 200
organizationId string Formato: uuid
allowedLogins object
url string Formato: uri

Errores:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Actualizar la configuración del inquilino

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 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 Formato: uuid
createdBy string Formato: uuid
createdAt string Formato: date-time
displayName string Predeterminado: ""
Longitud máxima: 128
contactEmail string Formato: email
isActive boolean Predeterminado: true
shortName string
useOrganizationTheme boolean Predeterminado: true
description string Longitud máxima: 200
organizationId string Formato: uuid
allowedLogins object
url string Formato: uri

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo
  • 406 No se puede aceptar el valor, por ejemplo, porque el nombre corto está reservado o duplicado

Obtener estadísticas del inquilino (tamaño de datos, modelos, simulaciones y usuarios)

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 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 Formato: uuid
uploadedDataSize number
uploadedDataCount number
modelCount number
simulationCount number
userCount number

Errores:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Enumerar los usuarios del inquilino

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 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:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado

Añadir un usuario al inquilino (no se envía ningún correo de invitación)

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 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
email string 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 ID del usuario recién añadido
message string

Errores:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 409 La solicitud entra en conflicto con el estado actual, por ejemplo, por un límite de licencias o por reutilizar un ID

Actualizar la configuración de un usuario en el inquilino

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 Formato: uuid
userId string ruta 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

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Eliminar un usuario del inquilino

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 Formato: uuid
userId string ruta Formato: uuid

Respuesta (200):

Usuario eliminado

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 404 Recurso no encontrado

Generar un token de transferencia de inicio de sesión de un solo uso para un usuario

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 Formato: uuid
userId string ruta 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
url string
expiresInSeconds number
expiresAt string Formato: date-time

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo
  • 404 Recurso no encontrado
  • 429 Límite de frecuencia alcanzado: consulte el límite documentado del endpoint

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.

Enumerar las claves de API del inquilino

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 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:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo

Crear una clave de API con alcance de inquilino

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 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 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 Formato: uuid
tenantId string Formato: uuid
organizationId string Formato: uuid
displayName string Longitud máxima: 128
partialKey string Longitud máxima: 128
enabled boolean Predeterminado: true
createdAt string Formato: date-time
lastUsedAt string Formato: date-time
expiresAt string Formato: date-time
scope object
secret string Longitud máxima: 128

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo

Actualizar una clave de API con alcance de inquilino

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 Formato: uuid
keyId string ruta 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 Formato: uuid
tenantId string Formato: uuid
organizationId string Formato: uuid
displayName string Longitud máxima: 128
partialKey string Longitud máxima: 128
enabled boolean Predeterminado: true
createdAt string Formato: date-time
lastUsedAt string Formato: date-time
expiresAt string Formato: date-time
scope object

Errores:

  • 400 Solicitud incorrecta: por ejemplo, una expresión de filtro no válida, un proceso sin modelo, un tipo de carga no compatible o la falta de un campo obligatorio
  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo
  • 404 Recurso no encontrado

Eliminar una clave de API con alcance de inquilino

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 Formato: uuid
keyId string ruta Formato: uuid

Respuesta (200):

Clave de API eliminada

{
	"message": "string"
}
Campo Tipo Obligatorio Descripción
message string

Errores:

  • 401 Falta la clave de API, no es válida, está deshabilitada o ha caducado
  • 403 La clave de API no tiene el alcance necesario o acceso a la organización, el inquilino está inactivo o el plan bloquea el tipo de archivo
  • 404 Recurso no encontrado