OUI_XFAB documentation
Runtime Flows
Application Startup
src/main.tscreates the Vue app.- Shared i18n fragments and Pinia are installed.
- Vuetify and Material Design Icons are installed.
- Administration compatibility gateways and the WebSocket runtime are composed.
- The router and global error handler are installed.
- 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.