Dominios
Los dominios son una forma de organizar y gestionar los datos y la lógica de negocio de su aplicación. Representan áreas específicas de funcionalidad y ayudan a separar responsabilidades, lo que hace que las asignaciones a las entidades sean más sencillas.
Los dominios pueden encapsular datos y comportamientos relacionados, lo que facilita la gestión de la complejidad y la aplicación de reglas de negocio. Por ejemplo, se podría acceder a múltiples entidades a través de un único dominio, al que solo pueden acceder usuarios con ciertos permisos.
Interacción con otros componentes de la aplicación
Sección titulada «Interacción con otros componentes de la aplicación»Los dominios interactúan con varios componentes de la aplicación, entre ellos:
Filtrado y segmentación de datos
Sección titulada «Filtrado y segmentación de datos»Los dominios pueden ayudar a filtrar y segmentar datos en función de criterios específicos, lo que facilita la gestión, el análisis y el trabajo con los servicios de datos. Al consultar datos, los dominios se pueden utilizar para especificar qué entidades y relaciones se deben incluir en los resultados, lo que garantiza que solo se devuelva información relevante.
Alcance de usuarios y roles
Sección titulada «Alcance de usuarios y roles»Los dominios también se pueden utilizar para aplicar el control de acceso basado en roles y usuarios, lo que garantiza que solo los usuarios autorizados puedan acceder a datos y funcionalidades específicas. Por ejemplo, un usuario con un rol específico solo puede acceder a los datos dentro de un determinado dominio, mientras que otro usuario con un rol diferente puede tener acceso a múltiples dominios. Además, un usuario asignado a un dominio específico solo puede ver e interactuar con las entidades y relaciones dentro de ese dominio, si pertenece a sus permisos.
Visibilidad del menú dentro de los dominios
Sección titulada «Visibilidad del menú dentro de los dominios»Algunos elementos del menú y acciones pueden estar restringidos en función de las asignaciones de dominio y los permisos del usuario. Es posible que solo se pueda acceder a algunos menús de categoría y elementos de menú si el usuario tiene acceso al dominio correspondiente, asignado por otro usuario con los permisos adecuados.
Endpoints para la gestión de dominios
Sección titulada «Endpoints para la gestión de dominios»A continuación se muestran los endpoints disponibles para la gestión de dominios:
Obtener todos los dominios
Sección titulada «Obtener todos los dominios»Recupera todos los dominios.
Endpoint:
GET /api/v1/domainsParámetros:
Nombre Tipo De Descripción activebooleano query Filtrar por estado activo (verdadero, falso, vacío) namecadena query Filtrar por nombre de dominio (coincidencia parcial) Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": true}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Obtener un dominio específico
Sección titulada «Obtener un dominio específico»Recupera datos de un dominio específico por su ID.
Endpoint:
GET /api/v1/domains/:domainIdParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": true},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Agregar un nuevo dominio
Sección titulada «Agregar un nuevo dominio»Agrega un nuevo dominio.
Endpoint:
PUT /api/v1/domainsCuerpo de la solicitud:
{"domain": {"name": "Cualquier dominio","description": "Cualquier descripción","parentId": 0,"active": true}}Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": true},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Actualizar campos de dominio
Sección titulada «Actualizar campos de dominio»Actualiza los campos de un dominio existente.
Endpoint:
PATCH /api/v1/domains/:domainIdParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio Cuerpo de la solicitud:
{"name": "Cualquier dominio","description": "Cualquier descripción","parentId": 0,"active": true}Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": true},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Activar o desactivar un dominio
Sección titulada «Activar o desactivar un dominio»Actualiza el estado de activación de un dominio.
Endpoint:
PUT /api/v1/domains/:domainId/activationParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio Cuerpo de la solicitud:
{"active": false}Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": false},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Gestión de usuarios dentro de los dominios
Sección titulada «Gestión de usuarios dentro de los dominios»Obtener usuarios de un dominio
Sección titulada «Obtener usuarios de un dominio»Recupera los usuarios asociados a un dominio.
Endpoint:
GET /api/v1/domains/:domainId/usersParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": 1,"username": "username","lastName": "last_name","firstName": "first_name","email": "email@datascend.net"}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Agregar un usuario a un dominio
Sección titulada «Agregar un usuario a un dominio»Agrega un usuario a un dominio.
Endpoint:
POST /api/v1/domains/:domainId/users/:userIdParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio userIdnúmero path El ID del usuario Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": "1","email": "email@datascend.net","username": "username","createdAt": "2022-01-05T16:27:16.560Z","updatedAt": "2022-01-05T16:27:16.560Z","deletedAt": "2022-01-05T16:27:16.560Z","active": true,"firstName": "first_name","lastName": "last_name","assistant": "","assistantPhone": "","description": "description","salutation": "salutation","title": "title","doNotCall": false,"department": 1,"addresses": [{"id": 18,"street": "street","city": "city","state": "state","postalcode": "postal_code","country": "country","userId": 25}],"phones": [{"id": 1,"phoneTypeId": "2","phoneNumber": "1234","active": true,"typeDescription": "description","userId": 1}],"createdBy": "0","modifiedUserId": "0","photo": "undefined"}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Eliminar un usuario de un dominio
Sección titulada «Eliminar un usuario de un dominio»Elimina un usuario de un dominio.
Endpoint:
DELETE /api/v1/domains/:domainId/users/:userIdParámetros:
Nombre Tipo De Descripción domainIdnúmero path El ID del dominio userIdnúmero path El ID del usuario Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": "1","email": "email@datascend.net","username": "username","createdAt": "2022-01-05T16:27:16.560Z","updatedAt": "2022-01-05T16:27:16.560Z","deletedAt": "2022-01-05T16:27:16.560Z","active": true,"firstName": "first_name","lastName": "last_name","assistant": "","assistantPhone": "","description": "description","salutation": "salutation","title": "title","doNotCall": false,"department": 1,"addresses": [{"id": 18,"street": "street","city": "city","state": "state","postalcode": "postal_code","country": "country","userId": 25}],"phones": [{"id": 1,"phoneTypeId": "2","phoneNumber": "1234","active": true,"typeDescription": "description","userId": 1}],"createdBy": "0","modifiedUserId": "0","photo": "undefined"}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Gestión de entidades dentro de los dominios
Sección titulada «Gestión de entidades dentro de los dominios»Mover un registro de entidad a un nuevo dominio
Sección titulada «Mover un registro de entidad a un nuevo dominio»Mueve un registro de entidad de su dominio actual a otro.
Endpoint:
PUT /api/v1/entities/:entity/:id/domain?version=:versionParámetros:
Nombre Tipo De Descripción versioncadena query La versión de la aplicación. entitycadena path El nombre de la entidad. idnúmero path El ID de la entidad. Cuerpo de la solicitud:
{"newDomain": 1}Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": 0,"domain": 1,"createdBy": "string","updatedBy": "string","dateUpdated": "string","dateCreated": "string","securityGroup": "string","data": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"}},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Gestión de dominios en roles
Sección titulada «Gestión de dominios en roles»Obtener dominios para un rol
Sección titulada «Obtener dominios para un rol»Recupera los dominios asociados a un rol específico.
Endpoint:
GET /api/v1/roles/:roleId/domains?page=1&limit=10Parámetros:
Nombre Tipo De Descripción roleIdcadena path El ID del rol. pagenúmero query Para paginación. limitnúmero query El número de resultados por página. Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": 0,"parentId": 0,"totalCount": "1","name": "Any domain","description": "Any description"}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Agregar un dominio a un rol
Sección titulada «Agregar un dominio a un rol»Agrega un dominio específico a un rol.
Endpoint:
PUT /api/v1/roles/:roleId/domains/:domainIdParámetros:
Nombre Tipo De Descripción roleIdcadena path El ID del rol. domainIdcadena path El ID del dominio que se va a agregar. Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [{"id": 0,"parentId": 0,"totalCount": "1","name": "Any domain","description": "Any description"}],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Eliminar un dominio de un rol
Sección titulada «Eliminar un dominio de un rol»Elimina un dominio específico de un rol.
Endpoint:
DELETE /api/v1/roles/:roleId/domains/:domainIdParámetros:
Nombre Tipo De Descripción roleIdcadena path El ID del rol. domainIdcadena path El ID del dominio que se va a eliminar. Respuesta de ejemplo:
{"status": 200,"error": false,"message": "string","data": [{}]}
Gestión de dominios en usuarios
Sección titulada «Gestión de dominios en usuarios»Obtener dominios para un usuario
Sección titulada «Obtener dominios para un usuario»Recupera una lista de dominios asociados a un usuario específico.
Endpoint:
GET /api/v1/users-data/:userId/domainsParámetros:
Nombre Tipo De Descripción userIdcadena path El ID del usuario. Respuesta de ejemplo:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": [1],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Alternar un dominio para un usuario
Sección titulada «Alternar un dominio para un usuario»Alterna un dominio para un usuario específico, lo que normalmente significa agregarlo si no existe o eliminarlo si existe.
Endpoint:
PATCH /api/v1/users-data/:userId/domains/:domainParámetros:
Nombre Tipo De Descripción userIdcadena path El ID del usuario. domaincadena path El dominio que se va a alternar. Respuesta de ejemplo:
{"id": "2","userId": "1","domainId": "1"}