422 lines
25 KiB
JSON
422 lines
25 KiB
JSON
{
|
|
"passed": true,
|
|
"checks": [
|
|
"reproduced current 87-table schema without source rows",
|
|
"no accounts or grants imported from destination",
|
|
"runtime cannot create schema objects",
|
|
"injected dependency migration failure",
|
|
"failed migration restores original schema and identity data",
|
|
"successful migration preserves existing identity and grants",
|
|
"installation creates empty centres and allocations",
|
|
"runtime module SQL access denied before test-only privilege plan",
|
|
"minimal runtime excludes historical update and requisition deletion",
|
|
"runtime reads corrected revision without ownership",
|
|
"provider really loaded from isolated copy",
|
|
"new bundle bootstrap accepted by installer integrity check",
|
|
"anonymous direct initialisation URL denied",
|
|
"native clone authentication 1",
|
|
"native clone context 1",
|
|
"native clone authentication 2",
|
|
"native clone context 2",
|
|
"provider registers initial authority page without prior functional rights",
|
|
"initial authority CSRF enforced",
|
|
"initial authority through normal middleware",
|
|
"work page requires explicit module selection",
|
|
"new requisition view right makes purchasing selectable",
|
|
"stale module generation refused",
|
|
"provider registers operational work page",
|
|
"different enterprise option refused by operational composition",
|
|
"native administrative delegation purchasing_requisitions.view",
|
|
"native administrative delegation purchasing_requisitions.approve.department_head",
|
|
"native administrative delegation purchasing_budget.view",
|
|
"native administrative delegation purchasing_budget.approve",
|
|
"empty installation exposes authorised centre and budget preparation",
|
|
"centre created through authorised UI API with runtime role",
|
|
"centre retries preserve one source",
|
|
"existing budget API prepares synthetic allocation",
|
|
"budget approval requires independent identity",
|
|
"independent allocation approval uses existing budget kernel",
|
|
"workspace dependencies available on reproduced schema",
|
|
"direct budget movements cannot bypass requisition lifecycle",
|
|
"operational policy configured via HTTP",
|
|
"integrated operational draft",
|
|
"integrated submit uses existing budget adapter",
|
|
"integrated independent identity enforced",
|
|
"integrated approval by another identity",
|
|
"integrated authorised consultation and history",
|
|
"native administration receives complete unit catalogue",
|
|
"native administration receives canonical server labels",
|
|
"reviewer cannot inspect administrative catalogue without management right",
|
|
"forged delegation of an unowned catalogue right refused",
|
|
"packaged frontend dependency served before authentication",
|
|
"packaged frontend dependency served before authentication",
|
|
"native SGF entry renders the packaged frontend manifest",
|
|
"undeclared frontend asset refused",
|
|
"minimal plan removes inherited update and delete on new append-only sources",
|
|
"runtime cannot truncate requisitions",
|
|
"existing table ACL preserved a_billing_drafts",
|
|
"existing table ACL preserved a_clients",
|
|
"existing table ACL preserved a_commands",
|
|
"existing table ACL preserved a_events",
|
|
"existing table ACL preserved a_history",
|
|
"existing table ACL preserved a_outbox",
|
|
"existing table ACL preserved a_pending",
|
|
"existing table ACL preserved a_service_drafts",
|
|
"existing table ACL preserved a_services",
|
|
"existing table ACL preserved b_internal_confirmations",
|
|
"existing table ACL preserved ca_commands",
|
|
"existing table ACL preserved ca_decisions",
|
|
"existing table ACL preserved ca_proposals",
|
|
"existing table ACL preserved ca_resolutions",
|
|
"existing table ACL preserved ca_submissions",
|
|
"existing table ACL preserved cache",
|
|
"existing table ACL preserved cache_locks",
|
|
"existing table ACL preserved companies",
|
|
"existing table ACL preserved company_memberships",
|
|
"existing table ACL preserved dc_calculations",
|
|
"existing table ACL preserved dc_commands",
|
|
"existing table ACL preserved dc_decisions",
|
|
"existing table ACL preserved dc_events",
|
|
"existing table ACL preserved dc_outbox",
|
|
"existing table ACL preserved dc_rates",
|
|
"existing table ACL preserved doc_history",
|
|
"existing table ACL preserved doc_records",
|
|
"existing table ACL preserved document_preview_model_history",
|
|
"existing table ACL preserved document_preview_models",
|
|
"existing table ACL preserved failed_jobs",
|
|
"existing table ACL preserved ib_budgets",
|
|
"existing table ACL preserved ib_commands",
|
|
"existing table ACL preserved ib_comparisons",
|
|
"existing table ACL preserved ib_decisions",
|
|
"existing table ACL preserved ib_events",
|
|
"existing table ACL preserved ib_outbox",
|
|
"existing table ACL preserved ic_commands",
|
|
"existing table ACL preserved ic_decisions",
|
|
"existing table ACL preserved ic_events",
|
|
"existing table ACL preserved ic_inputs",
|
|
"existing table ACL preserved ic_lots",
|
|
"existing table ACL preserved ic_outbox",
|
|
"existing table ACL preserved ic_products",
|
|
"existing table ACL preserved ic_results",
|
|
"existing table ACL preserved identity_audit",
|
|
"existing table ACL preserved job_batches",
|
|
"existing table ACL preserved jobs",
|
|
"existing table ACL preserved migrations",
|
|
"existing table ACL preserved password_reset_tokens",
|
|
"existing table ACL preserved permission_grants",
|
|
"existing table ACL preserved service_calculation_profiles",
|
|
"existing table ACL preserved service_calculation_results",
|
|
"existing table ACL preserved sessions",
|
|
"existing table ACL preserved sf_activation_events",
|
|
"existing table ACL preserved sf_decisions",
|
|
"existing table ACL preserved sf_proposals",
|
|
"existing table ACL preserved si_commands",
|
|
"existing table ACL preserved si_correction_requests",
|
|
"existing table ACL preserved si_counters",
|
|
"existing table ACL preserved si_decisions",
|
|
"existing table ACL preserved si_events",
|
|
"existing table ACL preserved si_invoices",
|
|
"existing table ACL preserved si_outbox",
|
|
"existing table ACL preserved si_proposals",
|
|
"existing table ACL preserved sr_commands",
|
|
"existing table ACL preserved sr_deliveries",
|
|
"existing table ACL preserved sr_effects",
|
|
"existing table ACL preserved sr_events",
|
|
"existing table ACL preserved sr_outbox",
|
|
"existing table ACL preserved sr_records",
|
|
"existing table ACL preserved tenants",
|
|
"existing table ACL preserved units",
|
|
"existing table ACL preserved users",
|
|
"existing table ACL preserved wb_claims",
|
|
"existing table ACL preserved wb_commands",
|
|
"existing table ACL preserved wb_decisions",
|
|
"existing table ACL preserved wb_events",
|
|
"existing table ACL preserved wb_generations",
|
|
"existing table ACL preserved wb_outbox",
|
|
"existing table ACL preserved wb_proposals",
|
|
"existing table ACL preserved wo_commands",
|
|
"existing table ACL preserved wo_decisions",
|
|
"existing table ACL preserved wo_entries",
|
|
"existing table ACL preserved wo_equipment",
|
|
"existing table ACL preserved wo_events",
|
|
"existing table ACL preserved wo_orders",
|
|
"existing table ACL preserved wo_outbox",
|
|
"actual runtime CREATE denied",
|
|
"actual runtime ALTER of identity catalogue denied",
|
|
"centre creation requires own configuration and budget rights",
|
|
"centre context cannot be forged",
|
|
"refused centre operations leave original source intact",
|
|
"unsupported requisition type refused equipment",
|
|
"unsupported requisition type refused part",
|
|
"approved lifecycle covers the three supported basic types",
|
|
"unsupported types create neither a second request nor reservation",
|
|
"native revocation applies to direct module URL",
|
|
"uncontracted module refused at server",
|
|
"disabled composition exposes no executable work page",
|
|
"code-only successor installed over existing provenance",
|
|
"code-only successor rollback restores exact candidate",
|
|
"code update and rollback preserve every reproduced data table",
|
|
"code recovery preserves submitted origin decision and reservation",
|
|
"code recovery leaves baseline and maintenance intact"
|
|
],
|
|
"clone": "C:\\Users\\macbook\\AppData\\Local\\Temp/sgf-update-625f1bba6e30",
|
|
"data_fingerprints": {
|
|
"a_billing_drafts": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_clients": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_history": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_pending": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_service_drafts": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"a_services": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"b_internal_confirmations": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ca_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ca_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ca_proposals": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ca_resolutions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ca_submissions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cache": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cache_locks": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cb_audit": "ccf5b17cacb6e9d1cbbebdc55baca6b2b51103f3573c32dd1bddb24a055d2e2b",
|
|
"cb_budget_consumptions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cb_budget_entries": "ba73d3b7eb20c25d833df7b3b85f7f1f7575d78365ee1a3c2246e7749f2448ad",
|
|
"cb_budget_reinforcements": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cb_budgets": "8df00e7e6b821e2767118c352f58391d4c44bb8df1fcc38a3d40a6a9989543a5",
|
|
"cb_centres": "45bebc4ca0d417711e2a428b360c343e6dba17a64a4d799639165815e5aaef45",
|
|
"cb_consumption_sources": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"cb_origins": "f470bed486f1955724e99cde0404445c4b9753320faee2d202289fedffc4d561",
|
|
"cb_ui_commands": "424c4f2f643087911333a3ecf002bbb5fc5055c5ccf24f5cefd94c9db56b398b",
|
|
"companies": "e5098861f02b2904e068c604ecbe1379ec6597b39fcdc9575c9d9eaa3b459aec",
|
|
"company_memberships": "562084217604e0bd153e36375251db9e4e87f92c744c69d38d2a39c7821454e5",
|
|
"dc_calculations": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"dc_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"dc_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"dc_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"dc_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"dc_rates": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"doc_history": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"doc_records": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"document_preview_model_history": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"document_preview_models": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"failed_jobs": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_budgets": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_comparisons": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ib_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_inputs": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_lots": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_products": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"ic_results": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"identity_audit": "b714264c1c89e456f9217c285169fa91bc379bb744684e39c2028bb48a025ca7",
|
|
"ir_commands": "fa90f00d334ae11e38a4aea327720569da50f196ad5aa4876fcaa0b6154d78ad",
|
|
"ir_events": "8379dcb6a4fb3d1cad80cab5a4afe9a49b86a7145e2dc613d6d5371d18e96051",
|
|
"ir_policies": "7ff4f648cbf36386f78743ed2394eb12e6328fb6e7722c6ba1acb5fab36ca1d1",
|
|
"ir_policy_versions": "7ff4f648cbf36386f78743ed2394eb12e6328fb6e7722c6ba1acb5fab36ca1d1",
|
|
"ir_requests": "874bbaa494e41ddc2bee527f3660909123a19c270f7eaee0e19d534d8c355fd6",
|
|
"ir_steps": "dcde70900864b1e974f66a4778e80e8317907c14a3dc0545afadb468c6f9eef6",
|
|
"job_batches": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"jobs": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"migrations": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"password_reset_tokens": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"permission_grants": "2219ad7945c6cd3d4e28bfc4a06c04eb6141ceaa53097efd01ab5f89811fec13",
|
|
"service_calculation_profiles": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"service_calculation_results": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sessions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sf_activation_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sf_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sf_proposals": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sgc_installations": "75449b61764076870970ddf93e9b987e6b7b24889de47fb8d9046a5345065f1c",
|
|
"si_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_correction_requests": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_counters": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_invoices": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"si_proposals": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_deliveries": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_effects": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"sr_records": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"tenants": "0487a4884eb77b28bd8c052e9d2bd1a8177bab511463657d326a17c0c77b3619",
|
|
"units": "c0a43a3bf8907bcbebf727f089e8c75399ed7a94049ad85b666fe6b90851842e",
|
|
"users": "ea313e4a8b0a16e17dc1b61cea28c6832a76feed78540fe40ab61bbf88c6200c",
|
|
"wb_claims": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_generations": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wb_proposals": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_commands": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_decisions": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_entries": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_equipment": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_events": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_orders": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
"wo_outbox": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
|
|
},
|
|
"destination_activated": false,
|
|
"normal_provider_routes": true,
|
|
"browser_used": false,
|
|
"data_recovery": {
|
|
"verified": true,
|
|
"tables_reconciled": 103,
|
|
"approved_origin_reservation_versions_preserved": true,
|
|
"runtime_read_verified": true,
|
|
"runtime_ddl_denied": true,
|
|
"schema_and_triggers_verified": true,
|
|
"sql_acl_reapplied_only_to_isolated_role": true
|
|
},
|
|
"destination_security_and_schema_preserved": true,
|
|
"artifact": {
|
|
"directory": "C:\\laragon\\www\\compras/storage/app/private/candidates/OPERATIONAL-CANDIDATE-401ce31ae5f2dd20",
|
|
"archive": {
|
|
"file": "C:\\laragon\\www\\compras/storage/app/private/candidate-archives/OPERATIONAL-CANDIDATE-401ce31ae5f2dd20.zip",
|
|
"sha256": "59dbdc64c4d9f14dfb4025a6177b829d136a4e2cb633ca036b10b5ae3197e703",
|
|
"manifest_sha256": "a6478223e17a5430652f0fcbf31a44a931ae2a99cd90b151c98d2df5df43c10b"
|
|
},
|
|
"installed": false
|
|
},
|
|
"source_schema_tables": 87,
|
|
"source_rows_exported": 0,
|
|
"source_schema_sha256": "b530e03c759305247f46cdad5013e64a6caae00bded3d9d5ae5b7b5aa06a4647",
|
|
"runtime_and_migrator_separate": true,
|
|
"destination_version": "0.1.1",
|
|
"destination_changed": false,
|
|
"prior_proofs_reused": true,
|
|
"checked_at": "2026-11-02T07:10:03+00:00",
|
|
"test_database_and_roles_removed": true,
|
|
"ui_render": {
|
|
"passed": true,
|
|
"checks": [
|
|
"native selector offers server catalogue requisition right",
|
|
"native selector uses server labels",
|
|
"budget creation right has server label",
|
|
"preparer cannot delegate budget approval",
|
|
"preparer cannot delegate absent decision authority",
|
|
"reviewer sees only own approval grant",
|
|
"reviewer cannot delegate preparation",
|
|
"foreign unit grant never becomes a local option",
|
|
"client cannot invent a catalogue entry from a grant",
|
|
"no hardcoded new rights before server catalogue loads",
|
|
"existing grants render their server labels",
|
|
"general navigation remains separate",
|
|
"module entry links to requisition only under own right",
|
|
"frontend asset bound to installed bundle",
|
|
"referenced compiled dependency included",
|
|
"frontend asset bound to installed bundle",
|
|
"referenced compiled dependency included"
|
|
],
|
|
"browser_used": false,
|
|
"source_host_modified": false
|
|
},
|
|
"navigation": {
|
|
"functional_commit": "2a4169162bb4621a42a2ea1df627d52f860e7176",
|
|
"documentary_commit": "fcf0ada22701337acd4c84b404207b8400f490a2",
|
|
"host_file_sha256": {
|
|
"app/Shared/Context/ModuleNavigation.php": "f75f323940e25826792dc88848fd2b77eb3325634100a86b14c60c5d381917a3",
|
|
"app/Shared/Context/ModuleRecords.php": "1813591487e3fb1885622f1078e80734d1745f427d2bf8fa93ebc0d96974b0d6",
|
|
"app/Shared/Context/RequireModuleContext.php": "610b65868ad25d1e6f736d03d7c1da44245648ff22873f1c957c794490009192",
|
|
"app/Modules/Identity/Http/RequireCompanyContext.php": "3fcc9d4d4466d3b6883dd60cc3e63e9bb2f58a43d13ca550d79e35882562db71",
|
|
"app/Modules/Identity/Http/ModuleRecordsController.php": "f10ee4a14ed19e461bfc819288cd2f701e9d73ce4421a18f1b11e1ca545726fb",
|
|
"app/Modules/Identity/Services/Audit.php": "89d69975b3059a3aedbeff0aca1febbb92c6c135030c31b0cc4bdd8d7e602ecb",
|
|
"app/Modules/Identity/Services/IdentityWorkflow.php": "c4f4af9a7625778a408d881ba087502b116fa0ccb15f2f0311f5a0e8ad40ce73",
|
|
"resources/js/ModuleNavigation.jsx": "b53ee2d9f69a96bdabf1d3074f8662fd204c447caf8f354aea4dcf921bd336be",
|
|
"resources/js/WorkspaceNavigation.jsx": "7be946f915e3dabfb511445f169fe822c2e558ca15fef6331c247af2a1643ebf",
|
|
"resources/js/app.jsx": "33f087da73fe80ca0ae6e7609e107b805b2c8a1f1863cc3a1b2c7886fe7d3c44",
|
|
"resources/js/WorkspaceHome.jsx": "c02d71c6e630f942c13562427c7256e1b7602c75b80b462d184d45852d9ea34a",
|
|
"resources/js/ModuleRecordsWorkspace.jsx": "24399a5e6a08c78357f23fc6d304a706f477f33db879a4cf52fc53511541b78c",
|
|
"resources/js/ContextTransitionDialog.jsx": "04bde71f2ea5d26185aae930bfcf8978e5d38d1637915073cacbc12033fe9780",
|
|
"resources/js/context-transition.js": "3d76e21eca185ae97c1a6a6f5965ab33c242a28391c8c50f5af30dfc0a4a3c6a",
|
|
"resources/css/tempo-theme.css": "4b961ce49b2bb50072ea1fcae0c0d168c9ada207f59323cc52205353b7871df9",
|
|
"public/sgf-module-context.js": "f465ea30ecea0acf3fc7b838b602ea881260d73b90aa48f587327b8ee1581dc7",
|
|
"config/modules.php": "31330076b98ca423acfef0fa4e1c87a3762e53a750bd3f94c2b5a7d53e3edde4",
|
|
"routes/web.php": "aa314a92c7f926c56699880d795286a0dd9659e6fbc0f653529e2f58a1bb326c",
|
|
"tests/Feature/ModuleNavigationTest.php": "7f7655950d5847ed5702f95613061e7591a353f97d3349921625b8805822bfd4"
|
|
}
|
|
},
|
|
"installed_snapshot": {
|
|
"database": {
|
|
"database": "sgf_tempo_dev",
|
|
"role": "sgf_dev_app",
|
|
"port": 55432
|
|
},
|
|
"tables": {
|
|
"permission_grants": {
|
|
"rows": 89,
|
|
"fingerprint": "f4546a8af83c965f7088ba47f55e0fec"
|
|
},
|
|
"company_memberships": {
|
|
"rows": 2,
|
|
"fingerprint": "f5462c7d3b1f5c75d70450dc6b61990e"
|
|
},
|
|
"identity_audit": {
|
|
"rows": 162,
|
|
"fingerprint": "cbff39d0e77e9bd7c3cafb4a5d574591"
|
|
}
|
|
},
|
|
"guard_sha256": "42708432fa029e3e52743016b6c6b6d734a3e6cd5d3ed266a29ecfcf38a6e371",
|
|
"purchasing_pointer_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787"
|
|
},
|
|
"host_overlays": {
|
|
"app/Modules/Identity/Services/Permissions.php": {
|
|
"before_sha256": "97a860b632de0cb5022b2d9153261ecfa2211c100961eb6b9e6a09d30f798e63",
|
|
"after_sha256": "19e40f47e2df222c3151d99a7840f86e3ec00c4fe021f53301bc1482ab3d5670"
|
|
},
|
|
"app/Modules/Identity/Services/IdentityWorkflow.php": {
|
|
"before_sha256": "c4f4af9a7625778a408d881ba087502b116fa0ccb15f2f0311f5a0e8ad40ce73",
|
|
"after_sha256": "0d0e6e90748cf1cd93bc724fb0bd51573ab1377ca6d1eb3360219b3d5fd0c25d"
|
|
},
|
|
"app/Modules/Purchasing/BudgetAdapter.php": {
|
|
"before_sha256": "e8f261e2e6535973c72266cf5f448e24794e5c896a9910ca85468001fbc37116",
|
|
"after_sha256": "cea6b4f8e7b9b96854de79ba3085b69affc7855cda46ded67b4b22fd62dd38f9"
|
|
},
|
|
"app/Modules/Purchasing/BudgetWorkspace.php": {
|
|
"before_sha256": "b144422b959cd6c6f693001ccdd5a21e163a88732a17b00cb6d8d7a8cf0562de",
|
|
"after_sha256": "ecec7e3880b2fec46d1cdc3a346c965b2d489c48cc32077ae28ec7c2027182be"
|
|
},
|
|
"app/Providers/AppServiceProvider.php": {
|
|
"before_sha256": "42705455c3f12233369275cbfd7d80781109135ca1ef2d3e3adc2fac8d675e8e",
|
|
"after_sha256": "463ef17bbbac91871b600c39dbf0309ed7a5795a450620b05823c3ad50acd2d3"
|
|
},
|
|
"app/Shared/Context/ModuleNavigation.php": {
|
|
"before_sha256": "f75f323940e25826792dc88848fd2b77eb3325634100a86b14c60c5d381917a3",
|
|
"after_sha256": "f15a8dc725aa4c1c6ab7eab6799446b7c79b35df237c2791791e7fe3c3830568"
|
|
},
|
|
"resources/js/app.jsx": {
|
|
"before_sha256": "33f087da73fe80ca0ae6e7609e107b805b2c8a1f1863cc3a1b2c7886fe7d3c44",
|
|
"after_sha256": "4b7ba24eca42e20db693ffdfe6825844406c6513932f8074edcf9c97b5562fa4"
|
|
},
|
|
"resources/js/PurchasingHome.jsx": {
|
|
"before_sha256": "3e985e7132525eb57b1a26baeb95c38aee7691051ddaf108e6faaa95efd22cbf",
|
|
"after_sha256": "10fe6d2265a9027fbe00d8ca1ffce9ca53aba40dc81467602cb5186489e5d86b"
|
|
},
|
|
"public/build/manifest.json": {
|
|
"before_sha256": "5a61b3b44fa0c04b624163b15d11ce8931de194847fcd901552ddc0806f57b85",
|
|
"after_sha256": "22c2708aab2c812cb20ec0c7b433fdb8383df2d0415684e2a55c47633ee4248b"
|
|
}
|
|
},
|
|
"read_only_plan": {
|
|
"code_target_sha256": "d29833b1c48b9d666522d20d87040d5ad30370cf114c9a70f272cd041eea59e9",
|
|
"schema_target_sha256": "169e6e863f28b67740f07b6e7cbc664fbe585a7760a83dccebc8d482ad8ab792"
|
|
},
|
|
"supersedes_proposal": "SGF-IR-INSTALL-5FAE-20261102",
|
|
"migration_sha256": "4ca4f5827c46e5ca29cb329c667df0b996ecbf5e318c0b157091c94e9d44ae92",
|
|
"integrity": {
|
|
"support_files_verified": 49,
|
|
"php_linted": 42,
|
|
"archive_and_manifest_unchanged": true
|
|
},
|
|
"installed_snapshot_matches_prior": true
|
|
}
|