Padrao de modulos
Todo modulo de negocio que entrar no framework segue o contrato em @govon/module-standard. Ver modules/govon-core/ como referencia.
Modulos registrados
| Modulo | Versao | Estado | Manifesto | Pagina dedicada |
|---|---|---|---|---|
| govon-core | 0.1.0 | runtime | modules/govon-core/ | — |
| protocolo | 0.1.0 | runtime | modules/protocolo/ | /modulos/protocolo |
module.json (obrigatorio)
{
"name": "protocolo",
"version": "0.1.0",
"openapiTag": "protocolo",
"permissions": [
"protocolo.criar",
"protocolo.ler",
"protocolo.movimentar",
"protocolo.anexar"
],
"auditableEntities": ["Protocolo", "Movimentacao", "Anexo"],
"lgpd": {
"sensitiveFields": [
{ "entity": "Protocolo", "field": "cpfRequerente", "purpose": "identificacao", "retentionDays": 1825 }
]
}
}Estrutura sugerida
modules/<nome>/
├── module.json # contrato (R1)
├── audit.json # politica detalhada de auditoria
├── openapi.yaml # contrato HTTP (R3)
└── README.md
apps/api/src/modules/<nome>/
├── <nome>.module.ts # NestJS module
├── <nome>.controller.ts # rotas com @RequirePermission (R5/R7/R21)
├── <nome>.service.ts # regras (usa @govon/data, sem Prisma direto)
├── <nome>.service.test.ts
└── dto/*.ts # zod schemas + @ApiPropertyChecklist obrigatorio antes de mergear
- module.json valido (
validateModule) - Toda rota com
@RequirePermission('dominio.recurso.acao') - Toda rota com
@ApiTags/@ApiOperation - Entidades novas via Prisma migration
- Toda entidade nova em
auditableEntities - Services usam
scopedWhere/scopedData(R10) - Integracoes externas via
BaseConnector(R13/R25) - IA via
GovernedAI(R12/R26) - Campos sensiveis em
module.json#lgpd+ uso de@govon/mask(R22/R16) - Cobertura: pelo menos 1 teste unit por service + 1 E2E happy-path
- typecheck + lint + test + build verdes