78 lines
7.0 KiB
Markdown
78 lines
7.0 KiB
Markdown
# Baseline e gate — 28/09/2026
|
||
|
||
Registo histórico da Fase 0. O proprietário autorizou depois a progressão automática; o gate de aprovação abaixo foi ultrapassado por essa instrução. Consultar `implementation-status.md` e `validation.md` para a execução e métricas actuais.
|
||
|
||
## Execução e resultados
|
||
|
||
| Verificação executada | Resultado |
|
||
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||
| PHPUnit completo em PostgreSQL/PostGIS isolado | 138 testes, 1.463 verificações, todos aprovados; 27,943 s |
|
||
| PHPStan completo | Zero erros |
|
||
| TypeScript `--noEmit` | Aprovado |
|
||
| Lint páginas investment/portfolio e PortalNavigation | Aprovado |
|
||
| Pint do script de inventário | Primeira verificação encontrou estilo; formatado; verificação final aprovada, assim como `php -l` |
|
||
| Build Vite | Aprovado, 2.354 módulos, 11,78 s; aviso de dependência opcional fontaine, sem falha |
|
||
| Inventário agregado | Executado em transacção READ ONLY/REPEATABLE READ; 93 tabelas; JSON adjacente |
|
||
| Backup da base | SHA-256 conferido; manifesto regista restauro verificado em 93 tabelas |
|
||
|
||
Backup privado da base: `storage/app/private/portfolio-version-backup-20260928-011346/`. O backup antecede a migration de versão editorial; a reconciliação existente documenta apenas `migrations` 34→35. Backup completo anterior da aplicação: `C:/laragon/backups/portal-investidor-20260927-101224/RESTAURO.md`. Não publicar estes backups nem as configurações privadas. Esta fase não fez alterações de esquema ou conteúdo de negócio.
|
||
|
||
As versões instaladas foram lidas de `composer.lock` e dos pacotes em `node_modules`; as versões PostgreSQL/PostGIS foram consultadas na base local. O JSON contém contagens, nunca registos pessoais ou credenciais.
|
||
|
||
## Comandos reproduzíveis (PowerShell)
|
||
|
||
```powershell
|
||
$validationPhp = 'C:/Users/macbook/AppData/Local/Temp/investmoz-validation-20260924/php/php.exe'
|
||
& $validationPhp tools/zones-baseline.php
|
||
& $validationPhp vendor/bin/phpstan analyse --no-progress --memory-limit=512M
|
||
& $validationPhp vendor/bin/pint --test tools/zones-baseline.php
|
||
node node_modules/typescript/bin/tsc --noEmit
|
||
node_modules/.bin/vp.cmd lint resources/js/pages/investment resources/js/pages/portfolio resources/js/components/PortalNavigation.tsx
|
||
```
|
||
|
||
Em outra sessão, exclusivamente para testes, com PostgreSQL QA disponível na porta 55441:
|
||
|
||
```powershell
|
||
$validationPhp = 'C:/Users/macbook/AppData/Local/Temp/investmoz-validation-20260924/php/php.exe'
|
||
$env:DB_CONNECTION='pgsql'
|
||
$env:DB_DATABASE='portal_services_test'
|
||
$env:DB_HOST='127.0.0.1'
|
||
$env:DB_PORT='55441'
|
||
$env:DB_USERNAME='education_test'
|
||
$env:DB_URL=''
|
||
& $validationPhp vendor/bin/phpunit --do-not-cache-result
|
||
```
|
||
|
||
Depois de terminar PHPUnit, executar `npm.cmd run build` na sessão normal. Não substituir o manifesto Vite enquanto testes Inertia o lêem. O PHP padrão do PATH não é adequado ao baseline PostgreSQL; não executar `composer setup`, que altera configuração e base.
|
||
|
||
## Ficheiros e reversão
|
||
|
||
Criados: `tools/zones-baseline.php`, `docs/investmoz/zones/README.md`, `diagnosis-and-adr.md`, `plan-and-traceability.md`, `baseline.md`, `baseline-data.json`. Nenhum ficheiro aplicacional removido. Build regenera artefactos derivados em `public/build` e ficheiros Wayfinder. Endpoints, componentes de produto e dados de negócio permanecem funcionalmente iguais; nenhuma migration criada nesta fase. Rollback da fase consiste em retirar os novos artefactos de documentação/inventário, preservando os backups; não exige rollback de base.
|
||
|
||
Não havia `.git`. Foi inicializado repositório local na branch `feature/zee-zfi-catalogue`, usando `C:/laragon/bin/git/cmd/git.exe`. Não há identidade Git configurada; commits não executados e nenhum ficheiro sensível adicionado ao índice. Antes de versionar a aplicação inteira, rever exclusões de anexos, dumps e storage privado. Não confundir branch sem commit inicial com histórico de recuperação completo.
|
||
|
||
## Limites e riscos
|
||
|
||
- Testes passam para o código actual; não comprovam requisitos ZEE/ZFI ainda não implementados.
|
||
- Nenhum novo ensaio de navegador, carga, leitor de ecrã, falha de rede ou UAT foi executado nesta fase. Evidências anteriores estão em `../unification/validation.md` e não são homologação do novo catálogo.
|
||
- Ausência de geometrias impede demonstrar cobertura territorial real. Não inventar coordenadas ou perímetros.
|
||
- Fontes jurídicas, entidades competentes, validade e nomes das zonas exigem conferência documental na Fase 1. Não foram carregadas regras fiscais ou certificados.
|
||
- R2–R5 da revisão arquitectural continuam abertos; a Fase 0 não os resolve.
|
||
- A aprovação editorial anterior pelo próprio gestor conflita com o novo requisito de segregação. Novo domínio seguirá revisão independente; a transição do legado precisa decisão explícita e migração de permissões.
|
||
- SLO/SLA, retenção, responsáveis nominais e calendário de UAT não foram fornecidos. Devem ser decisões registadas, não valores inventados.
|
||
|
||
## Checklist de gate
|
||
|
||
| Condição | Estado |
|
||
| -------------------------------------------------------------- | ----------------------------- |
|
||
| Código acessível e versões/comandos identificados | Sim |
|
||
| Backup existente com restauro documentado e checksum conferido | Sim |
|
||
| Baseline de testes reproduzido | Sim |
|
||
| Diagnóstico, matriz de decisões, ADR e backlog preparados | Sim |
|
||
| Escopo piloto aprovado pelo proprietário | Pendente — proposta no README |
|
||
| Identidade Git e primeiro commit | Pendente |
|
||
| Transição de permissões e responsáveis de validação | Pendente |
|
||
| Autorização para iniciar Fase 1 | A aguardar decisão no gate |
|
||
|
||
Recomendação: **Go condicionado**. Próxima fase proposta: ER/dicionário, matriz jurídica, identidade canónica e relações tipadas, migrations aditivas e testes GIS/integridade/reversão em base isolada. Não iniciada.
|