Files
Investidor-V2/docs/investmoz/land-assistance/requirement-traceability.md
T
nala 1106509116
tests / ci (push) Canceled after 0s
vrsao 2
2026-10-08 14:02:01 +02:00

15 KiB

Matriz de rastreabilidade — Terra e DUAT

Revisão: 2026-10-03. Esta matriz descreve o código presente no repositório; não certifica a validade jurídica de modelos nem a aprovação da funcionalidade para submissão oficial.

Requisito do prompt Fonte disponível/estado Campo ou percurso Validação/evidência Teste/estado
Guia público e limites do InvestMoz resources/js/pages/land-assistance/guide.tsx; não depende de requisito jurídico específico /terra-duat Aviso de que não atribui DUAT nem confirma disponibilidade ou direitos LandAssistanceTest: guia público 200; coberto
Formulário em branco público Modelo InvestMoz land-assistance-v1; scans oficiais não identificados /terra-duat/formulario-em-branco Impressão/guardar como PDF; explicitamente não oficial e não preenchível LandAssistanceTest: rota pública 200; coberto como modelo imprimível
Formulário progressivo, rascunho, retoma e versão Modelo interno land-assistance-v1 /investidor/terra-duat/novo, edição e acompanhamento Autenticação, cifra do payload, versão optimista, histórico cifrado e eventos sem conteúdo pessoal Testes de feature cobrem criação, propriedade, concorrência e suporte; sem evidência de ensaio browser DUAT nesta revisão
Categorias de apoio e actos posteriores Vocabulário de produto do prompt; modalidades e efeitos legais pendentes payload.support_kind, request_description Valores delimitados no FormRequest; UI não declara elegibilidade ou aprovação Parcial: classificação jurídica detalhada depende das fontes oficiais
Requerente, contacto, representação e minimização Requisitos do prompt; fundamento de recolha por acto concreto ainda carece de fonte applicant_category, contacto, representação, NUIT Campos opcionais no rascunho; apoio exige um contacto utilizável e consentimento Email ou telefone isolado coberto por LandAssistanceTest; não é criado endereço sintético
Localização, várias parcelas e hierarquia territorial Catálogo territorial da aplicação; não é cadastro fundiário parcels[], province/district/admin_post/locality, área e geometria declaradas UUID, tipos e sequência pai/filho; até 10 parcelas; catálogo/mapa não confirmam direitos Validação servidor implementada; cenário visual de cascata e retoma do DUAT sem teste browser registado
Ocupação, usos, antecedentes e conflito Declarações do requerente, não inferências do portal known_occupants, known_improvements, prior_right_status, conflict_status Opções incluem “não sei” e estados qualificados; sem conclusão cadastral Coberto pelo formulário, sem regra fundiária automática
Checklist personalizada por modalidade/jurisdição/fase Pendente: guia, Lei/regulamentos e procedimentos vigentes não foram obtidos em cópia legível/reconciliada Não há checklist jurídica executável Não tornar itens dos scans documentos obrigatórios; não inventar fonte, prazo, responsável oficial ou evidência Bloqueado por fonte/revisão jurídica
Plano de exploração Scans exploracao/scan0003.pdf e scan0004.pdf, classificados só pela pasta; OCR e conferência pendentes exploration_plan.activity_rows[] Linhas facultativas; período livre, existente/planeado, unidade; não soma áreas anuais Validação estrutural no FormRequest; OCR não reconciliado
Consulta comunitária e pareceres Scans Consulta/scan*.pdf, ainda sem OCR/revisão consultation.participants[], intervenções, oposição, acordos, documentos referidos Até 200 participantes; estados comunicados/preparatórios; não gera parecer, assinatura ou acta Cobertura do formulário; sem validação de execução/interpretação legal
Anexos e documentos privados Armazenamento privado e registo documents existente Documentos no caso Tipos/tamanho limitados; acesso autenticado/proprietário; quarentena não descarregável Implementado com bloqueio seguro; antimalware não configurado, sem libertação automática
Cópia preenchida, histórico e referência Modelo InvestMoz land-assistance-v1 /imprimir Reflecte payload guardado e versão; referência interna; sem assinatura/número oficial simulado HTML imprimível, não PDF electrónico; correspondência visual/browser ainda sem evidência nesta revisão
Apoio e CRM InterestSubmission; migration aditiva 2026_10_03_210000_make_interest_request_email_nullable.php solicitar-apoio Email ou telefone; consentimento, transacção, idempotência e recibo interno Telefone isolado persiste email NULL; LandAssistanceTest cobre percurso e rollback protegido. Consumidores downstream com email obrigatório ainda carecem de validação operacional
Acompanhamento externo e gestão Nenhuma API pública de DUAT confirmada Área privada e gestão Estados internos; factos externos apenas informados ou sustentados por evidência; encaminhamento preparado não é envio Implementado sem simular integração pública
Direitos, disponibilidade e intersecções Não confirmáveis por dados/catálogos locais Localização e documentos Ausência de registo/intersecção não prova ausência de direitos; conflitos não são decididos Salvaguarda de interface presente; confirmação cabe à entidade competente
Segurança, auditoria e reversão PostgreSQL e padrões locais Migrations 2026_10_03_200000_create_land_assistance_cases.php e 2026_10_03_210000_make_interest_request_email_nullable.php Payload/revisões cifrados; controlo de propriedade; concorrência optimista; eventos sem payload; upload privado em quarentena; rollback protegido PostgreSQL 17 QA descartável: LandAssistanceTest 6/6 (46 asserções); nenhuma migration aplicada à base operacional
Fontes e versões históricas Inventário read-only em source-inventory.md land-assistance-v1 SHA-256 dos sete PDFs; originais fora de public/; snapshots preservam versões Identidade dos ficheiros verificada anteriormente; conteúdo/actualidade pendentes
  1. Obter o Guia Nacional e os textos integrais do Boletim da República; confrontar reproduções PDUL com o BR e consolidar alterações por artigo, jurisdição e vigência. A triagem consta de legal-source-review-2026-10-03.md.
  2. Extrair os scans numa cópia de trabalho, preservar originais/hashes e rever OCR página a página. Trechos ilegíveis ficam pendentes.
  3. Aprovar aplicabilidade, responsável, prazo e evidência por fonte competente antes de disponibilizar a checklist como requisito.
  4. Rever notificações, exports e integrações downstream perante registos com email NULL; não inventar endereço para compatibilizar consumidor.
  5. Configurar/testar antimalware, quarentena, retenção e auditoria antes de libertar uploads.
  6. Testar em navegador hierarquia territorial, persistência/retoma, impressão preenchida e permissões; complementar com teclado/leitor de ecrã e revisão humana.

