Sign In

Virtual-SCADA Bundle

Every SCADA simulate job that passes the Validation Gate is sealed and delivered as a multi-artifact bundle. Every artifact below comes out of a real run against the running platform — none of these rows are mock or template output.

Bundle artifacts

ArtifactFormatContent
scada_telemetryJSON arrayPer-tick sensor readings with true_value, measured_value, reported_value, labels (regime + anomaly), asset_type, asset_id, signal_name.
commandsJSON arrayControl surface writes — see the commands stream reference for the write_source schema and baseline cadences.
alarmsJSON arrayAlarm events with signal, severity, threshold, and clear-condition metadata.
protocol_modbus / protocol_opcua / protocol_bacnet / protocol_mqtt / protocol_dnp3 / protocol_iec61850NDJSONPer-protocol frame traces with address, payload, sensor, and timestamp. Only the protocols the customer requested (or the plant default) are emitted. See Protocol Reference.
traffic_pcapngIEEE pcapngWire-level capture with real TCP / IP / Ethernet framing. Loads directly in Wireshark, tshark, or any PCAP-aware IDS training pipeline.
contract_kJSONSealed sealed contract — the binding structural definition of this run (assets, signals, protocols, scenario pack, seed, engine version).

Download patterns

All artifacts are addressable through the SDK once the job reaches status="succeeded":

from radmah_sdk import RadMah

sdk = RadMah(api_key="...", base_url="https://api.radmah.ai")
artifacts = sdk.list_artifacts(job_id)

for art in artifacts:
    body = sdk.download_artifact(job_id, art.id)
    # body is the raw bytes; decode as UTF-8 JSON / NDJSON
    # except for protocol_* which are UTF-8 NDJSON and traffic_pcapng
    # which is binary pcapng.
    save_to_disk(art.name, body)

UI rendering

The client-area job detail page renders the bundle inline: artifact list with row counts, download links, a telemetry sample preview, and the sealed evidence signature. Customers see the same bundle through the UI that the SDK retrieves programmatically — there is no "lite" UI view.