Rotas identificadas
1187
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
Método HTTP, caminho, finalidade, handler e fonte.
Campos, tipos, obrigatoriedade e decorators resolvíveis.
Autenticação, modo any/all, permissões e entitlements.
Resposta TypeScript e exceções explícitas da chamada imediata.
Prisma foi usado como contexto; páginas e componentes foram correlacionados.
Referências em Markdown e guias públicos foram indexadas por rota.
Métodos HTTP
Matriz de validação
1187 rotas foram extraídas do código. Confirma contrato declarado, não execução real.
38 módulos receberam GET sem credenciais: 37 bloquearam em 401/403 e 1 leitura pública respondeu com sucesso.
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.
/customers
A carteira consome consulta, filtros e ações do módulo customer. A captura usa registros de demonstração.

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

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

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

Fluxos validados no navegador
/customersCarteira, busca, filtros e abertura do cadastro foram inspecionados sem salvar alterações.
Módulo customer
/contractsCarteira, indicadores, filtros, modos de visualização e entrada do detalhe foram inspecionados.
Módulo contract
/opportunitiesFunil, agenda, filtros e criação foram inspecionados; nenhuma oportunidade foi criada.
Módulo traditional-insurance
/opportunities/dashboardIndicadores, previsão, prioridades e filtros foram inspecionados em modo de leitura.
Módulo traditional-insurance
/opportunities/settings/pipelinesPipelines, etapas, probabilidades e bloqueios estruturais foram inspecionados; nenhum botão de escrita foi acionado.
Módulo traditional-insurance
/performance/riscos-psicossociais/propostasFluxo de proposta, anonimato, investimento e geração foi inspecionado sem registrar proposta.
Módulo psychosocial
/policiesIndicadores, filtros, carteira e detalhe de apólice foram inspecionados sem movimentações.
Módulo traditional-insurance
/policies/renewalsAgenda, prazos, situações e entrada do planejamento foram inspecionados; nenhuma renovação foi iniciada.
Módulo traditional-insurance
/insurance-linesIndicadores, filtros, paginação, perfil operacional e vínculos foram inspecionados em modo de consulta.
Módulo insurance-catalog
/documentsIndicadores, escopo, formulário vazio e filtros foram inspecionados; nenhum arquivo foi publicado, baixado, ocultado ou arquivado.
Módulo document
/documents/configuracaoCatálogo, grupos e regras dos tipos documentais foram inspecionados; nenhum tipo foi criado ou alterado.
Módulo document
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.
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
/api/v1/access-control/commercial-producersaccess-controlList Commercial Producers
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any *
Resposta inferida
Promise<{ id: string; name: string; producerType: string; linkedUser: { id: string; name: string; }; }[]>
Handler
AccessControlAdminController.listCommercialProducers
Não se aplica.
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.
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
/api/v1/access-control/departmentsaccess-controlList Departments
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/departmentsaccess-controlCreate Department
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
400: Nome do departamento e obrigatorio
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/departments/:idaccess-controlArchive Department
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
404: Departamento nao encontrado
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/departments/:idaccess-controlUpdate Department
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
404: Departamento nao encontrado · 400: Departamento nao pode ser pai dele mesmo
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/departments/:id/membersaccess-controlUpdate Department Members
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/grantsaccess-controlList Grants
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/grantsaccess-controlCreate Grant
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Body body: any *
Resposta inferida
Promise<any>
Handler
AccessControlAdminController.createGrant
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/grants/:idaccess-controlUpdate Grant
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Param id: string * · Body body: any *
Resposta inferida
Promise<{ updated: number; grantIds: string[]; }>
Handler
AccessControlAdminController.updateGrant
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/grants/:id/reactivateaccess-controlReactivate Grant
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Param id: string *
Resposta inferida
Promise<{ reactivated: number; expiredDateCleared: boolean; }>
Handler
AccessControlAdminController.reactivateGrant
Não se aplica.
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
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
/api/v1/access-control/grants/:id/revokeaccess-controlRevoke Grant
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Param id: string *
Resposta inferida
Promise<{ revoked: number; }>
Handler
AccessControlAdminController.revokeGrant
Não se aplica.
Erros explícitos
404: Concessao de acesso nao encontrada
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/groupsaccess-controlList Groups
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/groupsaccess-controlCreate Group
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/groups/:idaccess-controlDelete Group
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Param id: string *
Resposta inferida
Promise<{ ok: boolean; }>
Handler
AccessControlAdminController.deleteGroup
Não se aplica.
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
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
/api/v1/access-control/groups/:idaccess-controlUpdate Group
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/groups/:id/document-categoriesaccess-controlUpdate Group Document Categories
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
404: Grupo de acesso nao encontrado
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/groups/:id/document-upload-categoriesaccess-controlUpdate Group Document Upload Categories
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/groups/:id/permissionsaccess-controlUpdate Group Permissions
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
404: Grupo de acesso nao encontrado
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/groups/:id/rolesaccess-controlAdd Group Role
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
400: roleKey e obrigatorio · 404: Grupo de acesso nao encontrado
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/groups/:id/roles/:roleKeyaccess-controlRemove Group Role
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
Parâmetros
Request req: any * · Param id: string * · Param roleKey: string *
Resposta inferida
Promise<{ ok: boolean; }>
Handler
AccessControlAdminController.removeGroupRole
Não se aplica.
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
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
/api/v1/access-control/rolesaccess-controlList Roles
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/staff-usersaccess-controlList Staff Users
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/user-importsaccess-controlUpload User Import
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo string. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/user-imports/:id/finalizeaccess-controlFinalize User Import
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any[]. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/user-imports/:id/previewaccess-controlPreview User Import
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any[]. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada: operação de escrita preservada
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
/api/v1/access-control/user-imports/fieldsaccess-controlUser Import Fields
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/usersaccess-controlList Users
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/access-control/usersaccess-controlCreate User
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/users/:id/commercial-produceraccess-controlUpdate User Commercial Producer
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/access-control/users/:id/passwordaccess-controlUpdate User Password
Autenticação
bearer
Permissões (todas)
tenant.users.manage
Entitlements
Nenhum declarado
Guards
JwtAuthGuard, PermissionsGuard
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
Tipo any. O controller usa corpo dinâmico ou sem DTO estrutural resolvível; revise a fonte indicada antes de integrar.
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
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
/api/v1/analytics/age-changesanalyticsBeneficiaries changing ANS age band in the next 90 days
Autenticação
bearer
Permissões (todas)
claims.analytics.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
Parâmetros
Request req: any * · Query contractId: string · Query customerId: string
Resposta inferida
Promise<any>
Handler
AnalyticsController.getAgeChanges
Não se aplica.
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.
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
/api/v1/analytics/age-groupsanalyticsCost and lives by ANS age band
Autenticação
bearer
Permissões (todas)
claims.analytics.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/analytics/checkupsanalyticsLatest check-up block and KPIs from claims analysis
Autenticação
bearer
Permissões (todas)
claims.analytics.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/analytics/claims-categoriesanalyticsLatest claims event category distribution
Autenticação
bearer
Permissões (todas)
claims.analytics.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/analytics/dashboardanalyticsGet dashboard summary data (legacy)
Autenticação
bearer
Permissões (todas)
claims.dashboard.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/analytics/dashboard/claims-blocksanalyticsList configurable claims blocks and their publication availability
Autenticação
bearer
Permissões (todas)
claims.dashboard.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada diretamente; contrato revisado no código
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
/api/v1/analytics/dashboard/claims-blocksanalyticsPersist the brokerage claims dashboard block configuration
Autenticação
bearer
Permissões (todas)
claims.dashboard.manage
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
| Campo | Tipo | Regra |
|---|---|---|
| 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 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
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
/api/v1/analytics/dashboard/contractsanalyticsList contracts available as dashboard filters
Autenticação
bearer
Permissões (todas)
claims.dashboard.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
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
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
/api/v1/analytics/dashboard/customersanalyticsSearch customers available in dashboard filters
Autenticação
bearer
Permissões (todas)
claims.dashboard.read
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
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
Não se aplica.
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
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
/api/v1/analytics/dashboard/gamma-reportanalyticsGenerate an executive dashboard report with Gamma
Autenticação
bearer
Permissões (todas)
claims.dashboard.read, claims.report.export
Entitlements
claims.analytics
Guards
JwtAuthGuard, PermissionsGuard, EntitlementsGuard
Parâmetros
Request req: any * · Body body: CreateGammaReportDto *
Resposta inferida
Promise<{ generationId: string; status: "pending" | "completed" | "failed"; }>
Handler
AnalyticsController.createDashboardGammaReport
| Campo | Tipo | Regra |
|---|---|---|
| customerId | string | IsOptional, IsString |
| contractId | string | IsOptional, IsString |
| billedLivesCompetenceFrom | string | IsOptional, IsString |
| billedLivesCompetenceTo | string | IsOptional, IsString |
| customerName | string | IsOptional, IsString |
| contractName | string | IsOptional, IsString |
| layout | string | IsOptional, IsString |
| theme | string | IsOptional, IsString |
| sections | string[] | IsOptional, IsArray, IsString({ each: true }) |
| palette | GammaReportPaletteDto | IsOptional, ValidateNested |
Erros explícitos
Nenhuma exceção explícita localizada no handler ou chamada direta
Runtime
Não exercitada: operação de escrita preservada
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
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.