docs(iva): prepare G7A delivery after verified backup and isolated restore
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-24 21:50:21 +02:00
parent 20bfeb4f71
commit 4193056bdd
2 changed files with 136 additions and 0 deletions
@@ -0,0 +1,126 @@
{
"status": "ready_after_fresh_authenticated_preflight_and_verified_backup_restore",
"candidate": "20bfeb4f71743fd7316b252c027a88d0c67d5eae",
"base_installed": "eb9294ef42c2cfc97eb8c2553d545e3bff7c0add",
"coverage_complete_branches": {
"AUD-SIM-L1-P090": [
"public_authority_indemnity",
"public_authority_compensation"
]
},
"branch_count_complete": 1,
"treatment_count": 2,
"runtime_delta": [
{
"path": "resources/js/lib/iva-public-authority-base.ts",
"sha256_LF": "667704ba8c2d26421993f5e7e2c6599afb2912e052b27a96e423cb8d01a21d85"
},
{
"path": "resources/js/components/simulation-public-authority-base.tsx",
"sha256_LF": "7aa05785fdb6fcb7de4c0345e9c09073ebdbb3a8b39f1bd2610da08abc8c8a89"
},
{
"path": "resources/js/components/simulation-monthly-iva.tsx",
"sha256_LF": "db5b4431351766f8f86b4e60195381dab17c077ca3db72de48f2fb7e0f2a320b"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "60a9dd9f4eed5884b16c7097906bc438958b3b1407976e10f4699d35c1c68b19"
}
],
"counts_before": {
"delivered": 78,
"QA": 1,
"functional_pending": 53,
"documentary": 1,
"total": 133
},
"counts_current": {
"delivered": 78,
"QA": 1,
"functional_pending": 53,
"documentary": 1,
"total": 133
},
"counts_after_delivery": {
"delivered": 79,
"QA": 0,
"functional_pending": 53,
"documentary": 1,
"total": 133
},
"QA_proofs_reused": [
"iva-l1-g7a-qa-20261024.json"
],
"authorization": "Tempo explicitly deploy20bfeb4f through existingGit,preserve concurrentchanges and check installeddelta only;two treatments sameP090branch,base remains separate fromVAT",
"scope": "P090only,public_authority_indemnity/public_authority_compensation;net monetary/nonmonetary normalvalue components,act/document/composition/valuationreferences in immutable result.inputs/report;vat/rate alwaysnull,no incidence/tax/deduction/field11/ModeloAtotals inferred",
"preservation": "78priorclosures and partialP084/P085 preserved;acceptedQA reused;freshbackup/realisolatedrestore beforeinstallation;installeddelta only;P060decision/list/plan/scope andproportionalresults,P056authorization,P050serviceVAT preserved",
"partial_P084_P085": "Already available for preparation/conditional simulation only,benefits pending;no closure in this release",
"limits": "L1open;P00105/06;beveragesL2/L3;Statistics/AIdeferred;L1closuredoesnotrequireL2/L3/alltaxes",
"containment": "l1-g7a-readonly-rollback-20261024.patch,checked only,not applied;blocks newP090calculations only,preserves readers/history andotherbranches",
"authenticated_preflight": {
"installed": {
"status": "installed",
"commit": "eb9294ef42c2cfc97eb8c2553d545e3bff7c0add",
"release": "/var/www/investmoz-homologacao/releases/eb9294ef42c2cfc97eb8c2553d545e3bff7c0add-08cf86ab",
"previous_release": "/var/www/investmoz-homologacao/releases/9b26217dec945fe07b665c6ad7638a965bf104a9-80907805",
"database_migrations": 0,
"content_imports": 0
},
"current_link": "/var/www/investmoz-homologacao/releases/eb9294ef42c2cfc97eb8c2553d545e3bff7c0add-08cf86ab",
"release_revision": {
"commit": "eb9294ef42c2cfc97eb8c2553d545e3bff7c0add",
"branch": "main",
"built_at": "2026-10-24T19:38:38.127391+00:00",
"manifest_sha256": "b419662fb9f09f3f0b33902a8935a88a6b48399575219fe3d33cceb9153172ee"
},
"service": "ExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"configuration_keys": [
"repository",
"branch",
"target_url",
"legacy_root",
"state_root",
"release_root",
"current_link",
"shared_assets",
"php",
"schema_contract",
"ci_environment",
"postgis_image",
"test_database",
"qa_port",
"retention",
"webhook_secret_file"
],
"safe_paths": {
"repository": "nala/Investidor-V2",
"release_root": "/var/www/investmoz-homologacao/releases",
"postgis_image": "postgis/postgis@sha256:01a6a70e41e6c4467c8f55f6063555ed72db2d6662cd0d571040d42eadaeb6f6"
},
"pipeline_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604"
},
"backup_restore": {
"backup": {
"stage": "/var/backups/investmoz-l1-g7a-delivery-20261024/backup",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 174,
"files_verified": 369,
"dump_sha256": "30a6764b68526e358a4f9bc64bb8dd65df25af1b379878e9619105d1d871e408",
"files_sha256": "67134f77514350569cd1a4a70357f73258b6fa65bb3f6fe7655ec5cd02939ef2",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 174,
"container_network": "none",
"database": "l1_g7a_restore_20261024",
"port": 55441,
"source_dump_sha256": "30a6764b68526e358a4f9bc64bb8dd65df25af1b379878e9619105d1d871e408",
"active_database_writes": 0
}
}
}
@@ -0,0 +1,10 @@
--- a/resources/js/lib/iva-public-authority-base.ts
+++ b/resources/js/lib/iva-public-authority-base.ts
@@ -60,6 +60,7 @@
function formLabel(value:string):string{return value==='money'?'Em dinheiro':value==='non_money'?'Em espécie':value==='mixed'?'Mista — dinheiro e espécie':'Por indicar';}
export function publicBaseCurrent(draft:Record<string,unknown>,book:PublicBaseBook):boolean{return!!book.result&&book.result.sourceKey===key(draft,book);}
export function recordPublicBases(draft:Record<string,unknown>,book:PublicBaseBook):PublicBaseBook{
+ throw new Error('Novas bases P090 temporariamente suspensas; dados, histórico, relatórios e restantes ramos preservados.');
if(!book.rows.length||new Set(book.rows.map(row=>row.id)).size!==book.rows.length)throw new Error('Indique operações com identificadores distintos; originais conservados.');
const result:PublicBaseCalculation={version:publicBaseVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),location:JSON.stringify(draft.selection_labels??{}),sourceKey:key(draft,book),source:publicBaseSource,inputs:structuredClone(book.rows),rows:book.rows.map(row=>evaluatePublicBase(row,draft.currency))};
const next={...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};savePublicBaseBook(draft,next);return next;