diff --git a/docs/requirements/Component-DataConnectionLayer.md b/docs/requirements/Component-DataConnectionLayer.md index 2e909e96..26c72903 100644 --- a/docs/requirements/Component-DataConnectionLayer.md +++ b/docs/requirements/Component-DataConnectionLayer.md @@ -140,6 +140,14 @@ These are configured via `DataConnectionOptions` in `appsettings.json`, not per- - The existing subscription picks up the confirmed new value from the device and delivers it back to the Instance Actor as a standard value update. - The Instance Actor's in-memory value is **not** updated until the device confirms the write. +## Browsing the address space + +DCL is a clean data pipe on the hot path. Browse is an **opt-in capability** for protocols that support it, exposed via `IBrowsableDataConnection`. Only consumed by management/UI (the OPC UA tag picker on the instance configure page); Instance Actors never call it. + +- `OpcUaDataConnection` implements `IBrowsableDataConnection`; custom protocols do not. +- `DataConnectionManagerActor` handles `BrowseOpcUaNodeCommand` (fields: `DataConnectionId`, `ParentNodeId`) and replies with `BrowseOpcUaNodeResult` (children + `Truncated` + structured `BrowseFailure?`). +- Browse runs against the live session; no caching at DCL. + ## Value Update Message Format Each value update delivered to an Instance Actor includes: