Pular para o conteúdo principal

Extensões e módulos do produto

O COBRES registra seus módulos em api/app/product/manifest.py. Esse arquivo é o ponto de entrada do produto para adicionar rotas, listagens, mensagens e trabalhos sem espalhar condições de negócio pela camada de plataforma.

O que o manifesto registra​

CampoUso
api_routersRotas do produto e prefixos dos planos correspondentes
openapi_tagsAgrupamento e descrição dos recursos
locale_messagesMensagens de erro em pt-BR
error_statusStatus HTTP dos códigos de erro do produto
listingsRecursos de listagem sujeitos às regras da camada de plataforma
worker_installRegistro de handlers de outbox
worker_ticksTrabalhos periódicos de manutenção
platform_role_grantsChaves platform.* adicionais para cada papel fixo da plataforma
request_body_limitsLimite de corpo por rota, em bytes
idempotency_refused_prefixesPrefixos que recusam o header Idempotency-Key
requests_*O que o produto acopla à capacidade de solicitações: assuntos, relações com registros, operações e biblioteca de modelos

O manifesto do COBRES inclui as áreas de cadastro, dívidas, carteiras, cobrança, negociação, documentos, portal do credor e financeiro, além dos pontos de acoplamento da capacidade de solicitações. O worker registra os handlers do produto e a varredura financeira finance.sweep, executada a cada 30 segundos.

Validação na inicialização​

A camada de plataforma valida o manifesto antes de montar as rotas. Colisões com caminhos, códigos de erro, nomes de listagem, permissões ou schemas dela não devem modificar silenciosamente o contrato existente. Um manifesto inválido interrompe o boot e a verificação de saúde usada na publicação.

Acrescentar um recurso​

  1. Defina o contrato de comportamento no PRD correspondente.
  2. Crie as tabelas, funções e grants de produto necessários.
  3. Registre permissões e use a mesma dependência require_permission das rotas existentes.
  4. Defina schemas próprios e nomes que não colidam com schemas da camada de plataforma.
  5. Crie a listagem com campos e operadores permitidos explicitamente.
  6. Registre rotas, erros e trabalhos no manifesto.
  7. Preencha os testes de fronteira do produto e as telas nos slots previstos.

No plano Audience, use require_relationship() e projeções por relationship. Não reutilize o catálogo de permissões de equipe como porta de entrada do usuário externo.

Extensões de interface​

Cada SPA possui slots em src/product/. O shell, as páginas genéricas e os contratos de navegação continuam pertencendo à superfície. Prefira um ponto de extensão existente a uma alteração na camada de plataforma que conheça o nome de um cliente ou um caso particular do produto.

Configurações do produto ficam em classes próprias. A validação deve ocultar valores de entrada em erros. Não coloque configuração operacional sensível em VITE_*, pois variáveis frontend são públicas no bundle.

Consulte mapa do repositório e permissões.