Visão Geral
🔐 Perfis de acesso
Perfis de acesso são configurações que determinam o que cada usuário pode ou não fazer dentro do sistema.
Cada perfil agrupa escopos de permissões bem definidos. Entre os mais comuns estão:
- Visualização, que permite acesso a endpoints de listagem e busca
- Escrita, responsável por ações como criar, editar ou excluir informações
- Se atente a limitação de dados sensíveis, ativar o campo possibilita que o usuário possa solicitar a visualização de informações
- Se atente também a políticas comerciais, caso nenhuma seja informada o usuário terá total acesso a todas as políticas
Essas permissões regulam o acesso a módulos, rotas e funcionalidades, garantindo que cada usuário interaja apenas com áreas compatíveis com sua função.
Como resultado, o sistema mantém segurança, organização e rastreabilidade das ações, pontos essenciais para o controle operacional e para a observabilidade 🔎.
Escopos de permissão
Os escopos de permissão funcionam como o mecanismo central de controle de acesso da API.
Cada escopo representa uma permissão específica e é validado por meio de middlewares, responsáveis por interpretar os códigos de escopo associados ao perfil do usuário.
Ao tentar acessar um módulo ou uma rota, o middleware verifica se o usuário possui o escopo necessário. Caso contrário, a ação é automaticamente bloqueada.
Por isso, é fundamental que cada perfil tenha seus escopos corretamente vinculados ⚠️.
Sem essa associação, o usuário não terá autorização para executar operações dentro do painel, mesmo que esteja autenticado.
🔁 Perfil → Escopos → Middleware → Acesso à rota
Políticas comerciais
A política comercial é uma estrutura que define como produtos e canais de venda se comportam dentro da plataforma.
Cada política pode conter informações próprias, como descrição, preço, URL e associações com lojas ou canais específicos.
Isso permite que um mesmo produto exista em versões diferentes, de acordo com a política aplicada.
No contexto de perfis de acesso, as políticas comerciais também atuam como um limitador de visibilidade e operação 🔐.
Um perfil pode ter acesso a todas as políticas ou ser restrito a apenas algumas delas.
Com isso, o usuário passa a visualizar e gerenciar somente os dados vinculados às políticas permitidas pelo seu perfil, garantindo controle, organização e segurança dentro do painel 🔎.
Notas e Considerações
Detalhes de perfil de usuário
/auth/profile/{profileId}
Busca os detalhes de um perfil de usuário por id
Descrição
Retorna os detalhes de um perfil de acesso a partir do ID do perfil.
Parâmetros de Query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação do usuário |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| profileId | integer | Sim | ID do perfil do usuário |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/auth/profile/{profileId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "id": 3,5 "storeId": 1,6 "name": "OperadorTeste2",7 "sensitiveDataPermission": true,8 "tradePolicyLimitation": true,9 "tradePolicies": [10 1,11 2,12 413 ],14 "createdAt": "2024-07-19 13:23:24",15 "updatedAt": "2024-08-27 18:35:30",16 "scopes": [17 "DASHBOARD_READ"18 ]19 }20}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_AUTH_PROFILE_NOT_FOUND | 404 | O perfil solicitado não existe |
Listagem de mapeamento de perfis de usuário
/auth/profile/all
Listagem de mapeamento de perfis de usuário
Descrição
Listagem simples para mapear perfis de usuário, geralmente utilizada para facilitar lógicas no frontend.
Parâmetros de Query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/admin/auth/profile/all \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
Esta rota retorna dados no padrão chave-valor, utilizando o ID do perfil como índice e o nome como valor.
1{2 "status": true,3 "data": {4 "1": "admin master",5 "2": "admin",6 "3": "operador"7 }8}Listagem de Perfis de usuários
Endpoint
/auth/profile
Lista todos os perfis de acesso dos usuários da loja
Descrição
Lista todos os perfis de acesso dos usuários da loja, utilizada para controle e associação de permissões.
Parâmetros de Query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | Buscar por nome do perfil de usuário |
| createdAt | string | Filtrar por data de cadastro do perfil |
| updatedAt | string | Filtrar por data de atualização do perfil |
| sensitiveDataPermission | bool | Filtrar por usuários com visualização a dados sensíveis permitida |
| tradePolicyId | int | Filtrar por id de política comercial |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| id | ID do perfil |
| name | Nome do perfil |
| createdAt | Data de criação do perfil |
| updatedAt | Data de atualização do perfil |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/auth/profile \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "registers": [5 {6 "id": 1,7 "name": "Operador1",8 "sensitiveDataPermission": true,9 "tradePolicyLimitation": true,10 "tradePolicies": [],11 "createdAt": "2024-07-19 13:23:24",12 "updatedAt": "2024-08-27 18:35:30",13 "scopes": []14 },15 {16 "id": 2,17 "name": "Operador2",18 "sensitiveDataPermission": true,19 "tradePolicyLimitation": true,20 "tradePolicies": [21 1,22 2,23 324 ],25 "createdAt": "2024-08-23 19:44:28",26 "updatedAt": "2024-08-27 18:25:05",27 "scopes": []28 },29 {30 "id": 3,31 "name": "Operador3",32 "sensitiveDataPermission": true,33 "tradePolicyLimitation": true,34 "tradePolicies": [],35 "createdAt": "2024-08-27 18:38:10",36 "updatedAt": "2024-08-27 18:38:10",37 "scopes": []38 }39 ],40 "pagination": {41 "limit": 10,42 "offset": 0,43 "pages": 3,44 "registers": 2345 }46 }47}Cadastro de Perfil de Usuário
/auth/profile
Cria/Atualiza um novo perfil de usuário
Descrição
Endpoint responsável por cadastrar ou atualizar um perfil de acesso.
Parâmetros de query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação de usuário |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | int | ❌ | Identificador do perfil, só deve ser informado para atualização |
name | string | ✅ | Nome do perfil (max 50 caracteres) |
sensitiveDataPermission | bool | ✅ | Determina se o usuário poderá solicita visualização de dados sensíveis de uma página |
tradePolicyLimitation | bool | ✅ | Determina se o usuário poderá ver/alterar itens de todas as políticas comerciais. Caso haja limitação, deve ser informado quais políticas são permitidas no array de tradePolicies |
tradePolicies | array | ❔ | Políticas comerciais que devem ser vinculadas/desvinculadas, se torna obrigatório quando há tradePolicyLimitation ativo, caso contrário não deve ser informado |
tradePolicies.*.{tradePolicyId} | bool | ✅ | Tem como índice o id da política comercial e o valor booleano determina se deve vincular ou desvincular |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/auth/profile/ \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --data '{5 "id": 123,6 "name":"Operador",7 "sensitiveDataPermission":true,8 "tradePolicyLimitation":true,9 "tradePolicies": {10 "1":true,11 "2":true,12 "3":true13 }14 }'✅ Resposta de Sucesso
1{2 "id": 123,3 "storeId": 123,4 "name": "Operador",5 "sensitiveDataPermission": true,6 "tradePolicyLimitation": true,7 "tradePolicies": [8 1,9 2,10 311 ],12 "createdAt": "2025-11-28 20:18:07",13 "updatedAt": "2025-11-28 20:18:07",14 "scopes": []15}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_CORE_INVALID_TRADE_POLICY_ID | 403 | Os ids de política comercial não são permitidos. |
| UAPPI_AUTH_PROFILE_NOT_FOUND | 404 | O perfil solicitado não foi encontrado |
Exclui Perfil de Usuário
/auth/profile/{profileId}
Remove um perfil de usuário
Descrição
Endpoint responsável por excluir um perfil de acesso da loja a partir do seu ID.
O perfil não poderá ser removido caso esteja em uso.
Parâmetros de query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação de usuário |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| profileId | integer | Sim | ID do perfil de usuário |
Exemplo de Requisição
1curl --request DELETE \2 --url {{MAIN_URL}}/auth/profile/{profileId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "id": 123,3 "name": "Operador",4 "createdAt": "2024-07-19 13:26:00",5 "updatedAt": "2024-07-19 13:26:00"6}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_AUTH_PROFILE_IN_USE | 403 | O perfil solicitado está em uso |
| UAPPI_AUTH_PROFILE_NOT_FOUND | 404 | O perfil solicitado não existe |