TL;DR; Yes, you can use the Browse Service to get a list of all nodes within the server.
More Detailed answer:
Every Server should at least have the following nodes (folders). In Parenthesis is the node ID in namespace 0 (the OPC UA base namespace) which is given by the specification.
- Root (i=84)
- Objects (i=85)
- Types (i=86)
- Views (i=87)
The OPC UA Specification Part 4 can be downloaded for free after registering from here OPC UA Specification. It defines the Services Browse
and BrowseNext
. Using these services, you can indicate a start node (i.e., one of the nodes above, e.g., Root = namespace 0, ID 84) and get all its children.
In node-opcua
you can find some example code probably in here: https://github.com/node-opcua/node-opcua/blob/fd5e48bac996625aaa7c177d1f8ed0c40ee92fbc/test/end_to_end/u_test_e2e_BrowseRequest.js
In open62541 the example for browsing nodes is shown here:
https://github.com/open62541/open62541/blob/master/examples/client.c#L55