Ir para o conteúdo
Voltar para a documentação
Inventário técnico auditável

Documentação Completa da API

Catálogo extraído dos controllers, DTOs, guards e tipos atuais, comparado à documentação existente e relacionado aos fluxos da interface. Evidência de código não é apresentada como prova de funcionamento em runtime.

Rotas identificadas

1187

Controllers

77

Módulos

45

Com permissões

1126

Ligadas à interface

592

Cobertura do levantamento

O que foi inspecionado

Controllers e métodos

Método HTTP, caminho, finalidade, handler e fonte.

DTOs e validação

Campos, tipos, obrigatoriedade e decorators resolvíveis.

Guards e permissões

Autenticação, modo any/all, permissões e entitlements.

Serviços diretos

Resposta TypeScript e exceções explícitas da chamada imediata.

Schemas e consumidores

Prisma foi usado como contexto; páginas e componentes foram correlacionados.

Documentação existente

Referências em Markdown e guias públicos foram indexadas por rota.

Métodos HTTP

Distribuição das rotas

DELETE72
GET442
PATCH129
POST519
PUT25

Matriz de validação

Como interpretar a evidência

Fonte inspecionada

1187 rotas foram extraídas do código. Confirma contrato declarado, não execução real.

Requisição direta

38 módulos receberam GET sem credenciais: 37 bloquearam em 401/403 e 1 leitura pública respondeu com sucesso.

Navegador

11 fluxos foram inspecionados em produção, autenticados e sem ações de escrita.

As 745 rotas de escrita não foram chamadas. GET protegido respondendo 401 valida o limite de autenticação, mas não valida a resposta de negócio após login. Swagger em produção respondeu 404, conforme a configuração que o desabilita fora do ambiente autorizado.

1

/customers

Clientes → API de cadastro

A carteira consome consulta, filtros e ações do módulo customer. A captura usa registros de demonstração.

Captura real da interface /customers com dados de demonstração
2

/contracts

Contratos → APIs operacionais

Carteira, criação e importação se relacionam aos controllers de contract, billing, import e reconciliation.

Captura real da interface /contracts com dados de demonstração
3

/opportunities

Central Comercial → Seguro tradicional

Funil, propostas, emissão, apólices e renovações usam o módulo traditional-insurance e seus guards.

Captura real da interface /opportunities com dados de demonstração
4

/insurance-lines

Catálogo técnico → Ramos de seguro

Captura real, somente leitura e sem dados pessoais, usada para validar filtros, paginação, vínculos e disponibilidade das ações administrativas.

Captura real da interface /insurance-lines com dados de demonstração

Fluxos validados no navegador

Interface relacionada à API

/customers

Carteira, busca, filtros e abertura do cadastro foram inspecionados sem salvar alterações.

Módulo customer

/contracts

Carteira, indicadores, filtros, modos de visualização e entrada do detalhe foram inspecionados.

Módulo contract

/opportunities

Funil, agenda, filtros e criação foram inspecionados; nenhuma oportunidade foi criada.

Módulo traditional-insurance

/opportunities/dashboard

Indicadores, previsão, prioridades e filtros foram inspecionados em modo de leitura.

Módulo traditional-insurance

/opportunities/settings/pipelines

Pipelines, etapas, probabilidades e bloqueios estruturais foram inspecionados; nenhum botão de escrita foi acionado.

Módulo traditional-insurance

/performance/riscos-psicossociais/propostas

Fluxo de proposta, anonimato, investimento e geração foi inspecionado sem registrar proposta.

Módulo psychosocial

/policies

Indicadores, filtros, carteira e detalhe de apólice foram inspecionados sem movimentações.

Módulo traditional-insurance

/policies/renewals

Agenda, prazos, situações e entrada do planejamento foram inspecionados; nenhuma renovação foi iniciada.

Módulo traditional-insurance

/insurance-lines

Indicadores, filtros, paginação, perfil operacional e vínculos foram inspecionados em modo de consulta.

Módulo insurance-catalog

