7.5 KiB
Pacote funcional de acesso — aplicação autorizada, 30/10/2026
Resultado
Aplicado o manifesto expressamente confirmado para a conta existente #1 Osmane Nala — nala@tempo.co.mz, em Tempo #1 → Tempo, Lda. #1 → SEGI #1, na base pública sgf_db. 82 direitos finais: 25 na empresa e 57 na unidade. Seis preservados e 76 acrescentados, sem direitos fora desse âmbito, alteração de credencial, nova conta ou mudança de dados de negócio por comandos de teste. O manifesto aprovado foi preservado e o seu SHA-256 consta da auditoria e do recibo.
Proposta original: documento e manifesto exacto. Estes ficheiros continuam a identificar a proposta aprovada; o estado de aplicação é documentado neste relatório e nos recibos, sem reescrever o conteúdo cuja impressão digital foi auditada.
Catálogo e atomicidade
A primeira tentativa foi revertida: o CHECK permission_grants_scope_check da instalação pública não admitia 12 nomes do pacote. Leitura posterior confirmou os seis direitos originais e zero registos de aplicação parcial. Esta omissão da verificação inicial do catálogo foi corrigida antes da aplicação final; não se declarou sucesso da tentativa revertida.
A operação final conservou integralmente a expressão anterior do CHECK e acrescentou somente, com unidade obrigatória, os nomes já aprovados: purchasing_budget.view/create/approve/record/consume, purchasing_budget.reinforcement.propose/review, supplier_payables.view e workshop_corrections.view/request/review/apply. São 12 nomes exactos, não um wildcard ou permissão universal. A mudança do catálogo e as 76 inserções decorreram na mesma transacção, com bloqueio, verificação de identidade/âmbito, comparação do estado anterior e auditoria. O total final foi confrontado com o manifesto. Foram avaliados os 82 candidatos válidos e os 82 de âmbito invertido; os invertidos foram recusados pela nova expressão.
Esta é uma alteração delimitada da restrição de catálogo da tabela de acessos, necessária para representar os direitos aprovados; não foi migração de módulos nem remoção de guardas da aplicação. A fonte de autorização é a confirmação expressa do pacote de 82 direitos, não uma decisão nova sobre emissão ou operações financeiras. O procedimento administrativo foi executado pelo proprietário da base, porque a aplicação usa sgf_app. Não se concedeu ALTER à conta da aplicação nem se alteraram privilégios dos roles PostgreSQL.
Auditoria: identity.functional_access_package_granted, ID 12, com operador, motivo, âmbito, manifesto SHA-256 e conjunto de direitos. Antes da aplicação final foi criada cópia privada de permission_grants/identity_audit em /var/backups/sgf-functional-access-20261030/permissions-audit-before-final.dump, modo 0600 e directório 0700. Catálogo e geração do SQL pelo pg_restore validados; não houve ensaio de restauro numa base separada nem reposição sobre histórico activo. A definição anterior da restrição e o recibo estão no mesmo directório. Qualquer reversão futura deve retirar apenas o delta desta operação e reconciliar acessos/histórico posteriores; não restaurar o dump integral por omissão.
Verificação técnica após aplicar
As consultas foram realizadas no servidor com actor/contexto explícitos e transacções READ ONLY. Não foi criada uma sessão HTTP para representar o utilizador, nem lidas cookies/sessões privadas. Não se conhece nem se pediu a palavra-passe. Estas provas não substituem utilização interactiva autenticada no navegador.
- 82 direitos efectivos confrontados com o manifesto, sem duplicações.
- Navegação renderizada com as concessões efectivas: Início, Comercial, Compras, Stock, Oficinas, Financeiro, Contabilidade, Configuração. Comercial contém Clientes/Serviços e Facturação, incluindo Facturas; sem criar outro menu.
- Antes do pacote: Início, Compras, Stock, Contabilidade e Configuração. A diferença decorre das concessões, não de alteração de código do menu.
- Assets públicos JS/CSS comparados por bytes com os locais: iguais.
- 19 consultas de diagnóstico: Clientes, Serviços, prestações e rascunhos, preparação documental do emitente/cliente/rascunho, metadados de instruções de pagamento, classificação contabilística, perfis fiscais e configuração da pré-visualização disponíveis. Valores completos de instruções não foram incluídos em relatórios.
- Facturas devolvem test_enabled=false e real_blocked=true. Recebimentos, oficinas, conversão/correcções de oficina, custos e orçamento industrial devolvem o bloqueio de ambiente previsto. Não foram simuladas essas capacidades como disponíveis no público.
- Guardas de emissão, obrigações e controlo orçamental comum recusam o público com 403, mesmo com os direitos atribuídos. Não foram instaladas tabelas pa_, ps_ ou cb_*, alterado APP_ENV ou executado comando fiscal/bancário.
- Página inicial e código funcional não foram alterados por esta operação. Não houve publicação, push, aceitação de módulos ou checkpoint de encerramento.
Provas: aplicação, consultas do servidor, navegação/assets/entradas. O teste de navegação reutiliza scripts/functional-access-check.mjs; os dois ficheiros functional-access-*-remote.py são modelos administrativos desta operação, com placeholders, e não comandos gerais de instalação nem procedimentos de retry. O primeiro corresponde à tentativa revertida; não deve ser reexecutado.
Como entrar e o que testar
No público: abrir https://sgf.tempo.co.mz/, actualizar a página e seleccionar Tempo, Lda./SEGI. A sessão consulta as concessões actuais; não é necessário trocar a palavra-passe. Pode utilizar os percursos públicos acima com dados sintéticos, observando versões, pré-requisitos e separação entre preparação/decisão. Facturas e outros destinos de ensaio podem aparecer no menu e apresentar o bloqueio esperado: o direito não habilita esse ambiente.
Entradas locais verificadas por HTTP 200:
| Endereço | Finalidade e entrada |
|---|---|
| http://127.0.0.1:8002/avaliar | Demonstração integrada: escolher a função sintética existente para oficinas, custos, orçamento industrial, emissão e recebimentos de teste. Outra identidade continua necessária para decisões independentes. |
| http://127.0.0.1:8003/ | Controlo orçamental comum; usar as contas sintéticas protegidas de preparação, validação, operação e consulta já existentes. Sem expor credenciais no relatório. |
| http://127.0.0.1:8006/demo | Obrigações/pagamentos no SGF: escolher Preparar, Validar ou Consultar. |
| http://127.0.0.1:8005/demo | Mesmo percurso em Compras autónomo, com as respectivas identidades/contextos. |
Não foram copiadas a conta pública ou as concessões para bases sintéticas. As identidades de ensaio já existentes são distintas. Endereços 127.0.0.1 só funcionam no computador de desenvolvimento; não são acesso remoto para avaliadores externos. O domínio público continua sem esses percursos de ensaio habilitados.
Limitação final: verificação técnica de concessões, consultas, guardas, assets e renderização estática aprovada. A observação visual e a confirmação de Comercial na sessão interactiva do responsável após actualizar a página continuam por efectuar; não houve afirmação de revisão visual.