Files
SGF/docs/SGF_SINGLE_INTEGRATION_20261110.md
2026-11-11 09:00:17 +02:00

8.4 KiB
Raw Permalink Blame History

Integração local dos seis módulos na8085

Actualização posterior no mesmo dia: o estado abaixo documenta a primeira integração13 lançamentos. Foi complementado por Oficina–Stock/devolução/valorização, Oficina–Comercial500, continuidades, trânsito/lotes/ajuste e fecho QA: agora18 lançamentos e15 contas. Ver consolidação actual. As provas desta primeira fase mantêm-se intactas e não são repetidas por rotina.

Autorização expressa: «autorizo»,10/11/2026, âmbito de SGF_8085_NEXT_AUTHORIZATION.md. Entrada: http://127.0.0.1:8085/sgf. Conserva /compras e os sete perfis anteriores; acrescenta as dez funções QA aprovadas, com escolha explícita do módulo, sessão normal e CSRF. Não depende de SGC nem de outro servidor de demonstração.

Percursos efectivamente disponíveis

Módulo Estado observado nesta instalação
Comercial Cliente/serviço novos explicitamente associados; rascunho, perfis e série revistos; documento de teste862,07+137,93=1000MZN e PDF íntegro.
Compras C01–C10 anterior preservado; não reexecutado. A obrigação original100MZN continua no livro nativo, sem cópia para o host.
Stock Leitura do mesmo livro físico; saídas, transferência imediata, contagem sem lotes e aplicação da diferença pelos writers originais; segundo artigo/armazém QA explícitos.
Oficinas Ordem, autorização, tarefa,105min de trabalho e material2UN, com conferência técnica distinta; custo275 validado, sucessor295 validado e contabilizado por par de correcção.
Financeiro Recebível1000, afectações400/600, reversão400 e saldo400; fornecedor100→80 após afectação20→100 após reversão20. Facto de pagamento confirmado isoladamente não abate dívida.
Contabilidade Um diário nativo com âmbito SGF empresa2/unidade2;13 lançamentos equilibrados, incluindo fornecedor, afectações/reversões, vendas, custos directos e industriais e os dois pares de correcção. Lote1800→1820 mantém residual300 separado.

As operações de continuação financeira, revisão e lançamento foram executadas pela API HTTP da própria8085, com sessões separadas e confirmações individuais. A preparação Comercial/Oficinas/industrial usou os workflows efectivos no destino, com funções sintéticas existentes e transacções próprias. Não se apresenta essa preparação por CLI como percurso visual do utilizador.

Integridade e isolamento

O diário está no livro financeiro nativo existente. A origem financeira conserva o âmbito legado1/0/0; uma ligação explícita e conferida ao host qualifica o diário1/2/2. Leituras/efeitos são bloqueados se aparecer obrigação sem ordem/requisição admitida para a unidade. Nenhuma dívida, saldo ou movimento é espelhado no host.

A transacção da empresa no host mantém a autoridade e as origens de Comercial/Oficinas estáveis até ao commit nativo. As decisões verificam novamente pessoa, direitos, contexto, origem e versão. O diário só lê factos do host; não há transacção distribuída que grave simultaneamente dois efeitos de negócio. O histórico nativo retém autor SGF, âmbito, chave, hash do pedido, fundamento e resultado.

Materiais directos/industriais deste recorte são explicitamente artificiais e distintos do artigo escolhido para valorização. O perímetro privado está fixado por SHA; origem desconhecida, partilhada ou alterada bloqueia a continuidade. Esta declaração controlada de QA não constitui valorização geral de materiais reais ou de produção. O comportamento exclusivo anterior do núcleo conserva-se fora desta composição explícita.

O isolamento de código da8085 foi corrigido: o autoload de App utiliza a cópia privada, mesmo com o directório de dependências partilhado. Foram instalados52 ficheiros seleccionados e um build privado, com cópias anteriores. O bootstrap que montaria o conector SGC não foi copiado. O pacote original fixado de Compras e os seus bindings originais permanecem intactos. A conta de leitura de Stock conserva SELECT-only; o mapa adicional apenas discrimina funções/armazéns QA autorizados.

Provas dirigidas

