Skip to content

Document 06 — Executed IQ/OQ Protocol & Cryptographic Evidence Report

Document ID: EPR-GXPHISTORIAN-2026-006 | Session Start (UTC): 2026-10-17T16:56:05.552025+00:00 | Session End (UTC): 2026-10-17T16:56:06.553943+00:00 | Verdict: PASS (15/15 Passed, 100.0%)

1. Executed Automated IQ/OQ Test Results (oq_execution_results.json)

Test IDPytest Node IDStart (UTC)Duration (s)Executed Assertions & Evidence SummaryVerdict
TC-01gxp-validation-package/tests/test_01_iq_infrastructure.py::test_iq_01_services_and_non_default_credentials2026-10-17T16:56:05.678076+00:000.0465Verified PostgreSQL, ClickHouse, FastAPI, and Grafana health with non-default GxP secrets.PASS
TC-02gxp-validation-package/tests/test_01_iq_infrastructure.py::test_iq_02_postgres_extensions_and_schema2026-10-17T16:56:05.738157+00:000.0083Verified PostgreSQL 16 extensions (btree_gist, ltree, pgcrypto), 6 GxP tables, and seeded Part 11 users.PASS
TC-03gxp-validation-package/tests/test_01_iq_infrastructure.py::test_iq_03_clickhouse_compression_codecs2026-10-17T16:56:05.758157+00:000.0026Verified ClickHouse pi_historian.sensor_data column codecs (Delta, DoubleDelta, Gorilla, T64 + ZSTD(1)).PASS
TC-04gxp-validation-package/tests/test_01_iq_infrastructure.py::test_iq_04_clickhouse_postgres_dictionary_sync2026-10-17T16:56:05.770665+00:000.0047Verified all 5 seeded GxP tags and ISA-95 ltree paths resolve in ClickHouse pg_asset_tags dictionary.PASS
TC-05gxp-validation-package/tests/test_01_iq_infrastructure.py::test_iq_05_edge_collector_wal_and_deadband2026-10-17T16:56:05.776492+00:000.0016Verified disk-backed WAL buffer configuration and Stage 1 ExceptionDeadbandFilter suppression/emission rules.PASS
TC-06gxp-validation-package/tests/test_02_oq_part11_compliance.py::test_oq_01_reject_mutations_without_actor_or_reason2026-10-17T16:56:05.793119+00:000.0137Confirmed both PostgreSQL PL/pgSQL trigger and FastAPI reject unattributed mutations.PASS
TC-07gxp-validation-package/tests/test_02_oq_part11_compliance.py::test_oq_02_worm_audit_log_immutability2026-10-17T16:56:05.815415+00:000.0041Verified UPDATE, DELETE, and TRUNCATE on part11_audit_log unconditionally raise 21 CFR Part 11 WORM Violation.PASS
TC-08gxp-validation-package/tests/test_02_oq_part11_compliance.py::test_oq_03_electronic_signature_rejects_invalid_credentials2026-10-17T16:56:05.829366+00:000.0917Verified POST /api/v1/event-frames/{id}/sign rejects invalid password with HTTP 401.PASS
TC-09gxp-validation-package/tests/test_02_oq_part11_compliance.py::test_oq_04_electronic_signature_approval_and_hmac2026-10-17T16:56:05.929471+00:000.1433Verified dual-challenge electronic signature execution, HMAC-SHA256 binding, and audit trail logging.PASS
TC-10gxp-validation-package/tests/test_02_oq_part11_compliance.py::test_oq_05_cryptographic_hash_chain_verification2026-10-17T16:56:06.081631+00:000.047Verified 100% of part11_audit_log records form an unbroken SHA-256 hash chain from GENESIS_0000000000000000.PASS
TC-11gxp-validation-package/tests/test_03_oq_historian_core.py::test_oq_06_multi_protocol_telemetry_ingestion2026-10-17T16:56:06.138171+00:000.0054Verified active telemetry ingestion across all 5 multi-protocol tags (101, 102, 103, 301, 401).PASS
TC-12gxp-validation-package/tests/test_03_oq_historian_core.py::test_oq_07_bad_quality_exclusion_in_rollup2026-10-17T16:56:06.151063+00:000.0192Proved mv_sensor_rollup_1m excludes quality=0 fault spike (9999.0), computing exact GMP rollup avg=37.5, max=38.0.PASS
TC-13gxp-validation-package/tests/test_03_oq_historian_core.py::test_oq_08_datalink_linear_and_locf_step_interpolation2026-10-17T16:56:06.182916+00:000.0574Verified exact linear midpoint (37.0) on BR201_TEMP_PV and integer LOCF ([1, 1, 2]) on BR201_AGIT_STATE.PASS
TC-14gxp-validation-package/tests/test_03_oq_historian_core.py::test_oq_09_lttb_downsampling_preserves_local_peak2026-10-17T16:56:06.256685+00:000.0225Verified ClickHouse LTTB 10x downsampling (100 -> 10 points) preserved exact peak magnitude (845.75 mAU) and timestamp (12:00:50Z).PASS
TC-15gxp-validation-package/tests/test_03_oq_historian_core.py::test_oq_10_event_frame_excursion_and_parquet_lakehouse_export2026-10-17T16:56:06.285597+00:000.2675Verified Event Frame evaluation and Apache Parquet export with 100% row/value fidelity via pyarrow.PASS

