Seed UNS hierarchy across 6 sites; rebrand outputs to SCADA IT/OT with ZB template

Lands per-site UNS subtree files (Warsaw West/North, Shannon, Galway, TMT,
Ponce) seeded from OpenText facility docs — Warsaw split confirmed as
numbered = legacy Zimmer = West, lettered = legacy Biomet = North. Renames
project framing from "Shopfloor IT/OT" to "SCADA IT/OT" for accuracy.
Extracts a ZB-branded PowerPoint template from example_powerpoint.pptx and
wires it into the outputs pipeline. Trims deck from 18 to 16 slides
(BOBJ->Power BI transferred to another team, Non-Goals and Asks dropped);
goal-state BOBJ analysis pruned to a stub.
This commit is contained in:
Joseph Doherty
2026-04-30 10:54:49 -04:00
parent 98bf2d0da4
commit ebc76e9315
46 changed files with 2554 additions and 122 deletions

View File

@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<style>
html { background: #ffffff; }
body {
width: 720pt; height: 405pt; margin: 0; padding: 0;
background: #FFFFFF; font-family: Arial, sans-serif;
display: flex; flex-direction: column;
}
.header { padding: 12pt 40pt 4pt 40pt; border-bottom: 1.5pt solid #0066B3; }
.header h1 { margin: 0; font-size: 22pt; font-weight: bold; color: #0066B3; }.body { padding: 22pt 30pt; flex: 1; color: #333333; display: flex; flex-direction: column; justify-content: center; }
.flow-row { display: flex; justify-content: space-between; align-items: center; gap: 4pt; margin-bottom: 16pt; }
.node { background: #ffffff; border: 1pt solid #AAB7B8; padding: 10pt 6pt; border-radius: 3pt; flex: 1; text-align: center; }
.node p { margin: 0; font-size: 9pt; font-weight: bold; color: #2B2A80; }
.node .type { font-size: 7pt; color: #AAB7B8; margin-top: 2pt; letter-spacing: 0.5pt; }
.arrow { font-size: 12pt; color: #0066B3; font-weight: bold; }
.arrow p { margin: 0; }
.ot { background: #E8EDF0; }
.it { background: #FCEFE3; }
.caption { font-size: 11pt; color: #333333; text-align: center; line-height: 1.4; margin: 12pt 20pt 0 20pt; font-style: italic; }
</style>
</head>
<body>
<div class="header">
<h1>End-to-End Data Flow</h1>
</div>
<div class="body">
<div class="flow-row">
<div class="node ot"><p>Equipment</p><p class="type">OT</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node ot"><p>OtOpcUa</p><p class="type">OT · Layer 2</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node ot"><p>System Platform / Ignition</p><p class="type">OT · Layer 3</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node ot"><p>ScadaBridge</p><p class="type">OT · Layer 4</p></div>
</div>
<div class="flow-row">
<div class="node it"><p>Redpanda</p><p class="type">IT · EventHub</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node it"><p>SnowBridge</p><p class="type">IT · Ingest + Transform</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node it"><p>Snowflake</p><p class="type">IT · Curated Layer</p></div>
<div class="arrow"><p>&rarr;</p></div>
<div class="node it"><p>Power BI</p><p class="type">IT · Consumer</p></div>
</div>
<p class="caption">A tag read from a machine in Warsaw West flows across the stack into enterprise analytics, without a second IT↔OT crossing.</p>
</div>
</body>
</html>