Files
SGF/docs/proofs/request-to-receipt-composition-20261103.json
2026-11-04 09:37:20 +02:00

393 lines
17 KiB
JSON

{
"date": "2026-11-03T11:50:56.769Z",
"increment": "SGF-REQUEST-TO-RECEIPT-QA-v1",
"passed": true,
"functional_code": true,
"checks": 103,
"tests": {
"request": {
"file": "private/receipt-composition-297f4626f01f/request-result.json",
"sha256": "ed8a2f4856f4661aef1698e4b6a6164a6936b87c22a00765e1acc78122585fc8",
"checks": 30,
"result": {
"passed": true,
"checks": [
"new composition starts with no mapped requests and an explicit cost centre",
"functional request workspace served",
"warehouse cannot prepare or inspect internal request economics",
"foreign company request is refused",
"stale host context is refused",
"procurement cannot impersonate the scoped requesting identity",
"unmapped cost centre cannot be used",
"original draft preview omits temporary identifiers",
"preview leaves request budget notices command receipts and audit unchanged",
"host origin audit failure aborts native draft confirmation",
"native request lines command receipt and audit roll back atomically",
"two workers recover one native requisition after failure",
"one draft and one original line are committed",
"same key with another payload is refused",
"requester edits draft through original lifecycle",
"submission prepared before draft edit is refused",
"submission right is checked again at commit",
"submission reserves and opens the original independent approval",
"repeated submission keeps exactly one reservation",
"requester cannot approve their own request",
"mapped department head can decide current exact request",
"department head approves through the same original service",
"approval repetition records one decision",
"new approved SGF requisition reaches original sourcing without ID rebinding",
"insufficient native budget refuses submission without a reservation",
"original rejection releases only its own reservation",
"rejection replay does not release twice",
"only approved request enters sourcing list",
"request status filter and server page are preserved",
"SGF host budget entries are unchanged across draft submission approval and rejection"
],
"concurrency_statuses": [
200,
201
],
"host_budget_before": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"host_budget_after": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"single_native_reservation": true,
"legacy_ir_not_transferred": true,
"source_ready_without_rebinding": true,
"visual_review": false,
"deployment_capacity_validated": false
}
},
"integrated_source_to_receipt": {
"file": "private/receipt-composition-297f4626f01f/sourcing-result.json",
"sha256": "2e31bc60819b08b829ab2127db09b6c51ad15418511c256f047a8c744fcc4914",
"checks": 47,
"result": {
"passed": true,
"checks": [
"source starts with no proposal evaluation or adjudication",
"only mapped approved source request is listed",
"functional sourcing workspace is served",
"warehouse cannot access supplier comparison",
"another tenant process is refused",
"stale SGF context is refused",
"original quotation pricing supplies the preview total",
"preview savepoint commits no proposal evaluation budget or audit records",
"tampered preview is refused",
"failure to record the command receipt fails the confirmation",
"native proposal lines and audit roll back with the command receipt",
"two independent workers recover the same proposal command once",
"concurrent repetition creates one proposal and one line",
"same operation key with other contents is refused",
"explicit proposal registered 2",
"explicit proposal registered 3",
"missing evaluations cannot be bypassed to create an award",
"native evaluation preview available actor/4",
"individual evaluation recorded actor/4",
"native evaluation preview available issuer/4",
"individual evaluation recorded issuer/4",
"native evaluation preview available actor/6",
"individual evaluation recorded actor/6",
"native evaluation preview available issuer/6",
"individual evaluation recorded issuer/6",
"native evaluation preview available actor/8",
"individual evaluation recorded actor/8",
"native evaluation preview available issuer/8",
"individual evaluation recorded issuer/8",
"original comparison identifies eligible top without choosing it",
"another key cannot create a second evaluation by the same person",
"selection right is revalidated at confirmation",
"chosen proposal starts original distinct award approval",
"selection repetition creates no second adjudication",
"proposal window closes after adjudication",
"historical proposal receipt remains recoverable after the window closes",
"award preparer cannot approve their own decision",
"distinct eligible head approves through original workflow",
"approval repetition preserves one recorded decision",
"adjudication created in SGF reaches order workflow without rebinding IDs",
"approved SGF adjudication issues one canonical order",
"warehouse receives the actual order created from SGF sourcing",
"proposal-to-adjudication-to-order-to-receipt path completes",
"complete path leaves exactly the intended business facts",
"one source-budget commitment without invoice payment or consumption",
"full append-only history is paginated on server",
"history pages are distinct and expose older evidence"
],
"quotes": 3,
"evaluations": 6,
"awards": 1,
"approved_decisions": 1,
"orders": 1,
"receipts": 1,
"movements": 1,
"commit_minor": 10000,
"whole_selected_path_complete": true,
"concurrency_statuses": [
200,
201
],
"preview_persistent_fingerprint_unchanged": true,
"rollback_recovery": true,
"original_controllers_and_workflows": true,
"visual_review": false,
"deployment_capacity_validated": false
}
},
"guards": {
"file": "private/receipt-composition-297f4626f01f/request-guards.json",
"sha256": "ce9f665d2975f9f10f6cced28ec60ddba8496452002a3243fec2ffbde458aa23",
"checks": 3,
"result": {
"passed": true,
"checks": [
"disabled requests runtime refuses before SQL",
"disabled requests preview refuses before validation or SQL",
"production cannot activate synthetic requests"
],
"database_queries": 0,
"business_writes": 0
}
},
"demonstration": {
"file": "private/receipt-composition-27afd758cfdb/request-demo-smoke.json",
"sha256": "c29fc79a54c27e4fd37a2e1a205daf4f231e4d4a9418140caa79a98f4bcc8ee0",
"checks": 11,
"result": {
"passed": true,
"checks": [
"main demo begins before any requisition or reservation",
"live request rights match requester",
"request workspace is live",
"creation sentinel is not a readable request",
"live request rights match approver",
"live request rights match actor",
"procurement waits for an actual approved request",
"live request rights match issuer",
"live request rights match validator",
"served request script matches delivered source",
"read-only demonstration smoke changes no business evidence"
],
"before": "4d3a0344cbde7aedab6d74c4ce143a5fa84561c87151cd1c0c9fd11b10115ba8",
"after": "4d3a0344cbde7aedab6d74c4ce143a5fa84561c87151cd1c0c9fd11b10115ba8",
"visual_review": false
}
},
"assets": {
"file": "private/receipt-composition-27afd758cfdb/request-demo-assets.json",
"sha256": "11bad90c1facd3322ff2f1e2d91cf5b616da2967eca4febf06de346bc258407a",
"checks": 3,
"result": {
"passed": true,
"checks": [
"private frontend build succeeds",
"served built assets match private build",
"supplier module is served through private static whitelist"
],
"assets": [
"assets/app-j88n39Mi.js",
"assets/app-BLSNCrO7.css"
],
"visual_review": false
}
},
"package_freeze": {
"file": "private/receipt-composition-27afd758cfdb/package-freeze.json",
"sha256": "f52fa990a9546a4a46f29ec422bb2d61fd196db1fb6b51b0d968722478f1b05d",
"checks": 3,
"result": {
"passed": true,
"observed_source_manifest": "84824e230a9fd2cd84a0ed36e72ccf0539798bf0503ab812a4c94d932494c05a",
"tested_manifest": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
"source_repository_written": false,
"observed_bundle_retained": true,
"tested_bundle_equal": true,
"active_manifest": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
"checks": [
"active native bundle matches tested QA artefact",
"concurrent source snapshot preserved separately without modifying its repository",
"live runtime accepts tested manifest with an unchanged empty request context"
]
}
},
"navigation": {
"file": "docs/proofs/request-home-20261103.json",
"sha256": "b3436e6745302e229afc5008bbd1f1660d2f048db46be37e23a4e37721a95498",
"checks": 6,
"result": {
"passed": true,
"checks": 6,
"names": [
"scoped right and capability expose request link",
"absent right hides request link",
"foreign unit right hides request link",
"disabled composition hides request link",
"unit selection is required",
"order and receipt links remain available"
],
"source": "resources/js/PurchasingHome.jsx",
"sha256": "e9215010b38e5b964a4dbb5588aeb6690793a67bee06074e2b9c186d1e51d62c",
"visual_review": false
}
}
},
"sources": [
{
"file": "app/Modules/Purchasing/RequestController.php",
"sha256": "01033a50d6f1dfbdea34357e6853b978e066f11a1267fcd652606f67930d7009"
},
{
"file": "app/Modules/Purchasing/RequisitionAccess.php",
"sha256": "a955228df0f793d3b90f37e5ca890c53af88f6406140e98fe9a614c3821980cc"
},
{
"file": "app/Modules/Purchasing/SourcingController.php",
"sha256": "0b297af4648a5690c99cac5015e009dfd3eb32d236fae63a5716b964e44c71f6"
},
{
"file": "app/Modules/Purchasing/OrderController.php",
"sha256": "4ebab47ecb008f3c31f970f399e8c19df7e860d7b6482227a800fb61dd28dd48"
},
{
"file": "app/Modules/Purchasing/ReceiptController.php",
"sha256": "2c946b782a62e81b3ec637e2f72590ed6a6c0774f04a8082171f9c898d37c2db"
},
{
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
"sha256": "633933146ae8292f2bbc6da2b52ef8fbb9c820a853d27cf23f2783d3cfb159d6"
},
{
"file": "config/receipt_qa.php",
"sha256": "c60adb36c7cfade83c155adedf55972b5f4aad1e890a10a8f432a908c23533b4"
},
{
"file": "routes/web.php",
"sha256": "b759f175730ae1db332cf92463a2d7f0e59343b1160e82f6f3d03fccab7d0841"
},
{
"file": "app/Shared/Context/ModuleNavigation.php",
"sha256": "f5b78c4e0bbc2d4161631885050ec6bd259d1739c54e9163a84ed2669065e999"
},
{
"file": "app/Modules/Identity/Services/IdentityWorkflow.php",
"sha256": "cd6b84ae1cffe44dfd253c9e18caf821e96a10506e762c233e170ee53c7b3a0e"
},
{
"file": "resources/js/PurchasingHome.jsx",
"sha256": "e9215010b38e5b964a4dbb5588aeb6690793a67bee06074e2b9c186d1e51d62c"
},
{
"file": "resources/views/request-workspace.blade.php",
"sha256": "829ecf90d08b1776828231efc43cf0540b12aa1177feede57f735bf0557c74c1"
},
{
"file": "public/request-workspace.mjs",
"sha256": "e878fc3c7bc5ba24aa2b17fe41ffeda3267721b5beb2a1a3a0cb11f56d7dc93d"
},
{
"file": "scripts/order-native-setup.php",
"sha256": "0fc4614badb31412ac03f3a9eaf1b26be8cf690cd84afc003ea29194cc3f3222"
},
{
"file": "scripts/request-host-setup.php",
"sha256": "9b95453e9d466a13b40542497b709a679cc202814a1961879005e656d489f7c0"
},
{
"file": "scripts/request-composition-proof.php",
"sha256": "aea435734009eb3def06a5329d049bcc0d9575f5f9cf562ab3e21390e7a7771f"
},
{
"file": "scripts/request-sourcing-resume.php",
"sha256": "63fd9c6e98c673613879386aa34d081074a66232dc42b73cffd5d562de557f97"
},
{
"file": "scripts/receipt-composition-run.mjs",
"sha256": "597d161b218021c29bc56bfade7fe923e34e6f1baaca45dfbba6772a832dd218"
},
{
"file": "scripts/receipt-composition-http.php",
"sha256": "bb17873b09836391eb25fed19195a3020ebffdfe06723e5b34c1184180e5e4b7"
},
{
"file": "scripts/sourcing-composition-proof.php",
"sha256": "4fbe575f9b0e4f80d969f0bb8e5a2b2dd1c52732e43dbdddb87990432a8d5a04"
}
],
"pinned_manifests": {
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
},
"single_authority": {
"native_request_id_preserved": true,
"native_reservation_once": true,
"native_commitment_once": true,
"host_budget_unchanged": true,
"legacy_ir_transferred": false
},
"demo": {
"url": "http://127.0.0.1:8068/qa/enter/requester?open=1",
"approver_url": "http://127.0.0.1:8068/qa/enter/approver?open=1",
"buyer_url": "http://127.0.0.1:8068/qa/enter/actor?open=1",
"finance_url": "http://127.0.0.1:8068/qa/enter/issuer?open=1",
"warehouse_url": "http://127.0.0.1:8068/qa/enter/validator?open=1",
"initial_main_requests": 0,
"initial_main_reserved_minor": 0,
"initial_main_committed_minor": 0
},
"qa_rights": [
"purchasing_requests.view",
"purchasing_requests.prepare",
"purchasing_requests.submit",
"purchasing_requests.approve"
],
"prior_proofs_preserved": [
{
"file": "docs/proofs/supplier-composition-20261103.json",
"sha256": "b37e265ed5cd6c96921eabdeb024ea2907630992726eab14ee2be170d3c88841"
},
{
"file": "docs/proofs/sourcing-composition-20261103.json",
"sha256": "405c0288aface14cc9f1f417e46cf899b3656e1cbb2617120c048cde17b93191"
},
{
"file": "docs/proofs/order-composition-20261103.json",
"sha256": "3334bf6f45ca629f1c1a0ea907f7b0804f0e90752d1ade0e9fb07599b4d310e3"
},
{
"file": "docs/proofs/receipt-composition-20261103.json",
"sha256": "c63f17f323db8e7374e60a2b4640d444f0e3153384c5f9c65426d300c258a5bd"
},
{
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
}
],
"diagnostics": {
"initial_test_host_table_name_corrected": "cb_budget_entries; initial error before commands",
"dependent_runner_now_requires_completed_request_proof": true,
"source_approval_replay_test_corrected_to_actual_department_head": true,
"source_first37_valid_checks_retained": true,
"remaining10_source_checks_resumed": true,
"replay_probe": "QA encrypted envelope reconstructed from the exact historical decision receipt; no workflow decision repeated"
},
"preservation": {
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
"protected_six_records_changed": false,
"blocked_cache_cleared": false,
"real_rights_changed": false,
"target_database_connected": false,
"previous_demo_data_written": false,
"destination_activated": false,
"publication": false,
"checkpoint": false
},
"limitations": [
"This delivers new requisitions through the SGF interface on the same native book; it does not migrate previously reserved SGF ir_requests.",
"Fresh synthetic identities for requester, department head, buyer, finance and warehouse. Native approvals/budget rules remain authoritative; no real grants or configuration.",
"Selected QA path100MZN, three proposals and original source-to-receipt workflow. Equipment/technical catalogues, formal regimes and later corrections are not declared complete.",
"Read/history workspace exposes recent25 request events; full native history remains retained.",
"Rollback-only previews may consume sequence values; no external notification channel is used.",
"No visual review, sustained-load or deployment-capacity validation."
],
"visual_review_pending": true,
"deployment_capacity_validated": false
}