Commit Graph

3 Commits

Author SHA1 Message Date
romanett 5edb512ab7 Stricter validation and error handling in GDS server & Server Method Call validation (#3746)
* Stricter validation and error handling in GDS server

- Allow empty DatabaseStorePath for in-memory operation
- Select database type dynamically in GdsNodeManagerFactory
- Enforce required fields and argument validation in ApplicationsDatabaseBase
- Prevent duplicate application URIs in LinqApplicationsDatabase
- Propagate argument errors as OPC UA service exceptions in ApplicationsNodeManager
- Remove obsolete attribute from ParsedNodeId
- Refactor MasterNodeManager write/call validation to async with improved permission checks and attribute caching
- Update UAReferenceServer.ctt.xml test data with non-empty credentials
- Improves robustness, security, error reporting, and test coverage

* Add method-state resolver API for call validation and tests

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/0caf8699-f0e0-4dd5-8dcf-368b08912205

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Refine call validation comments and test coverage naming

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/0caf8699-f0e0-4dd5-8dcf-368b08912205

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Move method resolver onto core NodeManager interfaces

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/0bb87dfd-f432-431f-a0fe-dd4d1ba3197f

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Align NodeManager interfaces and call paths for method resolver

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/0bb87dfd-f432-431f-a0fe-dd4d1ba3197f

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* fixes

* fix

* Fix GDS ClientTest expectations for stricter app validation

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/47d99514-94f9-4051-9e6d-8cb2b44555d0

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* fix tests

* Fix AOT GDS fixture for RSA secured endpoint

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/f6c8fba1-3dbf-41f0-b920-5e1766b9d6e1

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Update app registration logic and audit event sources

Refactor application registration to separate update and create logic, introducing UpdateApplication in database interfaces and implementations. Improve error handling and validation, ensure unique ApplicationUris, and enhance certificate revocation logging. Standardize audit event source names and add ToString override to BaseVariableState. Update server queries for correct pagination.

* fixes

* Add wildcard match coverage for ApplicationsDatabaseBase

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/a2c1a6b0-e867-4610-bead-7e621e3764ff

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Expand wildcard spec coverage in ApplicationsDatabaseBase tests

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/a2c1a6b0-e867-4610-bead-7e621e3764ff

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Align UA wildcard matching and add spec coverage tests

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/a2c1a6b0-e867-4610-bead-7e621e3764ff

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Fix GDS QueryServers test expectations for pagination semantics

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/efa1c64d-05c8-47ee-b308-c77e7d5a34c9

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Add focused tests for LinqApplicationsDatabase behaviors

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/7e4ec1ce-722f-43fb-99db-06b854c3fa7a

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Refine LinqApplicationsDatabase test method naming

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/7e4ec1ce-722f-43fb-99db-06b854c3fa7a

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Merge origin/master and resolve PR merge conflicts

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/69970cd4-4196-4fb4-9e4c-6ad86104bb5f

Co-authored-by: marcschier <11168470+marcschier@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>
Co-authored-by: marcschier <11168470+marcschier@users.noreply.github.com>
2026-05-17 18:47:50 +02:00
romanett 2806e35cfb [Server] Fix Publishing moreNotifications being set to false near MaxMessageQueue size and filter Certificate StatusCodes (#3734)
* filter CertifiicateStatusCodes before returing to client

* fix ClientAuditEntryId for ReportAuditOpenSecureChannelEvent

* fix subscription publish bug wrongly reporting moreNotifications as false

* Implement users needed for GDS CTT Testing

* use InMemoryUserDatabase
2026-05-05 06:22:54 +02:00
Copilot 300c2f44d6 Add TriggerNodes, ArrayItemType, Enumeration, Image, References nodes, and CTT server config to UAReferenceServer (#3712)
* Initial plan

* Changes before error encountered

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/f71cc706-0b40-465b-9313-a27e1330d671

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Fix test: use new DataValue { WrappedValue = new Variant(42) } to avoid DataValue(StatusCode) ambiguity

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/23104222-aa83-4177-8feb-fe6abfe84168

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Add Enumeration/Image scalar nodes, References_HasReferenceTypeAndSubType, and update CTT XML

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/ad53fb57-ecca-413b-a35b-38a9f8dd946a

Co-authored-by: marcschier <11168470+marcschier@users.noreply.github.com>

* Fix CS8129/CS8130 build errors: replace KeyValuePair deconstruction with kvp.Key/kvp.Value for .NET Framework compat

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/4ccbc876-42b8-4f99-a478-30791efcaa54

Co-authored-by: marcschier <11168470+marcschier@users.noreply.github.com>

* Added configuration on new project format for 1.05 CTT

* Add Ctt.ReferenceServer.Config.xml and wire --ctt flag to use it

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/ad67081d-1750-4945-a741-ffa710b53e97

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Address code review: add comment for Mono exclusion and clarify CTT config ApplicationName

Agent-Logs-Url: https://github.com/OPCFoundation/UA-.NETStandard/sessions/ad67081d-1750-4945-a741-ffa710b53e97

Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>

* Handle CloseSession with invalid channel, refine tests

Improved error handling for CloseSession requests by throwing BadSessionIdInvalid when the secure channel is invalid or missing. Updated ReferenceServerTest to use QueueSize = 1 for monitored items and made assertions more precise by checking for exactly two notification data items.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: romanett <7413710+romanett@users.noreply.github.com>
Co-authored-by: marcschier <11168470+marcschier@users.noreply.github.com>
Co-authored-by: mrsuciu <Mircea-Adrian.Suciu@softing.com>
Co-authored-by: Roman Ettlinger <romanett98@gmail.com>
2026-05-01 11:12:45 +02:00