OUI_XFAB documentation

Runtime Flows

Application Startup

  1. src/main.ts creates the Vue app.
  2. Shared i18n fragments and Pinia are installed.
  3. Vuetify and Material Design Icons are installed.
  4. Administration compatibility gateways and the WebSocket runtime are composed.
  5. The router and global error handler are installed.
  6. The app mounts and feature stores begin their own lifecycle work.

Equipment Synchronization

Equipment synchronization is separate from transport connectivity. A connected generation refreshes the equipment catalog and subscribes to the selected equipment. Core readiness requires BasicInfo, LoadPortInfo, ConnectivityInfo, TxnLog, and a successful equipment-scoped SyncComplete. When activeAlarmAvailable is 1, the active alarm snapshot is a required fifth recovery snapshot. A legacy four-snapshot completion remains usable but marks alarm recovery unavailable.

Retained monitoring data remains read-only while reconnecting, synchronizing, or degraded. Equipment mutations require an exactly connected transport and ready synchronization.

Request Lifecycle

component -> store -> feature gateway -> RequestBroker
  -> protocol codec -> WebSocketTransport -> EAPWebManager
  -> WebSocketTransport -> codec -> RequestBroker -> decoder -> store

The broker registers ownership before sending. Requests that share a reply event are serialized in FIFO order because replies have no request correlation identifier. A timed-out reply event is quarantined for the current connection; late replies remain unmatched. Connection teardown rejects pending work and resets quarantine.

Reconnect

The transport heartbeat reschedules only while connected. Three consecutive misses invalidate the generation, close the half-open transport, reject pending requests, clear diagnostics, and schedule one reconnect timer. Reconnect refreshes the catalog and equipment synchronization rather than replaying stale command state.

Load Port Authority

EAP is the steady-state authority for LOAD and UNLOAD visibility and enabled state. 0 hides a control, 1 shows and enables it, and 2 shows and disables it. isPresent controls occupied versus empty presentation and never determines action availability. Pending ownership releases only after command acknowledgement and a later authoritative button-state change, in either arrival order.

Workstation Identity

When VITE_WORKSTATION_IDENTITY_ENABLED=1, the browser performs a non-blocking same-origin identity lookup through IIS. IIS proxies the exact route to the loopback access service, which resolves DNS PTR data and stores only a SHA-256 ticket hash. OUI binds the fresh single-use ticket to the current WebSocket generation through BindWorkstation.

Identity binding is generation-aware and informational. It does not replace transport, synchronization, EAP action state, administrator authentication, or backend authorization. Disconnect invalidates the authoritative result; a reconnect obtains a fresh ticket.

Dynamic Popup

The dynamic-popup module decodes bounded localized display elements from EAP, permits one active popup per UI owner, and keeps Confirm/Cancel pending until the equipment-scoped acknowledgement. Expiry and disconnect release ownership without synthesizing an action. Unsupported schema capabilities remain explicit rather than silently inferred.