2. Live 21 CFR Part 11 Cryptographic Audit Trail Evidence (part11_audit_log)

Audit IDRecorded At (UTC)Actor IDChange ReasonTarget TableRecord PKOpprev_hash Prefixrow_hash Prefix
12026-10-17 12:19:48.970102+00system_bootstrapInitial GxP Qualification Seedasset_templates1INSERTGENESIS_000000000000...0980573d8a9a41b46f29...
22026-10-17 12:19:48.971843+00system_bootstrapInitial GxP Qualification Seedasset_templates2INSERT0980573d8a9a41b46f29...0d36bf6886f6f8a95f53...
32026-10-17 12:19:48.973299+00system_bootstrapInitial GxP Qualification Seedassets1INSERT0d36bf6886f6f8a95f53...1e50a1c48c7a31faf35e...
42026-10-17 12:19:48.973792+00system_bootstrapInitial GxP Qualification Seedassets2INSERT1e50a1c48c7a31faf35e...4d8f96f4dc5b6270fb5d...
52026-10-17 12:19:48.974952+00system_bootstrapInitial GxP Qualification Seedtags101INSERT4d8f96f4dc5b6270fb5d...01418e53ac7eea428007...
62026-10-17 12:19:48.975413+00system_bootstrapInitial GxP Qualification Seedtags102INSERT01418e53ac7eea428007...31473f02919047f446ad...
72026-10-17 12:19:48.975542+00system_bootstrapInitial GxP Qualification Seedtags103INSERT31473f02919047f446ad...fa878c93ab51508a0788...
82026-10-17 12:19:48.975672+00system_bootstrapInitial GxP Qualification Seedtags301INSERTfa878c93ab51508a0788...8604eddc066bba1342f4...
92026-10-17 12:19:48.975793+00system_bootstrapInitial GxP Qualification Seedtags401INSERT8604eddc066bba1342f4...4ef258b9cff9b1d15a01...
102026-10-17 12:32:12.972505+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_frames8217b8ad-b909-4b03-8922-aab83751609fINSERT4ef258b9cff9b1d15a01...acf2a3d241e85bb1f95a...
112026-10-17 12:32:12.982852+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_framesd74b43a4-3dab-4181-8c51-8c906f92f451INSERTacf2a3d241e85bb1f95a...bc05d6786059961bfe1c...
122026-10-17 12:32:18.018756+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_frames8217b8ad-b909-4b03-8922-aab83751609fUPDATEbc05d6786059961bfe1c...48bf097edae6380c088c...
132026-10-17 12:32:18.05622+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_framesca9fcee4-ed1b-4326-9857-ecc8dfd3fabfINSERT48bf097edae6380c088c...3888ca2b4406050e5b12...
142026-10-17 12:32:23.09222+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_frames8217b8ad-b909-4b03-8922-aab83751609fUPDATE3888ca2b4406050e5b12...3ac605d224d849b21779...
152026-10-17 12:32:23.100325+00event_frame_engineAutomated ISA-88 Event Frame Limit Evaluationevent_framesca9fcee4-ed1b-4326-9857-ecc8dfd3fabfUPDATE3ac605d224d849b21779...2b553f3b8800131fd39d...

3. Live Signed ISA-88 Event Frames (event_frames)

Event IDEvent NameTemplateSeverityStart TimeSigned BySignature MeaningHMAC-SHA256 Signature Hash
0fe19399-8c0c-4379-bb55-583871f7d448BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 16:40:19.789+00qa_approver_01Batch Release Approval705d6b4d11ed782087a688a1...
12006ce1-5502-461a-9cb4-3ec7efcc5e46BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 13:20:17.952+00qa_approver_01Batch Release Approvaleb4025c9ecc02a2b7118cd50...
f5aff8cb-2d04-4fc8-b854-ff8c63943e88BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 12:26:14.459+00qa_approver_01Batch Release Approvalce044436f26c50818761708b...
d74b43a4-3dab-4181-8c51-8c906f92f451BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 12:26:14.459+00qa_approver_01Excursion Investigation Reviewed0ab77f66b7de5503633a3213...
8217b8ad-b909-4b03-8922-aab83751609fUSP_Batch_2026_BR201_001Fermentation_BatchINFO2026-10-17 12:25:32.453+00UNSIGNED--...
3201cec7-6155-4dcd-b2ed-a63eb54a165cBR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 20:06:20.655+00UNSIGNED--...
b07c24aa-ef59-4e35-9111-7c12b3c005f5BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 20:05:20.645+00UNSIGNED--...
8368b1f1-085e-4ee7-95c5-1a44b19ee455BR201_TEMP_PV_High_Limit_ExcursionTemp_ExcursionCRITICAL2026-10-17 20:04:19.636+00UNSIGNED--...