Resolve DA, A&C, and security spec gaps with ServerCapabilities, alarm methods, and modern profiles
Add ServerCapabilities/OperationLimits node, enable diagnostics, add OnModifyMonitoredItemsComplete override for DA compliance. Wire shelving, enable/disable, confirm, and addcomment handlers on alarm conditions with LocalTime/Quality event fields for Part 9 compliance. Add Aes128/Aes256 security profiles, X.509 certificate authentication, and AUDIT-prefixed auth logging. Fix flaky probe monitor test. Update docs for all changes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -282,6 +282,48 @@ Code changes:
|
||||
|
||||
No configuration changes required. All historian gaps (1-11) are now resolved.
|
||||
|
||||
## Data Access Gaps Fix
|
||||
|
||||
Updated: `2026-04-06`
|
||||
|
||||
Both instances updated with OPC UA DA spec compliance fixes.
|
||||
|
||||
Code changes:
|
||||
- `ConfigureServerCapabilities()` populates `ServerCapabilities` node: `ServerProfileArray`, `LocaleIdArray`, `MinSupportedSampleRate`, continuation point limits, array/string limits, and 12 `OperationLimits` values
|
||||
- `Server_ServerDiagnostics_EnabledFlag` set to `true` — SDK auto-tracks session/subscription counts
|
||||
- `OnModifyMonitoredItemsComplete` override logs monitored item modifications
|
||||
|
||||
No configuration changes required. All DA gaps (1-8) resolved.
|
||||
|
||||
## Alarms & Conditions Gaps Fix
|
||||
|
||||
Updated: `2026-04-06`
|
||||
|
||||
Both instances updated with OPC UA Part 9 alarm spec compliance fixes.
|
||||
|
||||
Code changes:
|
||||
- Wired `OnConfirm`, `OnAddComment`, `OnEnableDisable`, `OnShelve`, `OnTimedUnshelve` handlers on each `AlarmConditionState`
|
||||
- Shelving: `SetShelvingState()` manages `TimedShelve`, `OneShotShelve`, `Unshelve` state machine
|
||||
- `ReportAlarmEvent` now populates `LocalTime` (timezone offset + DST) and `Quality` event fields
|
||||
- Flaky `Monitor_ProbeDataChange_PreventsStaleReconnect` test fixed (increased stale threshold from 2s to 5s)
|
||||
|
||||
No configuration changes required. All A&C gaps (1-10) resolved.
|
||||
|
||||
## Security Gaps Fix
|
||||
|
||||
Updated: `2026-04-06`
|
||||
|
||||
Both instances updated with OPC UA Part 2/4/7 security spec compliance fixes.
|
||||
|
||||
Code changes:
|
||||
- `SecurityProfileResolver`: Added 4 modern AES profiles (`Aes128_Sha256_RsaOaep-Sign/SignAndEncrypt`, `Aes256_Sha256_RsaPss-Sign/SignAndEncrypt`)
|
||||
- `OnImpersonateUser`: Added `X509IdentityToken` handling with CN extraction and role assignment
|
||||
- `BuildUserTokenPolicies`: Advertises `UserTokenType.Certificate` when non-None security profiles are configured
|
||||
- `OnCertificateValidation`: Enhanced logging with certificate thumbprint, subject, and expiry
|
||||
- Authentication audit logging: `AUDIT:` prefixed log entries for success/failure with session ID and roles
|
||||
|
||||
No configuration changes required. All security gaps (1-10) resolved.
|
||||
|
||||
## Notes
|
||||
|
||||
The service deployment and restart succeeded. The live CLI checks confirm the endpoint is reachable and that the array node identifier has changed to the bracketless form. The array value on the live service still prints as blank even though the status is good, so if this environment should have populated `MoveInPartNumbers`, the runtime data path still needs follow-up investigation.
|
||||
|
||||
Reference in New Issue
Block a user