Hybrid Track: Govern Without Replacing

You already have an industrial backbone. This path adds governance without disruption.


What You'll Achieve

By the end of this track, you'll have:

  • Governed queries over your existing data
  • Full audit trail of every query execution
  • API endpoints for integration with LIMS, dashboards, or AI tools
  • MCP connection so Claude or Copilot can query your data

All without touching your existing control systems.


The Approach

LayerWhat StaysWhat's Added
ControlYour SCADA, DeltaV, PLCsNothing—we don't touch this
DataYour historians, databasesIoT Hub connection to OI
QueryAd-hoc SQL, manual reportsGoverned warm queries
AIScattered toolsMCP-native AI on governed data

OpenIndustrial sits alongside your systems. We govern the queries, not the controls.


Phase 1: Connect Your Data

Step 1.1: Create IoT Hub Connection

Option A: Using the UI

  1. Open your workspace
  2. Drag a Connection node from the Node Bank onto your canvas
  3. Click the node to open the Inspector
  4. In Settings, configure for Azure IoT Hub
  5. Enter your connection string
  6. Commit your changes (click the save icon in the top-left)

Option B: Ask Azi

Step 1.2: Configure Data Flow

Your historian or SCADA system forwards data to IoT Hub. OI receives it as a stream:

SourceProtocolOI Connection Type
OSIsoft PIMQTT via EdgeIoT Hub
Aveva HistorianOPC-UA via EdgeIoT Hub
Rockwell FactoryTalkMQTTIoT Hub
Custom sensorsDirect MQTTIoT Hub
Thinking Tip:

If you don't have a connection yet, use our Simulator to follow along. The patterns are identical.


Phase 2: Create Monitoring Surface

Step 2.1: Create Surface

Option A: Using the UI

  1. Drag a Surface node from the Node Bank onto your canvas
  2. Click the node to open the Inspector
  3. In Settings, name it: Cleanroom-Monitoring
  4. Draw a connection line from your IoT Hub connection to the surface
  5. Commit your changes

Option B: Ask Azi

Step 2.2: Verify Data Flow

  1. Open the surface
  2. Check the Inspector panel
  3. Confirm live data is flowing

You should see your temperature, pressure, and batch data appearing in real-time.


Phase 3: Build Compliance Queries with Azi

This is where governance becomes real. Every query you build is tracked, versioned, and auditable.

Step 3.1: Create Temperature Compliance Query

Ask Azi:

"Create a warm query that checks if cleanroom temperature stayed between 18-22°C in the last 24 hours."

Azi proposes:

TelemetryData
| where Timestamp > ago(24h)
| where Zone == "Cleanroom"
| summarize
    MinTemp = min(Temperature),
    MaxTemp = max(Temperature),
    AvgTemp = avg(Temperature)
| extend Compliant = MinTemp >= 18 and MaxTemp <= 22

You review, then approve or edit.

This is governed AI in action. Azi proposes the query. You see exactly what it does. You decide whether to approve it. Every decision is logged.

Step 3.2: Create Batch Tracking Query

Ask Azi:

"Build a query that shows all events for a specific batch ID, ordered by time."

Azi proposes:

BatchEvents
| where BatchID == "{batchId}"
| order by Timestamp asc
| project Timestamp, EventType, Zone, Operator, Details

Step 3.3: Create Threshold Alert Query

Ask Azi:

"Create a query that flags any pressure readings above 1.5 bar in the mixing zone."

Azi proposes:

TelemetryData
| where Zone == "MixingZone"
| where Pressure > 1.5
| project Timestamp, Pressure, DeviceId
| order by Timestamp desc
Thinking Tip:

Each query becomes a reusable warm query with its own API endpoint. Build once, use everywhere.


Phase 4: Access Your APIs

Every warm query automatically gets a REST API endpoint.

Step 4.1: Find Your Endpoint

  1. Open the APIs menu in the top bar
  2. Select Warm Query Manager
  3. Choose your warm query from the dropdown
  4. Copy the endpoint URL and code examples

Step 4.2: Test with cURL

curl -X GET 'https://www.openindustrial.co/api/workspaces/explorer/warm-queries/temp-compliance' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Step 4.3: Integrate with Your Systems

SystemIntegration
LIMSREST API call on batch completion
DashboardPolling or webhook
AlertingTrigger on threshold queries

Phase 5: Connect MCP-Native AI

The "aha moment"—any MCP-native AI can now query your governed data.

Step 5.1: Get MCP Configuration

  1. Open the APIs menu in the top bar
  2. Select API Keys to generate a JWT token
  3. Use the configuration below with your workspace ID and token

Step 5.2: Configure Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "pharma-factory": {
      "command": "npx",
      "args": [
        "-y",
        "@openindustrial/mcp-server",
        "--workspace", "YOUR_WORKSPACE_ID",
        "--token", "YOUR_TOKEN"
      ]
    }
  }
}

Step 5.3: Ask Questions

Now you can ask Claude:

"Was batch 112A compliant with temperature requirements?"

Claude calls your governed warm query and returns audited results.

You just connected enterprise AI to governed industrial data. Every query Claude runs goes through the same audit trail as everything else.


What You Built

ComponentStatus
IoT Hub connection✓ Connected to existing historian
Cleanroom surface✓ Organizing your data
Compliance queries✓ 3+ governed warm queries
API endpoints✓ REST access to all queries
MCP integration✓ Claude querying governed data

Category Metrics

MetricYour Result
Time to First Governed Query~30 minutes
Queries built3+
Audit coverage100%
AI connectedClaude Desktop

Before vs After

Before Control PlaneAfter Control Plane
"AI said it was fine""Here's the query, audit log, and approval"
Data scattered in silosUnified through governed surfaces
No query traceabilityFull history of every execution
AI locked to vendorsAny MCP-native AI works

Next Steps

If you want to...Go to...
Try the Full trackFull Track →
See query patternsPatterns →
Deep-dive on MCPMCP Guide →
Learn more about AziMeet Azi →
On this page