/documents

Indicadores, escopo, formulário vazio e filtros foram inspecionados; nenhum arquivo foi publicado, baixado, ocultado ou arquivado.

Módulo document

/documents/configuracao

Catálogo, grupos e regras dos tipos documentais foram inspecionados; nenhum tipo foi criado ou alterado.

Módulo document

API externa de Health Analytics

As rotas externas permanecem no inventário junto aos demais controllers. Elas usam X-API-Key, escopoanalytics:read e limite próprio. Chaves devem permanecer no servidor da integração e nunca em JavaScript público.

GET /api/v1/health-analytics/external/status
Header: X-API-Key: sua-chave
Inventário completo

Explore todas as rotas

Cada item reúne contrato HTTP, autorização, parâmetros, DTO, resposta inferida, erros explícitos, fonte e evidência de teste.

1187 rota(s) na seleção

GET/api/v1/access-control/commercial-producersaccess-control

List Commercial Producers

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<{ id: string; name: string; producerType: string; linkedUser: { id: string; name: string; }; }[]>

Handler

AccessControlAdminController.listCommercialProducers

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

401 · A rota respondeu sem credenciais e bloqueou a execução antes do fluxo de negócio.

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:228

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/departmentsaccess-control

List Departments

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<({ _count: { memberships: number; vaultAccesses: number; }; parent: { id: string; name: string; }; memberships: ({ user: { email: string; id: string; name: string; role: $Enums.UserRole; isActive: boolean; }; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; role: string; isActive: boolean; userId: string; departmentId: string; addedById: string | null; })[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; parentId: string | null; code: string | null; })[]>

Handler

AccessControlAdminController.listDepartments

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:44

Interfaces relacionadas

(dashboard)/departments/page.tsx, (dashboard)/secure-vaults/page.tsx

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/departmentsaccess-control

Create Department

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Body body: any *

Resposta inferida

Promise<{ _count: { memberships: number; vaultAccesses: number; }; parent: { id: string; name: string; }; memberships: ({ user: { email: string; id: string; name: string; role: $Enums.UserRole; isActive: boolean; }; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; role: string; isActive: boolean; userId: string; departmentId: string; addedById: string | null; })[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; parentId: string | null; code: string | null; }>

Handler

AccessControlAdminController.createDepartment

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: Nome do departamento e obrigatorio

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:50

Interfaces relacionadas

(dashboard)/departments/page.tsx, (dashboard)/secure-vaults/page.tsx

Documentação anterior

Não localizada anteriormente

DELETE/api/v1/access-control/departments/:idaccess-control

Archive Department

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string *

Resposta inferida

Promise<{ id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; parentId: string | null; code: string | null; }>

Handler

AccessControlAdminController.archiveDepartment

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

404: Departamento nao encontrado

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:75

Interfaces relacionadas

(dashboard)/departments/page.tsx, (dashboard)/secure-vaults/page.tsx

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/departments/:idaccess-control

Update Department

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ _count: { memberships: number; vaultAccesses: number; }; parent: { id: string; name: string; }; memberships: ({ user: { email: string; id: string; name: string; role: $Enums.UserRole; isActive: boolean; }; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; role: string; isActive: boolean; userId: string; departmentId: string; addedById: string | null; })[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; parentId: string | null; code: string | null; }>

Handler

AccessControlAdminController.updateDepartment

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Departamento nao encontrado · 400: Departamento nao pode ser pai dele mesmo

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:60

Interfaces relacionadas

(dashboard)/departments/page.tsx, (dashboard)/secure-vaults/page.tsx

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/departments/:id/membersaccess-control

Update Department Members

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ _count: { memberships: number; vaultAccesses: number; }; parent: { id: string; name: string; }; memberships: ({ user: { email: string; id: string; name: string; role: $Enums.UserRole; isActive: boolean; }; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; role: string; isActive: boolean; userId: string; departmentId: string; addedById: string | null; })[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; parentId: string | null; code: string | null; }>

Handler

AccessControlAdminController.updateDepartmentMembers

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Departamento ativo nao encontrado · 400: Um ou mais usuarios nao pertencem ao tenant ou estao inativos

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:85

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/grantsaccess-control

List Grants

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Query userId: string

Resposta inferida

Promise<{ scopeContext: { customerId: string; customerName: string; contractId: string; contractName: string; beneficiaryId: string; beneficiaryName: string; }; user: { email: string; id: string; name: string; role: $Enums.UserRole; identityType: $Enums.UserIdentityType; isActive: boolean; }; accessGroup: { id: string; name: string; description: string; }; createdBy: { email: string; id: string; name: string; }; id: string; tenantId: string | null; roleKey: string; scopeType: $Enums.AccessScopeType; scopeId: string | null; expiresAt: Date | null; createdAt: Date; updatedAt: Date; isActive: boolean; userId: string; accessGroupId: string | null; createdByUserId: string | null; }[]>

Handler

AccessControlAdminController.listGrants

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:210

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

docs/agents/HANDOFF.md

POST/api/v1/access-control/grantsaccess-control

Create Grant

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Body body: any *

Resposta inferida

Promise<any>

Handler

AccessControlAdminController.createGrant

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: userId, grupo/papel e scopeType sao obrigatorios · 403: Concessao PLATFORM deve ser feita apenas por fluxo de plataforma · 404: Usuario nao encontrado neste tenant

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:339

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

docs/agents/HANDOFF.md

PATCH/api/v1/access-control/grants/:idaccess-control

Update Grant

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ updated: number; grantIds: string[]; }>

Handler

AccessControlAdminController.updateGrant

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Concessao de acesso ativa nao encontrada · 400: grupo/papel e scopeType sao obrigatorios · 403: Concessao PLATFORM deve ser alterada apenas por fluxo de plataforma · 400: Data de expiracao invalida

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:349

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

docs/agents/HANDOFF.md

PATCH/api/v1/access-control/grants/:id/reactivateaccess-control

Reactivate Grant

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string *

Resposta inferida

Promise<{ reactivated: number; expiredDateCleared: boolean; }>

Handler

AccessControlAdminController.reactivateGrant

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

404: Concessão de acesso não encontrada · 400: Este acesso já está ativo

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:370

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/grants/:id/revokeaccess-control

Revoke Grant

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string *

Resposta inferida

Promise<{ revoked: number; }>

Handler

AccessControlAdminController.revokeGrant

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

404: Concessao de acesso nao encontrada

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:364

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/groupsaccess-control

List Groups

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<({ documentCategories: { category: string; }[]; permissions: { permission: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; uploadDocumentCategories: { category: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; })[]>

Handler

AccessControlAdminController.listGroups

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:38

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/groupsaccess-control

Create Group

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Body body: any *

Resposta inferida

Promise<{ documentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; permissions: { id: string; createdAt: Date; permission: string; accessGroupId: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; }>

Handler

AccessControlAdminController.createGroup

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: Nome do grupo e obrigatorio · 400: Selecione ao menos um papel para o grupo · 403: Grupo de tenant nao pode usar escopo PLATFORM

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:100

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

Não localizada anteriormente

DELETE/api/v1/access-control/groups/:idaccess-control

Delete Group

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string *

Resposta inferida

Promise<{ ok: boolean; }>

Handler

AccessControlAdminController.deleteGroup

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado · 403: Grupo de sistema nao pode ser excluido · 400: Revogue os acessos ativos deste grupo antes de exclui-lo

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:125

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/groups/:idaccess-control

Update Group

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ documentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; permissions: { id: string; createdAt: Date; permission: string; accessGroupId: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; }>

Handler

AccessControlAdminController.updateGroup

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado · 403: Grupo de tenant nao pode usar escopo PLATFORM

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:110

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/groups/:id/document-categoriesaccess-control

Update Group Document Categories

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ documentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; permissions: { id: string; createdAt: Date; permission: string; accessGroupId: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; }>

Handler

AccessControlAdminController.updateGroupDocumentCategories

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:165

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/groups/:id/document-upload-categoriesaccess-control

Update Group Document Upload Categories

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ documentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; permissions: { id: string; createdAt: Date; permission: string; accessGroupId: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; uploadDocumentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; }>

Handler

AccessControlAdminController.updateGroupDocumentUploadCategories

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado · 400: Selecione apenas tipos ativos e liberados para envio pelo cliente

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:180

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/groups/:id/permissionsaccess-control

Update Group Permissions

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ documentCategories: { id: string; createdAt: Date; accessGroupId: string; category: string; }[]; permissions: { id: string; createdAt: Date; permission: string; accessGroupId: string; }[]; roles: { id: string; roleKey: string; createdAt: Date; accessGroupId: string; }[]; } & { id: string; tenantId: string; createdAt: Date; updatedAt: Date; name: string; isActive: boolean; description: string | null; isSystem: boolean; defaultScopeType: $Enums.AccessScopeType; opportunityVisibilityScope: $Enums.OpportunityVisibilityScope; billingVisibilityScope: $Enums.BillingVisibilityScope; permissionsConfigured: boolean; }>

Handler

AccessControlAdminController.updateGroupPermissions

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:150

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/groups/:id/rolesaccess-control

Add Group Role

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ id: string; roleKey: string; createdAt: Date; accessGroupId: string; }>

Handler

AccessControlAdminController.addGroupRole

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: roleKey e obrigatorio · 404: Grupo de acesso nao encontrado

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:135

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

DELETE/api/v1/access-control/groups/:id/roles/:roleKeyaccess-control

Remove Group Role

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Param roleKey: string *

Resposta inferida

Promise<{ ok: boolean; }>

Handler

AccessControlAdminController.removeGroupRole

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

404: Grupo de acesso nao encontrado · 400: O grupo precisa manter ao menos um papel

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:195

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/rolesaccess-control

List Roles

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<{ permissions: { permission: string; }[]; id: string; tenantId: string | null; createdAt: Date; updatedAt: Date; key: string; label: string; description: string | null; isSystem: boolean; }[]>

Handler

AccessControlAdminController.listRoles

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:32

Interfaces relacionadas

(dashboard)/access-control/page.tsx

Documentação anterior

docs/agents/HANDOFF.md

GET/api/v1/access-control/staff-usersaccess-control

List Staff Users

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<{ email: string; id: string; createdAt: Date; name: string; role: $Enums.UserRole; commercialProducerId: string; identityType: $Enums.UserIdentityType; isActive: boolean; commercialProducer: { id: string; name: string; status: string; }; }[]>

Handler

AccessControlAdminController.listStaffUsers

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:222

Interfaces relacionadas

(dashboard)/access-control/page.tsx, (dashboard)/departments/page.tsx

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/user-importsaccess-control

Upload User Import

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · UploadedFile file: Express.Multer.File * · Body customerId: string * · Body groupId: string *

Resposta inferida

Promise<{ id: any; originalName: any; status: any; totalRows: any; customerId: any; customerName: string; groupId: string; groupName: string; mappings: { samples: unknown[]; source: string; target: string; confidence: number; suggestionSource: string; }[]; }>

Handler

AccessControlAdminController.uploadUserImport

Corpo da requisição

Tipo string. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: Selecione um arquivo para importação. · 400: Formato inválido. Envie um arquivo XLS, XLSX ou CSV. · 400: O arquivo não contém uma tabela de usuários válida. · 400: Este arquivo já foi processado para o cliente e grupo selecionados.

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:265

Interfaces relacionadas

../components/access-control/access-user-import.tsx

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/user-imports/:id/finalizeaccess-control

Finalize User Import

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body mapping: any[] * · Body approvalHash: string * · Body deliveryMode: string

Resposta inferida

Promise<{ processed: number; createdUsers: number; existingUsers: number; createdGrants: number; skippedGrants: number; deliveryMode: "EMAIL_INVITATION" | "TEMPORARY_PASSWORD"; invitations: { name: string; email: string; inviteUrl: string; sent: boolean; method?: string; error?: string; }[]; credentials: { name: string; username: string; temporaryPassword: string; employeeRegistration: string; }[]; }>

Handler

AccessControlAdminController.finalizeUserImport

Corpo da requisição

Tipo any[]. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: Corrija os erros da prévia antes de concluir. · 400: A prévia mudou. Revise os dados novamente antes de confirmar. · 400: O grupo selecionado não possui papel interno. · 400: A importação em lote exige um grupo com apenas um papel interno.

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:305

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

POST/api/v1/access-control/user-imports/:id/previewaccess-control

Preview User Import

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body mapping: any[] * · Body deliveryMode: string

Resposta inferida

Promise<{ importId: string; customer: { id: string; name: string; }; group: { id: string; name: string; }; mapping: { source: string; target: string; confidence: number; suggestionSource: string; }[]; deliveryMode: "EMAIL_INVITATION" | "TEMPORARY_PASSWORD"; approvalHash: string; canConfirm: boolean; summary: { totalRows: number; validRows: number; invalidRows: number; newUsers: number; existingUsers: number; newGrants: number; alreadyGranted: number; }; rows: { row: number; fullName: string; email: string; document: string | null; externalKey: string | null; department: string | null; jobTitle: string | null; phone: string | null; errors: string[]; warnings: string[]; existingUserId: string | null; existingGrant: boolean; }[]; }>

Handler

AccessControlAdminController.previewUserImport

Corpo da requisição

Tipo any[]. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:288

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/user-imports/fieldsaccess-control

User Import Fields

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Nenhum

Resposta inferida

readonly [{ readonly id: "fullName"; readonly label: "Nome completo"; readonly group: "Identificação"; }, { readonly id: "email"; readonly label: "E-mail de acesso"; readonly group: "Acesso"; }, { readonly id: "document"; readonly label: "CPF / documento"; readonly group: "Identificação"; }, { readonly id: "externalKey"; readonly label: "Matrícula / código externo"; readonly group: "Identificação"; }, { readonly id: "department"; readonly label: "Departamento / área"; readonly group: "Organização"; }, { readonly id: "jobTitle"; readonly label: "Cargo / função"; readonly group: "Organização"; }, { readonly id: "phone"; readonly label: "Telefone"; readonly group: "Contato"; }]

Handler

AccessControlAdminController.userImportFields

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:259

Interfaces relacionadas

../components/access-control/access-user-import.tsx

Documentação anterior

Não localizada anteriormente

GET/api/v1/access-control/usersaccess-control

List Users

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any *

Resposta inferida

Promise<{ email: string; id: string; createdAt: Date; name: string; role: $Enums.UserRole; commercialProducerId: string; identityType: $Enums.UserIdentityType; isActive: boolean; commercialProducer: { id: string; name: string; status: string; }; }[]>

Handler

AccessControlAdminController.listUsers

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:216

Interfaces relacionadas

(dashboard)/access-control/page.tsx, (dashboard)/departments/page.tsx

Documentação anterior

docs/agents/DECISIONS.md, docs/agents/HANDOFF.md

POST/api/v1/access-control/usersaccess-control

Create User

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Body body: any *

Resposta inferida

Promise<{ user: { email: string; id: string; tenantId: string; createdAt: Date; name: string; role: $Enums.UserRole; identityType: $Enums.UserIdentityType; isActive: boolean; }; grants: any[]; grant: any; reusedExistingUser: boolean; }>

Handler

AccessControlAdminController.createUser

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: nome, e-mail, senha, grupo/papel e scopeType sao obrigatorios · 403: Usuario de tenant nao pode receber escopo PLATFORM · 400: Já existe uma conta com este e-mail em outro tenant

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:249

Interfaces relacionadas

(dashboard)/access-control/page.tsx, (dashboard)/departments/page.tsx

Documentação anterior

docs/agents/DECISIONS.md, docs/agents/HANDOFF.md

PATCH/api/v1/access-control/users/:id/commercial-produceraccess-control

Update User Commercial Producer

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ email: string; id: string; name: string; commercialProducerId: string; commercialProducer: { id: string; name: string; status: string; }; }>

Handler

AccessControlAdminController.updateUserCommercialProducer

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

404: Colaborador não encontrado · 400: Produtor comercial inválido · 400: Este produtor já está vinculado a outro colaborador

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:234

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

PATCH/api/v1/access-control/users/:id/passwordaccess-control

Update User Password

Autorização

Autenticação

bearer

Permissões (todas)

tenant.users.manage

Entitlements

Nenhum declarado

Guards

JwtAuthGuard, PermissionsGuard

Contrato

Parâmetros

Request req: any * · Param id: string * · Body body: any *

Resposta inferida

Promise<{ message: string; temporaryPassword?: string; user: { email: string; id: string; updatedAt: Date; name: string; isActive: boolean; }; generated: boolean; username: string; }>

Handler

AccessControlAdminController.updateUserPassword

Corpo da requisição

Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.

Erros e validação

Erros explícitos

400: A senha provisoria precisa ter pelo menos 8 caracteres · 404: Usuario nao encontrado neste tenant

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/access-control/access-control-admin.controller.ts:324

Interfaces relacionadas

Não localizada automaticamente

Documentação anterior

Não localizada anteriormente

GET/api/v1/analytics/age-changesanalytics

Beneficiaries changing ANS age band in the next 90 days

Autorização

Autenticação

bearer

Permissões (todas)

claims.analytics.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query contractId: string · Query customerId: string

Resposta inferida

Promise<any>

Handler

AnalyticsController.getAgeChanges

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

401 · A rota respondeu sem credenciais e bloqueou a execução antes do fluxo de negócio.

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:517

Interfaces relacionadas

(dashboard)/analytics/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/age-groupsanalytics

Cost and lives by ANS age band

Autorização

Autenticação

bearer

Permissões (todas)

claims.analytics.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query contractId: string · Query customerId: string · Query competence: string

Resposta inferida

Promise<{ competence: string; totalBeneficiaries: any; withoutBirthDate: number; groups: any; source: string; ageMetric: string; } | { competence: string; totalBeneficiaries: number; withoutBirthDate: number; groups: { label: string; min: number; max: number; lives: number; totalCost: number; avgCostPerLife: number; }[]; }>

Handler

AnalyticsController.getAgeGroups

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:492

Interfaces relacionadas

(dashboard)/analytics/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/checkupsanalytics

Latest check-up block and KPIs from claims analysis

Autorização

Autenticação

bearer

Permissões (todas)

claims.analytics.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query contractId: string · Query customerId: string

Resposta inferida

Promise<{ source: string; hasData: boolean; competence: any; summary: any; monthly: any[]; vouchers: any[]; insights: any[]; sourceAnalysisId?: undefined; selectedFromHistory?: undefined; candidateCount?: undefined; reportBlocks?: undefined; } | { source: string; hasData: boolean; sourceAnalysisId: string; selectedFromHistory: boolean; candidateCount: number; competence: string; reportBlocks: { type: any; name: any; rows: any; }[]; summary: { emitted: number; utilized: number; utilizationRate: number; totalCost: number; averageCost: number; conversionGap: number; impactOnTotalCost: number; }; monthly: { utilizationRate: number; averageCost: number; competence: string; emitted: number; utilized: number; cost: number; examImpact: number | null; totalCostImpact: number | null; }[]; vouchers: { id: string; age: any; sex: any; plan: any; status: string; }[]; insights: { title: string; description: string; severity: "info" | "warning" | "critical"; }[]; }>

Handler

AnalyticsController.getCheckups

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:472

Interfaces relacionadas

(dashboard)/analytics/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/claims-categoriesanalytics

Latest claims event category distribution

Autorização

Autenticação

bearer

Permissões (todas)

claims.analytics.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query contractId: string · Query customerId: string

Resposta inferida

Promise<{ source: string; hasData: boolean; competence: string; riskLevel: string; totalCost: number; lossRatio: number; categories: { name: string; cost: number; quantity: number; averageCost: number; percentage: number; }[]; }>

Handler

AnalyticsController.getClaimsCategories

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:454

Interfaces relacionadas

(dashboard)/analytics/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/dashboardanalytics

Get dashboard summary data (legacy)

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query customerId: string · Query contractId: string · Query billedLivesCompetenceFrom: string · Query billedLivesCompetenceTo: string

Resposta inferida

Promise<{ dashboardKind: string; totalLives: number; totalContracts: number; totalCustomers: number; contractTerms: any; renewalAdjustmentHistory: any; billedLivesByAge: { competence: string | null; total: number; rows: { ageBand: string; holders: number; dependents: number; total: number; }[]; byAgeGender?: Array<{ ageBand: string; female: number; male: number; other: number; total: number; }>; geography?: Array<{ uf: string; city: string | null; lives: number; }>; }; totalRevenue: number; totalExpense: number; lossRatio: number; latestCompetence: any; latestRiskLevel: any; hasClaimsData: boolean; lifeInsurance: { policyNumber: any; activeInsured: number; totalCapital: number; totalPayroll: number; averageCapital: number; dataQualityScore: number; validityStart: any; validityEnd: any; dueDay: any; salaryMultiple: number; maxCapital: number; coverageCount: any; }; recentImports: { id: string; status: $Enums.ImportStatus; name: string; type: $Enums.ImportType; date: Date; confidence: string; }[]; evolution: { name: any; revenue: number; expense: number; }[]; billingEvolution: { competence: string; health: number; dental: number; life: number; lifeExpected: number; lifeNet: number; l

Handler

AnalyticsController.getDashboardSummary

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:108

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, docs/CLAIMS_IMPORTS_ROUTE.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/dashboard/claims-blocksanalytics

List configurable claims blocks and their publication availability

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query customerId: string · Query contractId: string

Resposta inferida

Promise<({ label: string; description: string; renderer: string; presentation: string | number | true | JsonObject | JsonArray; isEnabled: boolean; sortOrder: number; availability: string; sourceCompetence: any; key: "FINANCIAL_EVOLUTION"; } | { label: string; description: string; renderer: string; presentation: string | number | true | JsonObject | JsonArray; isEnabled: boolean; sortOrder: number; availability: string; sourceCompetence: any; key: "LOSS_RATIO"; } | { label: string; description: string; renderer: string; presentation: string | number | true | JsonObject | JsonArray; isEnabled: boolean; sortOrder: number; availability: string; sourceCompetence: any; key: "EVENT_CATEGORIES"; } | { label: string; description: string; renderer: string; presentation: string | number | true | JsonObject | JsonArray; isEnabled: boolean; sortOrder: number; availability: string; sourceCompetence: any; key: "UTILIZATION"; } | { label: string; description: string; renderer: string; presentation: string | number | true | JsonObject | JsonArray; isEnabled: boolean; sortOrder: number; availability: string; sourceCompetence: any; key: "AUTHORIZATION_OVERVIEW"; } | { label: string; description: str

Handler

AnalyticsController.getDashboardClaimsBlocks

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:175

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

PUT/api/v1/analytics/dashboard/claims-blocksanalytics

Persist the brokerage claims dashboard block configuration

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.manage

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Body body: { blocks?: Array<{ key?: string; isEnabled?: boolean; sortOrder?: number; labelOverride?: string | null; descriptionOverride?: string | null; renderer?: string | null; presentation?: Record<string, unknown> | null; }>; } *

Resposta inferida

Promise<{ saved: number; }>

Handler

AnalyticsController.updateDashboardClaimsBlocks

Corpo da requisição

CampoTipoRegra
blocks{ key?: string; isEnabled?: boolean; sortOrder?: number; labelOverride?: string | null; descriptionOverride?: string | null; renderer?: string | null; presentation?: Record<string, unknown> | null; }[]Sem decorator específico

Erros e validação

Erros explícitos

403: Acesso restrito ao escopo concedido para este usuario · 400: Informe ao menos um bloco do dashboard · 400: Bloco de sinistralidade inválido: ${key || "não informado"} · 400: Ordem inválida para o bloco ${key} · 400: Não repita blocos na configuração · 400: Não repita a ordem dos blocos

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:197

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/dashboard/contractsanalytics

List contracts available as dashboard filters

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query customerId: string · Query search: string · Query limit: string

Resposta inferida

Promise<{ id: string; name: string; code: string; policyNumber: string; productDomain: string; provider: string; status: string; customer: { id: string; name: string; }; parentContract: { id: string; name: string; customer: { id: string; name: string; }; }; hierarchyRole: string; insuranceLine: { name: string; category: string; }; }[]>

Handler

AnalyticsController.listDashboardContracts

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

403: Cliente fora do escopo concedido · 403: Contrato fora do escopo concedido · 403: Nenhum escopo de contrato concedido

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:137

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

GET/api/v1/analytics/dashboard/customersanalytics

Search customers available in dashboard filters

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.read

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Query search: string · Query limit: string

Resposta inferida

Promise<{ customers: { id: string; name: string; documentLabel: string; }[]; total: number; hasMore: boolean; isFixedScope: boolean; }>

Handler

AnalyticsController.listDashboardCustomers

Corpo da requisição

Não se aplica.

Erros e validação

Erros explícitos

403: Cliente fora do escopo concedido · 403: Contrato fora do escopo concedido · 403: Nenhum escopo de contrato concedido

Runtime

Não exercitada diretamente; contrato revisado no código

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:159

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, docs/CLAIMS_IMPORTS_ROUTE.md, apps/web/src/app/docs/api/inventory.json

POST/api/v1/analytics/dashboard/gamma-reportanalytics

Generate an executive dashboard report with Gamma

Autorização

Autenticação

bearer

Permissões (todas)

claims.dashboard.read, claims.report.export

Entitlements

claims.analytics

Guards

JwtAuthGuard, PermissionsGuard, EntitlementsGuard

Contrato

Parâmetros

Request req: any * · Body body: CreateGammaReportDto *

Resposta inferida

Promise<{ generationId: string; status: "pending" | "completed" | "failed"; }>

Handler

AnalyticsController.createDashboardGammaReport

Corpo da requisição

CampoTipoRegra
customerIdstringIsOptional, IsString
contractIdstringIsOptional, IsString
billedLivesCompetenceFromstringIsOptional, IsString
billedLivesCompetenceTostringIsOptional, IsString
customerNamestringIsOptional, IsString
contractNamestringIsOptional, IsString
layoutstringIsOptional, IsString
themestringIsOptional, IsString
sectionsstring[]IsOptional, IsArray, IsString({ each: true })
paletteGammaReportPaletteDtoIsOptional, ValidateNested

Erros e validação

Erros explícitos

Nenhuma exceção explícita localizada no handler ou chamada direta

Runtime

Não exercitada: operação de escrita preservada

Rastreabilidade

Fonte

apps/api/src/modules/analytics/analytics.controller.ts:226

Interfaces relacionadas

(dashboard)/dashboard/page.tsx

Documentação anterior

docs/API_ROUTE_INVENTORY.md, docs/CLAIMS_AUTHORIZATION.md, apps/web/src/app/docs/api/inventory.json

Página 1 de 30 · até 40 rotas por página

Limites desta auditoria

O inventário cobre todas as declarações HTTP encontradas no checkout atual. Corpos tipados como any, respostas sem contrato explícito e erros criados em chamadas indiretas profundas continuam marcados para revisão manual. Não foram enviados arquivos, mensagens, protocolos, propostas, emissões, baixas financeiras ou alterações cadastrais.

Confirmar operação

Informe os detalhes