Estado proposto

Fluxo interno de orientação e acompanhamento: parcialmente implementado e sujeito a validação funcional. Checklist legal, activação como formulário oficial, confirmação cadastral, submissão a autoridades e aprovação de DUAT: bloqueados/fora da capacidade do portal. Um pedido preenchido ou encaminhado ao CRM não é protocolo oficial.

Adenda — contacto telefónico sem email (2026-10-03)

A regra anterior desta matriz que marcava o email como obrigatório foi substituída no código: o pedido de apoio aceita email ou telefone. Email ausente é persistido como NULL, sem endereço inventado. Uma migration aditiva torna a coluna anulável; o rollback recusa-se a remover essa compatibilidade enquanto existirem pedidos só telefónicos. A conversão CRM para lead continua a exigir confirmação de email. Os testes de feature foram escritos, mas não executados porque a base isolada configurada em 127.0.0.1:55441 estava encerrada; não foi tentada ligação à porta operacional 5432.

Evidência posterior — migration e percurso telefónico (2026-10-03)

A nota anterior de tentativa bloqueada foi superada numa execução posterior: a nova base PostgreSQL 17 foi criada em pasta temporária exclusiva e usada através da porta QA 55441. LandAssistanceTest passou 4/4 (42 asserções) e a suite PHP completa passou 251/251 (2.586 asserções); isto executou a migration aditiva em QA. O cluster foi parado. Nenhuma migration foi executada na base da aplicação e a porta 5432 não foi usada.

Actualização dos testes de reversibilidade — 2026-10-03

LandAssistanceTest agora passa 6/6 (46 asserções), incluindo reversão normal da coluna para não nula quando não existem pedidos telefónicos e bloqueio do rollback quando existem. A suite PHP completa após esses testes passou 253/253 (2.590 asserções) no cluster PostgreSQL QA descartável. O cluster foi parado; nenhuma conexão de teste foi aberta na porta 5432. Nenhuma migration foi aplicada à base local ou de produção.