From eb9294ef42c2cfc97eb8c2553d545e3bff7c0add Mon Sep 17 00:00:00 2001 From: nala Date: Sat, 24 Oct 2026 21:36:55 +0200 Subject: [PATCH] docs(iva): prepare G6H delivery after verified backup and isolated restore --- .../simulations/l1-g6h-delivery-20261024.json | 118 ++++++++++++++++++ .../l1-g6h-readonly-rollback-20261024.patch | 10 ++ 2 files changed, 128 insertions(+) create mode 100644 docs/investmoz/simulations/l1-g6h-delivery-20261024.json create mode 100644 docs/investmoz/simulations/l1-g6h-readonly-rollback-20261024.patch diff --git a/docs/investmoz/simulations/l1-g6h-delivery-20261024.json b/docs/investmoz/simulations/l1-g6h-delivery-20261024.json new file mode 100644 index 00000000..9a356461 --- /dev/null +++ b/docs/investmoz/simulations/l1-g6h-delivery-20261024.json @@ -0,0 +1,118 @@ +{ + "status": "ready_after_fresh_authenticated_preflight_and_verified_backup_restore", + "candidate": "2359a88dba92147eb28769c7d9ae908cb2df7227", + "base_installed": "9b26217dec945fe07b665c6ad7638a965bf104a9", + "coverage_complete_branches": { + "AUD-SIM-L1-P060": [ + "un_development_exemption", + "un_development_reduction" + ] + }, + "branch_count_complete": 1, + "treatment_count": 2, + "runtime_delta": [ + { + "path": "resources/js/lib/iva-import-exemptions.ts", + "sha256_LF": "799e9a0020e805af9f67387bfa36608c4973f15c4427d1b82c3f6b6398aed129" + }, + { + "path": "resources/js/components/simulation-import-exemptions.tsx", + "sha256_LF": "89ab431fa6810c1f56897f203a817a41722c4a9df0cb075561dee6208e8730d1" + } + ], + "counts_before": { + "delivered": 77, + "QA": 1, + "functional_pending": 54, + "documentary": 1, + "total": 133 + }, + "counts_current": { + "delivered": 77, + "QA": 1, + "functional_pending": 54, + "documentary": 1, + "total": 133 + }, + "counts_after_delivery": { + "delivered": 78, + "QA": 0, + "functional_pending": 54, + "documentary": 1, + "total": 133 + }, + "QA_proofs_reused": [ + "iva-l1-g6h-qa-20261024.json" + ], + "authorization": "Tempo explicitly deploy2359a88d by existingGit,preserve concurrentchanges and check installeddelta only;keep decision/list/plan/scope associated with result", + "scope": "P060 only,two treatments un_development_exemption/un_development_reduction,samebranch;decision/list/plan/scope references in immutable calculation inputs/report;request not grant;no extension to other goods/operations/periods", + "preservation": "77priorclosures and partialP084/P085 preserved;accepted QA reused;freshbackup/realisolatedrestore beforeinstallation;installeddelta only", + "partial_P084_P085": "Already available for preparation/conditional simulation only,benefits pending;no closure in this release", + "limits": "L1open;P00105/06;beveragesL2/L3;importclassification separate fromserviceVAT/deduction/field11;Stats/AIdeferred", + "containment": "l1-g6h-readonly-rollback-20261024.patch,checked only,not applied;blocks newP060classification only,preserves readers/history and otherbranches", + "authenticated_preflight": { + "installed": { + "status": "installed", + "commit": "9b26217dec945fe07b665c6ad7638a965bf104a9", + "release": "/var/www/investmoz-homologacao/releases/9b26217dec945fe07b665c6ad7638a965bf104a9-80907805", + "previous_release": "/var/www/investmoz-homologacao/releases/78c9f4a356d5eaf590d8d82168228a2f84b1f633-a865ec5f", + "database_migrations": 0, + "content_imports": 0 + }, + "current_link": "/var/www/investmoz-homologacao/releases/9b26217dec945fe07b665c6ad7638a965bf104a9-80907805", + "release_revision": { + "commit": "9b26217dec945fe07b665c6ad7638a965bf104a9", + "branch": "main", + "built_at": "2026-10-24T19:13:31.576700+00:00", + "manifest_sha256": "713be11fd1eee3f6ccc10f850260dbcc91e98577eb1e124b2fd0dacdaec9ecee" + }, + "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-g6h-delivery-20261024/backup", + "target": { + "database": "teste_investidor", + "port": 5432 + }, + "tables": 174, + "files_verified": 369, + "dump_sha256": "6f6e23986cf21dffca468eaa8ba8b1493150a8eec78a5de238a9fc25d028a5c6", + "files_sha256": "6d7a2cdeede7f11edcb5f9a94935a1d79a50ce8b6f5bf86ef279db5ef25d086a", + "restore_verified": false + }, + "restore": { + "restore_verified": true, + "tables_verified": 174, + "container_network": "none", + "database": "l1_g6h_restore_20261024", + "port": 55441, + "source_dump_sha256": "6f6e23986cf21dffca468eaa8ba8b1493150a8eec78a5de238a9fc25d028a5c6", + "active_database_writes": 0 + } + } +} diff --git a/docs/investmoz/simulations/l1-g6h-readonly-rollback-20261024.patch b/docs/investmoz/simulations/l1-g6h-readonly-rollback-20261024.patch new file mode 100644 index 00000000..b85bc2c6 --- /dev/null +++ b/docs/investmoz/simulations/l1-g6h-readonly-rollback-20261024.patch @@ -0,0 +1,10 @@ +--- a/resources/js/lib/iva-import-exemptions.ts ++++ b/resources/js/lib/iva-import-exemptions.ts +@@ -102,6 +102,7 @@ + } + export function importExemptionCurrent(draft:Record,book:ImportExemptionBook):boolean {return !!book.result&&book.result.sourceKey===key(draft,book);} + export function recordImportExemptions(draft:Record,book:ImportExemptionBook):ImportExemptionBook { ++ if(book.rows.some(row=>isDevelopmentImport(row.treatment)))throw new Error('Novas classificações P060 temporariamente suspensas; dados, histórico, relatórios e restantes ramos preservados.'); + if(!book.rows.length||new Set(book.rows.map(r=>r.id)).size!==book.rows.length)throw new Error('Indique importações com identificadores distintos; versões anteriores conservadas.'); + const result:ImportExemptionCalculation={version:importExemptionVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),location:JSON.stringify(draft.selection_labels??{}),sourceKey:key(draft,book),source:[...new Set(book.rows.map(row=>importRuleSource(row.treatment)))].join(' | '),inputs:structuredClone(book.rows),rows:book.rows.map(row=>evaluateImportExemption(row,draft.currency))}; + return {...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};