O índice docs/proofs/sgf-single-integration-20261110.json referencia os resultados privados, sem credenciais ou dados privados.92 verificações dirigidas:23 de direitos/isolamento/idempotência dos perfis;15 leituras HTTP dos módulos;10 fronteiras HTTP, CSRF e recuperação;12 de recuperação dos formulários em DOM simulado; nove do controlador de taxas; sete de custo directo/correcção; seis industriais/correcção; cinco do perímetro de materiais; cinco de bloqueio/recuperação financeira. As provas anteriores de Compras e do núcleo foram reutilizadas, não repetidas por rotina.

O bloqueio concorrente observado é a linha de empresa do host, que serializa autoridade/origens antes de entrar no livro nativo. Uma segunda ligação atingiu o limite de aproximadamente5s, devolveu503 com Retry-After:5, e a mesma autoridade pôde continuar após a libertação da primeira transacção. Não criou pagamentos. Este ensaio não equivale a uma nova corrida de duas confirmações de escrita nem mede capacidade sustentada.

A primeira conferência de perfis desta etapa falhou porque o harness antigo exigia exactamente dois clientes e ignorava os direitos mínimos de leitura entre módulos. Foi corrigido para comparar os direitos aprovados e preservar clientes/associações antes/depois;23 verificações passaram. A preparação industrial de regressão inicialmente incluiu referências de taxas no mapa de cinco origens. Esse metadado novo, ainda sem lançamento, foi corrigido apenas nessa regressão, com estado anterior/posterior privado; a8085 recebeu o mapa correcto. Não se alteraram provas antigas para as fazer passar.

Trabalho ainda necessário para o fecho integral

  1. Ligar o consumo/devolução de Oficinas ao mesmo livro físico, com origem, limite e recepção distintos; concluir na8085 o ciclo físico2/-1/+0,5 e valorização100/50/25. Os custos já demonstrados usam materiais QA separados; não fingir essa ligação física como concluída.
  2. Concluir as continuidades previstas na matriz que ainda usam o adaptador antigo: documento comercial de origem de Oficina e comprovativos/entradas específicas do diário. A origem individual no novo diário funciona; nem todos os atalhos anteriores foram adaptados.
  3. Concluir a conferência do fecho QA após resolver todas as origens/pendências. Não fechar antecipadamente o período com cenários em falta. A paginação do catálogo de origens ficou entretanto concluída: filtros por família, páginas25/100 no servidor e selecção individual preservada. O catálogo de Stock pagina os movimentos antes de aplicar o filtro de tipo; pode mostrar páginas vazias para um tipo e explica a paginação física, sem omitir ou escolher outra origem.
  4. Concluir revisão visual, ensaio de arranque/recuperação completo e guião único. Transferência em trânsito, contagens por lotes e restantes recortes indicados na matriz conservam os seus limites.

A conferência de estruturas foi actualizada para consultar o host e o livro nativo canónico; já não apresenta dívida/diário como ausentes só por não estarem no host. Não faltam as tabelas mínimas dos seis módulos. Isso não comprova todas as funcionalidades: o gate continua client_presentable:false, sem aceitação integral nem capacidade de implantação declarada.

Preservados os seis registos protegidos, a cache cuja limpeza foi bloqueada, exemplos e provas anteriores, direitos reais e trabalho alheio. Sem novas bases, portas, demonstrações, roles PostgreSQL, publicação, candidata de Compras, checkpoint ou activação SGC. As flags disponibilizadas são apenas as deste recorte SGF privado expressamente autorizado.

Adenda de paginação:127 metadados de catálogo adicionais e um de unidade estrangeira, somente na transacção de regressão revertida. São fixtures de catálogo, não ordens executadas nem custos elegíveis. Foram percorridas seis páginas de25 e duas de100, cada uma com COUNT e SELECT limitado, sem duplicação nem exposição da unidade estrangeira;275 asserções, que não devem ser apresentadas como275 percursos de negócio. Duas leituras HTTP confirmaram o HTML filtrado e a segunda página na8085. O primeiro probe HTTP não consumia o corpo e atingiu uma asserção do cliente Node; o harness corrigido consumiu as respostas e ambas passaram. Não se atribui essa falha ao servidor nem à aplicação.