4.5 KiB
Registo histórico da preparação inicial. O estado actual e as instruções de utilização estão no README e em IDENTITY_WORKFLOW.md.
Registo da preparação local
Data: 25 de Outubro de 2026. Destino confirmado: C:\laragon\www\sgf-tempo.
Versões efectivamente instaladas ou utilizadas
| Componente | Versão | Localização / origem |
|---|---|---|
| Windows | 11 Pro ARM64, 10.0.26300 | Sistema existente |
| PHP | 8.4.27 NTS VS17 x64 | C:\laragon\tools\sgf-tempo\php-8.4.27 |
| Composer | 2.10.3 | C:\laragon\tools\sgf-tempo\composer-2.10.3\composer.phar |
| Node.js | 24.22.1 ARM64 | C:\laragon\tools\sgf-tempo\node-v24.22.1-win-arm64 |
| npm | 11.19.1 | Incluído nesse Node.js |
| Esqueleto Laravel | 13.11.0 | laravel/laravel, sem scripts de criação automáticos |
| Laravel Framework | 13.38.0 | composer.lock |
| React / React DOM | 19.2.9 / 19.2.9 | package-lock.json |
| Vite | 8.3.5 | package-lock.json |
| Plugin React | 6.1.2 | package-lock.json |
| Laravel Vite Plugin | 3.2.0 | package-lock.json |
| brick/math | 0.14.8 | composer.lock |
| PHPUnit | 12.5.40 | composer.lock |
| Mockery | 1.6.12 | Dependência auxiliar dos testes, composer.lock |
| PostgreSQL | 17.11 x64 | Binários existentes; cluster e configuração exclusivos |
| Git | 2.55.0.windows.5 | Instalação existente; repositório local inicializado |
Sem substituições das versões propostas. PostGIS não foi activado e Python não foi instalado nem incorporado. A detecção anterior encontrou PostGIS 3.6.2 em ficheiros de extensão e Python 3.10.6 fora do PATH; nenhum é dependência desta entrega.
Integridade e compatibilidade
Downloads de PHP, Node.js e Composer conferidos por SHA-256 contra metadados oficiais; arquivos e comprovativos estão em C:\laragon\tools\sgf-tempo\downloads. PHP x64 executou em Windows ARM64, carregou as extensões necessárias e executou Laravel/PHPUnit. Node ARM64 executou npm, a compilação e Vite. Resolução conjunta concluída sem ignorar requisitos de plataforma. Dependências transitivas exactas preservadas nos lockfiles.
Fontes: https://www.php.net/downloads.php, https://windows.php.net/downloads/releases/releases.json, https://nodejs.org/dist/v24.22.1/SHASUMS256.txt, https://getcomposer.org/download/2.10.3/composer.phar.sha256sum, https://repo.packagist.org e https://registry.npmjs.org.
Verificações concluídas
- Composer check-platform-reqs: aprovado.
- Composer validate --strict --no-check-all: aprovado. --no-check-all desactiva os avisos contra versões exactas, que são deliberados neste âmbito; as verificações de esquema e lock permanecem.
- Composer audit e npm audit: sem vulnerabilidades conhecidas reportadas no momento da preparação.
- Vite build: concluído; manifest e recursos gerados.
- PHPUnit: 11 testes, 27 asserções aprovadas. Inclui acesso por pertença explícita, recusa entre empresas do mesmo tenant e de tenants diferentes, contexto ausente/limpo, escopo de leitura/escrita, modelo de contexto anterior, relação inválida na base e protecção do destino dos testes.
- migrate:fresh --env=local: recusado pelo guard antes da execução destrutiva.
- Aplicação de desenvolvimento: sgf_dev_app sem administração, sem CREATE no esquema e sem CONNECT à base de testes. Executor de testes sem CONNECT à base de desenvolvimento.
- Base de desenvolvimento sem fixtures dos testes.
- HTTP: /, /up e manifest com 200; /api/context sem autenticação com 401.
- Vite serviu JSX transformado em ARM64, HTTP 200.
- Colisão na porta 8000: arranque recusado, PIDs existentes preservados.
- Paragem e novo arranque do cluster e servidor próprios: concluídos.
- .env, .env.testing, vendor e node_modules ignorados pelo Git. Sem commit, remoto ou publicação.
Limites e decisões pendentes
A demonstração é local e limitada à identidade/contexto. Não constitui isolamento de produção ou aceitação dos módulos. Permanecem pendentes estratégia de isolamento entre clientes, RLS, autenticação de produto, permissões detalhadas, propagação de contexto a filas/anexos/exportações, regras financeiras, fiscalidade, planos, preços, elegibilidade, quotas, fornecedores e operação dos futuros ambientes. As tabelas cache/jobs do esqueleto são apenas infraestrutura Laravel; esta entrega usa cache/sessões locais e fila síncrona, sem trabalhadores financeiros.
Não foram alterados o InvesteMoz, o serviço PostgreSQL existente, o PATH global ou a política global de execução. Servidor HTTP e cluster SGF ligam apenas a 127.0.0.1. Instruções de arranque e paragem no README.