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
| Layer | What Stays | What's Added |
|---|---|---|
| Control | Your SCADA, DeltaV, PLCs | Nothing—we don't touch this |
| Data | Your historians, databases | IoT Hub connection to OI |
| Query | Ad-hoc SQL, manual reports | Governed warm queries |
| AI | Scattered tools | MCP-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
- Open your workspace
- Drag a Connection node from the Node Bank onto your canvas
- Click the node to open the Inspector
- In Settings, configure for Azure IoT Hub
- Enter your connection string
- 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:
| Source | Protocol | OI Connection Type |
|---|---|---|
| OSIsoft PI | MQTT via Edge | IoT Hub |
| Aveva Historian | OPC-UA via Edge | IoT Hub |
| Rockwell FactoryTalk | MQTT | IoT Hub |
| Custom sensors | Direct MQTT | IoT Hub |
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
- Drag a Surface node from the Node Bank onto your canvas
- Click the node to open the Inspector
- In Settings, name it:
Cleanroom-Monitoring - Draw a connection line from your IoT Hub connection to the surface
- Commit your changes
Option B: Ask Azi
Step 2.2: Verify Data Flow
- Open the surface
- Check the Inspector panel
- 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
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
- Open the APIs menu in the top bar
- Select Warm Query Manager
- Choose your warm query from the dropdown
- 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
| System | Integration |
|---|---|
| LIMS | REST API call on batch completion |
| Dashboard | Polling or webhook |
| Alerting | Trigger 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
- Open the APIs menu in the top bar
- Select API Keys to generate a JWT token
- 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
| Component | Status |
|---|---|
| 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
| Metric | Your Result |
|---|---|
| Time to First Governed Query | ~30 minutes |
| Queries built | 3+ |
| Audit coverage | 100% |
| AI connected | Claude Desktop |
Before vs After
| Before Control Plane | After Control Plane |
|---|---|
| "AI said it was fine" | "Here's the query, audit log, and approval" |
| Data scattered in silos | Unified through governed surfaces |
| No query traceability | Full history of every execution |
| AI locked to vendors | Any MCP-native AI works |
Next Steps
| If you want to... | Go to... |
|---|---|
| Try the Full track | Full Track → |
| See query patterns | Patterns → |
| Deep-dive on MCP | MCP Guide → |
| Learn more about Azi | Meet Azi → |
On this page
- FrontmatterVersion: 1 DocumentType: Guide Title: "Pharma Factory — Hybrid Rollout" Summary: "Add a Control Plane beside DeltaV, SCADA, or MES without touching them: connect data, build compliance queries with Azi, then expose APIs and MCP." Created: 2026-01-19
- Hybrid Track: Govern Without Replacing