{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://puranwater.com/schemas/index.json","title":"PuranOS Schema Catalog","description":"Complete schema inventory organized by ontology layer.","layers":{"enterprise_oss":{"description":"Schemas inherited from forked/customized open-source systems. Not generated — refer to native API docs.","systems":{"atlas_cmms":{"description":"Computerized Maintenance Management System (forked, Java/Spring)","interop_extensions":["equipment_uid (UUID)","project_ref","failure_mode/cause/mechanism (ISO 14224)","inventree_part_id","criticality (PartCriticality)","severity (MeterTriggerSeverity)"],"api_base":"/api/v1"},"openproject":{"description":"Project management and workflow (v17, customized)","custom_types":{"8":"RFI","9":"Submittal","10":"Change Order","11":"Procurement","12":"Inspection","13":"Punch List","14":"NCR","15":"Commissioning","16":"MOC","17":"Transmittal","18":"Warranty"},"custom_fields":{"7":"RFI Number","8":"Response Due Date","9":"Ball In Court","10":"Spec Section","17":"Revision","19":"Discipline","31":"Equipment Tag","32":"NCR Severity","33":"NCR Disposition","34":"Root Cause Category","35":"Corrective Action","36":"Commissioning Phase","37":"Punch Category","38":"Loop Reference","39":"Test Result","40":"Change Category","41":"Risk Level","42":"MOC Phase","43":"Revert By Date","44":"equipment_uid","45":"response_status","46":"submittal_number","47":"review_status","48":"transmittal_number","49":"transmittal_purpose","50":"recipient","51":"acknowledged_date","52":"warranty_start","53":"warranty_end","54":"claim_status","55":"vendor_response_date","56":"resolution","57":"failure_mode","58":"failure_cause","59":"failure_mechanism","60":"cmms_work_order_id","61":"alarm_uid","20-30":"Agent state fields (20-30)"},"api_base":"/api/v3"},"inventree":{"description":"Parts, inventory, BOMs, purchase orders (upstream)","key_entities":["Part","StockItem","PurchaseOrder","BOM","TestResult","Company"],"api_docs":"https://docs.inventree.org/en/stable/api/schema/"}}},"engineering_contracts":{"description":"Purpose-built schemas aligned to industry standards (ISA, IEC, QUDT, ISO 14224, EPA WQX). Pydantic models are the interchange contracts; Postgres tables are the storage contracts.","pydantic_schemas":["capex-improvement-request.schema.json","claim-event.schema.json","commissioning-handover-package.schema.json","compliance-gate-result.schema.json","compliance-status-exchange.schema.json","contract.schema.json","control-execution-package.schema.json","critical-load-entry.schema.json","design-performance-baseline.schema.json","dg-sizing-input.schema.json","dg-sizing-output.schema.json","engineering-unit.schema.json","equipment-item.schema.json","hazop-study-package.schema.json","maintenance-history-exchange.schema.json","model-credibility.schema.json","obligation-fulfillment-package.schema.json","operations-runtime-package.schema.json","process-performance-summary.schema.json","proforma-actuals-record.schema.json","proforma-model-run.schema.json","project-controls-package.schema.json","project.schema.json","quality-test-package.schema.json","reliability-kpi-snapshot.schema.json","render-manifest.schema.json","stream-state.schema.json","tender-design-fields.schema.json","water-compliance-obligation-instrument.schema.json","water-compliance-obligation-requirement.schema.json","water-compliance-point.schema.json","water-compliance-quantitative-limit.schema.json"],"postgres_schemas":{"count":85,"generator":"libs/engineering-utils/scripts/generate_postgres_schemas.py","databases":{"compliance_mcp":{"table_count":12,"tables":[{"name":"analytical_method","url":"https://puranwater.com/schemas/postgres/compliance_mcp/analytical_method.schema.json"},{"name":"custody_transfer","url":"https://puranwater.com/schemas/postgres/compliance_mcp/custody_transfer.schema.json"},{"name":"project","url":"https://puranwater.com/schemas/postgres/compliance_mcp/project.schema.json"},{"name":"qa_qc_observation","url":"https://puranwater.com/schemas/postgres/compliance_mcp/qa_qc_observation.schema.json"},{"name":"sample_event","url":"https://puranwater.com/schemas/postgres/compliance_mcp/sample_event.schema.json"}]},"engineering_mcp":{"table_count":40,"tables":[{"name":"alarm_event","url":"https://puranwater.com/schemas/postgres/engineering_mcp/alarm_event.schema.json"},{"name":"artifact_type_registry","url":"https://puranwater.com/schemas/postgres/engineering_mcp/artifact_type_registry.schema.json"},{"name":"chemical_dose_run","url":"https://puranwater.com/schemas/postgres/engineering_mcp/chemical_dose_run.schema.json"},{"name":"component_metadata","url":"https://puranwater.com/schemas/postgres/engineering_mcp/component_metadata.schema.json"},{"name":"control_loop_definition","url":"https://puranwater.com/schemas/postgres/engineering_mcp/control_loop_definition.schema.json"},{"name":"control_performance_snapshot","url":"https://puranwater.com/schemas/postgres/engineering_mcp/control_performance_snapshot.schema.json"},{"name":"control_sequence_definition","url":"https://puranwater.com/schemas/postgres/engineering_mcp/control_sequence_definition.schema.json"},{"name":"control_sequence_step","url":"https://puranwater.com/schemas/postgres/engineering_mcp/control_sequence_step.schema.json"},{"name":"design_baseline_guarantee","url":"https://puranwater.com/schemas/postgres/engineering_mcp/design_baseline_guarantee.schema.json"},{"name":"design_performance_baseline","url":"https://puranwater.com/schemas/postgres/engineering_mcp/design_performance_baseline.schema.json"},{"name":"engineering_artifact","url":"https://puranwater.com/schemas/postgres/engineering_mcp/engineering_artifact.schema.json"},{"name":"failure_event","url":"https://puranwater.com/schemas/postgres/engineering_mcp/failure_event.schema.json"},{"name":"guarantee_comparison","url":"https://puranwater.com/schemas/postgres/engineering_mcp/guarantee_comparison.schema.json"},{"name":"hazop_action","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_action.schema.json"},{"name":"hazop_cause","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_cause.schema.json"},{"name":"hazop_consequence","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_consequence.schema.json"},{"name":"hazop_deviation","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_deviation.schema.json"},{"name":"hazop_node","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_node.schema.json"},{"name":"hazop_participant","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_participant.schema.json"},{"name":"hazop_safeguard","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_safeguard.schema.json"},{"name":"hazop_study","url":"https://puranwater.com/schemas/postgres/engineering_mcp/hazop_study.schema.json"},{"name":"interlock_action","url":"https://puranwater.com/schemas/postgres/engineering_mcp/interlock_action.schema.json"},{"name":"interlock_condition","url":"https://puranwater.com/schemas/postgres/engineering_mcp/interlock_condition.schema.json"},{"name":"interlock_definition","url":"https://puranwater.com/schemas/postgres/engineering_mcp/interlock_definition.schema.json"},{"name":"layouts","url":"https://puranwater.com/schemas/postgres/engineering_mcp/layouts.schema.json"},{"name":"lopa_ipl","url":"https://puranwater.com/schemas/postgres/engineering_mcp/lopa_ipl.schema.json"},{"name":"lopa_scenario","url":"https://puranwater.com/schemas/postgres/engineering_mcp/lopa_scenario.schema.json"},{"name":"model_snapshots","url":"https://puranwater.com/schemas/postgres/engineering_mcp/model_snapshots.schema.json"},{"name":"models","url":"https://puranwater.com/schemas/postgres/engineering_mcp/models.schema.json"},{"name":"operator_round","url":"https://puranwater.com/schemas/postgres/engineering_mcp/operator_round.schema.json"},{"name":"plc_program_unit","url":"https://puranwater.com/schemas/postgres/engineering_mcp/plc_program_unit.schema.json"},{"name":"plc_task_binding","url":"https://puranwater.com/schemas/postgres/engineering_mcp/plc_task_binding.schema.json"},{"name":"process_segment_definition","url":"https://puranwater.com/schemas/postgres/engineering_mcp/process_segment_definition.schema.json"},{"name":"project","url":"https://puranwater.com/schemas/postgres/engineering_mcp/project.schema.json"},{"name":"reliability_kpi_snapshot","url":"https://puranwater.com/schemas/postgres/engineering_mcp/reliability_kpi_snapshot.schema.json"},{"name":"round_checkpoint","url":"https://puranwater.com/schemas/postgres/engineering_mcp/round_checkpoint.schema.json"},{"name":"shift_log","url":"https://puranwater.com/schemas/postgres/engineering_mcp/shift_log.schema.json"},{"name":"shift_log_entry","url":"https://puranwater.com/schemas/postgres/engineering_mcp/shift_log_entry.schema.json"},{"name":"spare_consumption","url":"https://puranwater.com/schemas/postgres/engineering_mcp/spare_consumption.schema.json"},{"name":"stream_snapshot","url":"https://puranwater.com/schemas/postgres/engineering_mcp/stream_snapshot.schema.json"},{"name":"vendor_guarantee","url":"https://puranwater.com/schemas/postgres/engineering_mcp/vendor_guarantee.schema.json"}]},"equipment_identity":{"table_count":6,"tables":[{"name":"asset_instance","url":"https://puranwater.com/schemas/postgres/equipment_identity/asset_instance.schema.json"},{"name":"designator","url":"https://puranwater.com/schemas/postgres/equipment_identity/designator.schema.json"},{"name":"equipment_position","url":"https://puranwater.com/schemas/postgres/equipment_identity/equipment_position.schema.json"},{"name":"part_applicability","url":"https://puranwater.com/schemas/postgres/equipment_identity/part_applicability.schema.json"},{"name":"project","url":"https://puranwater.com/schemas/postgres/equipment_identity/project.schema.json"},{"name":"tag_history","url":"https://puranwater.com/schemas/postgres/equipment_identity/tag_history.schema.json"}]},"procurement":{"table_count":25,"tables":[{"name":"calibration_factor","url":"https://puranwater.com/schemas/postgres/procurement/calibration_factor.schema.json"},{"name":"cash_flow_forecast_period","url":"https://puranwater.com/schemas/postgres/procurement/cash_flow_forecast_period.schema.json"},{"name":"cepci_index","url":"https://puranwater.com/schemas/postgres/procurement/cepci_index.schema.json"},{"name":"change_order","url":"https://puranwater.com/schemas/postgres/procurement/change_order.schema.json"},{"name":"contingency_drawdown","url":"https://puranwater.com/schemas/postgres/procurement/contingency_drawdown.schema.json"},{"name":"cost_observation","url":"https://puranwater.com/schemas/postgres/procurement/cost_observation.schema.json"},{"name":"cost_to_complete_projection","url":"https://puranwater.com/schemas/postgres/procurement/cost_to_complete_projection.schema.json"},{"name":"datasheet_revision","url":"https://puranwater.com/schemas/postgres/procurement/datasheet_revision.schema.json"},{"name":"datasheet_schema_extension","url":"https://puranwater.com/schemas/postgres/procurement/datasheet_schema_extension.schema.json"},{"name":"designator","url":"https://puranwater.com/schemas/postgres/procurement/designator.schema.json"},{"name":"designator_model_crosswalk","url":"https://puranwater.com/schemas/postgres/procurement/designator_model_crosswalk.schema.json"},{"name":"earned_value_snapshot","url":"https://puranwater.com/schemas/postgres/procurement/earned_value_snapshot.schema.json"},{"name":"equipment_category","url":"https://puranwater.com/schemas/postgres/procurement/equipment_category.schema.json"},{"name":"equipment_spec","url":"https://puranwater.com/schemas/postgres/procurement/equipment_spec.schema.json"},{"name":"estimate_line","url":"https://puranwater.com/schemas/postgres/procurement/estimate_line.schema.json"},{"name":"goods_receipt","url":"https://puranwater.com/schemas/postgres/procurement/goods_receipt.schema.json"},{"name":"payment_certificate","url":"https://puranwater.com/schemas/postgres/procurement/payment_certificate.schema.json"},{"name":"process_datasheet","url":"https://puranwater.com/schemas/postgres/procurement/process_datasheet.schema.json"},{"name":"project","url":"https://puranwater.com/schemas/postgres/procurement/project.schema.json"},{"name":"project_control_baseline","url":"https://puranwater.com/schemas/postgres/procurement/project_control_baseline.schema.json"},{"name":"project_estimate","url":"https://puranwater.com/schemas/postgres/procurement/project_estimate.schema.json"},{"name":"purchase_order","url":"https://puranwater.com/schemas/postgres/procurement/purchase_order.schema.json"},{"name":"vendor","url":"https://puranwater.com/schemas/postgres/procurement/vendor.schema.json"},{"name":"vendor_invoice","url":"https://puranwater.com/schemas/postgres/procurement/vendor_invoice.schema.json"},{"name":"vendor_quote","url":"https://puranwater.com/schemas/postgres/procurement/vendor_quote.schema.json"}]}}},"pydantic_schema_count":32,"postgres_table_count":161,"postgres_databases":{"compliance_mcp":{"count":20,"tables":["analytical_method","assessed_value","compliance_gate_result","compliance_point","compliance_submission","custody_transfer","deadline","document_attachment","nonconformance","obligation_instrument","obligation_requirement","observation","parameter_registry","project","qa_qc_observation","quantitative_limit","quantitative_limit_audit","sample_event","schedule_rule","submission_item"]},"contractor_management":{"count":6,"tables":["change_order_detail","claim_event","contract","pay_app_line","pay_application","sov_line"]},"engineering_mcp":{"count":53,"tables":["alarm_event","artifact_type_registry","chemical_dose_run","component_metadata","control_loop_definition","control_performance_snapshot","control_sequence_definition","control_sequence_step","design_baseline_guarantee","design_performance_baseline","electrical_load_schedule","electrical_load_schedule_audit","engineering_artifact","failure_event","guarantee_comparison","hazop_action","hazop_cause","hazop_consequence","hazop_deviation","hazop_node","hazop_participant","hazop_safeguard","hazop_study","interlock_action","interlock_condition","interlock_definition","layouts","lopa_ipl","lopa_scenario","model_snapshots","models","operator_round","pfd_assembly","pfd_interunit_stream","pfd_unit_contract","pfd_unit_interface","pid_sheet","pid_sheet_interface","pid_template_registry","plc_program_unit","plc_task_binding","process_segment_definition","process_unit_type_registry","project","reliability_kpi_snapshot","round_checkpoint","shift_log","shift_log_entry","spare_consumption","stream_snapshot","tender_clarification_register","tender_clarification_register_audit","tender_clause_citation"]},"equipment_identity":{"count":18,"tables":["analyzer_analyte","asset_instance","designator","equipment_class_catalog","equipment_position","equipment_position_audit","equipment_position_revision","feeder_type_catalog","instrument_combination","instrument_designator_letter","isa_common_combination","isa_letter_definition","isa_modifier_definition","measurement_method","part_applicability","project","tag_history","valve_designator"]},"procurement":{"count":34,"tables":["calibration_factor","cepci_index","chemical_consumption_item","chemical_consumption_item_audit","control_valve_spec","control_valve_spec_audit","cost_observation","datasheet_field_definition","datasheet_revision","datasheet_template","datasheet_value_index","decision_trace","designator_model_crosswalk","document_attachment","equipment_category","equipment_spec","estimate_line","goods_receipt","instrument_spec","instrument_spec_audit","process_datasheet","process_datasheet_audit","project","project_estimate","purchase_order","relief_device_spec","relief_device_spec_audit","trace_step","vendor","vendor_alias","vendor_guarantee","vendor_invoice","vendor_quote","vendor_quote_audit"]},"project_controls":{"count":14,"tables":["bid.exception_register","bid.render_manifest","bid.requirement_item","cash_flow_forecast_period","contingency_drawdown","cost_to_complete_projection","earned_value_snapshot","project_control_baseline","project_controls.controlled_override","project_controls.deliverable","project_controls.design_requirement","project_controls.design_requirement_audit","project_controls.open_item","project_controls.tie_in"]},"project_finance":{"count":4,"tables":["document_attachment","proforma_actuals_import","proforma_actuals_record","proforma_model_run"]},"tally_accounting":{"count":12,"tables":["tally_actuals_export","tally_company","tally_company_period","tally_group","tally_ingestion_batch","tally_ledger","tally_report_line","tally_report_snapshot","tally_stock_item","tally_voucher","tally_voucher_line","tally_voucher_type"]}}},"reference_data":{"description":"Shared vocabularies, taxonomies, and unit systems.","schemas":[{"name":"engineering-unit","url":"https://puranwater.com/schemas/engineering-unit.schema.json","description":"57 constrained unit codes (QUDT/UN-CEFACT Rec 20) with UCUM code mapping"},{"name":"process-unit-taxonomy","url":"https://puranwater.com/schemas/process-unit-taxonomy.schema.json","description":"109 wastewater process unit types with ISA area codes, subarea numbers, and equipment type codes"},{"name":"iso14224-failure-taxonomy","url":"https://puranwater.com/schemas/iso14224-failure-taxonomy.schema.json","description":"ISO 14224 failure modes, causes, mechanisms, and equipment classes for reliability tracking"}]}}}