Skip to content

P5: Canonical IED workspace and IEDScout-style workflow convergence #111

Closed

Description

@masarray

Follow-up to completed #105.

Product direction

Open SCL and Discover IED are two ingress paths into one persistent IED engineering context. Browser/services consume that context instead of treating SCL and live discovery as separate products.

P5A — Canonical IED Context

  • create one persistent application-level engineering context
  • accept single-IED Open SCL and Live MMS Discovery as authoritative ingress
  • preserve context across runtime disconnect
  • distinguish structural authority from online runtime state
  • expose provenance, selected IED identity, endpoint, structural fingerprint and service inventories
  • provide deterministic multi-IED SCL selection boundary rather than silently choosing an IED
  • no protocol runtime rewrite and no major GUI redesign in P5A

Later P5 phases will use the same authority for File workflow, Browser offline/online lifecycle, Save SCL round-trip and contextual command UX.

Activity

  1. masarray commented on Sep 20, 2026

    @masarray
    OwnerAuthor

    P5A closeout — CLOSED / VALIDATED

    • PR P5A: add persistent canonical IED engineering context #112 exact validated head: 3561ffe89761c932d7db82c27037a5013368ac76
    • exact-head PR workflows: 9/9 SUCCESS
    • merged main: 5b3ea19fa6542069fd224e14701c0ffb24ae5eda
    • exact head -> merge: 0 changed files
    • post-merge workflows: 11/11 SUCCESS
    • immutable baseline: baseline/ux-p5a-validated

    P5B and later work must descend from exact P5A merge SHA / baseline above.

    P5A established one persistent canonical engineering context for Open SCL and Live Discovery, explicit multi-IED selection, structural fingerprint/provenance, and runtime state independent from structural model lifetime.

  2. masarray commented on Sep 20, 2026

    @masarray
    OwnerAuthor

    P5B — Unified Browser lifecycle (STARTED)

    Baseline: baseline/ux-p5a-validated / 5b3ea19fa6542069fd224e14701c0ffb24ae5eda.

    Acceptance contract:

    • File/Open SCL enters the same IED Browser context, not a separate product path.
    • Browser can open SCL directly and browse the canonical Data Model while offline.
    • Open SCL path uses SCL endpoint/address context when available and connects through the existing trusted-SCL MMS path.
    • Discover IED explicitly bypasses trusted SCL, performs live MMS discovery, and publishes the discovered structure into the same canonical Browser context.
    • Browser Data Model renders IedEngineeringContextController.treeModel, not session-owned client.treeModel.
    • Read/Write/Refresh stay on the proven MMS runtime but bridge values back into the canonical tree.
    • Disconnect clears runtime association only; canonical engineering navigation stays present.
    • multi-IED SCL selection is actionable in Browser before connection.
    • no Report/Control/File/SettingGroup protocol rewrite in P5B.
  3. masarray commented on Sep 20, 2026

    @masarray
    OwnerAuthor

    P5B closeout — CLOSED / VALIDATED

    • PR P5B: unify Open SCL and Discover IED Browser lifecycle #113 exact validated head: 6251d129d098288f384fbfcf71744c241d6ae1e6
    • exact-head PR workflows: 9/9 SUCCESS
    • merged main: e455608bef1cca4c35d3a04bde51f4f295c4c9ab
    • exact head -> merge: 0 changed files
    • post-merge workflows: 11/11 SUCCESS
    • immutable baseline: baseline/ux-p5b-validated

    P5B delivered the unified Browser lifecycle:

    • Open SCL and Discover IED converge into the same persistent canonical IED Browser context.
    • Browser Data Model renders the canonical IedEngineeringContextController.treeModel.
    • Open SCL remains browsable offline and uses the trusted-SCL connection path when going online.
    • Discover IED explicitly bypasses trusted SCL and publishes live discovery into the same context.
    • Read / Write / Refresh stay on the proven MMS runtime and mirror live values into the canonical tree.
    • Disconnect tears down runtime association without erasing engineering navigation.
    • multi-IED SCL selection is actionable before connection.

    P5C and later work must descend from exact P5B merge SHA e455608bef1cca4c35d3a04bde51f4f295c4c9ab or baseline/ux-p5b-validated.

  4. masarray commented on Sep 20, 2026

    @masarray
    OwnerAuthor

    P5C — Discovery -> canonical Save SCL round-trip (STARTED)

    Baseline: baseline/ux-p5b-validated / e455608bef1cca4c35d3a04bde51f4f295c4c9ab.

    Acceptance contract:

    • Save SCL from a Live Discovery canonical context is a local projection; it performs no rediscovery and does not require the MMS association to remain online.
    • Live MmsLiveModelDocument projects deterministically into one SclDocument authority used by the existing typed SclExporter.
    • projected LD/LN/DO/DA, ordered DataSets, Reports and supported GOOSE/SV/SG semantics round-trip through parser/export without a second semantic tree.
    • discovered IED identity and MMS endpoint are preserved in exported Communication/ConnectedAP when known.
    • synthetic type identities are deterministic; unknown/unrepresentable semantic leaves fail closed instead of inventing types.
    • Browser exposes Save SCL for the current canonical IED context, including after Disconnect.
    • Open-SCL exact-source Save As remains unchanged; P5C does not weaken vendor-lossless source preservation.
    • no MMS wire/runtime behavior rewrite.
    • QA must prove discovery-context export -> re-open -> structural equivalence and export-after-disconnect.
  5. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5C closeout — CLOSED / VALIDATED

    • PR P5C: save discovered canonical IED model as SCL #114 exact validated head: e0fffd713af6ccdc43bfc4954b63fab7776800f9
    • exact-head PR workflows: 14/14 SUCCESS
    • merged main: 4b2dc4abd5b665271401b55fd53c1943f00a24e5
    • exact head -> merge: 0 changed files
    • post-merge workflows: 14/14 SUCCESS
    • immutable baseline: baseline/ux-p5c-validated

    P5C delivered Discovery -> canonical Save SCL round-trip:

    • Live Discovery canonical context can be saved locally as IID/ICD/CID/SCD.
    • Save SCL is a local projection of the cached canonical model and still works after Disconnect; no MMS rediscovery is required.
    • MmsLiveModelDocument projects deterministically into one typed SclDocument and reuses the existing SclExporter.
    • discovered IED identity, AccessPoint name and MMS endpoint are preserved in Communication/ConnectedAP when known.
    • ordered DataSets, Reports, supported GOOSE/SV and SettingGroup semantics are reconstructed and round-trip through parser/export.
    • whole-DataObject DataSet members preserve configured membership while payload-oriented expansion is used where needed.
    • unknown/unrepresentable CDC/basic type/FC/Enum/member semantics fail closed instead of inventing SCL.
    • Open-SCL exact-source Save As remains separate so vendor XML preservation is not silently downgraded.
    • Browser exposes Save SCL for live-discovery authority, including offline after Disconnect.
    • dedicated ied_discovery_scl_export_qa proves export -> re-open -> canonical Browser context plus endpoint, DataSet order, Report/GOOSE/SettingGroup and fail-closed behavior.

    P5C status: CLOSED / VALIDATED.

    Any P5D/later work must descend from exact P5C merge SHA 4b2dc4abd5b665271401b55fd53c1943f00a24e5 or baseline/ux-p5c-validated.

  6. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5D — File/Home workflow IEDScout style (STARTED)

    Baseline: baseline/ux-p5c-validated / 4b2dc4abd5b665271401b55fd53c1943f00a24e5.

    Acceptance contract:

    • File becomes the engineering start center, not a secondary SCL workspace.
    • primary actions are Open SCL, Discover IED, Simulate IED, Sniffer, and Configuration.
    • Open SCL enters the existing unified Browser lifecycle and keeps offline canonical browsing / Online behavior from P5B.
    • Discover IED prompts for endpoint, explicitly starts Live Discovery, and enters the same Browser context.
    • recently opened engineering files and recently discovered IEDs are separate histories.
    • recent discovered IED entries use engineering identity (IED name + endpoint) rather than bare TCP endpoint when identity is known.
    • recent entries never auto-connect on application startup; reconnect remains an explicit user action.
    • recent file/IED history remains bounded, deduplicated, fail-closed, and migration-safe.
    • Simulate IED and Sniffer route to their existing validated workspaces; no protocol runtime rewrite.
    • File/Home should not duplicate Browser-owned Save SCL, Reports, DataSets, Controls, Files, SGCB or GOOSE workflows.
    • QA must prove history migration/persistence, identity-aware discovered IED history, explicit reconnect semantics, and File routing contract.
  7. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5D closeout — CLOSED / VALIDATED

    P5D File workflow IEDScout style is now formally closed and locked.

    • PR P5D: converge File Home on IEDScout workflow #115 exact head: b2c546fd64b8f39561066c79cf31fae4f2a27493
    • Exact-head workflows: 9/9 SUCCESS
    • Merged main: 2694bd467b11f1aab577f5268c8cedfced4bc05d
    • Exact head → merge: 0 changed files
    • Post-merge workflows on merge SHA: 11/11 SUCCESS
    • Immutable baseline: baseline/ux-p5d-validated → 2694bd467b11f1aab577f5268c8cedfced4bc05d

    Validated product behavior:

    • File/Home is the engineering start center with Open SCL, Discover IED, Simulate IED, Sniffer, Configuration.
    • Open SCL and Discover IED converge into the same Browser / IedEngineeringContext lifecycle.
    • Discover IED uses an explicit endpoint dialog and does not inherit stale trusted-SCL authority.
    • Recent SCL files and recent discovered IEDs are separate histories.
    • Recent discovered IED identity stores IED name + endpoint when known; selecting one restores context only and never auto-connects.
    • Product state schema v5 migration remains bounded/fail-closed.
    • No MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite was introduced.

    Next P5 work must branch from baseline/ux-p5d-validated unless a later validated baseline explicitly supersedes it.

  8. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5E — Browser convergence (STARTED)

    Baseline: baseline/ux-p5d-validated / 2694bd467b11f1aab577f5268c8cedfced4bc05d.

    Acceptance contract:

    • Browser is one engineering workbench for the active IedEngineeringContext, not a set of visually equal feature pages.
    • left explorer has one explicit IED root; GOOSE, Reports, Setting Groups, Files, DataSets and Data Model are children of that active IED identity.
    • lifecycle commands (Open SCL / Save SCL / Online or Discover / Disconnect) remain distinct from contextual engineering commands.
    • contextual command surface changes with selection/section and fails closed when offline or capability is unavailable.
    • Data Model selection continues to use the canonical context.treeModel; Read/Write operations continue through the already validated MMS runtime bridge.
    • Browser adds a bounded collapsible status/history console for context/runtime/service transitions and errors; no protocol polling loop is introduced.
    • offline SCL browsing remains fully usable; going Online overlays runtime state without rebuilding the engineering navigation.
    • Reports/DataSets/Files/Setting Groups/GOOSE keep their existing controllers in P5E; service-authority consolidation remains P5F.
    • no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite.
    • QA must guard IED-root navigation, contextual command gating, offline/online lifecycle wording, and bounded Browser status history.
  9. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5E closeout — CLOSED / VALIDATED

    • PR P5E: converge Browser into one IED engineering workbench #116 exact validated head: d0f6e9eb400f54602e41ea2d44a401eeffb5a920
    • exact-head PR workflows: 8/8 SUCCESS
    • merged main: 22b27b7bcca663f3103a3007947ba99188ae471e
    • exact head -> merge: 0 changed files
    • post-merge workflows on merge SHA: 10/10 SUCCESS
    • immutable baseline: baseline/ux-p5e-validated -> 22b27b7bcca663f3103a3007947ba99188ae471e

    Validated product behavior:

    • Browser is one engineering workbench rooted in the active IED engineering identity.
    • GOOSE / Reports / Setting Groups / Files / DataSets / Data Model are children of that IED root.
    • lifecycle MODEL commands are separated from contextual COMMANDS.
    • Data Model continues to use canonical context.treeModel; proven MMS Read/Write bridge remains unchanged.
    • offline SCL navigation persists; Online overlays runtime state rather than rebuilding engineering navigation.
    • Browser status history is bounded to 80 events and introduces no polling timer.
    • no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite was introduced.

    P5F and later work must descend from baseline/ux-p5e-validated unless a later validated baseline explicitly supersedes it.

  10. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5F — service reuse (STARTED)

    Baseline: baseline/ux-p5e-validated / 22b27b7bcca663f3103a3007947ba99188ae471e.

    Acceptance contract:

    • Reports, DataSets, Files, Setting Groups and configured GOOSE views consume the active IedEngineeringContext as engineering identity/model authority.
    • service controllers may keep their proven internal MMS associations, but endpoint/IED identity/model selection must be adopted from the Browser session/context rather than recreated independently.
    • opening a Browser service must not rediscover the IED or create a second structural model.
    • Reports/DataSets must preserve canonical DataSet/RCB identity and static membership from the active engineering context while runtime enable/GI remains on the existing report controller.
    • Files/Setting Groups must use the same Browser endpoint/IED lifecycle and fail closed while offline; no hidden auto-connect.
    • GOOSE Browser projection remains canonical/configured-model driven; no duplicate GOOSE semantic tree.
    • Disconnect tears down service runtime associations but leaves service navigation/model context intact where structurally available.
    • no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite.
    • QA must prove context authority adoption, no rediscovery on service activation, endpoint consistency, and preservation of P5A-P5E gates.
  11. masarray commented on Sep 21, 2026

    @masarray
    OwnerAuthor

    P5F closeout — CLOSED / VALIDATED

    • PR P5F: reuse canonical engineering context across Browser services #117 exact validated head: 761d91e7efe058341292abf0ff1cc12bdecacaca
    • exact-head PR workflows: 8/8 SUCCESS
    • merged main: 3fdc1ef53d2025902ca54250749aa9f15edb1b42
    • exact head -> merge: 0 changed files
    • post-merge workflows on merge SHA: 10/10 SUCCESS
    • immutable baseline: baseline/ux-p5f-validated -> 3fdc1ef53d2025902ca54250749aa9f15edb1b42

    Validated product behavior:

    • Reports, DataSets, Files, Setting Groups and configured GOOSE now reuse the active canonical IedEngineeringContext as engineering identity/model authority.
    • Browser coordinator propagates one endpoint/context authority into Client, Reports and Utilities.
    • Browser Reports no longer performs a second full IED discovery; it seeds inventory from the canonical model and performs targeted bounded RCB state reads over the proven report association.
    • indexed SCL ReportControl definitions expand deterministically to concrete RCB instances with a fail-closed 1024-instance bound.
    • DataSet static membership remains canonical/context-derived; report enable/GI runtime remains on the existing MmsReportController with polling fallback still disabled for static reporting.
    • Browser Setting Groups reuse canonical SGCB inventory and perform bounded exact SGCB reads; Files reuse the same Browser utility association and endpoint lifecycle.
    • GOOSE Browser view consumes context.gooseStreams directly; the previous duplicate SclWorkspace GOOSE authority is removed from Browser navigation.
    • Disconnect releases report/utility MMS associations while preserving canonical service inventory for offline navigation.
    • standalone Reports/Utilities keep their previous discovery fallback only when no Browser engineering context is supplied.
    • no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite was introduced.

    P5F status: CLOSED / VALIDATED.

    Any later UX/service work must descend from baseline/ux-p5f-validated unless a later validated baseline explicitly supersedes it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions