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.
40 lines
4.3 KiB
Markdown
40 lines
4.3 KiB
Markdown
# UNS Subtrees — initial draft
|
||
|
||
> **Status: WORK-IN-PROGRESS draft (2026-04-30).** Initial structural skeleton seeded from the 3-year-plan source files (`current-state.md` enterprise layout + `goal-state.md` UNS naming hierarchy standard) and OpenText facility documentation. Per-site **line and equipment** detail is **not yet populated** — that requires the UNS hierarchy snapshot walk (see `goal-state.md` → "Unified Namespace (UNS) posture → UNS naming hierarchy standard"). See [`QUESTIONS.md`](QUESTIONS.md) for the open questions that block finalization.
|
||
>
|
||
> **Quick stakeholder view:** [`HIERARCHY.md`](HIERARCHY.md) — high-level tree across all 6 sites with Warsaw expanded as a worked example.
|
||
|
||
This directory holds one JSON file per **integrated site**, declaring the canonical UNS subtree (Enterprise → Site → Area → Line) for that site. Equipment (level 5) is configured per-cluster in OtOpcUa, not declared here.
|
||
|
||
## What's drafted
|
||
|
||
| Site | File | Source of truth | Notes |
|
||
|------|------|-----------------|-------|
|
||
| Warsaw West | [`warsaw-west.json`](warsaw-west.json) | OpenText `Zimmer Warsaw - Building Use Descriptions.docx` + verbal confirmation from project owner (numbered = legacy Zimmer = West Campus) | Six production buildings: `bldg-2`, `bldg-5`, `bldg-7`, `bldg-10`, `bldg-19`, `bldg-20`. Non-production buildings (3, 4, 8, 14, 15, 17, 18) deliberately excluded — Areas are production-only per goal-state. Lines pending walk. |
|
||
| Warsaw North | [`warsaw-north.json`](warsaw-north.json) | OpenText `Zimmer Biomet Buildings` folder + verbal confirmation (lettered = legacy Biomet = North Campus) | Six lettered buildings: `bldg-a`, `bldg-b`, `bldg-c`, `bldg-d`, `bldg-e`, `bldg-i`. Production-vs-non-production breakdown per building is **not yet known** — all included pending walk. Note F/G/H are absent from the building list; verify whether they exist. |
|
||
| Shannon | [`shannon.json`](shannon.json) | `current-state.md` other-integrated-sites + "single server cluster covering the whole site" rule | Area = `_default` (single-cluster site). Lines pending walk. |
|
||
| Galway | [`galway.json`](galway.json) | same | same |
|
||
| TMT | [`tmt.json`](tmt.json) | same | Area = `_default`. Lines pending walk. **TMT shortname unconfirmed** — see [`QUESTIONS.md`](QUESTIONS.md) Q2. |
|
||
| Ponce | [`ponce.json`](ponce.json) | same | same |
|
||
|
||
The not-yet-integrated smaller sites (Berlin, Winterthur, Jacksonville, others) are deliberately **not seeded** — onboarding shape is still TBD and the site list is volatile per `current-state.md`.
|
||
|
||
## What still needs to happen
|
||
|
||
1. **Walk integrated sites** to populate the `lines` arrays in each file above. Walk inputs: System Platform IO config, Ignition OPC UA connections, ScadaBridge templates. Walk output: per-site list of production lines with their `name` (kebab-case), `displayName`, and the equipment instances belonging to each line (with stable UUIDs — assigned during the walk, not derived from existing identifiers).
|
||
2. **Confirm Warsaw North production-vs-non-production breakdown** — the lettered buildings are all in `warsaw-north.json` pending verification of which are actually production. The walk should resolve this; non-production buildings should be removed from the Areas list once identified.
|
||
3. **Resolve remaining [`QUESTIONS.md`](QUESTIONS.md)** — Q2–Q4 (naming conventions) before authoring real line names, so the walk doesn't have to be redone.
|
||
4. **Move to a dedicated `schemas` repo** once one is created and an owner team is named. The temporary location under `3yearplan/schemas/` is documented in `../README.md`.
|
||
|
||
## Validation
|
||
|
||
Each file is validated against [`../format/uns-subtree.schema.json`](../format/uns-subtree.schema.json). Constraints:
|
||
|
||
- `enterprise` must equal `zb` across every file (matches `ServerCluster.Enterprise` in OtOpcUa).
|
||
- `site`, area `name`, and line `name` must match `^[a-z0-9-]{1,32}$` or be the literal `_default`.
|
||
- `_default` is reserved as the explicit "this level doesn't apply at this site" placeholder, per the goal-state design goal of uniform path depth.
|
||
|
||
## Worked examples
|
||
|
||
- [`example-warsaw-west.json`](example-warsaw-west.json) — original schema worked example contributed with the seed (uses placeholder bldg-3/bldg-4 — **superseded by the authoritative `warsaw-west.json`** for any actual consumer; kept here for documentation purposes only).
|