Documentation
¶
Index ¶
- Constants
- Variables
- func Any(nodes []ua.NodeID, f func(n ua.NodeID) bool) bool
- func Contains(nodes []ua.NodeID, node ua.NodeID) bool
- func IsUserPermitted(userRolePermissions []ua.RolePermissionType, permissionType ua.PermissionType) bool
- type AuthenticateIssuedIdentityFunc
- type AuthenticateUserNameIdentityFunc
- type AuthenticateX509IdentityFunc
- type ChannelManager
- type DataTypeNode
- func (n *DataTypeNode) BrowseName() ua.QualifiedName
- func (n *DataTypeNode) DataTypeDefinition() interface{}
- func (n *DataTypeNode) Description() ua.LocalizedText
- func (n *DataTypeNode) DisplayName() ua.LocalizedText
- func (n *DataTypeNode) IsAbstract() bool
- func (n *DataTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *DataTypeNode) NodeClass() ua.NodeClass
- func (n *DataTypeNode) NodeID() ua.NodeID
- func (n *DataTypeNode) References() []ua.Reference
- func (n *DataTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *DataTypeNode) SetReferences(value []ua.Reference)
- func (n *DataTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type EventListener
- type HistoryReadWriter
- type HistoryReader
- type HistoryWriter
- type IdentityMappingRule
- type IssuedIdentityAuthenticator
- type MethodNode
- func (n *MethodNode) BrowseName() ua.QualifiedName
- func (n *MethodNode) Description() ua.LocalizedText
- func (n *MethodNode) DisplayName() ua.LocalizedText
- func (n *MethodNode) Executable() bool
- func (n *MethodNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *MethodNode) NodeClass() ua.NodeClass
- func (n *MethodNode) NodeID() ua.NodeID
- func (n *MethodNode) References() []ua.Reference
- func (n *MethodNode) RolePermissions() []ua.RolePermissionType
- func (n *MethodNode) SetCallMethodHandler(value func(context.Context, ua.CallMethodRequest) ua.CallMethodResult)
- func (n *MethodNode) SetReferences(value []ua.Reference)
- func (n *MethodNode) UserExecutable(ctx context.Context) bool
- func (n *MethodNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type MonitoredItem
- func (mi *MonitoredItem) Delete()
- func (mi *MonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
- func (mi *MonitoredItem) OnEvent(evt ua.Event)
- func (mi *MonitoredItem) Poll()
- func (mi *MonitoredItem) SamplingInterval() float64
- func (mi *MonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
- type NamespaceManager
- func (m *NamespaceManager) Add(nsu string) uint16
- func (m *NamespaceManager) AddNode(node Node) error
- func (m *NamespaceManager) AddNodes(nodes []Node) error
- func (m *NamespaceManager) DeleteNode(node Node, deleteChildren bool) error
- func (m *NamespaceManager) DeleteNodes(nodes []Node, deleteChildren bool) error
- func (m *NamespaceManager) FindComponent(startNode Node, browseName ua.QualifiedName) (node Node, ok bool)
- func (m *NamespaceManager) FindMethod(id ua.NodeID) (node *MethodNode, ok bool)
- func (m *NamespaceManager) FindNode(id ua.NodeID) (node Node, ok bool)
- func (m *NamespaceManager) FindObject(id ua.NodeID) (node *ObjectNode, ok bool)
- func (m *NamespaceManager) FindProperty(startNode Node, browseName ua.QualifiedName) (node *VariableNode, ok bool)
- func (m *NamespaceManager) FindSuperType(typeid ua.NodeID) ua.NodeID
- func (m *NamespaceManager) FindVariable(id ua.NodeID) (node *VariableNode, ok bool)
- func (m *NamespaceManager) FindVariantType(dataType ua.NodeID) byte
- func (m *NamespaceManager) GetChildren(node Node, uris []string, withRefTypes []ua.NodeID) []Node
- func (m *NamespaceManager) GetSubTypes(node Node) []Node
- func (m *NamespaceManager) IsSubtype(subtype, supertype ua.NodeID) bool
- func (m *NamespaceManager) Len() int
- func (m *NamespaceManager) LoadNodeSetFromBuffer(buf []byte) error
- func (m *NamespaceManager) LoadNodeSetFromFile(path string) error
- func (m *NamespaceManager) NamespaceUris() []string
- func (m *NamespaceManager) OnEvent(target *ObjectNode, evt ua.Event) error
- func (m *NamespaceManager) SetAnalogTypeBehavior(node *VariableNode) error
- func (m *NamespaceManager) SetMultiStateValueDiscreteTypeBehavior(node *VariableNode) error
- type Node
- type ObjectNode
- func (n *ObjectNode) AddEventListener(listener EventListener)
- func (n *ObjectNode) BrowseName() ua.QualifiedName
- func (n *ObjectNode) Description() ua.LocalizedText
- func (n *ObjectNode) DisplayName() ua.LocalizedText
- func (n *ObjectNode) EventNotifier() byte
- func (n *ObjectNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ObjectNode) NodeClass() ua.NodeClass
- func (n *ObjectNode) NodeID() ua.NodeID
- func (n *ObjectNode) OnEvent(evt ua.Event)
- func (n *ObjectNode) References() []ua.Reference
- func (n *ObjectNode) RemoveEventListener(listener EventListener)
- func (n *ObjectNode) RolePermissions() []ua.RolePermissionType
- func (n *ObjectNode) SetReferences(value []ua.Reference)
- func (n *ObjectNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type ObjectTypeNode
- func (n *ObjectTypeNode) BrowseName() ua.QualifiedName
- func (n *ObjectTypeNode) Description() ua.LocalizedText
- func (n *ObjectTypeNode) DisplayName() ua.LocalizedText
- func (n *ObjectTypeNode) IsAbstract() bool
- func (n *ObjectTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ObjectTypeNode) NodeClass() ua.NodeClass
- func (n *ObjectTypeNode) NodeID() ua.NodeID
- func (n *ObjectTypeNode) References() []ua.Reference
- func (n *ObjectTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *ObjectTypeNode) SetReferences(value []ua.Reference)
- func (n *ObjectTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type Option
- func WithAnonymousIdentity(value bool) Option
- func WithAuthenticateUserNameIdentityFunc(f AuthenticateUserNameIdentityFunc) Option
- func WithAuthenticateX509IdentityFunc(f AuthenticateX509IdentityFunc) Option
- func WithBuildInfo(value ua.BuildInfo) Option
- func WithHistorian(historian HistoryReadWriter) Option
- func WithInsecureSkipVerify() Option
- func WithMaxSessionCount(value uint32) Option
- func WithMaxSubscriptionCount(value uint32) Option
- func WithMaxWorkerThreads(value int) Option
- func WithRolePermissions(permissions []ua.RolePermissionType) Option
- func WithRolesProvider(provider RolesProvider) Option
- func WithSecurityPolicyNone(value bool) Option
- func WithServerCapabilities(value *ua.ServerCapabilities) Option
- func WithServerDiagnostics(value bool) Option
- func WithSessionTimeout(value float64) Option
- func WithTrace() Option
- func WithTransportLimits(receiveBufferSize, sendBufferSize, maxMessageSize, maxChunkCount uint32) Option
- func WithUserNameIdentityAuthenticator(authenticator UserNameIdentityAuthenticator) Option
- func WithX509IdentityAuthenticator(authenticator X509IdentityAuthenticator) Option
- type PollGroup
- type PollListener
- type ReferenceTypeNode
- func (n *ReferenceTypeNode) BrowseName() ua.QualifiedName
- func (n *ReferenceTypeNode) Description() ua.LocalizedText
- func (n *ReferenceTypeNode) DisplayName() ua.LocalizedText
- func (n *ReferenceTypeNode) InverseName() ua.LocalizedText
- func (n *ReferenceTypeNode) IsAbstract() bool
- func (n *ReferenceTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ReferenceTypeNode) NodeClass() ua.NodeClass
- func (n *ReferenceTypeNode) NodeID() ua.NodeID
- func (n *ReferenceTypeNode) References() []ua.Reference
- func (n *ReferenceTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *ReferenceTypeNode) SetReferences(value []ua.Reference)
- func (n *ReferenceTypeNode) Symmetric() bool
- func (n *ReferenceTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type RolesProvider
- type RulesBasedRolesProvider
- type Scheduler
- type Server
- func (srv *Server) Abort() error
- func (srv *Server) ChannelManager() *ChannelManager
- func (srv *Server) Close() error
- func (srv *Server) Closing() <-chan struct{}
- func (srv *Server) EndpointURL() string
- func (srv *Server) Endpoints() []ua.EndpointDescription
- func (srv *Server) Historian() HistoryReadWriter
- func (srv *Server) ListenAndServe() error
- func (srv *Server) LocalCertificate() []byte
- func (srv *Server) LocalDescription() ua.ApplicationDescription
- func (srv *Server) MaxSessionCount() uint32
- func (srv *Server) MaxSubscriptionCount() uint32
- func (srv *Server) NamespaceManager() *NamespaceManager
- func (srv *Server) NamespaceUris() []string
- func (srv *Server) RolePermissions() []ua.RolePermissionType
- func (srv *Server) Scheduler() *Scheduler
- func (srv *Server) ServerCapabilities() *ua.ServerCapabilities
- func (srv *Server) ServerUris() []string
- func (srv *Server) SessionManager() *SessionManager
- func (srv *Server) State() ua.ServerState
- func (srv *Server) SubscriptionManager() *SubscriptionManager
- func (srv *Server) WorkerPool() *workerpool.WorkerPool
- type Session
- func (s *Session) AuthenticationToken() ua.NodeID
- func (s *Session) IsExpired() bool
- func (s *Session) LastAccess() time.Time
- func (s *Session) SecureChannelId() uint32
- func (s *Session) Server() *Server
- func (s *Session) SessionId() ua.NodeID
- func (s *Session) SessionName() string
- func (s *Session) SessionNonce() ua.ByteString
- func (s *Session) SetLastAccess(value time.Time)
- func (s *Session) SetSecureChannelId(value uint32)
- func (s *Session) SetSessionNonce(value ua.ByteString)
- func (s *Session) SetUserIdentity(value interface{})
- func (s *Session) SetUserRoles(value []ua.NodeID)
- func (s *Session) Timeout() time.Duration
- func (s *Session) UserIdentity() interface{}
- func (s *Session) UserRoles() []ua.NodeID
- type SessionManager
- type Subscription
- func (s *Subscription) AppendItem(item *MonitoredItem) bool
- func (s *Subscription) Delete()
- func (s *Subscription) DeleteItem(ctx context.Context, id uint32) bool
- func (s *Subscription) FindItem(id uint32) (*MonitoredItem, bool)
- func (s *Subscription) IsExpired() bool
- func (s *Subscription) Items() []*MonitoredItem
- func (s *Subscription) Modify(publishingInterval float64, lifetimeCount uint32, maxKeepAliveCount uint32, ...)
- func (s *Subscription) SetPublishingMode(publishingEnabled bool)
- type SubscriptionManager
- type UserNameIdentityAuthenticator
- type VariableNode
- func (n *VariableNode) AccessLevel() byte
- func (n *VariableNode) ArrayDimensions() []uint32
- func (n *VariableNode) BrowseName() ua.QualifiedName
- func (n *VariableNode) DataType() ua.NodeID
- func (n *VariableNode) Description() ua.LocalizedText
- func (n *VariableNode) DisplayName() ua.LocalizedText
- func (n *VariableNode) Historizing() bool
- func (n *VariableNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *VariableNode) MinimumSamplingInterval() float64
- func (n *VariableNode) NodeClass() ua.NodeClass
- func (n *VariableNode) NodeID() ua.NodeID
- func (n *VariableNode) References() []ua.Reference
- func (n *VariableNode) RolePermissions() []ua.RolePermissionType
- func (n *VariableNode) SetHistorizing(historizing bool)
- func (n *VariableNode) SetReadValueHandler(value func(context.Context, ua.ReadValueID) ua.DataValue)
- func (n *VariableNode) SetReferences(value []ua.Reference)
- func (n *VariableNode) SetValue(value ua.DataValue)
- func (n *VariableNode) SetWriteValueHandler(value func(context.Context, ua.WriteValue) ua.StatusCode)
- func (n *VariableNode) UserAccessLevel(ctx context.Context) byte
- func (n *VariableNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- func (n *VariableNode) Value() ua.DataValue
- func (n *VariableNode) ValueRank() int32
- type VariableTypeNode
- func (n *VariableTypeNode) ArrayDimensions() []uint32
- func (n *VariableTypeNode) BrowseName() ua.QualifiedName
- func (n *VariableTypeNode) DataType() ua.NodeID
- func (n *VariableTypeNode) Description() ua.LocalizedText
- func (n *VariableTypeNode) DisplayName() ua.LocalizedText
- func (n *VariableTypeNode) IsAbstract() bool
- func (n *VariableTypeNode) IsAttributeIDValid(attributeId uint32) bool
- func (n *VariableTypeNode) NodeClass() ua.NodeClass
- func (n *VariableTypeNode) NodeID() ua.NodeID
- func (n *VariableTypeNode) References() []ua.Reference
- func (n *VariableTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *VariableTypeNode) SetReferences(value []ua.Reference)
- func (n *VariableTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- func (n *VariableTypeNode) Value() ua.DataValue
- func (n *VariableTypeNode) ValueRank() int32
- type ViewNode
- func (n *ViewNode) BrowseName() ua.QualifiedName
- func (n *ViewNode) ContainsNoLoops() bool
- func (n *ViewNode) Description() ua.LocalizedText
- func (n *ViewNode) DisplayName() ua.LocalizedText
- func (n *ViewNode) EventNotifier() byte
- func (n *ViewNode) IsAttributeIDValid(attributeId uint32) bool
- func (n *ViewNode) NodeClass() ua.NodeClass
- func (n *ViewNode) NodeID() ua.NodeID
- func (n *ViewNode) References() []ua.Reference
- func (n *ViewNode) RolePermissions() []ua.RolePermissionType
- func (n *ViewNode) SetReferences(value []ua.Reference)
- func (n *ViewNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type X509IdentityAuthenticator
Constants ¶
const (
// SessionKey stores the current session in context
SessionKey key = "opcua-session"
)
Variables ¶
var ( // DefaultRolePermissions returns RolePermissionTypes for the well known roles. DefaultRolePermissions []ua.RolePermissionType = []ua.RolePermissionType{ {RoleID: ua.ObjectIDWellKnownRoleAnonymous, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleAuthenticatedUser, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleObserver, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleOperator, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall)}, {RoleID: ua.ObjectIDWellKnownRoleEngineer, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall | ua.PermissionTypeWriteHistorizing)}, {RoleID: ua.ObjectIDWellKnownRoleSupervisor, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall)}, {RoleID: ua.ObjectIDWellKnownRoleConfigureAdmin, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWriteAttribute)}, {RoleID: ua.ObjectIDWellKnownRoleSecurityAdmin, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeReadRolePermissions | ua.PermissionTypeWriteRolePermissions)}, } // DefaultIdentityMappingRules ... DefaultIdentityMappingRules []IdentityMappingRule = []IdentityMappingRule{ { NodeID: ua.ObjectIDWellKnownRoleAnonymous, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAnonymous}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleAuthenticatedUser, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleObserver, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleOperator, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleEngineer, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleSupervisor, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleConfigureAdmin, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleSecurityAdmin, ApplicationsExclude: true, EndpointsExclude: true, }, } )
Functions ¶
func IsUserPermitted ¶
func IsUserPermitted(userRolePermissions []ua.RolePermissionType, permissionType ua.PermissionType) bool
IsUserPermitted returns true if the user's role permissions contain a given permissionType.
Types ¶
type AuthenticateIssuedIdentityFunc ¶
type AuthenticateIssuedIdentityFunc func(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error
AuthenticateIssuedIdentityFunc authenticates user identities.
func (AuthenticateIssuedIdentityFunc) AuthenticateIssuedIdentity ¶
func (f AuthenticateIssuedIdentityFunc) AuthenticateIssuedIdentity(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error
AuthenticateIssuedIdentity ...
type AuthenticateUserNameIdentityFunc ¶
type AuthenticateUserNameIdentityFunc func(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error
AuthenticateUserNameIdentityFunc authenticates UserNameIdentity.
func (AuthenticateUserNameIdentityFunc) AuthenticateUserNameIdentity ¶
func (f AuthenticateUserNameIdentityFunc) AuthenticateUserNameIdentity(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error
AuthenticateUserNameIdentity ...
type AuthenticateX509IdentityFunc ¶
type AuthenticateX509IdentityFunc func(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error
AuthenticateX509IdentityFunc authenticates X509Identity.
func (AuthenticateX509IdentityFunc) AuthenticateX509Identity ¶
func (f AuthenticateX509IdentityFunc) AuthenticateX509Identity(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error
AuthenticateX509Identity ...
type ChannelManager ¶
ChannelManager manages the secure channels for a server.
func NewChannelManager ¶
func NewChannelManager(server *Server) *ChannelManager
NewChannelManager instantiates a new ChannelManager.
func (*ChannelManager) Add ¶
func (m *ChannelManager) Add(ch *serverSecureChannel) error
Add a secure channel to the server.
func (*ChannelManager) Delete ¶
func (m *ChannelManager) Delete(ch *serverSecureChannel)
Delete the secure channel from the server.
func (*ChannelManager) Get ¶
func (m *ChannelManager) Get(id uint32) (*serverSecureChannel, bool)
Get a secure channel from the server.
func (*ChannelManager) Len ¶
func (m *ChannelManager) Len() int
Len returns the number of secure channel.
type DataTypeNode ¶
DataTypeNode is a Node class that describes the syntax of a variable's Value.
func NewDataTypeNode ¶
func NewDataTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool) *DataTypeNode
NewDataTypeNode creates a new DataTypeNode.
func (*DataTypeNode) BrowseName ¶
func (n *DataTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*DataTypeNode) DataTypeDefinition ¶
func (n *DataTypeNode) DataTypeDefinition() interface{}
DataTypeDefinition returns the DataTypeDefinition attribute of this node.
func (*DataTypeNode) Description ¶
func (n *DataTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*DataTypeNode) DisplayName ¶
func (n *DataTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*DataTypeNode) IsAbstract ¶
func (n *DataTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*DataTypeNode) IsAttributeIDValid ¶
func (n *DataTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*DataTypeNode) NodeClass ¶
func (n *DataTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*DataTypeNode) NodeID ¶
func (n *DataTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*DataTypeNode) References ¶
func (n *DataTypeNode) References() []ua.Reference
References returns the References of this node.
func (*DataTypeNode) RolePermissions ¶
func (n *DataTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*DataTypeNode) SetReferences ¶
func (n *DataTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*DataTypeNode) UserRolePermissions ¶
func (n *DataTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type EventListener ¶
type HistoryReadWriter ¶
type HistoryReadWriter interface { HistoryReader HistoryWriter }
HistoryReadWriter provides methods to read and write historical data.
type HistoryReader ¶
type HistoryReader interface { // ReadEvent reads the events from storage. Implementation returns slice of events for every // NodeID provided in 'nodesToRead', given StartTime, EndTime and other parameters in 'details'. // Implementation may check context for timeout. Implementation must return desired choice of // timestamps. Implementation must return ContinuationPoints if more results are available // than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.2.2 for Read Event functionality. ReadEvent(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadEventDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadRawModified reads the raw or modified data values from storage. Implementation returns // slice of data values for every NodeID provided in 'nodesToRead', given StartTime, EndTime and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.3.2 for Read Raw functionality. ReadRawModified(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadRawModifiedDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadProcessed reads the aggregated values from storage. Implementation returns slice of // aggregated data values for every NodeID provided in 'nodesToRead', given StartTime, EndTime and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.4.2 for Read Processed functionality. ReadProcessed(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadProcessedDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadAtTime reads the correlated values from storage. Implementation returns slice of // correlated data values for every NodeID provided in 'nodesToRead', given slice of timestamps and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.5.2 for Read At Time functionality. ReadAtTime(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadAtTimeDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) }
HistoryReader provides methods to read historical data.
type HistoryWriter ¶
type HistoryWriter interface { // WriteEvent writes the event to storage. Implementation records object nodeId // and event fields (provided as slice of Variants). Implementation may check // context for timeout. WriteEvent(ctx context.Context, nodeID ua.NodeID, eventFields []ua.Variant) error // WriteValue writes the value to storage. Implementation records variable nodeId // and DataValue (a struct of value, quality and source timestamp). Implementation // may check context for timeout. WriteValue(ctx context.Context, nodeID ua.NodeID, value *ua.DataValue) error }
HistoryWriter provides methods to write historical data.
type IdentityMappingRule ¶
type IdentityMappingRule struct { NodeID ua.NodeID Identities []ua.IdentityMappingRuleType ApplicationsExclude bool Applications []string EndpointsExclude bool Endpoints []struct { EndpointUrl string SecurityMode string SecurityPolicyURI string TransportProfileUri string } }
IdentityMappingRule ...
type IssuedIdentityAuthenticator ¶
type IssuedIdentityAuthenticator interface { // AuthenticateIssuedIdentity returns nil when user is authenticated, or BadUserAccessDenied otherwise. AuthenticateIssuedIdentity(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error }
IssuedIdentityAuthenticator authenticates user identities.
type MethodNode ¶
MethodNode is a Node class that describes the syntax of a object's Method.
func NewMethodNode ¶
func NewMethodNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, executable bool) *MethodNode
NewMethodNode constructs a new MethodNode.
func (*MethodNode) BrowseName ¶
func (n *MethodNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*MethodNode) Description ¶
func (n *MethodNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*MethodNode) DisplayName ¶
func (n *MethodNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*MethodNode) Executable ¶
func (n *MethodNode) Executable() bool
Executable returns the Executable attribute of this node.
func (*MethodNode) IsAttributeIDValid ¶
func (n *MethodNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*MethodNode) NodeClass ¶
func (n *MethodNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*MethodNode) NodeID ¶
func (n *MethodNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*MethodNode) References ¶
func (n *MethodNode) References() []ua.Reference
References returns the References of this node.
func (*MethodNode) RolePermissions ¶
func (n *MethodNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*MethodNode) SetCallMethodHandler ¶
func (n *MethodNode) SetCallMethodHandler(value func(context.Context, ua.CallMethodRequest) ua.CallMethodResult)
SetCallMethodHandler sets the CallMethod of the Variable.
func (*MethodNode) SetReferences ¶
func (n *MethodNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*MethodNode) UserExecutable ¶
func (n *MethodNode) UserExecutable(ctx context.Context) bool
UserExecutable returns the UserExecutable attribute of this node.
func (*MethodNode) UserRolePermissions ¶
func (n *MethodNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type MonitoredItem ¶
MonitoredItem specifies the node that is monitored for data changes or events.
func NewMonitoredItem ¶
func NewMonitoredItem(ctx context.Context, sub *Subscription, node Node, itemToMonitor ua.ReadValueID, monitoringMode ua.MonitoringMode, parameters ua.MonitoringParameters, timestampsToReturn ua.TimestampsToReturn, minSamplingInterval float64) *MonitoredItem
NewMonitoredItem constructs a new MonitoredItem.
func (*MonitoredItem) Modify ¶
func (mi *MonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
Modify modifies the MonitoredItem.
func (*MonitoredItem) OnEvent ¶
func (mi *MonitoredItem) OnEvent(evt ua.Event)
func (*MonitoredItem) Poll ¶
func (mi *MonitoredItem) Poll()
Poll reads the value of the itemToMonitor.
func (*MonitoredItem) SamplingInterval ¶
func (mi *MonitoredItem) SamplingInterval() float64
SamplingInterval returns the sampling interval in ms of the MonitoredItem.
func (*MonitoredItem) SetMonitoringMode ¶
func (mi *MonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
SetMonitoringMode sets the MonitoringMode of the MonitoredItem.
type NamespaceManager ¶
NamespaceManager manages the namespaces for a server.
func NewNamespaceManager ¶
func NewNamespaceManager(server *Server) *NamespaceManager
NewNamespaceManager instantiates a new NamespaceManager.
func (*NamespaceManager) Add ¶
func (m *NamespaceManager) Add(nsu string) uint16
Add adds a namespace to the end of the table and returns the index. If the namespace already exists then returns the index.
func (*NamespaceManager) AddNode ¶
func (m *NamespaceManager) AddNode(node Node) error
AddNode adds the node to the namespace. This method adds the inverse refs as well.
func (*NamespaceManager) AddNodes ¶
func (m *NamespaceManager) AddNodes(nodes []Node) error
AddNodes adds the nodes to the namespace. This method adds the inverse refs as well.
func (*NamespaceManager) DeleteNode ¶
func (m *NamespaceManager) DeleteNode(node Node, deleteChildren bool) error
DeleteNode removes the node from the namespace. This method removes the inverse refs as well.
func (*NamespaceManager) DeleteNodes ¶
func (m *NamespaceManager) DeleteNodes(nodes []Node, deleteChildren bool) error
DeleteNodes removes the nodes from the namespace. This method removes the inverse refs as well.
func (*NamespaceManager) FindComponent ¶
func (m *NamespaceManager) FindComponent(startNode Node, browseName ua.QualifiedName) (node Node, ok bool)
FindComponent returns the component with the given browseName from the namespace.
func (*NamespaceManager) FindMethod ¶
func (m *NamespaceManager) FindMethod(id ua.NodeID) (node *MethodNode, ok bool)
FindMethod returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindNode ¶
func (m *NamespaceManager) FindNode(id ua.NodeID) (node Node, ok bool)
FindNode returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindObject ¶
func (m *NamespaceManager) FindObject(id ua.NodeID) (node *ObjectNode, ok bool)
FindObject returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindProperty ¶
func (m *NamespaceManager) FindProperty(startNode Node, browseName ua.QualifiedName) (node *VariableNode, ok bool)
FindProperty returns the property with the given browseName from the namespace.
func (*NamespaceManager) FindSuperType ¶
func (m *NamespaceManager) FindSuperType(typeid ua.NodeID) ua.NodeID
FindSuperType returns the immediate supertype for the type.
func (*NamespaceManager) FindVariable ¶
func (m *NamespaceManager) FindVariable(id ua.NodeID) (node *VariableNode, ok bool)
FindVariable returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindVariantType ¶
func (m *NamespaceManager) FindVariantType(dataType ua.NodeID) byte
FindVariantType gets the variant type for the variable
func (*NamespaceManager) GetChildren ¶
GetChildren traverses the tree to get all target nodes with the given reference types.
func (*NamespaceManager) GetSubTypes ¶
func (m *NamespaceManager) GetSubTypes(node Node) []Node
GetSubTypes traverses the tree to get all target nodes with HasSubtype reference type.
func (*NamespaceManager) IsSubtype ¶
func (m *NamespaceManager) IsSubtype(subtype, supertype ua.NodeID) bool
IsSubtype returns whether the subtype is derived from the given supertype in the namespace.
func (*NamespaceManager) Len ¶
func (m *NamespaceManager) Len() int
Len returns the number of namespace.
func (*NamespaceManager) LoadNodeSetFromBuffer ¶
func (m *NamespaceManager) LoadNodeSetFromBuffer(buf []byte) error
LoadNodeSetFromBuffer loads the UANodeSet XML from a buffer into the namespace.
func (*NamespaceManager) LoadNodeSetFromFile ¶
func (m *NamespaceManager) LoadNodeSetFromFile(path string) error
LoadNodeSetFromFile loads the UANodeSet XML from a file with the given path into the namespace.
func (*NamespaceManager) NamespaceUris ¶
func (m *NamespaceManager) NamespaceUris() []string
NamespaceUris returns the namespace table of the server.
func (*NamespaceManager) OnEvent ¶
func (m *NamespaceManager) OnEvent(target *ObjectNode, evt ua.Event) error
OnEvent raises the event, starting from the target node, follows HasNotifier references until the Server node.
func (*NamespaceManager) SetAnalogTypeBehavior ¶
func (m *NamespaceManager) SetAnalogTypeBehavior(node *VariableNode) error
SetAnalogTypeBehavior sets the behavoir of a variable of type AnalogType.
func (*NamespaceManager) SetMultiStateValueDiscreteTypeBehavior ¶
func (m *NamespaceManager) SetMultiStateValueDiscreteTypeBehavior(node *VariableNode) error
SetMultiStateValueDiscreteTypeBehavior sets the behavoir of a variable of type MultiStateValueDiscreteType.
type Node ¶
type Node interface { NodeID() ua.NodeID NodeClass() ua.NodeClass BrowseName() ua.QualifiedName DisplayName() ua.LocalizedText Description() ua.LocalizedText RolePermissions() []ua.RolePermissionType UserRolePermissions(context.Context) []ua.RolePermissionType References() []ua.Reference SetReferences([]ua.Reference) IsAttributeIDValid(uint32) bool }
Node ...
type ObjectNode ¶
ObjectNode ...
func NewObjectNode ¶
func NewObjectNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, eventNotifier byte) *ObjectNode
NewObjectNode ...
func (*ObjectNode) AddEventListener ¶
func (n *ObjectNode) AddEventListener(listener EventListener)
func (*ObjectNode) BrowseName ¶
func (n *ObjectNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ObjectNode) Description ¶
func (n *ObjectNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ObjectNode) DisplayName ¶
func (n *ObjectNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ObjectNode) EventNotifier ¶
func (n *ObjectNode) EventNotifier() byte
EventNotifier returns the EventNotifier attribute of this node.
func (*ObjectNode) IsAttributeIDValid ¶
func (n *ObjectNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ObjectNode) NodeClass ¶
func (n *ObjectNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ObjectNode) NodeID ¶
func (n *ObjectNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ObjectNode) OnEvent ¶
func (n *ObjectNode) OnEvent(evt ua.Event)
OnEvent raises an event from this node.
func (*ObjectNode) References ¶
func (n *ObjectNode) References() []ua.Reference
References returns the References of this node.
func (*ObjectNode) RemoveEventListener ¶
func (n *ObjectNode) RemoveEventListener(listener EventListener)
func (*ObjectNode) RolePermissions ¶
func (n *ObjectNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ObjectNode) SetReferences ¶
func (n *ObjectNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ObjectNode) UserRolePermissions ¶
func (n *ObjectNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type ObjectTypeNode ¶
ObjectTypeNode ...
func NewObjectTypeNode ¶
func NewObjectTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool) *ObjectTypeNode
NewObjectTypeNode ...
func (*ObjectTypeNode) BrowseName ¶
func (n *ObjectTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ObjectTypeNode) Description ¶
func (n *ObjectTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ObjectTypeNode) DisplayName ¶
func (n *ObjectTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ObjectTypeNode) IsAbstract ¶
func (n *ObjectTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*ObjectTypeNode) IsAttributeIDValid ¶
func (n *ObjectTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ObjectTypeNode) NodeClass ¶
func (n *ObjectTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ObjectTypeNode) NodeID ¶
func (n *ObjectTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ObjectTypeNode) References ¶
func (n *ObjectTypeNode) References() []ua.Reference
References returns the References of this node.
func (*ObjectTypeNode) RolePermissions ¶
func (n *ObjectTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ObjectTypeNode) SetReferences ¶
func (n *ObjectTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ObjectTypeNode) UserRolePermissions ¶
func (n *ObjectTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type Option ¶
Option is a functional option to be applied to a server during initialization.
func WithAnonymousIdentity ¶
WithAnonymousIdentity sets whether to allow anonymous identity.
func WithAuthenticateUserNameIdentityFunc ¶
func WithAuthenticateUserNameIdentityFunc(f AuthenticateUserNameIdentityFunc) Option
WithAuthenticateUserNameIdentityFunc sets the authenticate func for UserNameIdentity.
func WithAuthenticateX509IdentityFunc ¶
func WithAuthenticateX509IdentityFunc(f AuthenticateX509IdentityFunc) Option
WithAuthenticateX509IdentityFunc sets the authenticate func for X509Identity.
func WithBuildInfo ¶
WithBuildInfo sets the BuildInfo returned by ServerStatus.
func WithHistorian ¶
func WithHistorian(historian HistoryReadWriter) Option
WithHistorian sets the HistoryReadWriter.
func WithInsecureSkipVerify ¶
func WithInsecureSkipVerify() Option
WithInsecureSkipVerify skips verification of client certificate. Skips checking HostName, Expiration, and Authority.
func WithMaxSessionCount ¶
WithMaxSessionCount sets the number of sessions that may be active. (default: no limit)
func WithMaxSubscriptionCount ¶
WithMaxSubscriptionCount sets the number of subscription that may be active. (default: no limit)
func WithMaxWorkerThreads ¶
WithMaxWorkerThreads sets the default number of worker threads that may be created. (default: 4)
func WithRolePermissions ¶
func WithRolePermissions(permissions []ua.RolePermissionType) Option
WithRolePermissions sets the permissions for each role.
func WithRolesProvider ¶
func WithRolesProvider(provider RolesProvider) Option
WithRolesProvider sets the RolesProvider.
func WithSecurityPolicyNone ¶
WithSecurityPolicyNone sets whether to allow security policy with no encryption.
func WithServerCapabilities ¶
func WithServerCapabilities(value *ua.ServerCapabilities) Option
WithServerCapabilities sets the number of subscription that may be active. (default: no limit)
func WithServerDiagnostics ¶
WithServerDiagnostics sets whether to enable the collection of data used for ServerDiagnostics node.
func WithSessionTimeout ¶
WithSessionTimeout sets the number of milliseconds that a session may be unused before being closed by the server. (default: 2 min)
func WithTrace ¶
func WithTrace() Option
WithTrace logs all ServiceRequests and ServiceResponses to StdOut.
func WithTransportLimits ¶
func WithTransportLimits(receiveBufferSize, sendBufferSize, maxMessageSize, maxChunkCount uint32) Option
WithTransportLimits ...
func WithUserNameIdentityAuthenticator ¶
func WithUserNameIdentityAuthenticator(authenticator UserNameIdentityAuthenticator) Option
WithUserNameIdentityAuthenticator sets the authenticator for UserNameIdentity.
func WithX509IdentityAuthenticator ¶
func WithX509IdentityAuthenticator(authenticator X509IdentityAuthenticator) Option
WithX509IdentityAuthenticator sets the authenticator for X509Identity.
type PollGroup ¶
func NewPollGroup ¶
func (*PollGroup) Subscribe ¶
func (b *PollGroup) Subscribe(listener PollListener)
func (*PollGroup) Unsubscribe ¶
func (b *PollGroup) Unsubscribe(listener PollListener)
type PollListener ¶
type PollListener interface {
Poll()
}
type ReferenceTypeNode ¶
ReferenceTypeNode ...
func NewReferenceTypeNode ¶
func NewReferenceTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool, symmetric bool, inverseName ua.LocalizedText) *ReferenceTypeNode
NewReferenceTypeNode ...
func (*ReferenceTypeNode) BrowseName ¶
func (n *ReferenceTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ReferenceTypeNode) Description ¶
func (n *ReferenceTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ReferenceTypeNode) DisplayName ¶
func (n *ReferenceTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ReferenceTypeNode) InverseName ¶
func (n *ReferenceTypeNode) InverseName() ua.LocalizedText
InverseName returns the InverseName attribute of this node.
func (*ReferenceTypeNode) IsAbstract ¶
func (n *ReferenceTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*ReferenceTypeNode) IsAttributeIDValid ¶
func (n *ReferenceTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ReferenceTypeNode) NodeClass ¶
func (n *ReferenceTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ReferenceTypeNode) NodeID ¶
func (n *ReferenceTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ReferenceTypeNode) References ¶
func (n *ReferenceTypeNode) References() []ua.Reference
References returns the References of this node.
func (*ReferenceTypeNode) RolePermissions ¶
func (n *ReferenceTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ReferenceTypeNode) SetReferences ¶
func (n *ReferenceTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ReferenceTypeNode) Symmetric ¶
func (n *ReferenceTypeNode) Symmetric() bool
Symmetric returns the Symmetric attribute of this node.
func (*ReferenceTypeNode) UserRolePermissions ¶
func (n *ReferenceTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type RolesProvider ¶
type RolesProvider interface { // GetRoles returns the roles where the user matches the membership criteria. GetRoles(userIdentity interface{}, applicationURI string, endpointURL string) ([]ua.NodeID, error) }
RolesProvider selects roles where the user identity and connection information matches the membership criteria. Roles are identified by a NodeID. There are a number of well-known roles. Later, users are granted Permissions to perform actions based on the user's role memberships.
func NewRulesBasedRolesProvider ¶
func NewRulesBasedRolesProvider(rules []IdentityMappingRule) RolesProvider
NewRulesBasedRolesProvider ...
type RulesBasedRolesProvider ¶
type RulesBasedRolesProvider struct {
// contains filtered or unexported fields
}
RulesBasedRolesProvider returns WellKnownRoles given server identity mapping rules.
type Scheduler ¶
func NewScheduler ¶
type Server ¶
Server implements an OpcUa server for clients.
func New ¶
func New(localDescription ua.ApplicationDescription, certPath, keyPath, endpointURL string, options ...Option) (*Server, error)
New initializes a new instance of the Server. Specify the ApplicationDescription as defined in https://reference.opcfoundation.org/v104/Core/docs/Part4/7.1/ The files must contain PEM encoded data. The endpointURL is in the form opc.tcp://[host]:[port]
func (*Server) ChannelManager ¶
func (srv *Server) ChannelManager() *ChannelManager
ChannelManager gets the secure channel manager.
func (*Server) Closing ¶
func (srv *Server) Closing() <-chan struct{}
Closing gets a channel that broadcasts the closing of the server.
func (*Server) EndpointURL ¶
EndpointURL gets the endpoint url.
func (*Server) Endpoints ¶
func (srv *Server) Endpoints() []ua.EndpointDescription
Endpoints gets the endpoint descriptions.
func (*Server) Historian ¶
func (srv *Server) Historian() HistoryReadWriter
Historian gets the HistoryReadWriter.
func (*Server) ListenAndServe ¶
ListenAndServe listens on the EndpointURL for incoming connections and then handles service requests. ListenAndServe always returns a non-nil error. After Shutdown or Close, the returned error is BadServerHalted.
func (*Server) LocalCertificate ¶
LocalCertificate gets the certificate for the local application.
func (*Server) LocalDescription ¶
func (srv *Server) LocalDescription() ua.ApplicationDescription
LocalDescription gets the application description.
func (*Server) MaxSessionCount ¶
MaxSessionCount gets the maximum number of sessions.
func (*Server) MaxSubscriptionCount ¶
MaxSubscriptionCount gets the maximum number of subscriptions.
func (*Server) NamespaceManager ¶
func (srv *Server) NamespaceManager() *NamespaceManager
NamespaceManager gets the namespace manager.
func (*Server) NamespaceUris ¶
NamespaceUris gets the namespace uris.
func (*Server) RolePermissions ¶
func (srv *Server) RolePermissions() []ua.RolePermissionType
RolePermissions gets the RolePermissions.
func (*Server) ServerCapabilities ¶
func (srv *Server) ServerCapabilities() *ua.ServerCapabilities
ServerCapabilities gets the capabilities of the server.
func (*Server) ServerUris ¶
ServerUris gets the server uris.
func (*Server) SessionManager ¶
func (srv *Server) SessionManager() *SessionManager
SessionManager gets the session manager.
func (*Server) SubscriptionManager ¶
func (srv *Server) SubscriptionManager() *SubscriptionManager
SubscriptionManager gets the subscription Manager.
func (*Server) WorkerPool ¶
func (srv *Server) WorkerPool() *workerpool.WorkerPool
WorkerPool gets a pool of workers.
type Session ¶
func NewSession ¶
func (*Session) AuthenticationToken ¶
func (*Session) LastAccess ¶
func (*Session) SecureChannelId ¶
func (*Session) SessionName ¶
func (*Session) SessionNonce ¶
func (s *Session) SessionNonce() ua.ByteString
func (*Session) SetLastAccess ¶
func (*Session) SetSecureChannelId ¶
func (*Session) SetSessionNonce ¶
func (s *Session) SetSessionNonce(value ua.ByteString)
func (*Session) SetUserIdentity ¶
func (s *Session) SetUserIdentity(value interface{})
func (*Session) SetUserRoles ¶
func (*Session) UserIdentity ¶
func (s *Session) UserIdentity() interface{}
type SessionManager ¶
SessionManager manages the sessions for a server.
func NewSessionManager ¶
func NewSessionManager(server *Server) *SessionManager
NewSessionManager instantiates a new SessionManager.
func (*SessionManager) Add ¶
func (m *SessionManager) Add(s *Session) error
Add a session to the server.
func (*SessionManager) Delete ¶
func (m *SessionManager) Delete(s *Session)
Delete the session from the server.
type Subscription ¶
Subscription organizes MonitoredItems.
func NewSubscription ¶
func NewSubscription(manager *SubscriptionManager, session *Session, publishingInterval float64, lifetimeCount uint32, maxKeepAliveCount uint32, maxNotificationsPerPublish uint32, publishingEnabled bool, priority byte) *Subscription
NewSubscription instantiates a new Subscription.
func (*Subscription) AppendItem ¶
func (s *Subscription) AppendItem(item *MonitoredItem) bool
func (*Subscription) Delete ¶
func (s *Subscription) Delete()
func (*Subscription) DeleteItem ¶
func (s *Subscription) DeleteItem(ctx context.Context, id uint32) bool
func (*Subscription) FindItem ¶
func (s *Subscription) FindItem(id uint32) (*MonitoredItem, bool)
func (*Subscription) IsExpired ¶
func (s *Subscription) IsExpired() bool
func (*Subscription) Items ¶
func (s *Subscription) Items() []*MonitoredItem
func (*Subscription) SetPublishingMode ¶
func (s *Subscription) SetPublishingMode(publishingEnabled bool)
type SubscriptionManager ¶
SubscriptionManager manages the subscriptions for a server.
func NewSubscriptionManager ¶
func NewSubscriptionManager(server *Server) *SubscriptionManager
NewSubscriptionManager instantiates a new SubscriptionManager.
func (*SubscriptionManager) Add ¶
func (m *SubscriptionManager) Add(s *Subscription) error
Add a subscription to the server.
func (*SubscriptionManager) Delete ¶
func (m *SubscriptionManager) Delete(s *Subscription)
Delete the subscription from the server.
func (*SubscriptionManager) Get ¶
func (m *SubscriptionManager) Get(id uint32) (*Subscription, bool)
Get a subscription from the server.
func (*SubscriptionManager) GetBySession ¶
func (m *SubscriptionManager) GetBySession(session *Session) []*Subscription
GetBySession returns subscriptions for the session.
func (*SubscriptionManager) Len ¶
func (m *SubscriptionManager) Len() int
Len returns the number of subscriptions.
type UserNameIdentityAuthenticator ¶
type UserNameIdentityAuthenticator interface { // AuthenticateUserNameIdentity returns nil when user identity is authenticated, or BadUserAccessDenied otherwise. AuthenticateUserNameIdentity(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error }
UserNameIdentityAuthenticator authenticates UserNameIdentity.
type VariableNode ¶
func NewVariableNode ¶
func NewVariableNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, value ua.DataValue, dataType ua.NodeID, valueRank int32, arrayDimensions []uint32, accessLevel byte, minimumSamplingInterval float64, historizing bool) *VariableNode
func (*VariableNode) AccessLevel ¶
func (n *VariableNode) AccessLevel() byte
AccessLevel returns the AccessLevel attribute of this node.
func (*VariableNode) ArrayDimensions ¶
func (n *VariableNode) ArrayDimensions() []uint32
ArrayDimensions returns the ArrayDimensions attribute of this node.
func (*VariableNode) BrowseName ¶
func (n *VariableNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*VariableNode) DataType ¶
func (n *VariableNode) DataType() ua.NodeID
DataType returns the DataType attribute of this node.
func (*VariableNode) Description ¶
func (n *VariableNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*VariableNode) DisplayName ¶
func (n *VariableNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*VariableNode) Historizing ¶
func (n *VariableNode) Historizing() bool
Historizing returns the Historizing attribute of this node.
func (*VariableNode) IsAttributeIDValid ¶
func (n *VariableNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*VariableNode) MinimumSamplingInterval ¶
func (n *VariableNode) MinimumSamplingInterval() float64
MinimumSamplingInterval returns the MinimumSamplingInterval attribute of this node.
func (*VariableNode) NodeClass ¶
func (n *VariableNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*VariableNode) NodeID ¶
func (n *VariableNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*VariableNode) References ¶
func (n *VariableNode) References() []ua.Reference
References returns the References of this node.
func (*VariableNode) RolePermissions ¶
func (n *VariableNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*VariableNode) SetHistorizing ¶
func (n *VariableNode) SetHistorizing(historizing bool)
SetHistorizing sets the Historizing attribute of this node.
func (*VariableNode) SetReadValueHandler ¶
func (n *VariableNode) SetReadValueHandler(value func(context.Context, ua.ReadValueID) ua.DataValue)
SetReadValueHandler sets the ReadValueHandler of this node.
func (*VariableNode) SetReferences ¶
func (n *VariableNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*VariableNode) SetValue ¶
func (n *VariableNode) SetValue(value ua.DataValue)
SetValue sets the value of the Variable.
func (*VariableNode) SetWriteValueHandler ¶
func (n *VariableNode) SetWriteValueHandler(value func(context.Context, ua.WriteValue) ua.StatusCode)
SetWriteValueHandler sets the WriteValueHandler of this node.
func (*VariableNode) UserAccessLevel ¶
func (n *VariableNode) UserAccessLevel(ctx context.Context) byte
UserAccessLevel returns the AccessLevel attribute of this node for this user.
func (*VariableNode) UserRolePermissions ¶
func (n *VariableNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
func (*VariableNode) Value ¶
func (n *VariableNode) Value() ua.DataValue
Value returns the value of the Variable.
func (*VariableNode) ValueRank ¶
func (n *VariableNode) ValueRank() int32
ValueRank returns the ValueRank attribute of this node.
type VariableTypeNode ¶
func NewVariableTypeNode ¶
func NewVariableTypeNode(nodeId ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, value ua.DataValue, dataType ua.NodeID, valueRank int32, arrayDimensions []uint32, isAbstract bool) *VariableTypeNode
func (*VariableTypeNode) ArrayDimensions ¶
func (n *VariableTypeNode) ArrayDimensions() []uint32
ArrayDimensions returns the ArrayDimensions attribute of this node.
func (*VariableTypeNode) BrowseName ¶
func (n *VariableTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*VariableTypeNode) DataType ¶
func (n *VariableTypeNode) DataType() ua.NodeID
DataType returns the DataType attribute of this node.
func (*VariableTypeNode) Description ¶
func (n *VariableTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*VariableTypeNode) DisplayName ¶
func (n *VariableTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*VariableTypeNode) IsAbstract ¶
func (n *VariableTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*VariableTypeNode) IsAttributeIDValid ¶
func (n *VariableTypeNode) IsAttributeIDValid(attributeId uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*VariableTypeNode) NodeClass ¶
func (n *VariableTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*VariableTypeNode) NodeID ¶
func (n *VariableTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*VariableTypeNode) References ¶
func (n *VariableTypeNode) References() []ua.Reference
References returns the References of this node.
func (*VariableTypeNode) RolePermissions ¶
func (n *VariableTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*VariableTypeNode) SetReferences ¶
func (n *VariableTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*VariableTypeNode) UserRolePermissions ¶
func (n *VariableTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
func (*VariableTypeNode) Value ¶
func (n *VariableTypeNode) Value() ua.DataValue
Value returns the value of the Variable.
func (*VariableTypeNode) ValueRank ¶
func (n *VariableTypeNode) ValueRank() int32
ValueRank returns the ValueRank attribute of this node.
type ViewNode ¶
func NewViewNode ¶
func NewViewNode(nodeId ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, containsNoLoops bool, eventNotifier byte) *ViewNode
func (*ViewNode) BrowseName ¶
func (n *ViewNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ViewNode) ContainsNoLoops ¶
ContainsNoLoops returns the ContainsNoLoops attribute of this node.
func (*ViewNode) Description ¶
func (n *ViewNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ViewNode) DisplayName ¶
func (n *ViewNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ViewNode) EventNotifier ¶
EventNotifier returns the EventNotifier attribute of this node.
func (*ViewNode) IsAttributeIDValid ¶
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ViewNode) References ¶
References returns the References of this node.
func (*ViewNode) RolePermissions ¶
func (n *ViewNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ViewNode) SetReferences ¶
SetReferences sets the References of the Variable.
func (*ViewNode) UserRolePermissions ¶
func (n *ViewNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type X509IdentityAuthenticator ¶
type X509IdentityAuthenticator interface { // AuthenticateUser returns nil when user is authenticated, or BadUserAccessDenied otherwise. AuthenticateX509Identity(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error }
X509IdentityAuthenticator authenticates X509Identity.
Source Files
¶
- auth_provider.go
- certificate_helpers.go
- channel_manager.go
- data_type_node.go
- history_read_writer.go
- method_node.go
- monitored_item.go
- namespace_manager.go
- node.go
- nodeset_1_04.go
- object_node.go
- object_type_node.go
- option.go
- pools.go
- reference_type_node.go
- roles_provider.go
- scheduler.go
- server.go
- server_secure_channel.go
- server_service_set.go
- session.go
- session_manager.go
- subscription.go
- subscription_manager.go
- variable_node.go
- variable_type_node.go
- view_node.go