docs: add zone boundary overlay workplan

This commit is contained in:
2026-05-24 16:24:00 +02:00
parent 8176d88926
commit c26a725f92

View File

@@ -0,0 +1,173 @@
---
id: RAIL-FAB-WP-0021
type: workplan
title: "Zone Boundary Overlays"
domain: railiance
repo: railiance-fabric
status: ready
owner: codex
topic_slug: railiance
created: "2026-05-24"
updated: "2026-05-24"
state_hub_workstream_id: "e9e2d47f-a965-4e2e-b65d-379dbb206a65"
---
# RAIL-FAB-WP-0021 - Zone Boundary Overlays
## Goal
Make deployment zones visible as labeled rectangular boundaries in the Fabric
graph explorer, so an operator can immediately see which nodes belong to local
dev, shared test, and production contexts.
This work builds on `RAIL-FAB-WP-0020` deployment overlay fields. Zone
boundaries are visual annotations over graph elements. They must not create new
fabric membership, ownership, security policy, or routing authority.
Initial display labels:
- `dev-tegwick` for the private developer-local overlay;
- `test` for shared test-stage services;
- `prod` for production services.
The implementation should keep the underlying graph explorable and avoid
turning zones into hard layout containers unless that proves necessary.
## Background
WP-20 added deployment overlay fields and graph explorer modes for:
- deployment environment;
- deployment scenario;
- routing authority;
- access zone;
- policy authority;
- route evidence.
The current UI can filter and summarize zone-oriented data, but the operator
still needs to infer the spatial grouping from node labels and details. The next
step is to draw zone boundaries around the visible nodes that share a deployment
zone, with a readable label on the boundary.
The likely implementation path is a graph-canvas overlay layer that computes
bounding rectangles from rendered node positions after layout, pan, zoom, filter,
or mode changes. This is preferred over changing graph topology to compound
parent nodes unless testing shows the overlay layer is too fragile.
## T01 - Define Zone Grouping And Labels
```task
id: RAIL-FAB-WP-0021-T01
status: todo
priority: high
state_hub_task_id: "91777c22-663c-443a-b682-38bfb7a864bf"
```
Define how graph explorer elements map to zone overlay groups.
Expected grouping rules:
- primary grouping field is `deploymentEnvironment`;
- `dev` nodes in the private local scenario render as `dev-tegwick`;
- `test` nodes render as `test`;
- `prod` nodes render as `prod`;
- nodes without deployment overlay data are not enclosed by a zone boundary;
- edge-only overlay evidence should affect zone warnings/details but should not
create a rectangle unless at least one visible node belongs to the zone.
Done when the grouping and label rules are documented in the graph explorer
contract or operations docs and have focused tests.
## T02 - Render Rectangle Boundary Overlays
```task
id: RAIL-FAB-WP-0021-T02
status: todo
priority: high
state_hub_task_id: "98ef5ecc-fa4d-443c-a4fe-fa896984d6c4"
```
Draw labeled rectangular boundaries around the currently visible nodes in each
zone group.
Implementation expectations:
- compute rectangles from rendered node bounding boxes;
- add padding so borders do not collide with node labels;
- draw borders above the canvas background but below interaction-critical UI;
- keep zone labels readable at normal zoom levels;
- update rectangles after layout, pan, zoom, resize, filter, mode, focus,
manual override, and rule changes;
- hide a zone boundary when no visible nodes remain in that zone.
Done when the UI shows stable labeled rectangles for `dev-tegwick`, `test`, and
`prod` where matching nodes are visible.
## T03 - Add Zone Overlay Controls
```task
id: RAIL-FAB-WP-0021-T03
status: todo
priority: medium
state_hub_task_id: "30d48d5c-bd53-434b-9b8b-ed1a495cee4e"
```
Add lightweight controls for zone boundaries without cluttering the graph
explorer toolbar.
Expected controls:
- toggle zone boundaries on or off;
- choose whether boundaries group by deployment environment or access zone if
both are useful;
- preserve the setting in copied URL state and browser-local profiles.
Done when operators can turn the overlay off for dense graph inspection and
restore it through shared/saved view state.
## T04 - Surface Zone Boundary Details
```task
id: RAIL-FAB-WP-0021-T04
status: todo
priority: medium
state_hub_task_id: "c002aa54-a243-4912-81ae-0d282910ebc6"
```
Make a zone boundary useful when inspected.
Expected behavior:
- clicking or selecting a zone label should show zone summary details;
- details should include visible node count, deployment environment, scenarios,
access zones, routing authorities, and route-without-policy-authority warnings;
- zone selection should not replace node/edge selection semantics permanently;
- a zone-focused view should be possible via existing focus/rule mechanisms if
it can be done simply.
Done when a zone label provides the same core answers as the WP-20 map overview,
but scoped to that zone.
## T05 - Verify Responsive And Dense Graph Behavior
```task
id: RAIL-FAB-WP-0021-T05
status: todo
priority: high
state_hub_task_id: "03f265ad-f335-4caf-a882-35d8d30c75fc"
```
Verify that zone rectangles remain useful across normal operator viewports and
dense graphs.
Checks should cover:
- desktop and narrower browser widths;
- full graph mode and deployment zone modes;
- filtered views where a zone has only one or two nodes;
- hidden/removed nodes from rule and manual override controls;
- graph pan/zoom/layout changes;
- no incoherent overlap between labels, controls, and detail panels.
Done when automated tests cover the computed grouping behavior and a browser
smoke check confirms the canvas overlay is visible and aligned.