Executed verification / synthetic and theoretical inputs

Drawing release register

The actual browser client handlers were executed with a modeled DOM, native WebCrypto and a real HTTP/SQLite service. Their uploaded file and exported Blob bytes were checked through release and restore. Separate process-kill drills cover pending uploads and committed releases.

28 of 28 specified outcomes matched. Rejected overload and unsafe deployment cases are expected outcomes, not passing operating conditions.

Method

Each row identifies the method. Real HTTP, database, file and process checks are separate from modeled browser and deployment behavior. Inputs are synthetic. No customer deployment, physical device trial or production availability is claimed.

ScenarioExpectedObservedMethodVerification
Load actual author client sessionAuthor workspace shownauthor ยท author Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Hash and upload PDF through actual client submit handlerVerified revision 2 with source file SHA-256{"status":"verified","sha256":"39b9e35fbe3954d7963b7ae0f0a13052da058808f31427d92e6b7b0771f4e939"}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Finish upload without leaving form disabledSubmit enabled and change field cleared{"disabled":false,"note":""}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Lose network after pending revision creationRevision 3 stays pending and retry control appears{"status":"pending","retry":true}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Retry pending upload with wrong bytesRejected without verificationpendingActual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Retry pending upload using original fileRevision 3 verified onceverifiedActual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Review and release latest uploaded file through client controlsRevision 3 released, prior release superseded[{"number":3,"status":"released"},{"number":2,"status":"verified"},{"number":1,"status":"superseded"}]Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Prepare export through actual client click handlerAttached download anchor, JSON MIME and valid bundle{"filename":"drawing-register-export.json","mime":"application/json","bytes":1081182,"attached":true}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Restore exact JSON bytes produced by client exportHistory and released file hash preserved{"drawings":2,"revisions":4,"objects":4,"release":"2009e2a0-48c9-4b4a-a187-86929567fea3"}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Load reader session after releaseUpload/release operations hidden and latest release readable{"upload_hidden":true,"operator_hidden":true}Actual static/app.js event handlers in Node vm with minimal DOM adapter, native WebCrypto, real HTTP and SQLiteMatched
Kill process and reuse prior session401; restart invalidates session cookies401Real child process, HTTP, native SQLite and local files with synthetic documentsMatched
Abrupt process loss after file upload before finalizationOne pending stored file, no missing verified files{"pending":1,"missing":0}Real child process, HTTP, native SQLite and local files with synthetic documentsMatched
Finalize durable pending file after restart200 verifiedverifiedReal child process, HTTP, native SQLite and local files with synthetic documentsMatched
Kill after release transaction and restartRevision pointer, review and prior history survive{"release_version":2,"current":"8d7a214c-beed-4059-91d5-b9b4db3b2409","revisions":2}Real child process, HTTP, native SQLite and local files with synthetic documentsMatched
Read released file after abrupt process lossOriginal SHA-256 retained39b9e35fbe3954d7963b7ae0f0a13052da058808f31427d92e6b7b0771f4e939Real child process, HTTP, native SQLite and local files with synthetic documentsMatched
Export after restart and restore into a new directory3 objects and matching release, database integrity ok{"drawings":2,"revisions":3,"objects":3,"integrity":"ok","elapsed_ms":17.559}Real child process, HTTP, native SQLite and local files with synthetic documentsMatched
Change exported metadata without changing manifestRestore refuses corrupt bundletrueReal child process, HTTP, native SQLite and local files with synthetic documentsMatched
Restore cannot replace existing directoryExisting file preservedpreserveReal child process, HTTP, native SQLite and local files with synthetic documentsMatched
Evaluate selected backup and restore scheduleRPO <=15 min and RTO <=15 min under declared timings{"rpo_minutes":15,"rto_minutes":8}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
Evaluate an old daily snapshot against 15 min targetDaily snapshot rejected{"rpo_minutes":1440,"accepted":false}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
Evaluate slow operator recoveryRTO breach visible{"rto_minutes":33,"accepted":false}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
Combine independent illustrative network, proxy and host availabilitiesProduct below 99.9%; no high-availability claim{"component_availability":[0.999,0.999,0.995],"series_availability":0.993010995,"expected_minutes_per_30_days":301.9250159999997}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
loopback reference with demo identitiesPolicy decision true{"allowed":true,"scope":"Theoretical deployment policy, separate from the localhost application"}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
public listener with demo identitiesPolicy decision false{"allowed":false,"scope":"Theoretical deployment policy, separate from the localhost application"}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
public listener without TLSPolicy decision false{"allowed":false,"scope":"Theoretical deployment policy, separate from the localhost application"}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
modeled private authenticated gatewayPolicy decision true{"allowed":true,"scope":"Theoretical deployment policy, separate from the localhost application"}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
Evaluate 12 two-MiB PDF revisionsFits 48 MiB export content limit{"raw_bytes":25165824,"base64_json_bound":34603008,"estimated_working_bytes":94371840}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched
Seven maximum-size PDF revisionsReference export limit rejects the aggregate{"raw_bytes":73400320,"accepted":false}Deterministic theoretical deployment calculation with declared inputs; no remote infrastructure is provisionedMatched

Reproduce

node complete.mjs

Operations and deployment decisions / Machine-readable checks and source hashes / Execution log

Evidence boundaries

Source notes

W3C Service Workers describes the lifecycle and cache contract used by the shell simulation. Node SQLite documentation describes the native database and backup API. The deployment capacity and recovery calculations use the declared inputs in deployment-inputs.json; they are assumption studies.

Primary implementation report