85 lines
3.5 KiB
JSON
85 lines
3.5 KiB
JSON
{
|
|
"passed": true,
|
|
"checks": [
|
|
"fresh isolated database",
|
|
"failed additive migration rolls back preserving existing identity grants and budget",
|
|
"successful additive migration preserves existing data",
|
|
"authenticated synthetic identity 1",
|
|
"authorised company unit selection 1",
|
|
"authenticated synthetic identity 2",
|
|
"authorised company unit selection 2",
|
|
"versioned policy without functional grants",
|
|
"authorised workflow screen and context",
|
|
"create draft through HTTP",
|
|
"CSRF retained on candidate commands",
|
|
"create retry one origin",
|
|
"protected context field refused",
|
|
"wrong work area refused",
|
|
"stale context refused on reads",
|
|
"stale edit refused",
|
|
"failure after reserve injected",
|
|
"failure rolls back origin reserve steps and request",
|
|
"committed response loss injected",
|
|
"exact retry recovers committed submission",
|
|
"single existing budget reservation",
|
|
"self approval denied with approval grant",
|
|
"revoked approval denied at server",
|
|
"independent approval",
|
|
"approval retry preserves one decision and versions",
|
|
"authorised origin version and history consultation",
|
|
"revoked read denied",
|
|
"unit selection does not grant access",
|
|
"explicit authorised unit switch",
|
|
"read and operation from previous unit blocked",
|
|
"explicit authorised company switch without name matching",
|
|
"other company cannot read origin",
|
|
"return to original authorised scope",
|
|
"first transaction owns scope lock save",
|
|
"concurrent retry serialized without duplicate save",
|
|
"first transaction owns scope lock submit",
|
|
"concurrent retry serialized without duplicate submit",
|
|
"first transaction owns scope lock decide",
|
|
"concurrent retry serialized without duplicate decide",
|
|
"concurrent whole lifecycle produced one request reserve per origin",
|
|
"history SQL immutability",
|
|
"failed schema transaction recovered",
|
|
"old candidate reads additive compatible schema without rewriting data"
|
|
],
|
|
"concurrency": [
|
|
"save",
|
|
"submit",
|
|
"decide"
|
|
],
|
|
"scope": {
|
|
"tenant_id": 1,
|
|
"company_id": 2,
|
|
"unit_id": 2
|
|
},
|
|
"requests": 2,
|
|
"budget_reservations": 2,
|
|
"schema_failure_recovered": true,
|
|
"additive_schema_compatible": true,
|
|
"active_destination_changed": false,
|
|
"data_schema_recovery": {
|
|
"backup_sha256": "c283b6fdcc6b18c9455bab721790f640235a9b87b5aaa9846a6ed40cd04c9b0f",
|
|
"tables_reconciled": 22,
|
|
"restore_verified": true,
|
|
"schema_constraints_and_triggers_verified": true,
|
|
"restored_consultation": {
|
|
"restored_candidate_consultation": true,
|
|
"id": 1,
|
|
"origin_preserved": true,
|
|
"version": 3
|
|
},
|
|
"restores_new_operations_automatically": false,
|
|
"separate_from_code_rollback": true
|
|
},
|
|
"source_postgres_tests": {
|
|
"passed": true,
|
|
"output": "{\"tool\":\"pest\",\"result\":\"passed\",\"tests\":46,\"passed\":46,\"assertions\":339,\"duration_ms\":23459}"
|
|
},
|
|
"checked_at": "2026-11-01T13:56:52+00:00",
|
|
"isolated_database_removed_in_finally": true,
|
|
"active_destination_version": "0.1.1",
|
|
"candidate_root": "C:\/laragon\/www\/compras\/storage\/app\/private\/candidates\/IR-CANDIDATE-bfa807e2b3c4fae7"
|
|
} |