test(validation): #800 Windows service gate harness + windev results (SDK 1.5 -> 2.0.1 in place, rollback)
v2-ci / unit-tests (push) Has been cancelled
v2-ci / unit-tests (push) Has been cancelled
Adds scripts/validation/opcua-windows-service/: a phased PowerShell gate (Invoke-ServiceGate.ps1) that installs the known-good build as the real OtOpcUaHost service via Install-Services.ps1, seeds LocalDb through the production cache API (Seeder, built against the baseline tree), upgrades in place with config/PKI/LocalDb carried with their ACLs, starts/stops through the SCM, runs a strict SDK 2 probe matrix (Sign + SignAndEncrypt, valid/wrong/unknown/disabled/anonymous keys, untrusted client and server), exercises the ScriptWorker isolation, rolls back and cleans up. windev 2026-11-12 (efb9197a->438484fd->efb9197a): app cert CEF9D91F... reused byte-for-byte with identical PKI SDDL on every start, all gating checks pass, 0 secrets in logs. Findings filed: #879 (None endpoint cannot be dropped), #880 (SDK 2 client 65-char key vs SDK 1.5 server: rollback/QA risk), #883 (Install-ScriptWorkerIsolation.ps1 fails on pwsh 7 and 5.1; runtime isolation proven with the patch in the evidence directory). Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup><OutputType>Exe</OutputType></PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../../../../src/Server/ZB.MOM.WW.OtOpcUa.Host/ZB.MOM.WW.OtOpcUa.Host.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,11 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using ZB.MOM.WW.OtOpcUa.OpcUaServer;
|
||||
// The documented hardening (docs/security.md): list only the secure profiles.
|
||||
var config = new ConfigurationBuilder().AddInMemoryCollection(new Dictionary<string, string?>
|
||||
{
|
||||
["OpcUa:EnabledSecurityProfiles:0"] = "Basic256Sha256Sign",
|
||||
["OpcUa:EnabledSecurityProfiles:1"] = "Basic256Sha256SignAndEncrypt",
|
||||
}).Build();
|
||||
var options = new OpcUaApplicationHostOptions();
|
||||
config.GetSection("OpcUa").Bind(options);
|
||||
Console.WriteLine(string.Join(", ", options.EnabledSecurityProfiles));
|
||||
@@ -0,0 +1,576 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
lmxopcua#800 Windows service gate: install a known-good OtOpcUa build as the OtOpcUaHost service, upgrade it in
|
||||
place to the SDK 2 candidate with preserved config/LocalDb/PKI, restart it, exercise the ScriptWorker isolation,
|
||||
roll back, and clean up. One phase per invocation so an operator can stop between phases.
|
||||
|
||||
.DESCRIPTION
|
||||
Run elevated, in PowerShell 7, on an approved Windows node that has no OtOpcUaHost service. Everything lives under
|
||||
-Root (default C:\OtOpcUa800). Inputs are unpacked under <Root>\upload (see README.md). Task secrets (API keys,
|
||||
pepper, fetch key, secrets KEK) are generated once into <Root>\private\secrets.json, which only SYSTEM and
|
||||
Administrators can read; they reach the service through its registry Environment value and the probes through
|
||||
process environment variables, never through arguments or output. Evidence (no secrets) goes to <Root>\evidence.
|
||||
|
||||
Phases, in order:
|
||||
Prepare dirs + ACLs, secrets, baseline staged into <Root>\OtOpcUa, Install-Services.ps1, node env
|
||||
Boot -Label L Start-Service, wait for readiness, snapshot PKI/ACLs, health
|
||||
Seed (after the first Stop) seed the deployment into the service-created LocalDb
|
||||
Trust cross-trust the probe/CLI certificates with the server PKI
|
||||
Checks -Label L strict-peer/API-key/anonymous probe matrix + the actual CLI read
|
||||
Stop -Label L Stop-Service, exit code, redaction scan of the logs and event log
|
||||
Upgrade backup, stage the candidate separately, carry config/PKI/LocalDb with ACLs, swap folders
|
||||
IsolationInstall Install-ScriptWorkerIsolation.ps1 (-WhatIf, apply, re-apply) + Scripting__Runner=OutOfProcess
|
||||
IsolationVerify (service running) worker processes, restricted token, pipe ACL, firewall rule, PE cache
|
||||
IsolationUninstall -Uninstall twice, Scripting__Runner removed
|
||||
Rollback quarantine the candidate, restore the known-good folder, carry current PKI/LocalDb back
|
||||
Compare compare every PKI snapshot and the node environment across labels
|
||||
Cleanup delete the service, isolation leftovers, CLI state, the root folder (evidence copied first)
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateSet('Prepare', 'Boot', 'Observe', 'Seed', 'Trust', 'Checks', 'Stop', 'Upgrade', 'IsolationInstall', 'IsolationVerify',
|
||||
'IsolationUninstall', 'Rollback', 'Compare', 'Cleanup')]
|
||||
[string]$Phase,
|
||||
[string]$Label = 'x',
|
||||
[string]$Root = 'C:\OtOpcUa800',
|
||||
[string]$ServiceAccount = 'NT SERVICE\OtOpcUaHost',
|
||||
[int]$HttpPort = 18800,
|
||||
[int]$OpcUaPort = 14841,
|
||||
[int]$AkkaPort = 18801,
|
||||
[switch]$AllowNotReady,
|
||||
# The server under test is the SDK 1.5 known-good build. An SDK 2 client sends a password over 64 bytes (every
|
||||
# production 65-character API key) as RsaEncryptedSecret, which that server rejects; see README.md.
|
||||
[switch]$BaselineServer,
|
||||
[switch]$PatchedIsolation
|
||||
)
|
||||
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$PSStyle.OutputRendering = 'PlainText'
|
||||
$Service = 'OtOpcUaHost'
|
||||
$Install = Join-Path $Root 'OtOpcUa'
|
||||
$Upload = Join-Path $Root 'upload'
|
||||
$Private = Join-Path $Root 'private'
|
||||
$State = Join-Path $Root 'state'
|
||||
$Evidence = Join-Path $Root 'evidence'
|
||||
$Previous = Join-Path $Root 'OtOpcUa.prev-baseline'
|
||||
$Stage = Join-Path $Root 'stage-candidate'
|
||||
$Quarantine = Join-Path $Root 'quarantine-candidate'
|
||||
$Backup = Join-Path $Root 'backup-baseline'
|
||||
$PeCache = Join-Path $State 'pe-cache'
|
||||
$SvcKey = "HKLM:\SYSTEM\CurrentControlSet\Services\$Service"
|
||||
$Url = "opc.tcp://localhost:$OpcUaPort/OtOpcUa"
|
||||
$Http = "http://127.0.0.1:$HttpPort"
|
||||
$ProbeDll = Join-Path $Upload 'probe\Probe.dll'
|
||||
$CliExe = Join-Path $Upload 'candidate-cli\ZB.MOM.WW.OtOpcUa.Client.CLI.exe'
|
||||
$LegacyCliExe = Join-Path $Upload 'baseline-cli\ZB.MOM.WW.OtOpcUa.Client.CLI.exe'
|
||||
$CliRoot = Join-Path $env:LOCALAPPDATA 'OtOpcUaClient'
|
||||
|
||||
function Write-Evidence([string]$Name, $Value) {
|
||||
$path = Join-Path $Evidence "$Name.json"
|
||||
$Value | ConvertTo-Json -Depth 12 | Set-Content -LiteralPath $path -Encoding utf8
|
||||
Write-Host "evidence: $path"
|
||||
}
|
||||
|
||||
function Get-Secrets { Get-Content -LiteralPath (Join-Path $Private 'secrets.json') -Raw | ConvertFrom-Json }
|
||||
|
||||
function Get-SecretValues {
|
||||
$s = Get-Secrets
|
||||
$values = @($s.ApiKey, $s.ApiKey.Split('_', 3)[2], $s.DisabledKey, $s.DisabledKey.Split('_', 3)[2], $s.Pepper,
|
||||
$s.FetchKey, $s.MasterKey, $s.WrongKey, $s.UnknownKey)
|
||||
foreach ($n in 'ShortKey', 'WrongShortKey', 'UnknownShortKey', 'DisabledShortKey') {
|
||||
if ($s.PSObject.Properties[$n]) { $values += @($s.$n, $s.$n.Split('_', 3)[2]) }
|
||||
}
|
||||
$values | Where-Object { $_ }
|
||||
}
|
||||
|
||||
function Protect-Text([string]$Text) {
|
||||
foreach ($secret in Get-SecretValues) { $Text = $Text.Replace($secret, '<task-secret>') }
|
||||
$Text
|
||||
}
|
||||
|
||||
function New-TaskKey {
|
||||
$hex = -join ((1..8) | ForEach-Object { '{0:x2}' -f (Get-Random -Maximum 256) })
|
||||
$bytes = [byte[]]::new(32); [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
|
||||
$secret = [Convert]::ToBase64String($bytes).TrimEnd('=').Replace('+', '-').Replace('/', '_')
|
||||
"otua_${hex}_$secret"
|
||||
}
|
||||
|
||||
function New-ShortTaskKey {
|
||||
# Same otua_<id>_<secret> form with a 24-byte secret: 54 characters, under the SDK 2 client's 64-byte
|
||||
# RsaEncryptedSecret threshold.
|
||||
$hex = -join ((1..8) | ForEach-Object { '{0:x2}' -f (Get-Random -Maximum 256) })
|
||||
$bytes = [byte[]]::new(24); [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
|
||||
"otua_${hex}_" + [Convert]::ToBase64String($bytes).TrimEnd('=').Replace('+', '-').Replace('/', '_')
|
||||
}
|
||||
|
||||
function Invoke-Cli([string]$Name, [string]$Exe, [string]$Key, [string]$Security) {
|
||||
$out = & $Exe read --url $Url --security $Security --username apikey --password $Key --node 'i=2259' 2>&1 | Out-String
|
||||
$code = $LASTEXITCODE
|
||||
$raw = 0; foreach ($x in Get-SecretValues) { $raw += ([regex]::Matches($out, [regex]::Escape($x))).Count }
|
||||
[ordered]@{ name = $Name; exe = $Exe; argv = "read --url <url> --security $Security --username apikey --password <task-secret> --node i=2259"
|
||||
exit = $code; good = [bool]($out -match '(?m)^Status:\s+Good'); secretOccurrencesInOutput = $raw; output = (Protect-Text $out) }
|
||||
}
|
||||
|
||||
function New-RandomB64([int]$Bytes) {
|
||||
$b = [byte[]]::new($Bytes); [System.Security.Cryptography.RandomNumberGenerator]::Fill($b); [Convert]::ToBase64String($b)
|
||||
}
|
||||
|
||||
function Set-ProtectedAcl([string]$Path, [string[]]$ExtraRules) {
|
||||
# Protected: SYSTEM + Administrators full control, plus any explicit extra rules ("account|rights").
|
||||
$acl = [System.Security.AccessControl.DirectorySecurity]::new()
|
||||
$acl.SetAccessRuleProtection($true, $false)
|
||||
$inherit = [System.Security.AccessControl.InheritanceFlags]'ContainerInherit, ObjectInherit'
|
||||
$none = [System.Security.AccessControl.PropagationFlags]::None
|
||||
foreach ($id in 'NT AUTHORITY\SYSTEM', 'BUILTIN\Administrators') {
|
||||
$acl.AddAccessRule([System.Security.AccessControl.FileSystemAccessRule]::new($id, 'FullControl', $inherit, $none, 'Allow'))
|
||||
}
|
||||
foreach ($rule in $ExtraRules) {
|
||||
$account, $rights = $rule.Split('|')
|
||||
$acl.AddAccessRule([System.Security.AccessControl.FileSystemAccessRule]::new($account, $rights, $inherit, $none, 'Allow'))
|
||||
}
|
||||
Set-Acl -LiteralPath $Path -AclObject $acl
|
||||
}
|
||||
|
||||
function Add-AllowRule([string]$Path, [string]$Account, [string]$Rights) {
|
||||
$acl = Get-Acl -LiteralPath $Path
|
||||
$acl.AddAccessRule([System.Security.AccessControl.FileSystemAccessRule]::new($Account, $Rights,
|
||||
[System.Security.AccessControl.InheritanceFlags]'ContainerInherit, ObjectInherit', 'None', 'Allow'))
|
||||
Set-Acl -LiteralPath $Path -AclObject $acl
|
||||
}
|
||||
|
||||
function Get-EnvNames {
|
||||
@((Get-ItemProperty -Path $SvcKey -Name Environment).Environment | ForEach-Object { $_.Split('=', 2)[0] }) | Sort-Object
|
||||
}
|
||||
|
||||
function Get-EnvDigest {
|
||||
$joined = (@((Get-ItemProperty -Path $SvcKey -Name Environment).Environment) | Sort-Object) -join "`n"
|
||||
[Convert]::ToHexString([System.Security.Cryptography.SHA256]::HashData([Text.Encoding]::UTF8.GetBytes($joined))).ToLowerInvariant()
|
||||
}
|
||||
|
||||
function Get-PkiSnapshot([string]$InstallDir) {
|
||||
$pki = Join-Path $InstallDir 'pki'
|
||||
$certs = @(Get-ChildItem -LiteralPath (Join-Path $pki 'own\certs') -Filter *.der -File -ErrorAction SilentlyContinue | ForEach-Object {
|
||||
$c = [System.Security.Cryptography.X509Certificates.X509CertificateLoader]::LoadCertificateFromFile($_.FullName)
|
||||
[ordered]@{ file = $_.Name; sha256 = (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash; thumbprint = $c.Thumbprint;
|
||||
subject = $c.Subject; notBefore = $c.NotBefore.ToUniversalTime().ToString('o'); notAfter = $c.NotAfter.ToUniversalTime().ToString('o');
|
||||
keySize = $c.PublicKey.GetRSAPublicKey().KeySize }
|
||||
})
|
||||
$files = @(Get-ChildItem -LiteralPath $pki -Recurse -Force -ErrorAction SilentlyContinue | Sort-Object FullName | ForEach-Object {
|
||||
$rel = $_.FullName.Substring($InstallDir.Length + 1)
|
||||
[ordered]@{ path = $rel; dir = $_.PSIsContainer
|
||||
sha256 = if ($_.PSIsContainer) { $null } else { (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash }
|
||||
sddl = (Get-Acl -LiteralPath $_.FullName).Sddl }
|
||||
})
|
||||
$data = @(Get-ChildItem -LiteralPath (Join-Path $InstallDir 'data') -Recurse -Force -ErrorAction SilentlyContinue | Sort-Object FullName | ForEach-Object {
|
||||
[ordered]@{ path = $_.FullName.Substring($InstallDir.Length + 1); dir = $_.PSIsContainer; length = if ($_.PSIsContainer) { $null } else { $_.Length }
|
||||
sddl = (Get-Acl -LiteralPath $_.FullName).Sddl }
|
||||
})
|
||||
[ordered]@{ certs = $certs; pki = $files; data = $data
|
||||
roots = [ordered]@{ install = (Get-Acl -LiteralPath $InstallDir).Sddl
|
||||
appsettings = @(Get-ChildItem -LiteralPath $InstallDir -Filter 'appsettings*.json' -File | ForEach-Object { [ordered]@{ file = $_.Name; sha256 = (Get-FileHash -LiteralPath $_.FullName).Hash; sddl = (Get-Acl -LiteralPath $_.FullName).Sddl } }) } }
|
||||
}
|
||||
|
||||
function Get-ServiceRecord {
|
||||
$svc = Get-CimInstance Win32_Service -Filter "Name='$Service'"
|
||||
[ordered]@{ name = $svc.Name; state = $svc.State; startMode = $svc.StartMode; pathName = $svc.PathName; startName = $svc.StartName
|
||||
processId = $svc.ProcessId; exitCode = $svc.ExitCode; serviceSpecificExitCode = $svc.ServiceSpecificExitCode
|
||||
envNames = @(Get-EnvNames); envDigest = Get-EnvDigest
|
||||
exe = [ordered]@{ path = Join-Path $Install 'OtOpcUa.Host.exe'; sha256 = (Get-FileHash -LiteralPath (Join-Path $Install 'OtOpcUa.Host.exe')).Hash
|
||||
productVersion = (Get-Item -LiteralPath (Join-Path $Install 'OtOpcUa.Host.exe')).VersionInfo.ProductVersion }
|
||||
opcUaCore = (Get-Item -LiteralPath (Join-Path $Install 'Opc.Ua.Core.dll')).VersionInfo.FileVersion }
|
||||
}
|
||||
|
||||
function Invoke-Isolation([string[]]$Extra, [string]$PsHost = 'powershell.exe') {
|
||||
# lmxopcua#883: the repository installer fails on both hosts (PowerShell 7: no DirectoryInfo.GetAccessControl;
|
||||
# 5.1: StrictMode .Count on a scalar), and so does -Uninstall. With -PatchedIsolation the gate uses the #883 patch
|
||||
# (install-candidate-patched) so the runtime isolation can still be exercised.
|
||||
$dir = if ($PatchedIsolation) { 'install-candidate-patched' } else { 'install-candidate' }
|
||||
$script = Join-Path $Upload "$dir\Install-ScriptWorkerIsolation.ps1"
|
||||
$out = & $PsHost -NoProfile -ExecutionPolicy Bypass -File $script -InstallRoot $Install -HostServiceAccount $ServiceAccount `
|
||||
-PeCacheDir $PeCache -ConfigureHostService @Extra 2>&1 | Out-String
|
||||
[ordered]@{ script = $dir; host = $PsHost; args = ($Extra -join ' '); exit = $LASTEXITCODE; output = $out }
|
||||
}
|
||||
|
||||
function Invoke-Http([string]$Path) {
|
||||
try {
|
||||
$r = Invoke-WebRequest -UseBasicParsing -Uri "$Http$Path" -TimeoutSec 10 -SkipHttpErrorCheck
|
||||
[ordered]@{ path = $Path; status = [int]$r.StatusCode; body = $r.Content }
|
||||
} catch { [ordered]@{ path = $Path; status = -1; body = $_.Exception.Message } }
|
||||
}
|
||||
|
||||
function Invoke-Probe([string]$Name, [string[]]$ProbeArgs, [string]$Key) {
|
||||
$env:GATE_PROBE_KEY = $Key
|
||||
try { $out = & dotnet $ProbeDll @ProbeArgs 2>&1 | Out-String; $code = $LASTEXITCODE }
|
||||
finally { Remove-Item Env:\GATE_PROBE_KEY -ErrorAction SilentlyContinue }
|
||||
$raw = 0; foreach ($s in Get-SecretValues) { $raw += ([regex]::Matches($out, [regex]::Escape($s))).Count }
|
||||
$clean = Protect-Text $out
|
||||
$json = $null
|
||||
$last = ($clean.Trim() -split "`r?`n")[-1]
|
||||
try { $json = $last | ConvertFrom-Json } catch { }
|
||||
[ordered]@{ name = $Name; args = $ProbeArgs; exit = $code; secretOccurrencesInOutput = $raw; result = $json
|
||||
output = if ($json) { $null } else { $clean } }
|
||||
}
|
||||
|
||||
function Wait-Ready([int]$Seconds = 180) {
|
||||
$deadline = (Get-Date).AddSeconds($Seconds)
|
||||
while ((Get-Date) -lt $deadline) {
|
||||
$svc = Get-Service $Service
|
||||
if ($svc.Status -ne 'Running') { throw "service left Running while waiting for readiness: $($svc.Status)" }
|
||||
$r = Invoke-Http '/health/ready'
|
||||
if ($r.status -eq 200) { return $r }
|
||||
Start-Sleep -Seconds 2
|
||||
}
|
||||
$last = Invoke-Http '/health/ready'
|
||||
if ($AllowNotReady) { return $last }
|
||||
throw "readiness not 200 within $Seconds s (last: $($last.status))"
|
||||
}
|
||||
|
||||
function Get-OtOpcUaSid([string]$Name) {
|
||||
# NT SERVICE\<Name> virtual-account SID (same algorithm as ScriptWorkerIsolation.psm1 / sc.exe showsid).
|
||||
$hash = [System.Security.Cryptography.SHA1]::HashData([System.Text.Encoding]::Unicode.GetBytes($Name.ToUpperInvariant()))
|
||||
'S-1-5-80-' + ((0..4 | ForEach-Object { [BitConverter]::ToUInt32($hash, $_ * 4) }) -join '-')
|
||||
}
|
||||
|
||||
function Read-SharedText([string]$Path) {
|
||||
# A live log reports a stale length while open (windows-file-length-is-stale-while-open); read through a stream.
|
||||
$fs = [System.IO.FileStream]::new($Path, 'Open', 'Read', 'ReadWrite, Delete')
|
||||
try { $sr = [System.IO.StreamReader]::new($fs); $sr.ReadToEnd() } finally { $fs.Dispose() }
|
||||
}
|
||||
|
||||
function Get-RedactionScan([string]$Since) {
|
||||
$secrets = @(Get-SecretValues)
|
||||
$rows = @()
|
||||
foreach ($f in Get-ChildItem -LiteralPath (Join-Path $Install 'logs') -File -ErrorAction SilentlyContinue) {
|
||||
$text = Read-SharedText $f.FullName
|
||||
$n = 0; foreach ($s in $secrets) { $n += ([regex]::Matches($text, [regex]::Escape($s))).Count }
|
||||
$rows += [ordered]@{ source = "logs\$($f.Name)"; chars = $text.Length; secretOccurrences = $n }
|
||||
Set-Content -LiteralPath (Join-Path $Evidence "log-$Label-$($f.Name)") -Value (Protect-Text $text) -Encoding utf8
|
||||
}
|
||||
$events = @(Get-WinEvent -FilterHashtable @{ LogName = 'Application'; StartTime = [datetime]$Since } -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.ProviderName -match 'OtOpcUa|\.NET Runtime|Application Error' })
|
||||
$etext = ($events | ForEach-Object { "$($_.TimeCreated.ToString('o')) $($_.ProviderName) $($_.Id) $($_.LevelDisplayName) $($_.Message)" }) -join "`n"
|
||||
$n = 0; foreach ($s in $secrets) { $n += ([regex]::Matches($etext, [regex]::Escape($s))).Count }
|
||||
$rows += [ordered]@{ source = 'EventLog:Application'; events = $events.Count; secretOccurrences = $n }
|
||||
Set-Content -LiteralPath (Join-Path $Evidence "eventlog-$Label.txt") -Value (Protect-Text $etext) -Encoding utf8
|
||||
$rows
|
||||
}
|
||||
|
||||
switch ($Phase) {
|
||||
'Prepare' {
|
||||
if (Get-Service $Service -ErrorAction SilentlyContinue) { throw "$Service already exists on this node - refusing" }
|
||||
foreach ($d in $Private, $State, $Evidence) { New-Item -ItemType Directory -Force -Path $d | Out-Null }
|
||||
Set-ProtectedAcl $Root @()
|
||||
Set-ProtectedAcl $Private @()
|
||||
$secretsPath = Join-Path $Private 'secrets.json'
|
||||
if (-not (Test-Path $secretsPath)) {
|
||||
$key = New-TaskKey
|
||||
$wrong = $key.Substring(0, $key.Length - 4) + ($(if ($key.EndsWith('AAAA')) { 'BBBB' } else { 'AAAA' }))
|
||||
[ordered]@{ ApiKey = $key; WrongKey = $wrong; DisabledKey = New-TaskKey; UnknownKey = New-TaskKey
|
||||
Pepper = New-RandomB64 32; FetchKey = New-RandomB64 32; MasterKey = New-RandomB64 32 } |
|
||||
ConvertTo-Json | Set-Content -LiteralPath $secretsPath -Encoding utf8
|
||||
}
|
||||
$s = Get-Secrets
|
||||
# Known-good binaries into the service path, with an explicit service-account ACL.
|
||||
robocopy (Join-Path $Upload 'baseline-host') $Install /E /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
if ($LASTEXITCODE -ge 8) { throw 'baseline copy failed' }
|
||||
# The repository-supported install (Install-Services.ps1) creates the service and its 2-entry environment.
|
||||
# It runs first because the NT SERVICE\ virtual account only resolves once its service exists.
|
||||
& (Join-Path $Upload 'install-baseline\Install-Services.ps1') -InstallRoot $Install -ServiceAccount $ServiceAccount -Roles driver
|
||||
if (-not (Get-Service $Service -ErrorAction SilentlyContinue)) { throw 'Install-Services.ps1 did not create the service' }
|
||||
Add-AllowRule $Install $ServiceAccount 'ReadAndExecute'
|
||||
foreach ($d in 'pki', 'data', 'logs') {
|
||||
$p = Join-Path $Install $d; New-Item -ItemType Directory -Force -Path $p | Out-Null; Add-AllowRule $p $ServiceAccount 'Modify'
|
||||
}
|
||||
$secretsDir = Join-Path $State 'secrets'; New-Item -ItemType Directory -Force -Path $secretsDir | Out-Null
|
||||
Set-ProtectedAcl $secretsDir @("$ServiceAccount|Modify")
|
||||
$base = @((Get-ItemProperty -Path $SvcKey -Name Environment).Environment)
|
||||
$nodeEnv = @(
|
||||
"ASPNETCORE_URLS=$Http", 'Cluster__Roles__0=driver', 'Cluster__SystemName=otopcua', 'Cluster__Hostname=127.0.0.1',
|
||||
'Cluster__PublicHostname=127.0.0.1', "Cluster__Port=$AkkaPort", "Cluster__SeedNodes__0=akka.tcp://otopcua@127.0.0.1:$AkkaPort",
|
||||
'ConfigSource__Mode=FetchAndCache', 'ConfigSource__CentralFetchEndpoints__0=http://127.0.0.1:1', "ConfigSource__ApiKey=$($s.FetchKey)",
|
||||
'ConfigSource__FetchTimeoutSeconds=1', "Secrets__SqlitePath=$secretsDir\secrets.db", "ZB_SECRETS_MASTER_KEY=$($s.MasterKey)",
|
||||
"Security__ApiKeys__Pepper=$($s.Pepper)", 'Security__Ldap__Enabled=false', 'Security__Acl__Enabled=false',
|
||||
'OpcUa__ApplicationName=OtOpcUaGate800', 'OpcUa__ApplicationUri=urn:localhost:OtOpcUaGate800', 'OpcUa__PublicHostname=localhost',
|
||||
"OpcUa__OpcUaPort=$OpcUaPort", 'OpcUa__AllowAnonymous=false', 'OpcUa__AutoAcceptUntrustedClientCertificates=false',
|
||||
'OpcUa__EnabledSecurityProfiles__0=Basic256Sha256SignAndEncrypt', 'OpcUa__EnabledSecurityProfiles__1=Basic256Sha256Sign')
|
||||
Set-ItemProperty -Path $SvcKey -Name Environment -Type MultiString -Value ([string[]]($base + $nodeEnv))
|
||||
# Probe and CLI client identities (the CLI keeps its PKI in this user's LocalAppData: back it up first).
|
||||
if (Test-Path $CliRoot) { robocopy $CliRoot (Join-Path $Private 'cli-backup') /E /COPYALL /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null }
|
||||
Set-Content -LiteralPath (Join-Path $Private 'cli-existed.txt') -Value ([string](Test-Path $CliRoot))
|
||||
$prep = @(
|
||||
Invoke-Probe 'prepare-trusted-client' @('prepare', (Join-Path $State 'client-pki')) ''
|
||||
Invoke-Probe 'prepare-untrusted-client' @('prepare', (Join-Path $State 'untrusted-client-pki')) ''
|
||||
)
|
||||
$cliPrep = & $CliExe read --url 'opc.tcp://localhost:1/OtOpcUa' --security encrypt --node 'i=2259' 2>&1 | Out-String
|
||||
Write-Evidence 'prepare' ([ordered]@{ utc = (Get-Date).ToUniversalTime().ToString('o'); probes = $prep
|
||||
cliClosedPortExit = $LASTEXITCODE; cliClosedPortOutput = (Protect-Text $cliPrep)
|
||||
service = Get-ServiceRecord; rootSddl = (Get-Acl $Root).Sddl; privateSddl = (Get-Acl $Private).Sddl
|
||||
secretsDirSddl = (Get-Acl $secretsDir).Sddl })
|
||||
}
|
||||
'Boot' {
|
||||
$start = (Get-Date).ToUniversalTime().ToString('o')
|
||||
Set-Content -LiteralPath (Join-Path $Evidence "boot-$Label.since") -Value $start
|
||||
Start-Service -Name $Service
|
||||
(Get-Service $Service).WaitForStatus('Running', [TimeSpan]::FromSeconds(60))
|
||||
$ready = Wait-Ready $(if ($AllowNotReady) { 90 } else { 180 })
|
||||
Write-Evidence "boot-$Label" ([ordered]@{ label = $Label; startUtc = $start; readyUtc = (Get-Date).ToUniversalTime().ToString('o')
|
||||
service = Get-ServiceRecord; health = @($ready, (Invoke-Http '/healthz'), (Invoke-Http '/health/active'))
|
||||
snapshot = Get-PkiSnapshot $Install })
|
||||
}
|
||||
'Observe' {
|
||||
# A start the gate did not make (e.g. the SCM auto-start after a host reboot): record it like a Boot.
|
||||
$svc = Get-CimInstance Win32_Service -Filter "Name='$Service'"
|
||||
if ($svc.State -ne 'Running') { throw "service is $($svc.State), not Running" }
|
||||
$started = (Get-Process -Id $svc.ProcessId).StartTime.ToUniversalTime().ToString('o')
|
||||
$boot = (Get-CimInstance Win32_OperatingSystem).LastBootUpTime.ToUniversalTime().ToString('o')
|
||||
Set-Content -LiteralPath (Join-Path $Evidence "boot-$Label.since") -Value $boot
|
||||
Write-Evidence "boot-$Label" ([ordered]@{ label = $Label; observedOnly = $true; osBootUtc = $boot; processStartUtc = $started
|
||||
service = Get-ServiceRecord; health = @((Invoke-Http '/health/ready'), (Invoke-Http '/healthz'), (Invoke-Http '/health/active'))
|
||||
snapshot = Get-PkiSnapshot $Install })
|
||||
}
|
||||
'Seed' {
|
||||
if ((Get-Service $Service).Status -ne 'Stopped') { throw 'stop the service before seeding' }
|
||||
$s = Get-Secrets
|
||||
# 54-character keys keep the SDK 2 client on the legacy UserName-token path, so the SDK 1.5 server's own key
|
||||
# checks (wrong secret, unknown id, disabled) are reached rather than failing on the token format.
|
||||
$changed = $false
|
||||
foreach ($n in 'ShortKey', 'UnknownShortKey', 'DisabledShortKey') {
|
||||
if (-not $s.PSObject.Properties[$n]) { $s | Add-Member -NotePropertyName $n -NotePropertyValue (New-ShortTaskKey); $changed = $true }
|
||||
}
|
||||
if (-not $s.PSObject.Properties['WrongShortKey']) {
|
||||
$w = $s.ShortKey.Substring(0, $s.ShortKey.Length - 4) + $(if ($s.ShortKey.EndsWith('AAAA')) { 'BBBB' } else { 'AAAA' })
|
||||
$s | Add-Member -NotePropertyName WrongShortKey -NotePropertyValue $w; $changed = $true
|
||||
}
|
||||
if ($changed) { $s | ConvertTo-Json | Set-Content -LiteralPath (Join-Path $Private 'secrets.json') -Encoding utf8 }
|
||||
$env:GATE_API_KEY = $s.ApiKey; $env:GATE_API_KEY_SHORT = $s.ShortKey; $env:GATE_API_KEY_DISABLED = $s.DisabledShortKey; $env:Security__ApiKeys__Pepper = $s.Pepper
|
||||
try { $out = & dotnet (Join-Path $Upload 'seeder-baseline\Seeder.dll') (Join-Path $Install 'data\otopcua-localdb.db') 2>&1 | Out-String; $code = $LASTEXITCODE }
|
||||
finally { Remove-Item Env:\GATE_API_KEY, Env:\GATE_API_KEY_SHORT, Env:\GATE_API_KEY_DISABLED, Env:\Security__ApiKeys__Pepper -ErrorAction SilentlyContinue }
|
||||
Write-Evidence 'seed' ([ordered]@{ exit = $code; output = (Protect-Text $out); data = (Get-PkiSnapshot $Install).data })
|
||||
if ($code -ne 0) { throw "seed failed: $code" }
|
||||
}
|
||||
'Trust' {
|
||||
$trusted = Join-Path $Install 'pki\trusted\certs'
|
||||
New-Item -ItemType Directory -Force -Path $trusted | Out-Null
|
||||
$copied = @()
|
||||
foreach ($src in (Join-Path $State 'client-pki\own\certs'), (Join-Path $CliRoot 'pki\own\certs')) {
|
||||
foreach ($c in Get-ChildItem -LiteralPath $src -Filter *.der -File) { Copy-Item -LiteralPath $c.FullName -Destination $trusted -Force; $copied += $c.Name }
|
||||
}
|
||||
foreach ($client in 'client-pki', 'untrusted-client-pki') {
|
||||
$t = Join-Path $State "$client\trusted\certs"; New-Item -ItemType Directory -Force -Path $t | Out-Null
|
||||
Get-ChildItem -LiteralPath (Join-Path $Install 'pki\own\certs') -Filter *.der -File | Copy-Item -Destination $t -Force
|
||||
}
|
||||
Write-Evidence 'trust' ([ordered]@{ serverTrusted = $copied; untrustedClientNotCopied = (Get-ChildItem (Join-Path $State 'untrusted-client-pki\own\certs') -Filter *.der).Name })
|
||||
}
|
||||
'Checks' {
|
||||
$s = Get-Secrets
|
||||
$client = Join-Path $State 'client-pki'
|
||||
$untrusted = Join-Path $State 'untrusted-client-pki'
|
||||
$long = if ($BaselineServer) { 'key-deny' } else { 'allow' }
|
||||
$cases = @(
|
||||
Invoke-Probe 'encrypt-valid-key-65' @('probe', $client, $Url, 'encrypt', $long) $s.ApiKey
|
||||
Invoke-Probe 'sign-valid-key-65' @('probe', $client, $Url, 'sign', $long) $s.ApiKey
|
||||
Invoke-Probe 'encrypt-valid-key-54' @('probe', $client, $Url, 'encrypt', 'allow') $s.ShortKey
|
||||
Invoke-Probe 'sign-valid-key-54' @('probe', $client, $Url, 'sign', 'allow') $s.ShortKey
|
||||
Invoke-Probe 'encrypt-wrong-secret-54' @('probe', $client, $Url, 'encrypt', 'key-deny') $s.WrongShortKey
|
||||
Invoke-Probe 'sign-wrong-secret-54' @('probe', $client, $Url, 'sign', 'key-deny') $s.WrongShortKey
|
||||
Invoke-Probe 'encrypt-unknown-key-id-54' @('probe', $client, $Url, 'encrypt', 'key-deny') $s.UnknownShortKey
|
||||
Invoke-Probe 'encrypt-disabled-key-54' @('probe', $client, $Url, 'encrypt', 'key-deny') $s.DisabledShortKey
|
||||
Invoke-Probe 'encrypt-wrong-secret-65' @('probe', $client, $Url, 'encrypt', 'key-deny') $s.WrongKey
|
||||
Invoke-Probe 'encrypt-unknown-key-id-65' @('probe', $client, $Url, 'encrypt', 'key-deny') $s.UnknownKey
|
||||
Invoke-Probe 'encrypt-anonymous' @('probe', $client, $Url, 'encrypt', 'anon-deny') ''
|
||||
Invoke-Probe 'encrypt-untrusted-client' @('probe', $untrusted, $Url, 'encrypt', 'peer-deny') $s.ShortKey
|
||||
Invoke-Probe 'sign-untrusted-client' @('probe', $untrusted, $Url, 'sign', 'peer-deny') $s.ShortKey
|
||||
)
|
||||
# Untrusted server: the trusted client with its server trust list emptied for one attempt.
|
||||
$t = Join-Path $client 'trusted\certs'; $hold = Join-Path $State 'hold-server-trust'
|
||||
Move-Item -LiteralPath $t -Destination $hold; New-Item -ItemType Directory -Path $t | Out-Null
|
||||
try { $cases += Invoke-Probe 'encrypt-untrusted-server' @('probe', $client, $Url, 'encrypt', 'peer-deny') $s.ShortKey }
|
||||
finally { Remove-Item -LiteralPath $t -Recurse -Force; Move-Item -LiteralPath $hold -Destination $t }
|
||||
# Actual published CLIs (they auto-accept the server certificate by design; not strict-peer coverage).
|
||||
$clis = @(
|
||||
Invoke-Cli 'cli-sdk1-encrypt-key-65' $LegacyCliExe $s.ApiKey 'encrypt'
|
||||
Invoke-Cli 'cli-sdk2-encrypt-key-54' $CliExe $s.ShortKey 'encrypt'
|
||||
)
|
||||
$cli65 = Invoke-Cli 'cli-sdk2-encrypt-key-65' $CliExe $s.ApiKey 'encrypt'
|
||||
if (-not $BaselineServer) { $clis += $cli65 }
|
||||
# Findings recorded but not gating here (pre-existing; see README.md): the advertised endpoint set, a session
|
||||
# over the None endpoint, and the SDK 2 CLI's 65-character key against the SDK 1.5 server.
|
||||
$findings = @(
|
||||
Invoke-Probe 'endpoints-advertised' @('endpoints', $client, $Url) ''
|
||||
Invoke-Probe 'none-endpoint-valid-key-54' @('probe', $client, $Url, 'none', 'allow') $s.ShortKey
|
||||
)
|
||||
if ($BaselineServer) { $findings += $cli65 }
|
||||
$failed = @($cases | Where-Object { $_.exit -ne 0 }) + @($clis | Where-Object { $_.exit -ne 0 -or -not $_.good })
|
||||
$leaks = @(@($cases) + @($clis) + @($findings) | Where-Object { $_.secretOccurrencesInOutput -ne 0 })
|
||||
Write-Evidence "checks-$Label" ([ordered]@{ label = $Label; baselineServer = [bool]$BaselineServer; utc = (Get-Date).ToUniversalTime().ToString('o')
|
||||
cases = $cases; clis = $clis; findings = $findings
|
||||
health = @((Invoke-Http '/health/ready'), (Invoke-Http '/healthz'), (Invoke-Http '/health/active'))
|
||||
failed = @($failed | ForEach-Object { $_.name }); outputsWithSecrets = @($leaks | ForEach-Object { $_.name }) })
|
||||
if ($failed.Count -or $leaks.Count) { throw "checks failed: $(@($failed + $leaks | ForEach-Object { $_.name }) -join ', ')" }
|
||||
}
|
||||
'Stop' {
|
||||
$since = Get-Content -LiteralPath (Join-Path $Evidence "boot-$Label.since") -ErrorAction SilentlyContinue
|
||||
if (-not $since) { $since = (Get-Date).AddHours(-1).ToUniversalTime().ToString('o') }
|
||||
$svcPid = (Get-CimInstance Win32_Service -Filter "Name='$Service'").ProcessId
|
||||
$sw = [Diagnostics.Stopwatch]::StartNew()
|
||||
Stop-Service -Name $Service
|
||||
(Get-Service $Service).WaitForStatus('Stopped', [TimeSpan]::FromSeconds(60))
|
||||
$sw.Stop()
|
||||
Start-Sleep -Seconds 2
|
||||
$workers = @(Get-Process -Name 'ZB.MOM.WW.OtOpcUa.ScriptWorker' -ErrorAction SilentlyContinue)
|
||||
Write-Evidence "stop-$Label" ([ordered]@{ label = $Label; utc = (Get-Date).ToUniversalTime().ToString('o'); stopSeconds = [math]::Round($sw.Elapsed.TotalSeconds, 1)
|
||||
hostProcessGone = -not (Get-Process -Id $svcPid -ErrorAction SilentlyContinue); leftoverWorkers = $workers.Count
|
||||
service = Get-ServiceRecord; redaction = @(Get-RedactionScan $since) })
|
||||
}
|
||||
'Upgrade' {
|
||||
if ((Get-Service $Service).Status -ne 'Stopped') { throw 'stop the service first' }
|
||||
$before = Get-ServiceRecord
|
||||
reg.exe export "HKLM\SYSTEM\CurrentControlSet\Services\$Service" (Join-Path $Private 'service-baseline.reg') /y | Out-Null
|
||||
robocopy $Install $Backup /E /COPYALL /DCOPY:DAT /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
if ($LASTEXITCODE -ge 8) { throw 'known-good backup failed' }
|
||||
# Stage the candidate separately, give it the install folder's DACL, then carry the node's own state over.
|
||||
robocopy (Join-Path $Upload 'candidate-host') $Stage /E /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
if ($LASTEXITCODE -ge 8) { throw 'candidate stage failed' }
|
||||
Set-Acl -LiteralPath $Stage -AclObject (Get-Acl -LiteralPath $Install)
|
||||
$appsettingsDiff = @(Get-ChildItem -LiteralPath $Install -Filter 'appsettings*.json' -File | ForEach-Object {
|
||||
$cand = Join-Path $Stage $_.Name
|
||||
[ordered]@{ file = $_.Name; node = (Get-FileHash $_.FullName).Hash; publisher = if (Test-Path $cand) { (Get-FileHash $cand).Hash } else { $null } }
|
||||
})
|
||||
foreach ($f in Get-ChildItem -LiteralPath $Install -Filter 'appsettings*.json' -File) { Copy-Item -LiteralPath $f.FullName -Destination $Stage -Force }
|
||||
foreach ($d in 'pki', 'data', 'logs') {
|
||||
robocopy (Join-Path $Install $d) (Join-Path $Stage $d) /E /COPYALL /DCOPY:DAT /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
if ($LASTEXITCODE -ge 8) { throw "carry $d failed" }
|
||||
}
|
||||
$stagedSnapshot = Get-PkiSnapshot $Stage
|
||||
Move-Item -LiteralPath $Install -Destination $Previous
|
||||
Move-Item -LiteralPath $Stage -Destination $Install
|
||||
Write-Evidence 'upgrade' ([ordered]@{ utc = (Get-Date).ToUniversalTime().ToString('o'); before = $before; after = Get-ServiceRecord
|
||||
appsettingsNodeVsPublisher = $appsettingsDiff; stagedSnapshot = $stagedSnapshot
|
||||
backup = [ordered]@{ path = $Backup; files = (Get-ChildItem $Backup -Recurse -File).Count }; previous = $Previous })
|
||||
}
|
||||
'IsolationInstall' {
|
||||
if ((Get-Service $Service).Status -ne 'Stopped') { throw 'stop the service first' }
|
||||
$envBefore = @(Get-EnvNames)
|
||||
$aclBefore = (& icacls $Install | Out-String)
|
||||
$whatIf = Invoke-Isolation @('-WhatIf') 'pwsh'
|
||||
$whatIfChanged = ((& icacls $Install | Out-String) -ne $aclBefore) -or [bool](Get-NetFirewallRule -Name 'OtOpcUa-ScriptWorker-BlockOutbound' -ErrorAction SilentlyContinue) -or ((@(Get-EnvNames) -join ',') -ne ($envBefore -join ','))
|
||||
$apply = Invoke-Isolation @() 'pwsh'
|
||||
$again = Invoke-Isolation @() 'powershell.exe'
|
||||
if ($apply.exit -ne 0 -or $again.exit -ne 0) { throw "isolation install failed: $($apply.output)$($again.output)" }
|
||||
$env = @((Get-ItemProperty -Path $SvcKey -Name Environment).Environment) + 'Scripting__Runner=OutOfProcess'
|
||||
Set-ItemProperty -Path $SvcKey -Name Environment -Type MultiString -Value ([string[]]$env)
|
||||
$rule = Get-NetFirewallRule -Name 'OtOpcUa-ScriptWorker-BlockOutbound'
|
||||
Write-Evidence 'isolation-install' ([ordered]@{ whatIf = $whatIf; whatIfChangedState = $whatIfChanged; apply = $apply; reapply = $again
|
||||
reapplyAllUnchanged = -not ($again.output -match '\[(?!unchanged)[a-z]+\s*\]')
|
||||
envBefore = $envBefore; envAfter = @(Get-EnvNames)
|
||||
anchor = (& sc.exe qc OtOpcUaScriptWorker | Out-String); anchorSid = (& sc.exe showsid OtOpcUaScriptWorker | Out-String)
|
||||
installAcl = (& icacls $Install | Out-String); workerDirAcl = (& icacls (Join-Path $Install 'script-worker') | Out-String)
|
||||
peCacheAcl = (& icacls $PeCache | Out-String); peAcl = (& icacls (Join-Path $PeCache 'pe') | Out-String)
|
||||
firewall = [ordered]@{ name = $rule.Name; direction = "$($rule.Direction)"; action = "$($rule.Action)"; enabled = "$($rule.Enabled)"; profile = "$($rule.Profile)"
|
||||
program = ($rule | Get-NetFirewallApplicationFilter).Program }
|
||||
workerExeSha256 = (Get-FileHash (Join-Path $Install 'script-worker\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe')).Hash
|
||||
workerFiles = (Get-ChildItem (Join-Path $Install 'script-worker') -Recurse -File).Count })
|
||||
}
|
||||
'IsolationVerify' {
|
||||
Add-Type -TypeDefinition @'
|
||||
using System; using System.Runtime.InteropServices;
|
||||
public static class Tok {
|
||||
[DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr OpenProcess(uint a, bool i, int pid);
|
||||
[DllImport("advapi32.dll", SetLastError=true)] public static extern bool OpenProcessToken(IntPtr p, uint a, out IntPtr t);
|
||||
[DllImport("advapi32.dll", SetLastError=true)] public static extern bool IsTokenRestricted(IntPtr t);
|
||||
[DllImport("advapi32.dll", SetLastError=true)] public static extern bool GetTokenInformation(IntPtr t, int c, IntPtr b, int l, out int r);
|
||||
[DllImport("kernel32.dll")] public static extern bool CloseHandle(IntPtr h);
|
||||
public static string Inspect(int pid) {
|
||||
IntPtr p = OpenProcess(0x1000, false, pid); if (p == IntPtr.Zero) return "OpenProcess failed " + Marshal.GetLastWin32Error();
|
||||
IntPtr t; if (!OpenProcessToken(p, 0x0008, out t)) { int e = Marshal.GetLastWin32Error(); CloseHandle(p); return "OpenProcessToken failed " + e; }
|
||||
bool r = IsTokenRestricted(t); int len; GetTokenInformation(t, 3, IntPtr.Zero, 0, out len);
|
||||
IntPtr b = Marshal.AllocHGlobal(len); int privs = -1;
|
||||
if (GetTokenInformation(t, 3, b, len, out len)) privs = Marshal.ReadInt32(b);
|
||||
Marshal.FreeHGlobal(b); CloseHandle(t); CloseHandle(p);
|
||||
return "restricted=" + r + " privilegeCount=" + privs;
|
||||
}
|
||||
}
|
||||
'@
|
||||
$hostPid = (Get-CimInstance Win32_Service -Filter "Name='$Service'").ProcessId
|
||||
$workers = @(Get-CimInstance Win32_Process -Filter "Name='ZB.MOM.WW.OtOpcUa.ScriptWorker.exe'")
|
||||
$procs = @($workers | ForEach-Object { [ordered]@{ pid = $_.ProcessId; parent = $_.ParentProcessId; parentIsHost = ($_.ParentProcessId -eq $hostPid)
|
||||
path = $_.ExecutablePath; owner = (Invoke-CimMethod -InputObject $_ -MethodName GetOwner | ForEach-Object { "$($_.Domain)\$($_.User)" })
|
||||
token = [Tok]::Inspect([int]$_.ProcessId) } })
|
||||
$pipes = @([System.IO.Directory]::GetFiles('\\.\pipe\') | Where-Object { $_ -match 'otopcua-sw-' })
|
||||
$pipeChecks = @($pipes | ForEach-Object {
|
||||
$name = $_.Substring(9)
|
||||
$c = [System.IO.Pipes.NamedPipeClientStream]::new('.', $name, 'InOut')
|
||||
$outcome = try { $c.Connect(2000); 'CONNECTED (unexpected)' } catch [UnauthorizedAccessException] { 'denied (UnauthorizedAccessException)' } catch { "other: $($_.Exception.GetType().Name): $($_.Exception.Message)" } finally { $c.Dispose() }
|
||||
[ordered]@{ pipe = 'otopcua-sw-<random>'; adminConnect = $outcome }
|
||||
})
|
||||
$ready = Invoke-Http '/health/ready'
|
||||
Write-Evidence 'isolation-verify' ([ordered]@{ hostPid = $hostPid; workers = $procs; pipes = $pipeChecks; ready = $ready
|
||||
peFiles = @(Get-ChildItem (Join-Path $PeCache 'pe') -File -ErrorAction SilentlyContinue).Count
|
||||
hostLogWorkerLines = @(Get-ChildItem (Join-Path $Install 'logs') -File | ForEach-Object { (Read-SharedText $_.FullName) -split "`r?`n" } |
|
||||
Where-Object { $_ -match 'ScriptWorker|script-runner|OutOfProcess' } | Select-Object -Last 30 | ForEach-Object { Protect-Text $_ }) })
|
||||
}
|
||||
'IsolationUninstall' {
|
||||
if ((Get-Service $Service).Status -ne 'Stopped') { throw 'stop the service first' }
|
||||
$first = Invoke-Isolation @('-Uninstall') 'powershell.exe'
|
||||
$second = Invoke-Isolation @('-Uninstall') 'pwsh'
|
||||
if ($first.exit -ne 0 -or $second.exit -ne 0) { throw "isolation uninstall failed: $($first.output)$($second.output)" }
|
||||
$env = @((Get-ItemProperty -Path $SvcKey -Name Environment).Environment | Where-Object { $_ -notlike 'Scripting__Runner=*' })
|
||||
Set-ItemProperty -Path $SvcKey -Name Environment -Type MultiString -Value ([string[]]$env)
|
||||
Write-Evidence 'isolation-uninstall' ([ordered]@{ first = $first; second = $second
|
||||
secondAllUnchanged = -not ($second.output -match '\[(?!unchanged)[a-z]+\s*\]')
|
||||
anchorGone = -not (Get-Service OtOpcUaScriptWorker -ErrorAction SilentlyContinue)
|
||||
firewallGone = -not (Get-NetFirewallRule -Name 'OtOpcUa-ScriptWorker-BlockOutbound' -ErrorAction SilentlyContinue)
|
||||
installAcl = (& icacls $Install | Out-String); envNames = @(Get-EnvNames); envDigest = Get-EnvDigest })
|
||||
}
|
||||
'Rollback' {
|
||||
if ((Get-Service $Service).Status -ne 'Stopped') { throw 'stop the service first' }
|
||||
$before = Get-PkiSnapshot $Install
|
||||
Move-Item -LiteralPath $Install -Destination $Quarantine
|
||||
Move-Item -LiteralPath $Previous -Destination $Install
|
||||
foreach ($d in 'pki', 'data') {
|
||||
robocopy (Join-Path $Quarantine $d) (Join-Path $Install $d) /E /COPYALL /DCOPY:DAT /IS /IT /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
if ($LASTEXITCODE -ge 8) { throw "restore $d failed" }
|
||||
}
|
||||
Write-Evidence 'rollback' ([ordered]@{ utc = (Get-Date).ToUniversalTime().ToString('o'); candidateSnapshot = $before
|
||||
restored = Get-ServiceRecord; restoredSnapshot = Get-PkiSnapshot $Install; quarantine = $Quarantine })
|
||||
}
|
||||
'Compare' {
|
||||
$labels = $Label.Split(',')
|
||||
$rows = foreach ($l in $labels) {
|
||||
$b = Get-Content (Join-Path $Evidence "boot-$l.json") -Raw | ConvertFrom-Json
|
||||
[ordered]@{ label = $l; exe = $b.service.exe.productVersion; opcUaCore = $b.service.opcUaCore; envDigest = $b.service.envDigest
|
||||
certs = @($b.snapshot.certs | ForEach-Object { "$($_.thumbprint) $($_.sha256)" })
|
||||
pkiDigest = [Convert]::ToHexString([System.Security.Cryptography.SHA256]::HashData([Text.Encoding]::UTF8.GetBytes((($b.snapshot.pki | ForEach-Object { "$($_.path)|$($_.sha256)|$($_.sddl)" }) -join "`n")))).ToLowerInvariant()
|
||||
pkiEntries = @($b.snapshot.pki).Count
|
||||
dataAcl = @($b.snapshot.data | ForEach-Object { "$($_.path)|$($_.sddl)" }) }
|
||||
}
|
||||
$first = $rows[0]
|
||||
$same = [ordered]@{
|
||||
certificate = @($rows | Where-Object { ($_.certs -join ';') -ne ($first.certs -join ';') }).Count -eq 0
|
||||
pkiFilesAndAcls = @($rows | Where-Object { $_.pkiDigest -ne $first.pkiDigest }).Count -eq 0
|
||||
environment = @($rows | Where-Object { $_.envDigest -ne $first.envDigest }).Count -eq 0 }
|
||||
Write-Evidence "compare-$($labels -join '-')" ([ordered]@{ rows = $rows; identical = $same })
|
||||
}
|
||||
'Cleanup' {
|
||||
$out = [ordered]@{}
|
||||
if (Get-Service $Service -ErrorAction SilentlyContinue) {
|
||||
Stop-Service $Service -ErrorAction SilentlyContinue
|
||||
(Get-Service $Service).WaitForStatus('Stopped', [TimeSpan]::FromSeconds(60))
|
||||
$out.delete = (& sc.exe delete $Service | Out-String) # NOT Uninstall-Services.ps1: it also removes OtOpcUaWonderwareHistorian
|
||||
}
|
||||
if (Get-Service OtOpcUaScriptWorker -ErrorAction SilentlyContinue) { $out.anchorDelete = (& sc.exe delete OtOpcUaScriptWorker | Out-String) }
|
||||
Get-NetFirewallRule -Name 'OtOpcUa-ScriptWorker-BlockOutbound' -ErrorAction SilentlyContinue | Remove-NetFirewallRule
|
||||
Remove-Item -LiteralPath $CliRoot -Recurse -Force -ErrorAction SilentlyContinue
|
||||
if ((Get-Content (Join-Path $Private 'cli-existed.txt')) -eq 'True') {
|
||||
robocopy (Join-Path $Private 'cli-backup') $CliRoot /E /COPYALL /R:1 /W:1 /NFL /NDL /NJH /NP | Out-Null
|
||||
}
|
||||
$out.cliRestored = @(Get-ChildItem $CliRoot -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object { $_.FullName })
|
||||
foreach ($sid in @((Get-OtOpcUaSid 'OtOpcUaHost'), (Get-OtOpcUaSid 'OtOpcUaScriptWorker'))) {
|
||||
$p = Get-CimInstance Win32_UserProfile | Where-Object { $_.SID -eq $sid }
|
||||
if ($p) { $out["profile-$sid"] = $p.LocalPath; $p | Remove-CimInstance }
|
||||
}
|
||||
$out | ConvertTo-Json -Depth 5
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!-- SDK 2.0.1 strict-peer client probe for the #800 Windows service gate. Talks OPC UA on the wire, so
|
||||
it probes the SDK 1.5 baseline server and the SDK 2 candidate alike. -->
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<!-- DataValue.Value / Variant.Value are obsolete in SDK 2; a probe only prints the value. -->
|
||||
<NoWarn>$(NoWarn);CS0618</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../../../../src/Server/ZB.MOM.WW.OtOpcUa.Host/ZB.MOM.WW.OtOpcUa.Host.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,135 @@
|
||||
// #800 Windows service gate probe. Peer auto-accept is always false.
|
||||
// prepare <pki> [applicationName] create the client application certificate
|
||||
// endpoints <pki> <url> list advertised endpoints; fail if None or anonymous is offered
|
||||
// probe <pki> <url> <none|sign|encrypt> <expected> expected = allow | key-deny | peer-deny | anon-deny
|
||||
// The API key comes from GATE_PROBE_KEY (never an argument). One JSON line is printed per run.
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using Opc.Ua;
|
||||
using Opc.Ua.Client;
|
||||
using Opc.Ua.Configuration;
|
||||
|
||||
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(60));
|
||||
var ct = deadline.Token;
|
||||
var mode = args[0];
|
||||
var root = Path.GetFullPath(args[1]);
|
||||
var telemetry = DefaultTelemetry.Create(_ => { });
|
||||
var clientName = mode == "prepare" && args.Length > 2 ? args[2] : "Gate800Client";
|
||||
var security = new SecurityConfiguration
|
||||
{
|
||||
ApplicationCertificate = new CertificateIdentifier { StoreType = CertificateStoreType.Directory,
|
||||
StorePath = Path.Combine(root, "own"), SubjectName = "CN=" + clientName },
|
||||
TrustedIssuerCertificates = new CertificateTrustList { StoreType = CertificateStoreType.Directory, StorePath = Path.Combine(root, "issuer") },
|
||||
TrustedPeerCertificates = new CertificateTrustList { StoreType = CertificateStoreType.Directory, StorePath = Path.Combine(root, "trusted") },
|
||||
RejectedCertificateStore = new CertificateTrustList { StoreType = CertificateStoreType.Directory, StorePath = Path.Combine(root, "rejected") },
|
||||
AutoAcceptUntrustedCertificates = false,
|
||||
};
|
||||
var configuration = new ApplicationConfiguration(telemetry)
|
||||
{
|
||||
ApplicationName = clientName, ApplicationUri = "urn:localhost:" + clientName,
|
||||
ApplicationType = ApplicationType.Client, SecurityConfiguration = security,
|
||||
ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60_000 },
|
||||
};
|
||||
await using var application = new ApplicationInstance(telemetry)
|
||||
{ ApplicationName = configuration.ApplicationName, ApplicationType = ApplicationType.Client, ApplicationConfiguration = configuration };
|
||||
await configuration.ValidateAsync(ApplicationType.Client, ct);
|
||||
await application.CheckApplicationInstanceCertificatesAsync(true, lifeTimeInMonths: 12, ct);
|
||||
if (mode == "prepare")
|
||||
{
|
||||
Emit(new { mode, result = "prepared", clientName, autoAccept = security.AutoAcceptUntrustedCertificates });
|
||||
return 0;
|
||||
}
|
||||
|
||||
var url = args[2];
|
||||
List<EndpointDescription> advertised;
|
||||
using (var discovery = await DiscoveryClient.CreateAsync(configuration, new Uri(url), DiagnosticsMasks.None, ct))
|
||||
advertised = (await discovery.GetEndpointsAsync(default, ct)).ToList();
|
||||
var summary = advertised.Select(e => new
|
||||
{
|
||||
mode = e.SecurityMode.ToString(),
|
||||
policy = (e.SecurityPolicyUri ?? "").Split('#').Last(),
|
||||
tokens = TokenTypes(e),
|
||||
certSha1 = e.ServerCertificate.Length > 0 ? Convert.ToHexString(System.Security.Cryptography.SHA1.HashData(e.ServerCertificate.ToArray())) : "",
|
||||
}).ToList();
|
||||
if (mode == "endpoints")
|
||||
{
|
||||
var insecure = summary.Any(e => e.mode == nameof(MessageSecurityMode.None));
|
||||
var anonymous = summary.Any(e => e.tokens.Contains(nameof(UserTokenType.Anonymous)));
|
||||
Emit(new { mode, result = insecure || anonymous ? "insecure-offered" : "secure-only", endpoints = summary });
|
||||
return insecure || anonymous ? 3 : 0;
|
||||
}
|
||||
|
||||
var wanted = args[3] switch { "sign" => MessageSecurityMode.Sign, "none" => MessageSecurityMode.None, _ => MessageSecurityMode.SignAndEncrypt };
|
||||
var wantedPolicy = wanted == MessageSecurityMode.None ? SecurityPolicies.None : SecurityPolicies.Basic256Sha256;
|
||||
var expected = args[4];
|
||||
var selected = advertised.FirstOrDefault(e => e.SecurityMode == wanted && e.SecurityPolicyUri == wantedPolicy)
|
||||
?? throw new InvalidOperationException("No " + wantedPolicy + " " + wanted + " endpoint advertised.");
|
||||
var identity = expected == "anon-deny"
|
||||
? new UserIdentity()
|
||||
: new UserIdentity("apikey", Encoding.UTF8.GetBytes(Environment.GetEnvironmentVariable("GATE_PROBE_KEY") ?? throw new InvalidOperationException("Missing GATE_PROBE_KEY.")));
|
||||
try
|
||||
{
|
||||
using var session = await new DefaultSessionFactory(telemetry).CreateAsync(configuration,
|
||||
new ConfiguredEndpoint(null, selected, EndpointConfiguration.Create(configuration)), false, true,
|
||||
"Gate800Probe", 60_000, identity, default, ct);
|
||||
if (expected != "allow")
|
||||
{
|
||||
Emit(new { mode, securityMode = wanted.ToString(), expected, result = "UNEXPECTED-ADMIT" });
|
||||
await session.CloseAsync(ct);
|
||||
return 4;
|
||||
}
|
||||
var uns = session.NamespaceUris.GetIndex("https://zb.com/otopcua/uns");
|
||||
var reads = new[]
|
||||
{
|
||||
new ReadValueId { NodeId = VariableIds.Server_ServerStatus_State, AttributeId = Attributes.Value },
|
||||
new ReadValueId { NodeId = VariableIds.Server_ServiceLevel, AttributeId = Attributes.Value },
|
||||
new ReadValueId { NodeId = new NodeId("EQ-000000000800/GateValue", (ushort)Math.Max(uns, 0)), AttributeId = Attributes.Value },
|
||||
};
|
||||
// The timer-driven virtual tag needs a moment after boot; retry its read for up to 20 s.
|
||||
List<DataValue>? results = null;
|
||||
for (var attempt = 0; attempt < 20; attempt++)
|
||||
{
|
||||
var response = await session.ReadAsync(null, 0, TimestampsToReturn.Both, reads, ct);
|
||||
results = response.Results.ToList();
|
||||
if (uns >= 0 && StatusCode.IsGood(results[2].StatusCode)) break;
|
||||
await Task.Delay(1000, ct);
|
||||
}
|
||||
var state = results![0];
|
||||
var level = results[1];
|
||||
var vt = results[2];
|
||||
var ok = StatusCode.IsGood(state.StatusCode) && StatusCode.IsGood(level.StatusCode);
|
||||
Emit(new
|
||||
{
|
||||
mode, securityMode = wanted.ToString(), policy = wantedPolicy.Split('#').Last(), expected, result = ok ? "allowed" : "READ-FAILED",
|
||||
serverState = $"{state.Value} ({state.StatusCode})",
|
||||
serviceLevel = $"{level.Value} ({level.StatusCode})",
|
||||
unsNamespaceIndex = uns,
|
||||
virtualTag = $"{vt.Value} ({vt.StatusCode})",
|
||||
serverCertSha1 = summary.First(e => e.mode == wanted.ToString()).certSha1,
|
||||
autoAccept = false,
|
||||
});
|
||||
await session.CloseAsync(ct);
|
||||
return ok ? 0 : 5;
|
||||
}
|
||||
catch (ServiceResultException error) when (expected != "allow")
|
||||
{
|
||||
var accepted = expected switch
|
||||
{
|
||||
"key-deny" => new[] { StatusCodes.BadUserAccessDenied, StatusCodes.BadIdentityTokenRejected, StatusCodes.BadIdentityTokenInvalid },
|
||||
"anon-deny" => new[] { StatusCodes.BadUserAccessDenied, StatusCodes.BadIdentityTokenRejected, StatusCodes.BadIdentityTokenInvalid, StatusCodes.BadSecurityPolicyRejected },
|
||||
_ => new[] { StatusCodes.BadCertificateUntrusted, StatusCodes.BadSecurityChecksFailed, StatusCodes.BadSecureChannelClosed },
|
||||
};
|
||||
var good = accepted.Contains(error.StatusCode);
|
||||
Emit(new { mode, securityMode = wanted.ToString(), expected, result = good ? "denied" : "DENIED-WITH-UNEXPECTED-CODE",
|
||||
status = error.StatusCode.ToString(), autoAccept = false });
|
||||
return good ? 0 : 6;
|
||||
}
|
||||
|
||||
static string[] TokenTypes(EndpointDescription e)
|
||||
{
|
||||
var types = new List<string>();
|
||||
foreach (var t in e.UserIdentityTokens) types.Add(t.TokenType.ToString());
|
||||
return types.Distinct().ToArray();
|
||||
}
|
||||
|
||||
static void Emit(object value) => Console.WriteLine(JsonSerializer.Serialize(value));
|
||||
@@ -0,0 +1,80 @@
|
||||
# Windows service gate (lmxopcua#800)
|
||||
|
||||
This harness checks the SDK 2 upgrade on a real Windows node with the real `OtOpcUaHost` service. It installs a known-good SDK 1.5 build with
|
||||
`scripts/install/Install-Services.ps1`, then upgrades that install in place to the SDK 2 candidate. Config, LocalDb and PKI carry
|
||||
over with their ACLs. The service is then started and stopped twice, the ScriptWorker isolation installer is exercised, the
|
||||
known-good build is restored, and the node is cleaned up. The results of the first run are in
|
||||
[`evidence/2026-11-12-windev/RESULTS.md`](evidence/2026-11-12-windev/RESULTS.md).
|
||||
|
||||
**Where it may run.** Use an approved Windows node that has no `OtOpcUaHost` service, from an elevated local or SSH session
|
||||
in PowerShell 7. The Wonder-box hold still applies: this is not a deploy tool for vd03/vq03/vq04.
|
||||
|
||||
## Parts
|
||||
|
||||
| Part | What it is |
|
||||
|---|---|
|
||||
| `Invoke-ServiceGate.ps1` | One phase per invocation (see its header). Everything lives under `-Root` (default `C:\OtOpcUa800`). |
|
||||
| `Seeder/` | Writes a deployment artifact into the LocalDb that the service created, through the production `IDeploymentArtifactCache`. The artifact contains: one raw folder; one UNS area/line/equipment; a timer-driven virtual tag whose script is `return 800;`; three API keys (a 65-char enabled key, a 54-char enabled key, a disabled key); and read grants. It uses only APIs that exist at both SDK lines, so it is **built against the baseline tree** (copy the folder to the same path in a baseline checkout). |
|
||||
| `Probe/` | An SDK 2.0.1 client with peer auto-accept off. It can prepare a client certificate, list the advertised endpoints, or open a None/Sign/SignAndEncrypt Basic256Sha256 session and check for an expected result: `allow`, `key-deny`, `peer-deny` or `anon-deny`. On `allow` it reads `ServerStatus.State`, `ServiceLevel` and the virtual tag. The key comes from `GATE_PROBE_KEY`, never from an argument. |
|
||||
| `BindRepro/` | Reproduces lmxopcua#879 (listing only the secure profiles does not remove `None`). |
|
||||
|
||||
## Inputs (`<Root>\upload`)
|
||||
|
||||
`baseline-host`, `baseline-cli`, `candidate-host`, `candidate-cli` are self-contained `win-x64` publishes, made with
|
||||
`-p:PublishSingleFile=false -p:PublishTrimmed=false`. `probe` is the framework-dependent build of `Probe/`, and
|
||||
`seeder-baseline` is the framework-dependent publish of `Seeder/` from the baseline tree. `install-baseline` and
|
||||
`install-candidate` are `scripts/install/*.ps1,*.psm1` from each tree. Keep a manifest (`sha256 relative/path`, sorted) of
|
||||
every directory and compare it on the node before you start.
|
||||
|
||||
## Order
|
||||
|
||||
```powershell
|
||||
$g = 'C:\OtOpcUa800\upload\Invoke-ServiceGate.ps1'
|
||||
& $g -Phase Prepare # Install-Services.ps1 -Roles driver as NT SERVICE\OtOpcUaHost, node env, ACLs
|
||||
& $g -Phase Boot -Label b0 -AllowNotReady; & $g -Phase Stop -Label b0 # service creates PKI + LocalDb
|
||||
& $g -Phase Seed; & $g -Phase Trust
|
||||
& $g -Phase Boot -Label b1; & $g -Phase Checks -Label b1 -BaselineServer; & $g -Phase Stop -Label b1
|
||||
& $g -Phase Upgrade # backup, stage separately, carry appsettings/pki/data/logs with /COPYALL, swap
|
||||
& $g -Phase Boot -Label c1; & $g -Phase Checks -Label c1; & $g -Phase Stop -Label c1
|
||||
& $g -Phase Boot -Label c2; & $g -Phase Checks -Label c2; & $g -Phase Stop -Label c2
|
||||
& $g -Phase IsolationInstall -PatchedIsolation # see lmxopcua#883; drop the switch once the repo installer is fixed
|
||||
& $g -Phase Boot -Label c3; & $g -Phase Checks -Label c3; & $g -Phase IsolationVerify -Label c3; & $g -Phase Stop -Label c3
|
||||
& $g -Phase IsolationUninstall -PatchedIsolation
|
||||
& $g -Phase Rollback
|
||||
& $g -Phase Boot -Label r1; & $g -Phase Checks -Label r1 -BaselineServer; & $g -Phase Stop -Label r1
|
||||
& $g -Phase Compare -Label b1,c1,c2,c3,r1
|
||||
& $g -Phase Cleanup # then copy evidence off and remove <Root>
|
||||
```
|
||||
|
||||
`-Phase Observe -Label L` records a start the gate did not make (an SCM auto-start after a host reboot). Every phase stops
|
||||
at the first error. A `Checks` failure lists the failing cases by name. Secrets live in
|
||||
`<Root>\private\secrets.json`, which only SYSTEM and Administrators can read. Every output and log is checked against every
|
||||
task secret, and the evidence keeps only the redacted copies and the occurrence counts.
|
||||
|
||||
## What the checks mean
|
||||
|
||||
- **Strict channel.** These are gating cases. The probe's peer auto-accept is off. A trusted client gets a Basic256Sha256 Sign
|
||||
session and a SignAndEncrypt session. An untrusted client (both modes) must be refused with `BadSecurityChecksFailed`, and a
|
||||
server the client does not trust must be refused with `BadCertificateUntrusted`.
|
||||
- **Credentials.** These are gating cases. The 65-character production-format key and the 54-character key must both be
|
||||
admitted. A wrong secret, an unknown key id, a disabled key and anonymous must all be refused.
|
||||
- **Against the SDK 1.5 server** (`-BaselineServer`), the SDK 2 client's 65-character key is expected to be refused
|
||||
(lmxopcua#880). An SDK 2 client sends any password over 64 bytes as `RsaEncryptedSecret`, which 1.5.378 rejects with
|
||||
`BadIdentityTokenInvalid`. The 54-character key and the SDK 1.5 CLI with the 65-character key are the positive controls.
|
||||
- **CLIs.** The CLI that matches each SDK line reads `ServerStatus` over SignAndEncrypt with an API key. The CLIs auto-accept
|
||||
the server certificate by design, so these reads do not count as strict-peer coverage.
|
||||
- **ScriptWorker isolation.** `IsolationInstall`/`IsolationUninstall` run `Install-ScriptWorkerIsolation.ps1`. The script
|
||||
runs once under PowerShell 7 and once under Windows PowerShell 5.1, so both must work. The script's dry run happens first.
|
||||
Without `-PatchedIsolation` the repository copy is used, and that copy fails on both hosts (lmxopcua#883). With
|
||||
`-PatchedIsolation` it uses `<Root>\upload\install-candidate-patched`, which is the repository copy plus
|
||||
`evidence/2026-11-12-windev/isolation-installer-883.diff`. `IsolationVerify` needs the service running. It checks:
|
||||
- worker processes are children of the host and run under a restricted token;
|
||||
- the elevated administrator is refused on the worker pipe;
|
||||
- `script-runner` health and the PE cache.
|
||||
- **Findings, not gating.** The script records which endpoints the server advertises, and the result of a session over the
|
||||
`None` endpoint (lmxopcua#879).
|
||||
|
||||
**Cleanup caution.** `Cleanup` deletes `OtOpcUaHost` with `sc.exe delete`. It deliberately does not run
|
||||
`scripts/install/Uninstall-Services.ps1`, because that script also stops and deletes `OtOpcUaWonderwareHistorian`, which
|
||||
other work may still run (windev does). A virtual-account profile (`C:\Windows\ServiceProfiles\OtOpcUaHost`) stays loaded until
|
||||
the next reboot. Remove it afterwards.
|
||||
@@ -0,0 +1,54 @@
|
||||
// #800 Windows service gate: seed a deployment artifact into an existing (service-created) LocalDb through
|
||||
// the production cache API. Usage: Seeder <localdb-path>. Credentials come from the environment only:
|
||||
// GATE_API_KEY (enabled key, production 65-character form), GATE_API_KEY_SHORT (enabled key whose secret is
|
||||
// short enough that the whole password stays <= 64 bytes, so an SDK 2 client sends it in the legacy
|
||||
// UserName-token format instead of RsaEncryptedSecret), GATE_API_KEY_DISABLED (carried with Enabled=false) and
|
||||
// Security__ApiKeys__Pepper. Nothing secret is printed.
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using ZB.MOM.WW.OtOpcUa.Core.Authorization;
|
||||
using ZB.MOM.WW.OtOpcUa.Host.Configuration;
|
||||
using ZB.MOM.WW.OtOpcUa.Runtime.DeploymentCache;
|
||||
|
||||
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(60));
|
||||
var localDb = Path.GetFullPath(args[0]);
|
||||
if (!File.Exists(localDb)) throw new InvalidOperationException("The LocalDb must already exist (created by the service).");
|
||||
var config = new ConfigurationBuilder().AddInMemoryCollection(new Dictionary<string, string?> { ["LocalDb:Path"] = localDb }).Build();
|
||||
await using var provider = new ServiceCollection().AddLogging().AddOtOpcUaLocalDb(config).BuildServiceProvider();
|
||||
var pepper = Environment.GetEnvironmentVariable("Security__ApiKeys__Pepper") ?? throw new InvalidOperationException("Missing pepper.");
|
||||
|
||||
object Key(string variable, string name, bool enabled)
|
||||
{
|
||||
var presented = Environment.GetEnvironmentVariable(variable) ?? throw new InvalidOperationException("Missing " + variable + ".");
|
||||
if (!ApiKeySecret.TryParse(presented, out var id, out var secret)) throw new InvalidOperationException("Invalid key format in " + variable + ".");
|
||||
return new { ApiKeyId = id, Name = name, Principal = name, Enabled = enabled,
|
||||
SecretHash = ApiKeySecret.ComputeHash(secret, pepper), CreatedUtc = DateTime.UtcNow };
|
||||
}
|
||||
|
||||
const string source = "return 800;";
|
||||
var artifact = JsonSerializer.SerializeToUtf8Bytes(new
|
||||
{
|
||||
Clusters = new[] { new { ClusterId = "gate800", Name = "Gate800" } },
|
||||
RawFolders = new[] { new { RawFolderId = "gate800", Name = "Gate800", ClusterId = "gate800" } },
|
||||
UnsAreas = new[] { new { UnsAreaId = "gate800-area", Name = "GateArea", ClusterId = "gate800" } },
|
||||
UnsLines = new[] { new { UnsLineId = "gate800-line", UnsAreaId = "gate800-area", Name = "GateLine" } },
|
||||
Equipment = new[] { new { EquipmentId = "EQ-000000000800", UnsLineId = "gate800-line", Name = "GateEquipment", MachineCode = "GATE800" } },
|
||||
Scripts = new[] { new { ScriptId = "gate800-script", Name = "Gate800Script", SourceCode = source,
|
||||
SourceHash = Convert.ToHexStringLower(SHA256.HashData(Encoding.UTF8.GetBytes(source))), Language = "CSharp" } },
|
||||
VirtualTags = new[] { new { VirtualTagId = "gate800-vt", EquipmentId = "EQ-000000000800", Name = "GateValue",
|
||||
DataType = "Int32", ScriptId = "gate800-script", ChangeTriggered = false, TimerIntervalMs = 1000, Historize = false, Enabled = true } },
|
||||
ApiKeys = new[] { Key("GATE_API_KEY", "gate800-enabled", true), Key("GATE_API_KEY_SHORT", "gate800-short", true),
|
||||
Key("GATE_API_KEY_DISABLED", "gate800-disabled", false) },
|
||||
NodeAcls = new[]
|
||||
{
|
||||
new { NodeAclId = "gate800-read", ClusterId = "gate800", Principal = "gate800-enabled", ScopeKind = 0, ScopeId = (string?)null, PermissionFlags = 7 },
|
||||
new { NodeAclId = "gate800-short-read", ClusterId = "gate800", Principal = "gate800-short", ScopeKind = 0, ScopeId = (string?)null, PermissionFlags = 7 },
|
||||
},
|
||||
});
|
||||
var revision = Convert.ToHexStringLower(SHA256.HashData(artifact));
|
||||
await provider.GetRequiredService<IDeploymentArtifactCache>().StoreAsync("gate800",
|
||||
ZB.MOM.WW.OtOpcUa.Commons.Types.DeploymentId.NewId().ToString(), revision, artifact, deadline.Token);
|
||||
Console.WriteLine(JsonSerializer.Serialize(new { result = "seeded-through-public-cache", localDb, revision, bytes = artifact.Length }));
|
||||
@@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!-- Seed-only tool for the #800 Windows service gate. It uses only the LocalDb/cache/API-key
|
||||
surface that exists unchanged at the SDK 1.5 baseline and at SDK 2 master, so the same source
|
||||
is built against the baseline tree to seed the baseline install (see README.md). -->
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../../../../src/Server/ZB.MOM.WW.OtOpcUa.Host/ZB.MOM.WW.OtOpcUa.Host.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,185 @@
|
||||
# lmxopcua#800: Windows service gate on windev (2026-11-12)
|
||||
|
||||
**Result: steps 1, 2, 4 and 5 passed; step 3 passed only partly.** The SDK 2 candidate upgraded in place under the real
|
||||
`OtOpcUaHost` Windows service:
|
||||
- it reused the existing application certificate byte-for-byte, with its file ACLs unchanged;
|
||||
- it passed the strict-peer and API-key checks on three starts;
|
||||
- it rolled back to the known-good build with the same identity.
|
||||
|
||||
The ScriptWorker runtime isolation works under a real service session, but **the repository installer fails on Windows**
|
||||
(lmxopcua#883). The runtime part of step 3 was proven with the #883 patch, not with the shipped script. Three
|
||||
pre-existing findings were filed: #879, #880 (a rollback and QA-compat risk) and #883.
|
||||
|
||||
## Environment
|
||||
|
||||
- **Node:** windev (`DESKTOP-6JL3KKO`, 10.100.0.48). Elevated SSH session, PowerShell 7.6.10; Windows PowerShell 5.1 was also
|
||||
used for the installer.
|
||||
- **Host change during the run:** the coordinator power-cycled the node between steps 1 and 2 to reconfigure it (36 → 16 vCPUs,
|
||||
latency sensitivity High). The installed service auto-started across that reboot (row `b2reboot`). Timings before and after the
|
||||
reboot are not like-for-like.
|
||||
- **Clock:** the Windows Time service is stopped. Before the reboot the clock was about 9 minutes slow, after it about 14 s.
|
||||
All probes ran on the same box, so #873 skew does not apply.
|
||||
- **Left untouched:** the existing MxAccessGw (`:5120`/`:5130`) and OtOpcUaWonderwareHistorian services were never touched.
|
||||
- **Ports:** the test service used only task ports: HTTP `127.0.0.1:18800`, OPC UA `14841`, Akka `18801`.
|
||||
|
||||
## Artifacts
|
||||
|
||||
Every artifact is a self-contained win-x64 publish, built on macOS (.NET SDK 10.0.204). Each manifest lists `sha256 path` and
|
||||
was matched file-for-file on windev before use.
|
||||
|
||||
| Artifact | Source | Files | Manifest SHA-256 | Main binary SHA-256 |
|
||||
|---|---|---:|---|---|
|
||||
| Known-good Host | master `efb9197a0f48802450474413c58b9d0c461b836d` (last SDK 1.5.378.182 master commit) | 1376 | `28bdba9e…49d18d` | `OtOpcUa.Host.exe` `f9a193c6c7d224006094e26ce4cd1616961bcb9048ff38a468786618a26e3a91` |
|
||||
| Candidate Host | master `438484fdca4df12be6fbcae71cfbbeabb9386004` (SDK 2.0.1; Opc.Ua.Core file version 2.0.1.2) | 1396 | `e7b6683e…090c5e34` | `OtOpcUa.Host.exe` `6e9efdde592eb342719e9c0d47783e306bc9dd697ae80fc32d45dd1538a52000` |
|
||||
| Candidate CLI | `438484fd` | 241 | `dee9a60e…2fdd1504` | `e2c88c071733e5807a260ee33d5064e1ec13178d2562aab8d7faff763b6974a0` |
|
||||
| Known-good CLI | `efb9197a` | 210 | `f7715725…0c217c66` | `257b5b13e980072e46f9405aeddbbddb440a17ad9d26e122ede3fddb15cb27cf` |
|
||||
| Probe (SDK 2.0.1) | this directory at `438484fd` | 1132 | `abe1d8b6…ba070` | `Probe.dll` `64597faadab6511b174c4c9aa1f5fd06054ffccbb5b77b841c318838e6cbb9fa` |
|
||||
| Seeder | this directory, built in the `efb9197a` tree | 413 | `ec93daf8…7106561` | `Seeder.dll` `18690a15628f028df95bd4a578049a3997f31e41c22a5a06ee04e50739920de5` |
|
||||
|
||||
The full manifests are `manifest-*.txt` in this directory. The candidate `script-worker\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe` is
|
||||
`9dc0558bb62231487dafcd1b792bbe280b5bafc8849cb0347b14fb50483cfc04`, one of the 275 files in `script-worker\`.
|
||||
|
||||
## Install
|
||||
|
||||
- **Install command:** `scripts/install/Install-Services.ps1 -InstallRoot C:\OtOpcUa800\OtOpcUa -ServiceAccount 'NT SERVICE\OtOpcUaHost' -Roles driver`,
|
||||
from the known-good tree. It is the repository-supported method; vd03 runs the same `OtOpcUaHost` sc.exe service.
|
||||
- **Node configuration:** set in the service `Environment` value, 26 entries, digest `fd534f8d…`. The digest was the same at every
|
||||
known-good and candidate start except `c3`, where the isolation run adds 3 entries.
|
||||
- single-node driver: `FetchAndCache`, with an unreachable central;
|
||||
- secrets SQLite outside the content root;
|
||||
- pepper;
|
||||
- LDAP and ACL off;
|
||||
- `AllowAnonymous=false`, auto-accept off;
|
||||
- `EnabledSecurityProfiles=[SignAndEncrypt, Sign]`.
|
||||
- **ACLs:** `C:\OtOpcUa800` was protected with SYSTEM and Administrators only. The service account got RX on the install folder
|
||||
and Modify on `pki\`, `data\` and `logs\`.
|
||||
- **First start (`b0`):** the service created its PKI (owner = the service SID; the private key inherits service-M,
|
||||
SYSTEM-F, Administrators-F), its LocalDb and its logs. It reached Healthy with no deployment.
|
||||
- **Seed:** the service was stopped, and the `efb9197a`-built seeder wrote one deployment through `IDeploymentArtifactCache`. The
|
||||
deployment holds a raw folder, a UNS equipment with a timer virtual tag (`return 800;`), a 65-character key, a 54-character key, a
|
||||
disabled key and read grants.
|
||||
- **Trust:** the probe and CLI certificates were placed in `pki\trusted\certs`.
|
||||
|
||||
## Start/stop record
|
||||
|
||||
Every start was through `Start-Service` and every stop through `Stop-Service`, except `b2reboot`. Health means `/health/ready`,
|
||||
`/healthz` and `/health/active`, all 200 and Healthy. ServiceLevel was read over OPC UA.
|
||||
|
||||
| Start | Build | How | Ready after | ServiceLevel | App cert thumbprint (SHA-1) | Stop | Exit | Secrets in logs |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| b0 | known-good | Start-Service, empty LocalDb | 13.4 s | — | `CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA` (created) | 1.6 s | 0 | 0 |
|
||||
| b1 | known-good | Start-Service | 12.4 s | 250 | same | 1.6 s | 0 | 0 |
|
||||
| b2reboot | known-good | **SCM auto-start after the host reboot** | — | — | same | 1.6 s | 0 | 0 |
|
||||
| b3, b4 | known-good | Start-Service (b4 after re-seeding the negative keys) | 8.4 s, 8.3 s | 250 | same | 1.6 s | 0 | 0 |
|
||||
| **c1** | **candidate** | Start-Service after the in-place upgrade | 15.3 s | 255 | **same** | 1.8 s | 0 | 0 |
|
||||
| **c2** | **candidate** | Start-Service | 15.1 s | 255 | **same** | 1.8 s | 0 | 0 |
|
||||
| c3 | candidate | Start-Service, `Scripting:Runner=OutOfProcess` with a worker identity | 15.1 s | 255 | same | 1.8 s | 0 | 0 |
|
||||
| **r1** | **known-good (rollback)** | Start-Service | 8.5 s | 250 | **same** | 1.6 s | 0 | 0 |
|
||||
|
||||
**Certificate:** the DER SHA-256 was `F38E6B2E…3F845` at every start.
|
||||
|
||||
**PKI tree:** `compare-b2reboot-…-r1.json` digests every PKI path with its SHA-256 and SDDL. The digest was identical
|
||||
(`c8517c1d0298…`, 13 entries) at b2reboot, b3, b4, c1, c2 and r1. At c3 the only difference was the inherited
|
||||
`(D;…;CC;;;<worker SID>)` deny ACE from the isolation installer; file hashes were unchanged, and the ACE was gone again at r1.
|
||||
b1 had 10 entries; the 3 later ones are `pki\rejected\…`, the untrusted test client that the SDK filed as rejected.
|
||||
|
||||
**Other observations:**
|
||||
- The LocalDb file ACLs were the same across all starts.
|
||||
- Each stop left no leftover host process and no leftover workers.
|
||||
- The scans covered the rolling logs, the Serilog selflog and the Application event log, with redacted copies kept. They found
|
||||
0 occurrences of any task secret: the API keys and their secret parts, the pepper, the fetch key and the KEK.
|
||||
- ServiceLevel is 250 on the known-good build and 255 on the candidate, which matches vd03's 255 on `5fb4b4db`.
|
||||
- Readiness took about 15 s on the candidate against about 8.4 s on the known-good build after the reboot. This is an observation,
|
||||
not a gate criterion.
|
||||
|
||||
## Protocol checks (same case set at every checked start; `checks-*.json`)
|
||||
|
||||
Every check used the SDK 2.0.1 probe with peer auto-accept off, Basic256Sha256. "Gating" cases must all pass.
|
||||
|
||||
| Case | Known-good (b4, r1) | Candidate (c1, c2, c3) |
|
||||
|---|---|---|
|
||||
| SignAndEncrypt + Sign, 54-char valid key | admitted; State 0 Good, ServiceLevel 250, VT 800 Good | admitted; ServiceLevel 255, VT 800 Good |
|
||||
| SignAndEncrypt + Sign, 65-char valid key (production form) | **`BadIdentityTokenInvalid`** (#880, expected denial) | admitted, Good |
|
||||
| wrong secret (Sign + SignAndEncrypt), unknown id, disabled key, 54-char | `BadIdentityTokenRejected` | `BadIdentityTokenRejected` |
|
||||
| wrong secret / unknown id, 65-char | `BadIdentityTokenInvalid` | `BadIdentityTokenRejected` |
|
||||
| anonymous | denied (`BadIdentityTokenInvalid`; not advertised) | denied |
|
||||
| untrusted client, Sign + SignAndEncrypt | `BadSecurityChecksFailed` | `BadSecurityChecksFailed` |
|
||||
| untrusted server (client trust list emptied) | `BadCertificateUntrusted` | `BadCertificateUntrusted` |
|
||||
| actual CLI read `ServerStatus`, SignAndEncrypt + API key | SDK 1.5 CLI 65-char Good; SDK 2 CLI 54-char Good | SDK 1.5 CLI 65-char Good; SDK 2 CLI 54- and 65-char Good |
|
||||
| *finding:* SDK 2 CLI with the 65-char key | `BadIdentityTokenInvalid` (#880) | Good |
|
||||
| *finding:* advertised endpoints | **None/None + Sign + SignAndEncrypt** (#879) | same |
|
||||
| *finding:* session over the None endpoint, valid key | admitted (#879) | admitted |
|
||||
|
||||
## Step 3: ScriptWorker (`isolation-*.json`)
|
||||
|
||||
The out-of-process runner is opt-in, and no deployed node configures it; vd03 runs InProcess. On windev:
|
||||
|
||||
1. **Package.** The candidate's `script-worker\` holds the self-contained worker apphost and is 275 files.
|
||||
2. **The repository installer fails** (#883). This is the step #794 requires.
|
||||
- **pwsh 7:** `-WhatIf` lists 7 steps and changes nothing. The real run creates the anchor service and the PE cache, then
|
||||
throws `DirectoryInfo … GetAccessControl`.
|
||||
- **Windows PowerShell 5.1:** it throws `property 'Count' cannot be found` (StrictMode) at PeEntriesDir.
|
||||
- **`-Uninstall`** fails the same way, so the partial state could not be rolled back with the tool.
|
||||
3. **With the #883 patch** (`isolation-installer-883.diff`):
|
||||
- **Install and re-apply.** Apply ran under pwsh, then re-apply under 5.1 left all 7 steps `unchanged`.
|
||||
- **Anchor service.** `OtOpcUaScriptWorker` is DISABLED, as `NT SERVICE\OtOpcUaScriptWorker`, SID
|
||||
`S-1-5-80-1846135827-…-3023753135` (matches #794).
|
||||
- **Folder ACLs.** The install folder has `(OI)(CI)(DENY)(S,RD)` for the worker and `script-worker\` has `(RX)`.
|
||||
- **PE cache.** It is protected with SYSTEM, Administrators and the host account at F; `pe\` adds the worker at M.
|
||||
- **Firewall.** `OtOpcUa-ScriptWorker-BlockOutbound` is Outbound/Block/Any on the worker exe.
|
||||
- **Service environment.** It gained exactly `Scripting__Worker__Identity` and `Scripting__Worker__PeCacheDir`, plus the
|
||||
gate's `Scripting__Runner=OutOfProcess`; the other entries were kept.
|
||||
4. **Runtime under the real service (c3).**
|
||||
- **Worker process.** `ScriptWorker[0] started` as the child of the host, run as a restricted copy of
|
||||
`NT SERVICE\OtOpcUaHost` (`IsTokenRestricted=true`, 1 privilege).
|
||||
- **Window-station grant.** It works under a real service session: coreclr loaded, which windev over SSH could not prove
|
||||
for #794.
|
||||
- **Pipe ACL.** The `otopcua-sw-*` pipe refuses the elevated administrator (`UnauthorizedAccessException`).
|
||||
- **Health.** `script-runner` reports Healthy "Out-of-process script runner ready", with the PE cache on and 1 `pe\` entry.
|
||||
- **Virtual tag.** It evaluated out of process to 800 Good.
|
||||
- **Stop.** No worker survived the stop.
|
||||
- **Not exercised:** dropped-packet firewall logging.
|
||||
5. **Uninstall.** `-Uninstall` under 5.1 and then again under pwsh left every step `unchanged`. The anchor and the firewall rule
|
||||
were gone, the environment digest was back to `fd534f8d…`, and the install-folder ACL was back to its original state.
|
||||
|
||||
## Upgrade and rollback mechanics (`upgrade.json`, `rollback.json`)
|
||||
|
||||
**Upgrade**, with the service stopped:
|
||||
- `reg export` of the service key, and a `robocopy /E /COPYALL /DCOPY:DAT` backup (1386 files).
|
||||
- The candidate was staged in a separate folder and given the install-folder DACL.
|
||||
- The box's `appsettings*.json` were carried over; they are byte-identical to the candidate publisher's.
|
||||
- `pki\`, `data\` and `logs\` were carried over with `/COPYALL`.
|
||||
- The folders were swapped with `Move-Item`. The service `PathName` was unchanged.
|
||||
|
||||
**Rollback**, with the service stopped:
|
||||
- The candidate was moved to quarantine and the known-good folder was moved back.
|
||||
- The current `pki\` and `data\` were carried back with `/COPYALL`. No data rollback: the candidate-written LocalDb opened
|
||||
cleanly in the known-good build, as on vd03.
|
||||
|
||||
## Cleanup
|
||||
|
||||
These were removed:
|
||||
- the service, with `sc.exe delete`;
|
||||
- the `OtOpcUaScriptWorker` anchor and its firewall rule;
|
||||
- `C:\OtOpcUa800`;
|
||||
- the gate scripts in the profile.
|
||||
|
||||
Do **not** use `Uninstall-Services.ps1` on windev: it also stops and deletes `OtOpcUaWonderwareHistorian`.
|
||||
|
||||
After cleanup:
|
||||
- `%LOCALAPPDATA%\OtOpcUaClient` was restored from its backup (its `settings.json` and `logs\` are from 2026-05-24).
|
||||
- The firewall rule count is back to 876.
|
||||
- MxAccessGw is Running with `:5130/health/ready` 200, and OtOpcUaWonderwareHistorian is Running.
|
||||
|
||||
**Residual:** the virtual-account profile `C:\Windows\ServiceProfiles\OtOpcUaHost`, with its ProfileList entry, stays loaded
|
||||
until the next reboot. Remove it after that with
|
||||
`Get-CimInstance Win32_UserProfile | ? SID -eq 'S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059' | Remove-CimInstance`.
|
||||
|
||||
`gate-run.log` lists every phase invocation and its exit code. The first `Prepare` line reported exit 0 even though the wrapper
|
||||
had failed (the remote `$PSStyle` quoting). That attempt stopped before creating the service, and the phase was re-run.
|
||||
|
||||
## Real-world cross-reference
|
||||
|
||||
wonder-app-vd03 (DEV) has run master `5fb4b4db` on SDK 2.0.1 since 2026-11-12. It reused the app cert `A873DF51…` and reports
|
||||
ServiceLevel 255 with Good reads; see #782 and `docs/deploy/vd03-upgrade-b8b4c18f-to-master.md`. That record is consistent
|
||||
with this run but is not a controlled install/rollback.
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"label": "b0",
|
||||
"startUtc": "2026-11-12T14:47:18.1970129Z",
|
||||
"readyUtc": "2026-11-12T14:47:31.5487425Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 34212,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":29.855,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":8.6509,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":8.6794},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":8.6977,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.272,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1087,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2461,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.7643,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.5322}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 4096,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 37112,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"label": "b1",
|
||||
"startUtc": "2026-11-12T14:48:19.0862606Z",
|
||||
"readyUtc": "2026-11-12T14:48:31.5156681Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 30296,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":30.1769,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":6.1396,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":6.1854},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":11.0363,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":15.7473,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1077,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.3796,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":6.0234,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":9.4713}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 90112,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"label": "b2reboot",
|
||||
"observedOnly": true,
|
||||
"osBootUtc": "2026-11-12T15:04:11.5000000Z",
|
||||
"processStartUtc": "2026-11-12T15:04:50.3472397Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 6608,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":25.365,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":5.3026,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":5.4619},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":7.9438,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.3351,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1093,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1924,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.9423,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.3108}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 90112,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"label": "b3",
|
||||
"startUtc": "2026-11-12T15:08:05.6801720Z",
|
||||
"readyUtc": "2026-11-12T15:08:14.0315324Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 8796,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":23.0889,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":4.816,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":5.784},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":8.0389,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.8999,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1007,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2109,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.9478,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.8223}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 98304,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"label": "b4",
|
||||
"startUtc": "2026-11-12T15:09:50.1618664Z",
|
||||
"readyUtc": "2026-11-12T15:09:58.4770896Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 18400,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":23.981,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":4.8648,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":5.4181},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":7.7352,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.7062,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1116,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2289,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.3046,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.6803}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"label": "c1",
|
||||
"startUtc": "2026-11-12T15:11:49.9031494Z",
|
||||
"readyUtc": "2026-11-12T15:12:05.2270581Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 13908,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":24.8702,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":4.6094,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":6.0269},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":8.3375,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":8.0621,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1374,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2333,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.678,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.8852}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"label": "c2",
|
||||
"startUtc": "2026-11-12T15:13:20.4976467Z",
|
||||
"readyUtc": "2026-11-12T15:13:35.5660747Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 19340,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":23.5057,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":4.4901,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":5.1086},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":8.1631,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.2614,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1266,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2399,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.4544,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.3776}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
{
|
||||
"label": "c3",
|
||||
"startUtc": "2026-11-12T15:18:45.5096154Z",
|
||||
"readyUtc": "2026-11-12T15:19:00.6042443Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 22564,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Scripting__Runner",
|
||||
"Scripting__Worker__Identity",
|
||||
"Scripting__Worker__PeCacheDir",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "24622724efc7a949f1abc1a99eb9312b6808d8c962c0f70bf92b9f7e253e3be4",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":40.2869,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":4.7419,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Out-of-process script runner ready.\",\"durationMs\":30.4737,\"data\":{\"state\":\"Ready\",\"suspects\":0,\"quarantined\":0,\"peCache\":true,\"shard.0\":\"not started\",\"shard.1\":\"not started\",\"shard.iso\":\"not started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":7.0756,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":8.0117,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.1178,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2403,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.7678,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":5.0213}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;OICIID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;OICI;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"label": "r1",
|
||||
"startUtc": "2026-11-12T15:21:11.9269626Z",
|
||||
"readyUtc": "2026-11-12T15:21:20.3872449Z",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Running",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 23576,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":24.4506,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":5.2988,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":5.5822},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":8.6047,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":7.2399,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.14,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2441,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":3.4978,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":4.4174}}}"
|
||||
}
|
||||
],
|
||||
"snapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-shm",
|
||||
"dir": false,
|
||||
"length": 32768,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db-wal",
|
||||
"dir": false,
|
||||
"length": 0,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
{
|
||||
"label": "b1",
|
||||
"utc": "2026-11-12T14:49:27.6538031Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "endpoints-secure-only",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": -532462766,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": null,
|
||||
"output": "Unhandled exception. [80200000] (BadIdentityTokenInvalid)\r\n[80200000] (BadIdentityTokenInvalid)\r\n"
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": -532462766,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": null,
|
||||
"output": "Unhandled exception. [80200000] (BadIdentityTokenInvalid)\r\n[80200000] (BadIdentityTokenInvalid)\r\n"
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"cli": {
|
||||
"name": "actual-cli-encrypt-read",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 1,
|
||||
"good": false,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "ERROR\r\nOpc.Ua.ServiceResultException: [80200000] (BadIdentityTokenInvalid)\r\n at Opc.Ua.ClientBase.ValidateResponse(ResponseHeader header) \r\n at Opc.Ua.SessionClient.ActivateSessionAsync(RequestHeader requestHeader, SignatureData clientSignature, ArrayOf`1 clientSoftwareCertificates, ArrayOf`1 localeIds, ExtensionObject userIdentityToken, SignatureData userTokenSignature, CancellationToken ct) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.DefaultSessionFactory.CreateAsync(ApplicationConfiguration configuration, ITransportWaitingConnection connection, ConfiguredEndpoint endpoint, Boolean updateBeforeConnect, Boolean checkDomain, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, DiagnosticsMasks returnDiagnostics, CancellationToken ct) \r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters.DefaultSessionFactory.CreateSessionAsync(ApplicationConfiguration config, EndpointDescription endpoint, String sessionName, UInt32 sessionTimeoutMs, UserIdentity identity, Boolean validateServerHostName, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\Adapters\\DefaultSessionFactory.cs:27\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectToEndpointAsync(ConnectionSettings settings, String endpointUrl, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:801\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectAsync(ConnectionSettings settings, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:129\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.CommandBase.CreateServiceAndConnectAsync(CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\CommandBase.cs:116\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:47\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:78\r\n at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \\_\\CliFx\\CliApplication.cs:144\r\n at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in \\_\\CliFx\\CliApplication.cs:185\r\n"
|
||||
},
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.108,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0338,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.1396},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2145,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.8042,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0195,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1708,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1307,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":0.932}}}"
|
||||
}
|
||||
],
|
||||
"failed": [
|
||||
"endpoints-secure-only",
|
||||
"encrypt-valid-key",
|
||||
"sign-valid-key",
|
||||
"actual-cli-encrypt-read"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,386 @@
|
||||
{
|
||||
"label": "b3",
|
||||
"baselineServer": true,
|
||||
"utc": "2026-11-12T15:09:08.8712399Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:08:56.8887040Z\r\nServer Time: 2026-11-12T15:08:56.8887040Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:09:00\r\nServer Time: 11/12/2026 15:09:00\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 1,
|
||||
"good": false,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "ERROR\r\nOpc.Ua.ServiceResultException: [80200000] (BadIdentityTokenInvalid)\r\n at Opc.Ua.ClientBase.ValidateResponse(ResponseHeader header) \r\n at Opc.Ua.SessionClient.ActivateSessionAsync(RequestHeader requestHeader, SignatureData clientSignature, ArrayOf`1 clientSoftwareCertificates, ArrayOf`1 localeIds, ExtensionObject userIdentityToken, SignatureData userTokenSignature, CancellationToken ct) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.DefaultSessionFactory.CreateAsync(ApplicationConfiguration configuration, ITransportWaitingConnection connection, ConfiguredEndpoint endpoint, Boolean updateBeforeConnect, Boolean checkDomain, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, DiagnosticsMasks returnDiagnostics, CancellationToken ct) \r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters.DefaultSessionFactory.CreateSessionAsync(ApplicationConfiguration config, EndpointDescription endpoint, String sessionName, UInt32 sessionTimeoutMs, UserIdentity identity, Boolean validateServerHostName, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\Adapters\\DefaultSessionFactory.cs:27\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectToEndpointAsync(ConnectionSettings settings, String endpointUrl, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:801\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectAsync(ConnectionSettings settings, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:129\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.CommandBase.CreateServiceAndConnectAsync(CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\CommandBase.cs:116\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:47\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:78\r\n at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \\_\\CliFx\\CliApplication.cs:144\r\n at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in \\_\\CliFx\\CliApplication.cs:185\r\n"
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":0.767,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0183,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.0326},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1027,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.3042,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0179,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1307,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1167,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":0.7645}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
{
|
||||
"label": "b4",
|
||||
"baselineServer": true,
|
||||
"utc": "2026-11-12T15:10:57.9938311Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:10:46.4132866Z\r\nServer Time: 2026-11-12T15:10:46.4132866Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:10:49\r\nServer Time: 11/12/2026 15:10:49\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 1,
|
||||
"good": false,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "ERROR\r\nOpc.Ua.ServiceResultException: [80200000] (BadIdentityTokenInvalid)\r\n at Opc.Ua.ClientBase.ValidateResponse(ResponseHeader header) \r\n at Opc.Ua.SessionClient.ActivateSessionAsync(RequestHeader requestHeader, SignatureData clientSignature, ArrayOf`1 clientSoftwareCertificates, ArrayOf`1 localeIds, ExtensionObject userIdentityToken, SignatureData userTokenSignature, CancellationToken ct) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.DefaultSessionFactory.CreateAsync(ApplicationConfiguration configuration, ITransportWaitingConnection connection, ConfiguredEndpoint endpoint, Boolean updateBeforeConnect, Boolean checkDomain, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, DiagnosticsMasks returnDiagnostics, CancellationToken ct) \r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters.DefaultSessionFactory.CreateSessionAsync(ApplicationConfiguration config, EndpointDescription endpoint, String sessionName, UInt32 sessionTimeoutMs, UserIdentity identity, Boolean validateServerHostName, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\Adapters\\DefaultSessionFactory.cs:27\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectToEndpointAsync(ConnectionSettings settings, String endpointUrl, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:801\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectAsync(ConnectionSettings settings, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:129\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.CommandBase.CreateServiceAndConnectAsync(CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\CommandBase.cs:116\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:47\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:78\r\n at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \\_\\CliFx\\CliApplication.cs:144\r\n at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in \\_\\CliFx\\CliApplication.cs:185\r\n"
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":0.9159,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0201,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.1409},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1152,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.6714,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0181,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.101,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1893,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":1.0444}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
@@ -0,0 +1,438 @@
|
||||
{
|
||||
"label": "c1",
|
||||
"baselineServer": false,
|
||||
"utc": "2026-11-12T15:13:04.8497018Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:12:53.0936370Z\r\nServer Time: 2026-11-12T15:12:53.0936370Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:12:56\r\nServer Time: 11/12/2026 15:12:56\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:12:59\r\nServer Time: 11/12/2026 15:12:59\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.0117,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0223,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.0737},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1811,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":2.1305,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0191,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.3989,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1264,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":1.0621}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
@@ -0,0 +1,438 @@
|
||||
{
|
||||
"label": "c2",
|
||||
"baselineServer": false,
|
||||
"utc": "2026-11-12T15:14:35.3220231Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:14:23.7255185Z\r\nServer Time: 2026-11-12T15:14:23.7255185Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:14:26\r\nServer Time: 11/12/2026 15:14:26\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:14:30\r\nServer Time: 11/12/2026 15:14:30\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.02,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0233,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.0864},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1824,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.6986,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0176,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1567,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1421,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":0.7848}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
@@ -0,0 +1,438 @@
|
||||
{
|
||||
"label": "c3",
|
||||
"baselineServer": false,
|
||||
"utc": "2026-11-12T15:20:01.3312759Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:19:49.5647995Z\r\nServer Time: 2026-11-12T15:19:49.5647995Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:19:52\r\nServer Time: 11/12/2026 15:19:52\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:19:55\r\nServer Time: 11/12/2026 15:19:55\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "255 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":3.6484,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0868,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Out-of-process script runner ready.\",\"durationMs\":3.429,\"data\":{\"state\":\"Ready\",\"suspects\":0,\"quarantined\":0,\"peCache\":true,\"shard.0\":\"up pid 20708, 0 in flight\",\"shard.1\":\"not started\",\"shard.iso\":\"not started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2006,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":1.5915,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0192,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1154,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1425,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":0.8783}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
{
|
||||
"label": "r1",
|
||||
"baselineServer": true,
|
||||
"utc": "2026-11-12T15:22:20.1216845Z",
|
||||
"cases": [
|
||||
{
|
||||
"name": "encrypt-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-wrong-secret-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-disabled-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenRejected",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-wrong-secret-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-unknown-key-id-65",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"key-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "key-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-anonymous",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"anon-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "anon-deny",
|
||||
"result": "denied",
|
||||
"status": "BadIdentityTokenInvalid",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "sign-untrusted-client",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"sign",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "Sign",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadSecurityChecksFailed",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "encrypt-untrusted-server",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"encrypt",
|
||||
"peer-deny"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "SignAndEncrypt",
|
||||
"expected": "peer-deny",
|
||||
"result": "denied",
|
||||
"status": "BadCertificateUntrusted",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"clis": [
|
||||
{
|
||||
"name": "cli-sdk1-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\baseline-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 2026-11-12T15:22:08.4019503Z\r\nServer Time: 2026-11-12T15:22:08.4019503Z\r\n"
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-54",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 0,
|
||||
"good": true,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "Node: i=2259\r\nValue: 0\r\nStatus: Good [0x00000000]\r\nSource Time: 11/12/2026 15:22:11\r\nServer Time: 11/12/2026 15:22:11\r\n"
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"name": "endpoints-advertised",
|
||||
"args": [
|
||||
"endpoints",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa"
|
||||
],
|
||||
"exit": 3,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "endpoints",
|
||||
"result": "insecure-offered",
|
||||
"endpoints": [
|
||||
{
|
||||
"mode": "None",
|
||||
"policy": "None",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "Sign",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
},
|
||||
{
|
||||
"mode": "SignAndEncrypt",
|
||||
"policy": "Basic256Sha256",
|
||||
"tokens": [
|
||||
"UserName"
|
||||
],
|
||||
"certSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "none-endpoint-valid-key-54",
|
||||
"args": [
|
||||
"probe",
|
||||
"C:\\OtOpcUa800\\state\\client-pki",
|
||||
"opc.tcp://localhost:14841/OtOpcUa",
|
||||
"none",
|
||||
"allow"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "probe",
|
||||
"securityMode": "None",
|
||||
"policy": "None",
|
||||
"expected": "allow",
|
||||
"result": "allowed",
|
||||
"serverState": "0 (Good [0x00000000])",
|
||||
"serviceLevel": "250 (Good [0x00000000])",
|
||||
"unsNamespaceIndex": 3,
|
||||
"virtualTag": "800 (Good [0x00000000])",
|
||||
"serverCertSha1": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "cli-sdk2-encrypt-key-65",
|
||||
"exe": "C:\\OtOpcUa800\\upload\\candidate-cli\\ZB.MOM.WW.OtOpcUa.Client.CLI.exe",
|
||||
"argv": "read --url <url> --security encrypt --username apikey --password <task-secret> --node i=2259",
|
||||
"exit": 1,
|
||||
"good": false,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"output": "ERROR\r\nOpc.Ua.ServiceResultException: [80200000] (BadIdentityTokenInvalid)\r\n at Opc.Ua.ClientBase.ValidateResponse(ResponseHeader header) \r\n at Opc.Ua.SessionClient.ActivateSessionAsync(RequestHeader requestHeader, SignatureData clientSignature, ArrayOf`1 clientSoftwareCertificates, ArrayOf`1 localeIds, ExtensionObject userIdentityToken, SignatureData userTokenSignature, CancellationToken ct) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.Session.OpenCoreAsync(SessionClient serviceClient, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, Boolean checkDomain, Boolean closeChannel, CancellationToken ct, ArrayOf`1 refreshedEndpoints) \r\n at Opc.Ua.Client.DefaultSessionFactory.CreateAsync(ApplicationConfiguration configuration, ITransportWaitingConnection connection, ConfiguredEndpoint endpoint, Boolean updateBeforeConnect, Boolean checkDomain, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, ArrayOf`1 preferredLocales, DiagnosticsMasks returnDiagnostics, CancellationToken ct) \r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters.DefaultSessionFactory.CreateSessionAsync(ApplicationConfiguration config, EndpointDescription endpoint, String sessionName, UInt32 sessionTimeoutMs, UserIdentity identity, Boolean validateServerHostName, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\Adapters\\DefaultSessionFactory.cs:27\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectToEndpointAsync(ConnectionSettings settings, String endpointUrl, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:801\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectAsync(ConnectionSettings settings, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:129\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.CommandBase.CreateServiceAndConnectAsync(CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\CommandBase.cs:116\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:47\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:78\r\n at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \\_\\CliFx\\CliApplication.cs:144\r\n at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in \\_\\CliFx\\CliApplication.cs:185\r\n"
|
||||
}
|
||||
],
|
||||
"health": [
|
||||
{
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":0.8278,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0201,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Scripts run in process (Scripting:Runner=InProcess).\",\"durationMs\":0.0834},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.0966,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200,
|
||||
"body": "Healthy"
|
||||
},
|
||||
{
|
||||
"path": "/health/active",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":2.2825,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.0195,\"data\":{\"status\":\"Started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.1182,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"cluster-primary\":{\"status\":\"Healthy\",\"description\":\"Active node for role \\u0027driver\\u0027 (oldest Up member).\",\"durationMs\":0.1288,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"activeRole\":\"driver\",\"activeNode\":\"akka.tcp://otopcua@127.0.0.1:18801\"}},\"localdb-replication\":{\"status\":\"Healthy\",\"description\":\"LocalDb replication is not configured on this node (default-OFF).\",\"durationMs\":1.677}}}"
|
||||
}
|
||||
],
|
||||
"failed": [],
|
||||
"outputsWithSecrets": []
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"label": "b1",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "1725dca654a9879b582186b711cbf2474f84f68a9749cde4f997fd3d0f74bb94",
|
||||
"pkiEntries": 10,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "b2reboot",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "b3",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "b4",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "c1",
|
||||
"exe": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004",
|
||||
"opcUaCore": "2.0.1.2",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "c2",
|
||||
"exe": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004",
|
||||
"opcUaCore": "2.0.1.2",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"identical": {
|
||||
"certificate": true,
|
||||
"pkiFilesAndAcls": false,
|
||||
"environment": true
|
||||
}
|
||||
}
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"label": "b2reboot",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "b3",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "b4",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "c1",
|
||||
"exe": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004",
|
||||
"opcUaCore": "2.0.1.2",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "c2",
|
||||
"exe": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004",
|
||||
"opcUaCore": "2.0.1.2",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "c3",
|
||||
"exe": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004",
|
||||
"opcUaCore": "2.0.1.2",
|
||||
"envDigest": "24622724efc7a949f1abc1a99eb9312b6808d8c962c0f70bf92b9f7e253e3be4",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "ce1d5ebc52768f9fe1df18aac343c589eaf74724012a269fb3e48fe3eec818ca",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(D;ID;CC;;;S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "r1",
|
||||
"exe": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d",
|
||||
"opcUaCore": "1.5.378.182",
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"certs": [
|
||||
"CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845"
|
||||
],
|
||||
"pkiDigest": "c8517c1d02985ca739c6259829827ddfedbcecd33055d60df0aaad5f3b892a77",
|
||||
"pkiEntries": 13,
|
||||
"dataAcl": [
|
||||
"data\\otopcua-localdb.db|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-shm|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)",
|
||||
"data\\otopcua-localdb.db-wal|O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"identical": {
|
||||
"certificate": true,
|
||||
"pkiFilesAndAcls": false,
|
||||
"environment": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
### 2026-11-12T14:55:25Z phase=Prepare label=x
|
||||
### exit 0
|
||||
### 2026-11-12T14:55:55Z phase=Prepare label=x
|
||||
### exit 0
|
||||
### 2026-11-12T14:56:27Z phase=Boot label=b0 -AllowNotReady
|
||||
### exit 0
|
||||
### 2026-11-12T14:56:55Z phase=Stop label=b0
|
||||
### exit 0
|
||||
### 2026-11-12T14:57:06Z phase=Seed label=x
|
||||
### exit 0
|
||||
### 2026-11-12T14:57:13Z phase=Trust label=x
|
||||
### exit 0
|
||||
### 2026-11-12T14:57:28Z phase=Boot label=b1
|
||||
### exit 0
|
||||
### 2026-11-12T14:57:47Z phase=Checks label=b1
|
||||
### exit 1
|
||||
### 2026-11-12T15:00:37Z phase=Stop label=b1
|
||||
### exit 0
|
||||
### 2026-11-12T15:06:32Z phase=Observe label=b2reboot
|
||||
### exit 0
|
||||
### 2026-11-12T15:06:49Z phase=Stop label=b2reboot
|
||||
### exit 0
|
||||
### 2026-11-12T15:08:12Z phase=Seed label=x
|
||||
### exit 0
|
||||
### 2026-11-12T15:08:19Z phase=Boot label=b3
|
||||
### exit 0
|
||||
### 2026-11-12T15:08:34Z phase=Checks label=b3 -BaselineServer
|
||||
### exit 0
|
||||
### 2026-11-12T15:09:58Z phase=Stop label=b3
|
||||
### exit 0
|
||||
### 2026-11-12T15:10:09Z phase=Seed label=x
|
||||
### exit 0
|
||||
### 2026-11-12T15:10:15Z phase=Boot label=b4
|
||||
### exit 0
|
||||
### 2026-11-12T15:10:30Z phase=Checks label=b4 -BaselineServer
|
||||
### exit 0
|
||||
### 2026-11-12T15:11:53Z phase=Stop label=b4
|
||||
### exit 0
|
||||
### 2026-11-12T15:12:04Z phase=Upgrade label=x
|
||||
### exit 0
|
||||
### 2026-11-12T15:12:28Z phase=Boot label=c1
|
||||
### exit 0
|
||||
### 2026-11-12T15:12:51Z phase=Checks label=c1
|
||||
### exit 0
|
||||
### 2026-11-12T15:13:56Z phase=Stop label=c1
|
||||
### exit 0
|
||||
### 2026-11-12T15:14:08Z phase=Boot label=c2
|
||||
### exit 0
|
||||
### 2026-11-12T15:14:31Z phase=Checks label=c2
|
||||
### exit 0
|
||||
### 2026-11-12T15:15:36Z phase=Stop label=c2
|
||||
### exit 0
|
||||
### 2026-11-12T15:16:02Z phase=Compare label=b1,b2reboot,b3,b4,c1,c2
|
||||
### exit 0
|
||||
### 2026-11-12T15:16:22Z phase=IsolationInstall label=x
|
||||
### exit 1
|
||||
### 2026-11-12T15:17:21Z phase=IsolationInstall label=x
|
||||
### exit 1
|
||||
### 2026-11-12T15:18:19Z phase=IsolationUninstall label=x
|
||||
### exit 1
|
||||
### 2026-11-12T15:19:31Z phase=IsolationInstall label=x -PatchedIsolation
|
||||
### exit 0
|
||||
### 2026-11-12T15:20:09Z phase=Boot label=c3
|
||||
### exit 0
|
||||
### 2026-11-12T15:20:33Z phase=Checks label=c3
|
||||
### exit 0
|
||||
### 2026-11-12T15:21:39Z phase=IsolationVerify label=c3
|
||||
### exit 0
|
||||
### 2026-11-12T15:22:00Z phase=Stop label=c3
|
||||
### exit 0
|
||||
### 2026-11-12T15:22:11Z phase=IsolationUninstall label=x -PatchedIsolation
|
||||
### exit 0
|
||||
### 2026-11-12T15:22:46Z phase=Rollback label=x
|
||||
### exit 0
|
||||
### 2026-11-12T15:22:52Z phase=Boot label=r1
|
||||
### exit 0
|
||||
### 2026-11-12T15:23:08Z phase=Checks label=r1 -BaselineServer
|
||||
### exit 0
|
||||
### 2026-11-12T15:24:13Z phase=Stop label=r1
|
||||
### exit 0
|
||||
### 2026-11-12T15:24:23Z phase=Compare label=b2reboot,b3,b4,c1,c2,c3,r1
|
||||
### exit 0
|
||||
### 2026-11-12T15:25:06Z phase=Cleanup label=x
|
||||
### exit 1
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"whatIf": {
|
||||
"script": "install-candidate-patched",
|
||||
"host": "pwsh",
|
||||
"args": "-WhatIf",
|
||||
"exit": 0,
|
||||
"output": "ScriptWorker isolation install: worker identity NT SERVICE\\OtOpcUaScriptWorker (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135), host account NT SERVICE\\OtOpcUaHost (S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)\r\nWhat if: Performing the operation \"AnchorService: register the disabled anchor service 'OtOpcUaScriptWorker' so the virtual account 'NT SERVICE\\OtOpcUaScriptWorker' (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135) resolves by name (never started)\" on target \"OtOpcUaScriptWorker\".\r\nWhat if: Performing the operation \"PeCacheDir: create the PE cache directory and set its ACL (protected; SYSTEM, Administrators, host account full control; no Users; no worker access to the key or markers)\" on target \"C:\\OtOpcUa800\\state\\pe-cache\".\r\nWhat if: Performing the operation \"PeEntriesDir: create the PE entries directory and grant the worker identity Modify (it compiles and writes HMAC'd entries)\" on target \"C:\\OtOpcUa800\\state\\pe-cache\\pe\".\r\nWhat if: Performing the operation \"WorkerFolderAcl: grant the worker identity read+execute on its own binaries\" on target \"C:\\OtOpcUa800\\OtOpcUa\\script-worker\".\r\nWhat if: Performing the operation \"InstallRootDeny: deny the worker identity ReadData/ListDirectory on the install folder (appsettings, logs, host binaries); script-worker\\ stays readable\" on target \"C:\\OtOpcUa800\\OtOpcUa\".\r\nWhat if: Performing the operation \"FirewallBlockOutbound: add a Windows Firewall rule blocking ALL outbound traffic from 'C:\\OtOpcUa800\\OtOpcUa\\script-worker\\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe' (every profile)\" on target \"OtOpcUa-ScriptWorker-BlockOutbound\".\r\nWhat if: Performing the operation \"HostServiceEnv: set Scripting__Worker__Identity=NT SERVICE\\OtOpcUaScriptWorker and Scripting__Worker__PeCacheDir=C:\\OtOpcUa800\\state\\pe-cache in the 'OtOpcUaHost' service environment (other entries kept; takes effect on the next service start)\" on target \"OtOpcUaHost\".\r\n"
|
||||
},
|
||||
"whatIfChangedState": false,
|
||||
"apply": {
|
||||
"script": "install-candidate-patched",
|
||||
"host": "pwsh",
|
||||
"args": "",
|
||||
"exit": 0,
|
||||
"output": "ScriptWorker isolation install: worker identity NT SERVICE\\OtOpcUaScriptWorker (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135), host account NT SERVICE\\OtOpcUaHost (S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)\r\n [unchanged] AnchorService OtOpcUaScriptWorker\r\n [unchanged] PeCacheDir C:\\OtOpcUa800\\state\\pe-cache\r\n [changed ] PeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe\r\n [changed ] WorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker\r\n [changed ] InstallRootDeny C:\\OtOpcUa800\\OtOpcUa\r\n [changed ] FirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound\r\n [changed ] HostServiceEnv OtOpcUaHost\r\n\r\nDone. Host configuration for this node:\r\n Scripting:Worker:Identity = NT SERVICE\\OtOpcUaScriptWorker\r\n Scripting:Worker:PeCacheDir = C:\\OtOpcUa800\\state\\pe-cache\r\n Restart OtOpcUaHost for a configuration change to take effect.\r\n\r\n\u001b[32;1mId \u001b[0m\u001b[32;1m Target \u001b[0m\u001b[32;1m Outcome\u001b[0m\r\n\u001b[32;1m-- \u001b[0m \u001b[32;1m------ \u001b[0m \u001b[32;1m-------\u001b[0m\r\nAnchorService OtOpcUaScriptWorker unchanged\r\nPeCacheDir C:\\OtOpcUa800\\state\\pe-cache unchanged\r\nPeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe changed\r\nWorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker changed\r\nInstallRootDeny C:\\OtOpcUa800\\OtOpcUa changed\r\nFirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound changed\r\nHostServiceEnv OtOpcUaHost changed\r\n\r\n"
|
||||
},
|
||||
"reapply": {
|
||||
"script": "install-candidate-patched",
|
||||
"host": "powershell.exe",
|
||||
"args": "",
|
||||
"exit": 0,
|
||||
"output": "ScriptWorker isolation install: worker identity NT SERVICE\\OtOpcUaScriptWorker (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135), host account NT SERVICE\\OtOpcUaHost (S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)\r\n [unchanged] AnchorService OtOpcUaScriptWorker\r\n [unchanged] PeCacheDir C:\\OtOpcUa800\\state\\pe-cache\r\n [unchanged] PeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe\r\n [unchanged] WorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker\r\n [unchanged] InstallRootDeny C:\\OtOpcUa800\\OtOpcUa\r\n [unchanged] FirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound\r\n [unchanged] HostServiceEnv OtOpcUaHost\r\n\r\nDone. Host configuration for this node:\r\n Scripting:Worker:Identity = NT SERVICE\\OtOpcUaScriptWorker\r\n Scripting:Worker:PeCacheDir = C:\\OtOpcUa800\\state\\pe-cache\r\n Restart OtOpcUaHost for a configuration change to take effect.\r\n\r\nId Target Outcome \r\n-- ------ ------- \r\nAnchorService OtOpcUaScriptWorker unchanged\r\nPeCacheDir C:\\OtOpcUa800\\state\\pe-cache unchanged\r\nPeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe unchanged\r\nWorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker unchanged\r\nInstallRootDeny C:\\OtOpcUa800\\OtOpcUa unchanged\r\nFirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound unchanged\r\nHostServiceEnv OtOpcUaHost unchanged\r\n\r\n\r\n"
|
||||
},
|
||||
"reapplyAllUnchanged": true,
|
||||
"envBefore": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envAfter": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Scripting__Runner",
|
||||
"Scripting__Worker__Identity",
|
||||
"Scripting__Worker__PeCacheDir",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"anchor": "[SC] QueryServiceConfig SUCCESS\r\n\r\nSERVICE_NAME: OtOpcUaScriptWorker\r\n TYPE : 10 WIN32_OWN_PROCESS \r\n START_TYPE : 4 DISABLED\r\n ERROR_CONTROL : 1 NORMAL\r\n BINARY_PATH_NAME : \"C:\\OtOpcUa800\\OtOpcUa\\script-worker\\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe\"\r\n LOAD_ORDER_GROUP : \r\n TAG : 0\r\n DISPLAY_NAME : OtOpcUa ScriptWorker identity (anchor, never started)\r\n DEPENDENCIES : \r\n SERVICE_START_NAME : NT SERVICE\\OtOpcUaScriptWorker\r\n",
|
||||
"anchorSid": "\r\nNAME: OtOpcUaScriptWorker\r\nSERVICE SID: S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135\r\nSTATUS: Active\r\n",
|
||||
"installAcl": "C:\\OtOpcUa800\\OtOpcUa NT SERVICE\\OtOpcUaScriptWorker:(OI)(CI)(DENY)(S,RD)\r\n NT SERVICE\\OtOpcUaHost:(OI)(CI)(RX)\r\n NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)\r\n BUILTIN\\Administrators:(I)(OI)(CI)(F)\r\n\r\nSuccessfully processed 1 files; Failed processing 0 files\r\n",
|
||||
"workerDirAcl": "C:\\OtOpcUa800\\OtOpcUa\\script-worker NT SERVICE\\OtOpcUaScriptWorker:(OI)(CI)(RX)\r\n NT SERVICE\\OtOpcUaScriptWorker:(I)(OI)(CI)(DENY)(S,RD)\r\n NT SERVICE\\OtOpcUaHost:(I)(OI)(CI)(RX)\r\n NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)\r\n BUILTIN\\Administrators:(I)(OI)(CI)(F)\r\n\r\nSuccessfully processed 1 files; Failed processing 0 files\r\n",
|
||||
"peCacheAcl": "C:\\OtOpcUa800\\state\\pe-cache NT AUTHORITY\\SYSTEM:(OI)(CI)(F)\r\n BUILTIN\\Administrators:(OI)(CI)(F)\r\n NT SERVICE\\OtOpcUaHost:(OI)(CI)(F)\r\n\r\nSuccessfully processed 1 files; Failed processing 0 files\r\n",
|
||||
"peAcl": "C:\\OtOpcUa800\\state\\pe-cache\\pe NT SERVICE\\OtOpcUaScriptWorker:(OI)(CI)(M)\r\n NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)\r\n BUILTIN\\Administrators:(I)(OI)(CI)(F)\r\n NT SERVICE\\OtOpcUaHost:(I)(OI)(CI)(F)\r\n\r\nSuccessfully processed 1 files; Failed processing 0 files\r\n",
|
||||
"firewall": {
|
||||
"name": "OtOpcUa-ScriptWorker-BlockOutbound",
|
||||
"direction": "Outbound",
|
||||
"action": "Block",
|
||||
"enabled": "True",
|
||||
"profile": "Any",
|
||||
"program": "C:\\OtOpcUa800\\OtOpcUa\\script-worker\\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe"
|
||||
},
|
||||
"workerExeSha256": "9DC0558BB62231487DAFCD1B792BBE280B5BAFC8849CB0347B14FB50483CFC04",
|
||||
"workerFiles": 275
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
--- /private/tmp/claude-501/-Users-dohertj2-Desktop-scadaproj/a6d396bd-5e2c-4e21-a60d-576a5e97f6b7/scratchpad/wt800/scripts/install/ScriptWorkerIsolation.psm1 2026-11-12 09:40:54
|
||||
+++ /private/tmp/claude-501/-Users-dohertj2-Desktop-scadaproj/a6d396bd-5e2c-4e21-a60d-576a5e97f6b7/scratchpad/art/install-candidate-patched/ScriptWorkerIsolation.psm1 2026-11-12 10:18:53
|
||||
@@ -188,16 +188,17 @@
|
||||
if ($Remove) { return 'unchanged' }
|
||||
throw "$Path does not exist"
|
||||
}
|
||||
- $item = Get-Item -LiteralPath $Path
|
||||
- $acl = $item.GetAccessControl('Access')
|
||||
+ $acl = Get-Acl -LiteralPath $Path # #800: DirectoryInfo.GetAccessControl does not exist on PowerShell 7 (.NET)
|
||||
$identity = [System.Security.Principal.SecurityIdentifier]::new($Sid)
|
||||
$explicit = @($acl.GetAccessRules($true, $false, [System.Security.Principal.SecurityIdentifier]) |
|
||||
Where-Object { $_.IdentityReference -eq $identity })
|
||||
$inherit = [System.Security.AccessControl.InheritanceFlags]'ContainerInherit, ObjectInherit'
|
||||
- $wanted = if ($Remove) { @() } else {
|
||||
- , [System.Security.AccessControl.FileSystemAccessRule]::new($identity, [System.Security.AccessControl.FileSystemRights]$Mask,
|
||||
+ # #800: @() keeps $wanted an array; the if-expression unrolled it to a scalar ($null on -Remove), and .Count on that
|
||||
+ # throws under Set-StrictMode -Version Latest on Windows PowerShell 5.1.
|
||||
+ $wanted = @(if (-not $Remove) {
|
||||
+ [System.Security.AccessControl.FileSystemAccessRule]::new($identity, [System.Security.AccessControl.FileSystemRights]$Mask,
|
||||
$inherit, [System.Security.AccessControl.PropagationFlags]::None, [System.Security.AccessControl.AccessControlType]$Type)
|
||||
- }
|
||||
+ })
|
||||
$same = ($explicit.Count -eq $wanted.Count) -and (
|
||||
$wanted.Count -eq 0 -or (
|
||||
[int]$explicit[0].FileSystemRights -eq $Mask -and $explicit[0].AccessControlType -eq $wanted[0].AccessControlType -and
|
||||
@@ -205,7 +206,7 @@
|
||||
if ($same) { return 'unchanged' }
|
||||
$acl.PurgeAccessRules($identity)
|
||||
foreach ($rule in $wanted) { $acl.AddAccessRule($rule) }
|
||||
- $item.SetAccessControl($acl)
|
||||
+ Set-Acl -LiteralPath $Path -AclObject $acl
|
||||
'changed'
|
||||
}
|
||||
|
||||
@@ -252,12 +253,11 @@
|
||||
}
|
||||
$changed = $false
|
||||
if (-not (Test-Path -LiteralPath $d.Path)) { New-Item -ItemType Directory -Path $d.Path -Force | Out-Null; $changed = $true }
|
||||
- $item = Get-Item -LiteralPath $d.Path
|
||||
- $current = $item.GetAccessControl('Access, Owner').GetSecurityDescriptorSddlForm('Access, Owner')
|
||||
+ $current = (Get-Acl -LiteralPath $d.Path).GetSecurityDescriptorSddlForm('Access, Owner')
|
||||
$desired = [System.Security.AccessControl.DirectorySecurity]::new()
|
||||
$desired.SetSecurityDescriptorSddlForm($d.Sddl, 'Access, Owner')
|
||||
if ($current -ne $desired.GetSecurityDescriptorSddlForm('Access, Owner')) {
|
||||
- $item.SetAccessControl($desired) # propagates to the key file, pe\ and workers\ (inherited ACEs)
|
||||
+ Set-Acl -LiteralPath $d.Path -AclObject $desired # propagates to the key file, pe\ and workers\ (inherited ACEs)
|
||||
$changed = $true
|
||||
}
|
||||
return $(if ($changed) { 'changed' } else { 'unchanged' })
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"first": {
|
||||
"script": "install-candidate-patched",
|
||||
"host": "powershell.exe",
|
||||
"args": "-Uninstall",
|
||||
"exit": 0,
|
||||
"output": "ScriptWorker isolation ROLLBACK: worker identity NT SERVICE\\OtOpcUaScriptWorker (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135), host account NT SERVICE\\OtOpcUaHost (S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)\r\n [changed ] HostServiceEnv OtOpcUaHost\r\n [changed ] FirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound\r\n [changed ] InstallRootDeny C:\\OtOpcUa800\\OtOpcUa\r\n [changed ] WorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker\r\n [changed ] PeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe\r\n [changed ] AnchorService OtOpcUaScriptWorker\r\n\r\nRolled back. If the host still sets Scripting:Worker:Identity (appsettings or env), unset it and restart the host.\r\n\r\nId Target Outcome\r\n-- ------ -------\r\nHostServiceEnv OtOpcUaHost changed\r\nFirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound changed\r\nInstallRootDeny C:\\OtOpcUa800\\OtOpcUa changed\r\nWorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker changed\r\nPeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe changed\r\nAnchorService OtOpcUaScriptWorker changed\r\n\r\n\r\n"
|
||||
},
|
||||
"second": {
|
||||
"script": "install-candidate-patched",
|
||||
"host": "pwsh",
|
||||
"args": "-Uninstall",
|
||||
"exit": 0,
|
||||
"output": "ScriptWorker isolation ROLLBACK: worker identity NT SERVICE\\OtOpcUaScriptWorker (S-1-5-80-1846135827-3903057317-1998105452-3938448374-3023753135), host account NT SERVICE\\OtOpcUaHost (S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)\r\n [unchanged] HostServiceEnv OtOpcUaHost\r\n [unchanged] FirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound\r\n [unchanged] InstallRootDeny C:\\OtOpcUa800\\OtOpcUa\r\n [unchanged] WorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker\r\n [unchanged] PeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe\r\n [unchanged] AnchorService OtOpcUaScriptWorker\r\n\r\nRolled back. If the host still sets Scripting:Worker:Identity (appsettings or env), unset it and restart the host.\r\n\r\n\u001b[32;1mId \u001b[0m\u001b[32;1m Target \u001b[0m\u001b[32;1m Outcome\u001b[0m\r\n\u001b[32;1m-- \u001b[0m \u001b[32;1m------ \u001b[0m \u001b[32;1m-------\u001b[0m\r\nHostServiceEnv OtOpcUaHost unchanged\r\nFirewallBlockOutbound OtOpcUa-ScriptWorker-BlockOutbound unchanged\r\nInstallRootDeny C:\\OtOpcUa800\\OtOpcUa unchanged\r\nWorkerFolderAcl C:\\OtOpcUa800\\OtOpcUa\\script-worker unchanged\r\nPeEntriesDir C:\\OtOpcUa800\\state\\pe-cache\\pe unchanged\r\nAnchorService OtOpcUaScriptWorker unchanged\r\n\r\n"
|
||||
},
|
||||
"secondAllUnchanged": true,
|
||||
"anchorGone": true,
|
||||
"firewallGone": true,
|
||||
"installAcl": "C:\\OtOpcUa800\\OtOpcUa NT SERVICE\\OtOpcUaHost:(OI)(CI)(RX)\r\n NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)\r\n BUILTIN\\Administrators:(I)(OI)(CI)(F)\r\n\r\nSuccessfully processed 1 files; Failed processing 0 files\r\n",
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c"
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"hostPid": 22564,
|
||||
"workers": [
|
||||
{
|
||||
"pid": 20708,
|
||||
"parent": 22564,
|
||||
"parentIsHost": true,
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\script-worker\\ZB.MOM.WW.OtOpcUa.ScriptWorker.exe",
|
||||
"owner": "NT SERVICE\\OtOpcUaHost",
|
||||
"token": "restricted=True privilegeCount=1"
|
||||
}
|
||||
],
|
||||
"pipes": [
|
||||
{
|
||||
"pipe": "otopcua-sw-<random>",
|
||||
"adminConnect": "denied (UnauthorizedAccessException)"
|
||||
}
|
||||
],
|
||||
"ready": {
|
||||
"path": "/health/ready",
|
||||
"status": 200,
|
||||
"body": "{\"status\":\"Healthy\",\"totalDurationMs\":0.4111,\"entries\":{\"opcua-endpoint\":{\"status\":\"Healthy\",\"description\":\"OPC UA endpoint is listening\",\"durationMs\":0.021,\"data\":{\"status\":\"Started\"}},\"script-runner\":{\"status\":\"Healthy\",\"description\":\"Out-of-process script runner ready.\",\"durationMs\":0.1255,\"data\":{\"state\":\"Ready\",\"suspects\":0,\"quarantined\":0,\"peCache\":true,\"shard.0\":\"up pid 20708, 0 in flight\",\"shard.1\":\"not started\",\"shard.iso\":\"not started\"}},\"akka\":{\"status\":\"Healthy\",\"description\":\"Akka cluster member status: Up\",\"durationMs\":0.2321,\"data\":{\"selfAddress\":\"akka.tcp://otopcua@127.0.0.1:18801\",\"selfRoles\":[\"driver\"],\"memberCount\":1,\"unreachableCount\":0,\"leader\":\"akka.tcp://otopcua@127.0.0.1:18801\"}}}}"
|
||||
},
|
||||
"peFiles": 1,
|
||||
"hostLogWorkerLines": [
|
||||
"2026-11-12 10:19:01.608 -05:00 [INF] ScriptWorker[0] started, pid 20708"
|
||||
]
|
||||
}
|
||||
+827
@@ -0,0 +1,827 @@
|
||||
2026-11-12 09:47:21.912 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 09:47:22.071 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 09:47:23.231 -05:00 [INF] Starting remoting
|
||||
2026-11-12 09:47:23.798 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:23.799 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:23.830 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 09:47:23.839 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 09:47:23.911 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 09:47:24.090 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 09:47:24.090 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 09:47:24.144 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 09:47:24.202 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 09:47:29.129 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:29.190 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 09:47:29.199 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:29.211 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 09:47:29.213 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 09:47:29.439 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:47:29.456 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:29.472 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 09:47:29.492 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 09:47:29.493 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 09:47:29.516 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — the LocalDb cache is empty; entering Steady (no revision). The first dispatch will fetch this node's configuration from central.
|
||||
2026-11-12 09:47:30.414 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:30.981 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:47:31.322 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:31.499 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:31.507 -05:00 [INF] HTTP GET /health/ready responded 200 in 182.5640 ms
|
||||
2026-11-12 09:47:31.512 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 574.1624ms
|
||||
2026-11-12 09:47:32.632 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:47:32.640 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.643 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.643 -05:00 [INF] HTTP GET /healthz responded 200 in 2.9354 ms
|
||||
2026-11-12 09:47:32.644 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 14.0992ms
|
||||
2026-11-12 09:47:32.795 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:47:32.800 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] HTTP GET /health/active responded 200 in 9.8417 ms
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 15.5104ms
|
||||
2026-11-12 09:47:46.858 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 09:47:46.896 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 09:47:46.937 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 09:47:46.948 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 09:47:46.954 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:46.967 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 09:47:46.969 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 09:47:46.969 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:47:47.226 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1574929041] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 6b97cc89b57041bc800aec12f68624f7 }
|
||||
2026-11-12 09:47:47.984 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:47.984 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 09:47:47.991 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 09:47:48.011 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 09:47:48.015 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 09:47:48.016 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 09:47:48.048 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 09:47:48.055 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 09:47:48.129 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 09:47:48.130 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 09:47:48.147 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:48.242 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 09:48:21.887 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 09:48:22.023 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 09:48:23.107 -05:00 [INF] Starting remoting
|
||||
2026-11-12 09:48:23.666 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:48:23.667 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:48:23.699 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 09:48:23.707 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 09:48:23.759 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 09:48:23.905 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 09:48:23.906 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 09:48:23.968 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 09:48:24.083 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 09:48:28.817 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:48:28.873 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 09:48:28.880 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:48:28.891 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 09:48:28.892 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 09:48:29.114 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:48:29.130 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:48:29.150 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 09:48:29.162 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 09:48:29.164 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 09:48:29.365 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 09:48:29.373 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 643e5ab0bace45f4ab4ef14ceaf39add (rev 4ed5c123b0e328ea4745a10b2a36e875082642333760d320996d39162f9cd7b4) from the LocalDb pointer.
|
||||
2026-11-12 09:48:29.434 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=4ed5c123b0e3, keys=2, grants=1, resolvedScopes=0)
|
||||
2026-11-12 09:48:29.436 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 1 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 09:48:29.450 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 09:48:29.462 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 2:48:29 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 09:48:29.493 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 09:48:29.499 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 09:48:29.515 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 09:48:29.546 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=5429a1f78a59487db3c8abe1f1ca92c4, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 09:48:30.094 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:48:30.905 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:48:31.250 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:31.467 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:31.475 -05:00 [INF] HTTP GET /health/ready responded 200 in 222.9444 ms
|
||||
2026-11-12 09:48:31.483 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 610.0994ms
|
||||
2026-11-12 09:48:32.582 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:48:32.591 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.594 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.595 -05:00 [INF] HTTP GET /healthz responded 200 in 3.4068 ms
|
||||
2026-11-12 09:48:32.596 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 16.1997ms
|
||||
2026-11-12 09:48:32.765 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:48:32.767 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.787 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.788 -05:00 [INF] HTTP GET /health/active responded 200 in 20.8320 ms
|
||||
2026-11-12 09:48:32.789 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 24.2242ms
|
||||
2026-11-12 09:49:27.832 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:49:27.833 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.835 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.835 -05:00 [INF] HTTP GET /health/ready responded 200 in 2.3181 ms
|
||||
2026-11-12 09:49:27.836 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 4.6432ms
|
||||
2026-11-12 09:49:27.901 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:49:27.901 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.902 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.902 -05:00 [INF] HTTP GET /healthz responded 200 in 1.0003 ms
|
||||
2026-11-12 09:49:27.903 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.9765ms
|
||||
2026-11-12 09:49:28.064 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:49:28.064 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] HTTP GET /health/active responded 200 in 2.8578 ms
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.8678ms
|
||||
2026-11-12 09:51:29.033 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 09:51:29.077 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 09:51:29.121 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 09:51:29.135 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:51:29.148 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 38b220d7b51f4941b6ce0c8860538dd7 }
|
||||
2026-11-12 09:51:29.153 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 09:51:29.154 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 09:51:29.788 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 09:51:29.806 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:51:30.045 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = d54a63d230a544cea51229d1c79f51b2 }
|
||||
2026-11-12 09:51:30.159 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:51:30.160 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 09:51:30.165 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 09:51:30.182 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 09:51:30.184 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 09:51:30.186 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 09:51:30.215 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 09:51:30.225 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 09:51:30.303 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 09:51:30.304 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 09:51:30.321 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:51:30.401 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:04:56.024 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:04:56.179 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:04:57.507 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:04:58.103 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:04:58.105 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:04:58.139 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:04:58.147 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:04:58.200 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:04:58.332 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:04:58.332 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:04:58.405 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:04:58.515 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:05:03.710 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:05:03.787 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:05:03.795 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:05:03.806 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:05:03.807 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:05:04.129 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:05:04.135 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:05:04.145 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:05:04.145 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:05:04.216 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:05:04.221 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:05:04.483 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:05:04.501 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 643e5ab0bace45f4ab4ef14ceaf39add (rev 4ed5c123b0e328ea4745a10b2a36e875082642333760d320996d39162f9cd7b4) from the LocalDb pointer.
|
||||
2026-11-12 10:05:04.517 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=4ed5c123b0e3, keys=2, grants=1, resolvedScopes=0)
|
||||
2026-11-12 10:05:04.519 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 1 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:05:04.531 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:05:04.556 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1448635752] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:05:04 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:05:04.573 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:05:04.579 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:05:04.597 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:05:04.637 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=de9842c1962c46ed8c997fa12e1c7861, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:06:31.428 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:06:31.661 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.837 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.844 -05:00 [INF] HTTP GET /health/ready responded 200 in 201.5272 ms
|
||||
2026-11-12 10:06:31.850 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 501.0846ms
|
||||
2026-11-12 10:06:31.899 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:06:31.906 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.909 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.909 -05:00 [INF] HTTP GET /healthz responded 200 in 2.8073 ms
|
||||
2026-11-12 10:06:31.910 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 13.1742ms
|
||||
2026-11-12 10:06:32.049 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:06:32.051 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:32.059 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:32.059 -05:00 [INF] HTTP GET /health/active responded 200 in 9.4557 ms
|
||||
2026-11-12 10:06:32.060 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 11.9931ms
|
||||
2026-11-12 10:06:46.165 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:06:46.196 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:06:46.225 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:06:46.233 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:06:46.244 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:06:46.245 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:06:46.463 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1448635752] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = c49207ade9504980bb5e067875c3b6a3 }
|
||||
2026-11-12 10:06:47.014 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:06:47.030 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:06:47.149 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:06:47.149 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:06:47.153 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:06:47.167 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:06:47.169 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:06:47.170 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:06:47.190 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:06:47.197 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:06:47.258 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:06:47.259 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:06:47.270 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:06:47.353 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:08:07.790 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:08:07.914 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:08:08.767 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:08:09.205 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:08:09.206 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:08:09.232 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:08:09.239 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:08:09.281 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:08:09.386 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:08:09.387 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:08:09.434 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:08:09.515 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:08:13.142 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:08:13.189 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:08:13.195 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:08:13.205 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:08:13.206 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:08:13.382 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:08:13.393 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:08:13.405 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:08:13.422 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:08:13.423 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:08:13.583 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:08:13.592 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 3d8f782a33c14d68a0d171b466627cf8 (rev eec886c75573d93a4dfbdcc66c820e8c9c91b476a0786e8bd2c0ddce697397b9) from the LocalDb pointer.
|
||||
2026-11-12 10:08:13.618 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=eec886c75573, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:08:13.622 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:08:13.621 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:08:13.632 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:08:13.648 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1653866231] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:08:13 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:08:13.668 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:08:13.674 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:08:13.689 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:08:13.715 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=44e4e11ddc984e0a87bbe062eec3484a, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:08:13.857 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:13.996 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:14.004 -05:00 [INF] HTTP GET /health/ready responded 200 in 160.0664 ms
|
||||
2026-11-12 10:08:14.009 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 475.4836ms
|
||||
2026-11-12 10:08:14.265 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:08:15.022 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:08:15.030 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.033 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.033 -05:00 [INF] HTTP GET /healthz responded 200 in 3.5944 ms
|
||||
2026-11-12 10:08:15.034 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 15.6364ms
|
||||
2026-11-12 10:08:15.171 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:08:15.174 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.183 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.183 -05:00 [INF] HTTP GET /health/active responded 200 in 10.8910 ms
|
||||
2026-11-12 10:08:15.184 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.9139ms
|
||||
2026-11-12 10:08:28.597 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:28.600 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:08:31.552 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:31.552 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:08:56.606 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:08:56.607 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:08:59.977 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:59.977 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:09:08.535 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:09:08.536 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:09:09.011 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:09:09.012 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] HTTP GET /health/ready responded 200 in 2.2574 ms
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 4.6294ms
|
||||
2026-11-12 10:09:09.070 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:09:09.071 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.071 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.072 -05:00 [INF] HTTP GET /healthz responded 200 in 0.8873 ms
|
||||
2026-11-12 10:09:09.072 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.779ms
|
||||
2026-11-12 10:09:09.205 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:09:09.206 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.207 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.208 -05:00 [INF] HTTP GET /health/active responded 200 in 2.2448 ms
|
||||
2026-11-12 10:09:09.208 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.0775ms
|
||||
2026-11-12 10:09:35.707 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:09:35.736 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:09:35.766 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:09:35.775 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:35.786 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:09:35.787 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:09:36.012 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1653866231] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = faf56e9311e145f7ac79d1d47c07b181 }
|
||||
2026-11-12 10:09:36.616 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:09:36.632 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:09:36.697 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:36.697 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:09:36.701 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:09:36.714 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:09:36.716 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:09:36.718 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:09:36.737 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:09:36.744 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:09:36.800 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:09:36.801 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:09:36.812 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:36.876 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:09:52.278 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:09:52.390 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:09:53.241 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:09:53.665 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:53.666 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:53.689 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:09:53.695 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:09:53.735 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:09:53.843 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:09:53.843 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:09:53.894 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:09:53.969 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:09:57.513 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:57.558 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:09:57.565 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:57.574 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:09:57.576 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:09:57.884 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:09:57.891 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:57.904 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:09:57.917 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:09:57.919 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:09:58.050 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:09:58.086 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:09:58.097 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:09:58.119 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:09:58.124 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:09:58.135 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:09:58.153 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:09:58 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:09:58.175 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:09:58.184 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:09:58.199 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:09:58.226 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=a7a3ddc7f5b64ff2a9d3854689a50ddd, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:09:58.299 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:58.442 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:58.449 -05:00 [INF] HTTP GET /health/ready responded 200 in 163.7473 ms
|
||||
2026-11-12 10:09:58.454 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 486.493ms
|
||||
2026-11-12 10:09:58.642 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:59.385 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:09:59.392 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.395 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.395 -05:00 [INF] HTTP GET /healthz responded 200 in 2.9748 ms
|
||||
2026-11-12 10:09:59.396 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 13.9311ms
|
||||
2026-11-12 10:09:59.533 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:09:59.535 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.544 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.544 -05:00 [INF] HTTP GET /health/active responded 200 in 10.3647 ms
|
||||
2026-11-12 10:09:59.545 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.1326ms
|
||||
2026-11-12 10:10:12.848 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:12.851 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:15.982 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:15.982 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:18.909 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:10:18.910 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:21.733 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:10:21.733 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:24.592 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:10:24.592 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:27.438 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:10:27.439 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:46.131 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:10:46.131 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:10:49.488 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:49.488 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:57.663 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:57.663 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:58.139 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:10:58.140 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.141 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.142 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.9211 ms
|
||||
2026-11-12 10:10:58.142 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 3.7812ms
|
||||
2026-11-12 10:10:58.200 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:10:58.200 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] HTTP GET /healthz responded 200 in 0.6878 ms
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.4756ms
|
||||
2026-11-12 10:10:58.334 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:10:58.334 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.336 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.336 -05:00 [INF] HTTP GET /health/active responded 200 in 2.6780 ms
|
||||
2026-11-12 10:10:58.337 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.589ms
|
||||
2026-11-12 10:11:19.518 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:11:19.549 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:11:19.581 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:11:19.590 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:11:19.601 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:11:19.601 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:11:19.821 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = fa00b28a5f37482988cc3249d7cdfbcf }
|
||||
2026-11-12 10:11:20.154 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:11:20.171 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:11:20.395 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = a5cb7474db6c4dc0ab0fd57165ff6c88 }
|
||||
2026-11-12 10:11:20.516 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:11:20.516 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:11:20.521 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:11:20.534 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:11:20.537 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:11:20.538 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:11:20.557 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:11:20.564 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:11:20.623 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:11:20.624 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:11:20.636 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:11:20.700 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:11:52.203 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:11:52.319 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:11:53.201 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:11:53.633 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:11:53.634 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:11:53.659 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:11:53.665 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:11:53.705 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:11:53.810 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:11:53.811 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:11:53.858 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:11:53.955 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:12:04.048 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:12:04.308 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:12:04.314 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:12:04.326 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:12:04.328 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:12:04.506 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:12:04.521 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:12:04.533 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:12:04.548 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:12:04.550 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:12:04.700 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:12:04.709 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:12:04.747 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:12:04.752 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:12:04.758 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:12:04.774 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#161310405] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:12:04 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:12:04.782 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:12:04.871 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:12:04.876 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:12:04.891 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:12:04.913 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=1a5e5816bf9d4b2ca2a712c3c9f54533, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:12:05.048 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:12:05.192 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:12:05.199 -05:00 [INF] HTTP GET /health/ready responded 200 in 165.8171 ms
|
||||
2026-11-12 10:12:05.204 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 530.5234ms
|
||||
2026-11-12 10:12:05.387 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:12:06.105 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:12:06.112 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:12:06.115 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:12:06.115 -05:00 [INF] HTTP GET /healthz responded 200 in 3.2429 ms
|
||||
2026-11-12 10:12:06.116 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 14.5421ms
|
||||
2026-11-12 10:12:06.262 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:12:06.265 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:12:06.274 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:12:06.274 -05:00 [INF] HTTP GET /health/active responded 200 in 10.8077 ms
|
||||
2026-11-12 10:12:06.275 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.819ms
|
||||
2026-11-12 10:12:13.898 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:12:13.909 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:12:17.236 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:12:17.236 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:12:20.156 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:12:20.156 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:12:23.039 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:12:23.039 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:12:25.954 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:12:25.955 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:25.991 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:28.794 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:12:28.794 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:28.795 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:31.529 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:12:31.530 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:31.530 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:34.283 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:12:34.283 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:34.283 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:37.027 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a0d4ef215dba7e64
|
||||
2026-11-12 10:12:37.027 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:37.028 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:39.867 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 2fb099d966a5070e
|
||||
2026-11-12 10:12:39.867 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:12:39.868 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:12:45.063 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:12:45.109 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:12:45.140 -05:00 [ERR] ChannelId 24: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:12:47.591 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:12:47.592 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:12:47.592 -05:00 [ERR] ChannelId 26: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:12:50.188 -05:00 [ERR] TCPSERVERCHANNEL ForceChannelFault Transport=[::1]:51518, ChannelId=28, TokenId=1, Reason=[80AE0000] (BadConnectionClosed) 'Remote side closed the connection.'
|
||||
2026-11-12 10:12:52.816 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:12:52.816 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:12:56.130 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:12:56.130 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:12:59.317 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:12:59.317 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:13:04.521 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:13:04.521 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:13:04.991 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:13:04.992 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:04.994 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:04.994 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.8856 ms
|
||||
2026-11-12 10:13:04.995 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 3.7252ms
|
||||
2026-11-12 10:13:05.051 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:13:05.052 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:05.052 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:05.052 -05:00 [INF] HTTP GET /healthz responded 200 in 0.6389 ms
|
||||
2026-11-12 10:13:05.052 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.3727ms
|
||||
2026-11-12 10:13:05.185 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:13:05.186 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:05.188 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:05.188 -05:00 [INF] HTTP GET /health/active responded 200 in 2.9062 ms
|
||||
2026-11-12 10:13:05.188 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.7421ms
|
||||
2026-11-12 10:13:09.816 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:13:09.848 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:13:09.880 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:13:09.888 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:13:09.899 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:13:09.899 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:13:10.113 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#161310405] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 773bdf4e3d2348dfb5c06d6c36012c03 }
|
||||
2026-11-12 10:13:10.231 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:13:10.239 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:13:10.464 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#161310405] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 2b1a832063264f30b6c858d6e8721d9b }
|
||||
2026-11-12 10:13:10.809 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:13:10.809 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:13:10.813 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:13:10.826 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:13:10.828 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:13:10.830 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:13:10.850 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:13:10.857 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:13:10.919 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:13:10.920 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:13:10.931 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:13:22.555 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:13:22.667 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:13:23.515 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:13:23.941 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:13:23.942 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:13:23.965 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:13:23.971 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:13:24.010 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:13:24.112 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:13:24.113 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:13:24.160 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:13:24.253 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:13:34.203 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:13:34.455 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:13:34.461 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:13:34.474 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:13:34.475 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:13:34.648 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:13:34.666 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:13:34.677 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:13:34.686 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:13:34.687 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:13:34.843 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:13:34.851 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:13:34.885 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:13:34.890 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:13:34.902 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:13:34.903 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#75715599] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:13:34 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:13:34.986 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:13:34.991 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:13:35.005 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:13:35.029 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=be6a83ae39104dccafede7aef91d5b4d, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:13:35.123 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:13:35.382 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:35.531 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:13:35.532 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:35.539 -05:00 [INF] HTTP GET /health/ready responded 200 in 172.9391 ms
|
||||
2026-11-12 10:13:35.545 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 496.3598ms
|
||||
2026-11-12 10:13:36.438 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:13:36.445 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:36.448 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:36.448 -05:00 [INF] HTTP GET /healthz responded 200 in 3.2593 ms
|
||||
2026-11-12 10:13:36.449 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 14.4956ms
|
||||
2026-11-12 10:13:36.593 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:13:36.595 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:13:36.604 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:13:36.604 -05:00 [INF] HTTP GET /health/active responded 200 in 9.7515 ms
|
||||
2026-11-12 10:13:36.605 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 12.5724ms
|
||||
2026-11-12 10:13:44.082 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:13:44.093 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:13:47.460 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:13:47.460 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:13:50.397 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:13:50.398 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:13:53.362 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:13:53.362 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:13:56.392 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:13:56.393 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:13:56.429 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:13:59.181 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:13:59.181 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:13:59.182 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:14:02.030 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:14:02.030 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:14:02.031 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:14:04.871 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:14:04.871 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:14:04.872 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:14:07.705 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a0d4ef215dba7e64
|
||||
2026-11-12 10:14:07.705 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:14:07.705 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:14:10.520 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 2fb099d966a5070e
|
||||
2026-11-12 10:14:10.520 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:14:10.521 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:14:15.817 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:14:15.859 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:14:15.887 -05:00 [ERR] ChannelId 24: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:14:18.337 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:14:18.338 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:14:18.338 -05:00 [ERR] ChannelId 26: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:14:20.909 -05:00 [ERR] TCPSERVERCHANNEL ForceChannelFault Transport=[::1]:51734, ChannelId=28, TokenId=1, Reason=[80AE0000] (BadConnectionClosed) 'Remote side closed the connection.'
|
||||
2026-11-12 10:14:23.444 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:14:23.444 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:14:26.760 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:14:26.760 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:14:29.905 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:14:29.905 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:14:34.993 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:14:34.994 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:14:35.465 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:14:35.466 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.468 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.468 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.9052 ms
|
||||
2026-11-12 10:14:35.468 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 3.7748ms
|
||||
2026-11-12 10:14:35.525 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:14:35.525 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.525 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.525 -05:00 [INF] HTTP GET /healthz responded 200 in 0.4768 ms
|
||||
2026-11-12 10:14:35.525 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.0221ms
|
||||
2026-11-12 10:14:35.659 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:14:35.660 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.662 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:14:35.662 -05:00 [INF] HTTP GET /health/active responded 200 in 2.4626 ms
|
||||
2026-11-12 10:14:35.662 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.1399ms
|
||||
2026-11-12 10:14:40.047 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:14:40.079 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:14:40.110 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:14:40.119 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:14:40.130 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:14:40.131 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:14:40.350 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#75715599] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = e9cc4a3962b3413dbd73d36efaadf344 }
|
||||
2026-11-12 10:14:40.538 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:14:40.556 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:14:40.772 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#75715599] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = d78eec4799084958b6604f2649e233f0 }
|
||||
2026-11-12 10:14:41.045 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:14:41.045 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:14:41.049 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:14:41.062 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:14:41.065 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:14:41.066 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:14:41.085 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:14:41.092 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:14:41.149 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:14:41.150 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:14:41.162 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:18:47.623 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:18:47.743 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:18:48.591 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:18:49.014 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:18:49.015 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:18:49.040 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:18:49.046 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:18:49.084 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:18:49.192 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:18:49.192 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:18:49.240 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:18:49.330 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:18:59.357 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:18:59.615 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:18:59.621 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:18:59.634 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:18:59.635 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:18:59.844 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:18:59.851 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:18:59.862 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:18:59.877 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:18:59.879 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:19:00.021 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:19:00.029 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:19:00.063 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:19:00.068 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:19:00.079 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:19:00.082 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#296270987] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:19:00 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:19:00.143 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:19:00.148 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:19:00.163 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:19:00.164 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:19:00.186 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=574aa8bba2784738a46c3215c02e6e70, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:19:00.414 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:19:00.570 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:19:00.577 -05:00 [INF] HTTP GET /health/ready responded 200 in 179.1380 ms
|
||||
2026-11-12 10:19:00.582 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 493.9721ms
|
||||
2026-11-12 10:19:00.724 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:19:01.489 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:19:01.496 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:19:01.498 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:19:01.498 -05:00 [INF] HTTP GET /healthz responded 200 in 2.7944 ms
|
||||
2026-11-12 10:19:01.499 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 13.091ms
|
||||
2026-11-12 10:19:01.608 -05:00 [INF] ScriptWorker[0] started, pid 20708
|
||||
2026-11-12 10:19:01.634 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:19:01.636 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:19:01.645 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:19:01.646 -05:00 [INF] HTTP GET /health/active responded 200 in 10.6588 ms
|
||||
2026-11-12 10:19:01.646 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.6661ms
|
||||
2026-11-12 10:19:09.673 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:19:09.685 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:19:13.010 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:19:13.011 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:19:16.136 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:19:16.136 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:19:19.062 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:19:19.062 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:19:22.083 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:19:22.084 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:22.120 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:24.883 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:19:24.884 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:24.885 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:27.679 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:19:27.680 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:27.680 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:30.447 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:19:30.447 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:30.447 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:33.194 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a0d4ef215dba7e64
|
||||
2026-11-12 10:19:33.194 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:33.195 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:36.071 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 2fb099d966a5070e
|
||||
2026-11-12 10:19:36.071 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:19:36.072 -05:00 [WRN] SERVER - Service Fault Occurred. Reason=BadIdentityTokenRejected
|
||||
2026-11-12 10:19:41.393 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:19:41.433 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:19:41.460 -05:00 [ERR] ChannelId 24: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:19:44.040 -05:00 [ERR] Certificate [Subject=CN=Gate800Client, Thumbprint=C91ACD459294599052131D438FE9C4F4128637F5, NotBefore=2026-11-10, NotAfter=2027-11-10, KeyAlgorithm=1.2.840.113549.1.1.1] validation failed with suppressible errors but was rejected. Reason=Id: BadCertificateUntrusted
|
||||
SymbolicId: BadCertificateUntrusted
|
||||
Description: Certificate is not trusted..
|
||||
2026-11-12 10:19:44.041 -05:00 [ERR] Could not verify security on OpenSecureChannel request.
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
[801A0000] (BadCertificateUntrusted) 'BadCertificateInvalid'
|
||||
2026-11-12 10:19:44.041 -05:00 [ERR] ChannelId 26: ForceChannelFault due to Could not verify security on OpenSecureChannel request..
|
||||
2026-11-12 10:19:46.706 -05:00 [ERR] TCPSERVERCHANNEL ForceChannelFault Transport=[::1]:52421, ChannelId=28, TokenId=1, Reason=[80AE0000] (BadConnectionClosed) 'Remote side closed the connection.'
|
||||
2026-11-12 10:19:49.287 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:19:49.287 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:19:52.564 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:19:52.564 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:19:55.776 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:19:55.776 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:20:00.985 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:20:00.985 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:20:01.475 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:20:01.476 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.480 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.480 -05:00 [INF] HTTP GET /health/ready responded 200 in 4.6206 ms
|
||||
2026-11-12 10:20:01.480 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 6.241ms
|
||||
2026-11-12 10:20:01.537 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:20:01.537 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.537 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.538 -05:00 [INF] HTTP GET /healthz responded 200 in 0.4935 ms
|
||||
2026-11-12 10:20:01.538 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.0736ms
|
||||
2026-11-12 10:20:01.669 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:20:01.670 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.672 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:20:01.672 -05:00 [INF] HTTP GET /health/active responded 200 in 2.2441 ms
|
||||
2026-11-12 10:20:01.672 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 2.958ms
|
||||
2026-11-12 10:20:09.876 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:20:09.877 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:20:09.878 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:20:09.878 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.0382 ms
|
||||
2026-11-12 10:20:09.878 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 1.8189ms
|
||||
2026-11-12 10:20:25.926 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:20:25.983 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:20:26.013 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:20:26.021 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:20:26.032 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:20:26.033 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:20:26.245 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#296270987] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 8f8b33abdc33414280ab272cf8795a12 }
|
||||
2026-11-12 10:20:26.308 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:20:26.316 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:20:26.541 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#296270987] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 90e536ee79384f988ec9d34797188b88 }
|
||||
2026-11-12 10:20:26.941 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:20:26.941 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:20:26.945 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:20:26.957 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:20:26.960 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:20:26.961 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:20:26.981 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:20:26.987 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:20:27.044 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:20:27.045 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:20:27.055 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
2026-11-12 09:48:29.400 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:05:04.505 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:08:13.604 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:09:58.110 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:12:04.726 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:13:34.863 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
2026-11-12 10:19:00.041 -05:00 [INF] ScriptedAlarmEngine loaded 0 alarm(s)
|
||||
|
||||
+526
@@ -0,0 +1,526 @@
|
||||
2026-11-12 09:47:21.912 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 09:47:22.071 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 09:47:23.231 -05:00 [INF] Starting remoting
|
||||
2026-11-12 09:47:23.798 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:23.799 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:23.830 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 09:47:23.839 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 09:47:23.911 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 09:47:24.090 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 09:47:24.090 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 09:47:24.144 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 09:47:24.202 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 09:47:29.129 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:29.190 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 09:47:29.199 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:29.211 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 09:47:29.213 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 09:47:29.439 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:47:29.456 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:29.472 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 09:47:29.492 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 09:47:29.493 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 09:47:29.516 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — the LocalDb cache is empty; entering Steady (no revision). The first dispatch will fetch this node's configuration from central.
|
||||
2026-11-12 09:47:30.414 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:30.981 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:47:31.322 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:31.499 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:31.507 -05:00 [INF] HTTP GET /health/ready responded 200 in 182.5640 ms
|
||||
2026-11-12 09:47:31.512 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 574.1624ms
|
||||
2026-11-12 09:47:32.632 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:47:32.640 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.643 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.643 -05:00 [INF] HTTP GET /healthz responded 200 in 2.9354 ms
|
||||
2026-11-12 09:47:32.644 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 14.0992ms
|
||||
2026-11-12 09:47:32.795 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:47:32.800 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] HTTP GET /health/active responded 200 in 9.8417 ms
|
||||
2026-11-12 09:47:32.810 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 15.5104ms
|
||||
2026-11-12 09:47:46.858 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 09:47:46.896 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 09:47:46.937 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 09:47:46.948 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 09:47:46.954 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:47:46.967 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 09:47:46.969 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 09:47:46.969 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:47:47.226 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1574929041] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 6b97cc89b57041bc800aec12f68624f7 }
|
||||
2026-11-12 09:47:47.984 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:47:47.984 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 09:47:47.991 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 09:47:48.011 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 09:47:48.015 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 09:47:48.016 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 09:47:48.048 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 09:47:48.055 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 09:47:48.129 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 09:47:48.130 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 09:47:48.147 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:47:48.242 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 09:48:21.887 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 09:48:22.023 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 09:48:23.107 -05:00 [INF] Starting remoting
|
||||
2026-11-12 09:48:23.666 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:48:23.667 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:48:23.699 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 09:48:23.707 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 09:48:23.759 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 09:48:23.905 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 09:48:23.906 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 09:48:23.968 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 09:48:24.083 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 09:48:28.817 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:48:28.873 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 09:48:28.880 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:48:28.891 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 09:48:28.892 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 09:48:29.114 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:48:29.130 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:48:29.150 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 09:48:29.162 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 09:48:29.164 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 09:48:29.365 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 09:48:29.373 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 643e5ab0bace45f4ab4ef14ceaf39add (rev 4ed5c123b0e328ea4745a10b2a36e875082642333760d320996d39162f9cd7b4) from the LocalDb pointer.
|
||||
2026-11-12 09:48:29.434 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=4ed5c123b0e3, keys=2, grants=1, resolvedScopes=0)
|
||||
2026-11-12 09:48:29.436 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 1 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 09:48:29.450 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 09:48:29.462 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 2:48:29 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 09:48:29.493 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 09:48:29.499 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 09:48:29.515 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 09:48:29.546 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=5429a1f78a59487db3c8abe1f1ca92c4, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 09:48:30.094 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:48:30.905 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:48:31.250 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:31.467 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:31.475 -05:00 [INF] HTTP GET /health/ready responded 200 in 222.9444 ms
|
||||
2026-11-12 09:48:31.483 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 610.0994ms
|
||||
2026-11-12 09:48:32.582 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:48:32.591 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.594 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.595 -05:00 [INF] HTTP GET /healthz responded 200 in 3.4068 ms
|
||||
2026-11-12 09:48:32.596 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 16.1997ms
|
||||
2026-11-12 09:48:32.765 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:48:32.767 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.787 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:48:32.788 -05:00 [INF] HTTP GET /health/active responded 200 in 20.8320 ms
|
||||
2026-11-12 09:48:32.789 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 24.2242ms
|
||||
2026-11-12 09:49:27.832 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 09:49:27.833 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.835 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.835 -05:00 [INF] HTTP GET /health/ready responded 200 in 2.3181 ms
|
||||
2026-11-12 09:49:27.836 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 4.6432ms
|
||||
2026-11-12 09:49:27.901 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 09:49:27.901 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.902 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:27.902 -05:00 [INF] HTTP GET /healthz responded 200 in 1.0003 ms
|
||||
2026-11-12 09:49:27.903 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.9765ms
|
||||
2026-11-12 09:49:28.064 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 09:49:28.064 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] HTTP GET /health/active responded 200 in 2.8578 ms
|
||||
2026-11-12 09:49:28.067 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.8678ms
|
||||
2026-11-12 09:51:29.033 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 09:51:29.077 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 09:51:29.121 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 09:51:29.135 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 09:51:29.148 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = 38b220d7b51f4941b6ce0c8860538dd7 }
|
||||
2026-11-12 09:51:29.153 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 09:51:29.154 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 09:51:29.788 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 09:51:29.806 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 09:51:30.045 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#78719026] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = d54a63d230a544cea51229d1c79f51b2 }
|
||||
2026-11-12 09:51:30.159 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 09:51:30.160 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 09:51:30.165 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 09:51:30.182 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 09:51:30.184 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 09:51:30.186 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 09:51:30.215 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 09:51:30.225 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 09:51:30.303 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 09:51:30.304 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 09:51:30.321 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 09:51:30.401 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:04:56.024 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:04:56.179 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:04:57.507 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:04:58.103 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:04:58.105 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:04:58.139 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:04:58.147 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:04:58.200 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:04:58.332 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:04:58.332 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:04:58.405 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:04:58.515 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:05:03.710 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:05:03.787 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:05:03.795 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:05:03.806 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:05:03.807 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:05:04.129 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:05:04.135 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:05:04.145 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:05:04.145 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:05:04.216 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:05:04.221 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:05:04.483 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:05:04.501 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 643e5ab0bace45f4ab4ef14ceaf39add (rev 4ed5c123b0e328ea4745a10b2a36e875082642333760d320996d39162f9cd7b4) from the LocalDb pointer.
|
||||
2026-11-12 10:05:04.517 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=4ed5c123b0e3, keys=2, grants=1, resolvedScopes=0)
|
||||
2026-11-12 10:05:04.519 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 1 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:05:04.531 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:05:04.556 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1448635752] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:05:04 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:05:04.573 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:05:04.579 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:05:04.597 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:05:04.637 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=de9842c1962c46ed8c997fa12e1c7861, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:06:31.428 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:06:31.661 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.837 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.844 -05:00 [INF] HTTP GET /health/ready responded 200 in 201.5272 ms
|
||||
2026-11-12 10:06:31.850 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 501.0846ms
|
||||
2026-11-12 10:06:31.899 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:06:31.906 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.909 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:31.909 -05:00 [INF] HTTP GET /healthz responded 200 in 2.8073 ms
|
||||
2026-11-12 10:06:31.910 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 13.1742ms
|
||||
2026-11-12 10:06:32.049 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:06:32.051 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:06:32.059 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:06:32.059 -05:00 [INF] HTTP GET /health/active responded 200 in 9.4557 ms
|
||||
2026-11-12 10:06:32.060 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 11.9931ms
|
||||
2026-11-12 10:06:46.165 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:06:46.196 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:06:46.225 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:06:46.233 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:06:46.244 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:06:46.245 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:06:46.463 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1448635752] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = c49207ade9504980bb5e067875c3b6a3 }
|
||||
2026-11-12 10:06:47.014 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:06:47.030 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:06:47.149 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:06:47.149 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:06:47.153 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:06:47.167 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:06:47.169 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:06:47.170 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:06:47.190 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:06:47.197 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:06:47.258 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:06:47.259 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:06:47.270 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:06:47.353 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:08:07.790 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:08:07.914 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:08:08.767 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:08:09.205 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:08:09.206 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:08:09.232 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:08:09.239 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:08:09.281 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:08:09.386 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:08:09.387 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:08:09.434 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:08:09.515 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:08:13.142 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:08:13.189 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:08:13.195 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:08:13.205 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:08:13.206 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:08:13.382 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:08:13.393 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:08:13.405 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:08:13.422 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:08:13.423 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:08:13.583 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:08:13.592 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment 3d8f782a33c14d68a0d171b466627cf8 (rev eec886c75573d93a4dfbdcc66c820e8c9c91b476a0786e8bd2c0ddce697397b9) from the LocalDb pointer.
|
||||
2026-11-12 10:08:13.618 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=eec886c75573, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:08:13.622 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:08:13.621 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:08:13.632 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:08:13.648 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1653866231] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:08:13 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:08:13.668 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:08:13.674 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:08:13.689 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:08:13.715 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=44e4e11ddc984e0a87bbe062eec3484a, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:08:13.857 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:13.996 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:14.004 -05:00 [INF] HTTP GET /health/ready responded 200 in 160.0664 ms
|
||||
2026-11-12 10:08:14.009 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 475.4836ms
|
||||
2026-11-12 10:08:14.265 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:08:15.022 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:08:15.030 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.033 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.033 -05:00 [INF] HTTP GET /healthz responded 200 in 3.5944 ms
|
||||
2026-11-12 10:08:15.034 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 15.6364ms
|
||||
2026-11-12 10:08:15.171 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:08:15.174 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.183 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:08:15.183 -05:00 [INF] HTTP GET /health/active responded 200 in 10.8910 ms
|
||||
2026-11-12 10:08:15.184 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.9139ms
|
||||
2026-11-12 10:08:28.597 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:28.600 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:08:31.552 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:31.552 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:08:56.606 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:08:56.607 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:08:59.977 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:08:59.977 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:09:08.535 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:09:08.536 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:09:09.011 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:09:09.012 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] HTTP GET /health/ready responded 200 in 2.2574 ms
|
||||
2026-11-12 10:09:09.014 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 4.6294ms
|
||||
2026-11-12 10:09:09.070 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:09:09.071 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.071 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.072 -05:00 [INF] HTTP GET /healthz responded 200 in 0.8873 ms
|
||||
2026-11-12 10:09:09.072 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.779ms
|
||||
2026-11-12 10:09:09.205 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:09:09.206 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.207 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:09.208 -05:00 [INF] HTTP GET /health/active responded 200 in 2.2448 ms
|
||||
2026-11-12 10:09:09.208 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.0775ms
|
||||
2026-11-12 10:09:35.707 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:09:35.736 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:09:35.766 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:09:35.775 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:35.786 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:09:35.787 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:09:36.012 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1653866231] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = faf56e9311e145f7ac79d1d47c07b181 }
|
||||
2026-11-12 10:09:36.616 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:09:36.632 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:09:36.697 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:36.697 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:09:36.701 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:09:36.714 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:09:36.716 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:09:36.718 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:09:36.737 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:09:36.744 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:09:36.800 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:09:36.801 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:09:36.812 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:36.876 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:09:52.278 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:09:52.390 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:09:53.241 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:09:53.665 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:53.666 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:09:53.689 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:09:53.695 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:09:53.735 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:09:53.843 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:09:53.843 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:09:53.894 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:09:53.969 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:09:57.513 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:57.558 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:09:57.565 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:09:57.574 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:09:57.576 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:09:57.884 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:09:57.891 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:57.904 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:09:57.917 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:09:57.919 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:09:58.050 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:09:58.086 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:09:58.097 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:09:58.119 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:09:58.124 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:09:58.135 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:09:58.153 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:09:58 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:09:58.175 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:09:58.184 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:09:58.199 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:09:58.226 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=a7a3ddc7f5b64ff2a9d3854689a50ddd, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:09:58.299 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:58.442 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:58.449 -05:00 [INF] HTTP GET /health/ready responded 200 in 163.7473 ms
|
||||
2026-11-12 10:09:58.454 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 486.493ms
|
||||
2026-11-12 10:09:58.642 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:09:59.385 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:09:59.392 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.395 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.395 -05:00 [INF] HTTP GET /healthz responded 200 in 2.9748 ms
|
||||
2026-11-12 10:09:59.396 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 13.9311ms
|
||||
2026-11-12 10:09:59.533 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:09:59.535 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.544 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:09:59.544 -05:00 [INF] HTTP GET /health/active responded 200 in 10.3647 ms
|
||||
2026-11-12 10:09:59.545 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 13.1326ms
|
||||
2026-11-12 10:10:12.848 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:12.851 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:15.982 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:15.982 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:18.909 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:10:18.910 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:21.733 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:10:21.733 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:24.592 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:10:24.592 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:27.438 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:10:27.439 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:10:46.131 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:10:46.131 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:10:49.488 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:49.488 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:57.663 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:10:57.663 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:10:58.139 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:10:58.140 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.141 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.142 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.9211 ms
|
||||
2026-11-12 10:10:58.142 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 3.7812ms
|
||||
2026-11-12 10:10:58.200 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:10:58.200 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] HTTP GET /healthz responded 200 in 0.6878 ms
|
||||
2026-11-12 10:10:58.201 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.4756ms
|
||||
2026-11-12 10:10:58.334 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:10:58.334 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.336 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:10:58.336 -05:00 [INF] HTTP GET /health/active responded 200 in 2.6780 ms
|
||||
2026-11-12 10:10:58.337 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 3.589ms
|
||||
2026-11-12 10:11:19.518 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:11:19.549 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:11:19.581 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:11:19.590 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:11:19.601 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:11:19.601 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:11:19.821 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = fa00b28a5f37482988cc3249d7cdfbcf }
|
||||
2026-11-12 10:11:20.154 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:11:20.171 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:11:20.395 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#1417454299] to [akka://otopcua/deadLetters] was not delivered. [3] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = a5cb7474db6c4dc0ab0fd57165ff6c88 }
|
||||
2026-11-12 10:11:20.516 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:11:20.516 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:11:20.521 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:11:20.534 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:11:20.537 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:11:20.538 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:11:20.557 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:11:20.564 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:11:20.623 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:11:20.624 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:11:20.636 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:11:20.700 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
2026-11-12 10:21:14.053 -05:00 [INF] OtOpcUa.Host starting with roles=[driver] (admin=false, driver=true) source="Configured"
|
||||
2026-11-12 10:21:14.166 -05:00 [INF] Log-pipeline self-check marker
|
||||
2026-11-12 10:21:15.016 -05:00 [INF] Starting remoting
|
||||
2026-11-12 10:21:15.443 -05:00 [INF] Remoting started; listening on addresses : [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:21:15.445 -05:00 [INF] Remoting now listens on addresses: [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:21:15.469 -05:00 [WRN] The `auto-down-unreachable-after` feature has been deprecated as of Akka.NET v1.5.2 and will be removed in a future version of Akka.NET. The `keep-majority` split brain resolver will be used instead. See https://getakka.net/articles/cluster/split-brain-resolver.html for more details.
|
||||
2026-11-12 10:21:15.475 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Starting up...
|
||||
2026-11-12 10:21:15.515 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Started up successfully
|
||||
2026-11-12 10:21:15.618 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Node [akka.tcp://otopcua@127.0.0.1:18801] is JOINING itself (with roles [driver], version [1.0.0]) and forming a new cluster
|
||||
2026-11-12 10:21:15.619 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - is the new leader among reachable nodes (more leaders may exist)
|
||||
2026-11-12 10:21:15.666 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Up"]
|
||||
2026-11-12 10:21:15.748 -05:00 [INF] passive node — no peer configured, sync initiator idle
|
||||
2026-11-12 10:21:19.337 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:21:19.382 -05:00 [INF] OPC UA server started on opc.tcp://localhost:14841
|
||||
2026-11-12 10:21:19.389 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:21:19.398 -05:00 [INF] AclRevalidationTimer: live monitored items will be re-authorized every "00:01:00"
|
||||
2026-11-12 10:21:19.399 -05:00 [INF] OtOpcUaServerHostedService: SDK started, address-space + ServiceLevel sinks bound
|
||||
2026-11-12 10:21:19.569 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:21:19.591 -05:00 [INF] Singleton manager started singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:21:19.603 -05:00 [INF] ClusterSingletonManager state change ["Start" -> "Oldest"] Akka.Cluster.Tools.Singleton.Uninitialized
|
||||
2026-11-12 10:21:19.616 -05:00 [INF] Now listening on: http://127.0.0.1:18800
|
||||
2026-11-12 10:21:19.617 -05:00 [INF] Application started. Hosting environment: Production; Content root path: C:\OtOpcUa800\OtOpcUa\
|
||||
2026-11-12 10:21:19.772 -05:00 [INF] DriverHost 127.0.0.1:18801: applied 1 Equipment VirtualTag(s) to the VirtualTag host
|
||||
2026-11-12 10:21:19.780 -05:00 [INF] DriverHost 127.0.0.1:18801: FetchAndCache boot — restored served state for deployment db338ee7635b496bb903c82095ad8454 (rev 2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93) from the LocalDb pointer.
|
||||
2026-11-12 10:21:19.812 -05:00 [INF] OpcUaPublish: data-plane authority generation 1 installed (cluster=(single-cluster), revision=2c94f0ad0c04, keys=3, grants=2, resolvedScopes=0)
|
||||
2026-11-12 10:21:19.817 -05:00 [WRN] OpcUaPublish: this node has no cluster identity, so NO permission trie was built for its 2 grant(s) — with Security:Acl:Enabled every scoped decision here will be denied
|
||||
2026-11-12 10:21:19.829 -05:00 [INF] AddressSpaceApplier: applied plan (kind="PureAdd", added=3, removed=0, changed=0, surgicalRawTags=0, unsRefDeltas=0, renamedFolders=0, rebuild=false)
|
||||
2026-11-12 10:21:19.826 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:21:19.834 -05:00 [INF] Message [ScriptLogEntry] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#102653184] to [akka://otopcua/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: ScriptLogEntry { ScriptId = unknown, Level = Information, Message = ScriptedAlarmEngine loaded 0 alarm(s), TimestampUtc = 11/12/2026 3:21:19 PM, VirtualTagId = , AlarmId = , EquipmentId = }
|
||||
2026-11-12 10:21:19.984 -05:00 [INF] AddressSpaceApplier: hierarchy materialised (areas=1, lines=1, equipment=1, failed=0)
|
||||
2026-11-12 10:21:19.990 -05:00 [INF] AddressSpaceApplier: raw subtree materialised (containers=1, tags=0, subset=true, failed=0)
|
||||
2026-11-12 10:21:20.005 -05:00 [INF] AddressSpaceApplier: equipment virtualtags materialised (vtags=1, equipment=1, subset=true, failed=0)
|
||||
2026-11-12 10:21:20.031 -05:00 [INF] OpcUaPublish: applied rebuild (correlation=3e58955410b848aca48fb2e5c07e3bdd, added=3, removed=0, changed=0, rebuild=false)
|
||||
2026-11-12 10:21:20.203 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:21:20.352 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:21:20.360 -05:00 [INF] HTTP GET /health/ready responded 200 in 171.2858 ms
|
||||
2026-11-12 10:21:20.365 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 636.5101ms
|
||||
2026-11-12 10:21:20.462 -05:00 [INF] Singleton identified at [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:21:21.257 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:21:21.264 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:21:21.267 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:21:21.267 -05:00 [INF] HTTP GET /healthz responded 200 in 3.5150 ms
|
||||
2026-11-12 10:21:21.268 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 14.9665ms
|
||||
2026-11-12 10:21:21.404 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:21:21.406 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:21:21.414 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:21:21.415 -05:00 [INF] HTTP GET /health/active responded 200 in 9.7679 ms
|
||||
2026-11-12 10:21:21.415 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 12.6099ms
|
||||
2026-11-12 10:21:34.677 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:21:34.681 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:21:37.703 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:21:37.704 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:21:40.719 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:21:40.720 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:21:43.468 -05:00 [INF] ApiKeyAuth: denied — secret mismatch for key id a12521a75a2a5b84
|
||||
2026-11-12 10:21:43.468 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:21:46.411 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id fc0854562f4e83de
|
||||
2026-11-12 10:21:46.411 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:21:49.278 -05:00 [INF] ApiKeyAuth: denied — no enabled, unexpired key with id 13141a093253adf1
|
||||
2026-11-12 10:21:49.278 -05:00 [INF] OpcUaApplicationHost: UserName auth denied for apikey: Invalid API key.
|
||||
2026-11-12 10:22:08.116 -05:00 [INF] ApiKeyAuth: granted key gate800-enabled (a0d4ef215dba7e64) as principal gate800-enabled with roles []
|
||||
2026-11-12 10:22:08.116 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-enabled ()
|
||||
2026-11-12 10:22:11.443 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:22:11.444 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:22:19.795 -05:00 [INF] ApiKeyAuth: granted key gate800-short (a12521a75a2a5b84) as principal gate800-short with roles []
|
||||
2026-11-12 10:22:19.795 -05:00 [INF] OpcUaApplicationHost: UserName auth granted for apikey as gate800-short ()
|
||||
2026-11-12 10:22:20.259 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/ready - null null
|
||||
2026-11-12 10:22:20.260 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.261 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.261 -05:00 [INF] HTTP GET /health/ready responded 200 in 1.8095 ms
|
||||
2026-11-12 10:22:20.262 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/ready - 200 null application/json; charset=utf-8 3.8519ms
|
||||
2026-11-12 10:22:20.317 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/healthz - null null
|
||||
2026-11-12 10:22:20.318 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.318 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.319 -05:00 [INF] HTTP GET /healthz responded 200 in 0.6856 ms
|
||||
2026-11-12 10:22:20.319 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/healthz - 200 null text/plain 1.5798ms
|
||||
2026-11-12 10:22:20.451 -05:00 [INF] Request starting HTTP/1.1 GET http://127.0.0.1:18800/health/active - null null
|
||||
2026-11-12 10:22:20.452 -05:00 [INF] Executing endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.454 -05:00 [INF] Executed endpoint 'Health checks'
|
||||
2026-11-12 10:22:20.455 -05:00 [INF] HTTP GET /health/active responded 200 in 3.2587 ms
|
||||
2026-11-12 10:22:20.455 -05:00 [INF] Request finished HTTP/1.1 GET http://127.0.0.1:18800/health/active - 200 null application/json; charset=utf-8 4.0652ms
|
||||
2026-11-12 10:22:24.887 -05:00 [INF] Application is shutting down...
|
||||
2026-11-12 10:22:24.918 -05:00 [INF] CoordinatedShutdown invoked due to [Reason:Akka.Actor.CoordinatedShutdown+ClrExitReason]. Exiting with [ExitCode:0].
|
||||
2026-11-12 10:22:24.949 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Marked address [akka.tcp://otopcua@127.0.0.1:18801] as ["Leaving"]
|
||||
2026-11-12 10:22:24.957 -05:00 [INF] Exited [akka.tcp://otopcua@127.0.0.1:18801]
|
||||
2026-11-12 10:22:24.969 -05:00 [INF] "Oldest" observed OldestChanged: [akka.tcp://otopcua@127.0.0.1:18801 -> null]
|
||||
2026-11-12 10:22:24.969 -05:00 [INF] ClusterSingletonManager state change ["Oldest" -> "WasOldest"] Akka.Cluster.Tools.Singleton.OldestData
|
||||
2026-11-12 10:22:25.190 -05:00 [INF] Message [RedundancyStateChanged] wrapped in [$DeadLetterWithNoSubscribers] from [akka://otopcua/system/distributedPubSubMediator#102653184] to [akka://otopcua/deadLetters] was not delivered. [2] dead letters encountered. If this is not an expected behavior then [akka://otopcua/deadLetters] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. Message content: RedundancyStateChanged { Nodes = System.Collections.Generic.List`1[ZB.MOM.WW.OtOpcUa.Commons.Messages.Redundancy.NodeRedundancyState], CorrelationId = cd01d89c4c7f4dfd828212c6146cc5b4 }
|
||||
2026-11-12 10:22:25.748 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Leader is moving node [akka.tcp://otopcua@127.0.0.1:18801] to ["Exiting"]
|
||||
2026-11-12 10:22:25.764 -05:00 [WRN] ClusterSingletonProxy failed to find an associated singleton named [redundancy-state] in role [driver] after 30 seconds.
|
||||
2026-11-12 10:22:25.884 -05:00 [INF] Singleton manager stopping singleton actor [akka://otopcua/user/redundancy-state/redundancy-state]
|
||||
2026-11-12 10:22:25.884 -05:00 [INF] ClusterSingletonManager state change ["WasOldest" -> "Stopping"] Akka.Cluster.Tools.Singleton.WasOldestData
|
||||
2026-11-12 10:22:25.888 -05:00 [INF] Singleton actor [akka://otopcua/user/redundancy-state/redundancy-state] was terminated
|
||||
2026-11-12 10:22:25.901 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Exiting completed.
|
||||
2026-11-12 10:22:25.904 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Shutting down...
|
||||
2026-11-12 10:22:25.905 -05:00 [INF] Cluster Node [akka.tcp://otopcua@127.0.0.1:18801] - Successfully shut down
|
||||
2026-11-12 10:22:25.925 -05:00 [INF] Shutting down remote daemon.
|
||||
2026-11-12 10:22:25.932 -05:00 [INF] Remote daemon shut down; proceeding with flushing remote transports.
|
||||
2026-11-12 10:22:25.987 -05:00 [INF] Remoting shut down
|
||||
2026-11-12 10:22:25.988 -05:00 [INF] Remoting shut down.
|
||||
2026-11-12 10:22:25.998 -05:00 [INF] OtOpcUaNodeManager: advertising 0 history aggregate function(s) for historian NullHistorianDataSource:
|
||||
2026-11-12 10:22:26.054 -05:00 [WRN] OpcUaApplicationHost: detaching ImpersonateUser threw
|
||||
[800E0000] (BadServerHalted)
|
||||
[800E0000] (BadServerHalted)
|
||||
|
||||
+210
@@ -0,0 +1,210 @@
|
||||
7af73841cafd0c8b05ad166c45ad0886bcf80926d4c4a65e0fa7578ea1e04d03 BitFaster.Caching.dll
|
||||
af06268aba8215c17b300fe8ec81bbef8d9982b5958a3291563f504537ce844d CliFx.dll
|
||||
d8ea1fbbaafdc9734420131c5d1f4624826e411bad3e51d3eb4fb95ab154f66f Microsoft.CSharp.dll
|
||||
70e4b89978ce57ef87b28f4921f3140c383b04aa96e7f3bdb3c4ebb898fd8a72 Microsoft.DiaSymReader.Native.amd64.dll
|
||||
ca708422782fb25819941a16a057ea96d6d18b037e7e5cbfdf340b7a04362b57 Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
47f8175d34e9087d3858644803c558cb9cf52b29bffda796f65c1c527d1b6a22 Microsoft.Extensions.DependencyInjection.dll
|
||||
ec244a2db19dffe90cd299fa4b0691456ced342a078b4a93cf3726a9b431e9ac Microsoft.Extensions.Logging.Abstractions.dll
|
||||
74d8fd2d7997fc638474e2bd79916458a30481e6a6925b50e7e96b4b852031c3 Microsoft.Extensions.Logging.dll
|
||||
644350f8c2404d4479b97a250edb29585e5fafec1b6ce8486ae600c5015fd7fb Microsoft.Extensions.Options.dll
|
||||
a0794c3bab2d7e0c848f0dffb3b9aa4b43ce07dc0abd122ebb7bf6dc79452ec4 Microsoft.Extensions.Primitives.dll
|
||||
578203d4915aa43283a3d6fa1083f4b80f333ef544e39ff0fcfdada1b7499a7d Microsoft.VisualBasic.Core.dll
|
||||
95aa41f885965447a62b59f1b3ce1677300c51c009048c8c677b961e98e99a72 Microsoft.VisualBasic.dll
|
||||
637adb956e9e80549239f1707db3885683504efbfc2ed8ea93a3d187ef53789c Microsoft.Win32.Primitives.dll
|
||||
143a613fc7c87e09c02cac0cc1469f850120bed98c5a1602ad84fc42b6c1ae63 Microsoft.Win32.Registry.dll
|
||||
a28c251dfe36d881e9e2462e171441b8b0ec156fe3f452602c9149b1b9efe05b Newtonsoft.Json.dll
|
||||
fd000b186f4bc5dbd9947e876f96c178e8c4259ee3e8717d672a4ac2f4c3a058 Opc.Ua.Client.dll
|
||||
30fb5142f13a3b3083c0484bcdedaec2efe2f50e57f10ec6a61257ca5359aa7e Opc.Ua.Configuration.dll
|
||||
602e85316943ad7ebae33a23d60a69a6ea50d91250ad0556906b816435daa37c Opc.Ua.Core.dll
|
||||
a2a05c64348f6f8aa60de0fe27d8e5e22d12e09b1ba6172ca34b3773620e394c Opc.Ua.Security.Certificates.dll
|
||||
c5c5e36cf6381444b408fe1b51726b17deca74173764cd62ccee954b3c8c2718 Opc.Ua.Types.dll
|
||||
cd84c110a96a28b969f9b75873801ded483ff8e2396507e2a53ab977584f39c6 Serilog.Sinks.Console.dll
|
||||
e6b551a75ff7fff20dd0024670d5c42dfb74afa16d54aa0201106dea400a9505 Serilog.dll
|
||||
b03e016fa01d7cc9723044c7020940779e4af59e29bdf47f72bc6ed9d9b1d257 System.AppContext.dll
|
||||
9bd4590fa18b9a6509efb5147158a6abbe4799e82e0efa9fa240102b6084872a System.Buffers.dll
|
||||
7f2ac0ec3bb9425017006cc750dc94a3c37ed175ba2f4eaa3f8f8e5cf35472e0 System.Collections.Concurrent.dll
|
||||
ce2385891f525991c59d99a86cfaf8d5a81c56f24b01a433f42eb85071832121 System.Collections.Immutable.dll
|
||||
82ab716ab740669598d8cda36a92690bcc4b01ebba8b21c0c4f0a7a8ee1d9248 System.Collections.NonGeneric.dll
|
||||
d9ed158ef29df6146151d13260ddbb2310da7150eb98c2637ce91d057f7786cb System.Collections.Specialized.dll
|
||||
78d429a901a73a09cda6037befaa56b79bfa557000b2a69ba1c1210253c0b21d System.Collections.dll
|
||||
f2c3fda351505065effbb42e175e50b4c9bcb4c4f560ebacc868d50d29252eab System.ComponentModel.Annotations.dll
|
||||
f7675a194e2f444670b94d3d3866dd3dd16b48b332cc5811268ff903e6c17a65 System.ComponentModel.DataAnnotations.dll
|
||||
d060e7f58feb609db4f47e2a6da25c4a9b406b97589004d4022d31d673aacc52 System.ComponentModel.EventBasedAsync.dll
|
||||
953db884b5edfc396ed4036413240e538cdbb858c06354d976d7b2e6ccce7167 System.ComponentModel.Primitives.dll
|
||||
8faabcf0ea88a11425d247b19d9cc8a64a78a7c07ff977854cf4a9166e0415b7 System.ComponentModel.TypeConverter.dll
|
||||
72b3608363e47f2cf3cf3fc9fe2fcefb760e5292ebb9d650fa4ced3896dab5f9 System.ComponentModel.dll
|
||||
c53f9278c6889d8562d616106413bf50198f452316b4c5002100c568d541428c System.Configuration.dll
|
||||
8be68e4cb2f0b64b5f37f7a7aa82db2ae1648115a9b7b9381a3cfac7cdb4aeb5 System.Console.dll
|
||||
f1dcf1577c6a675f1c85ee9f13d103495ce123ed232001646f4132d76c1480cb System.Core.dll
|
||||
e6be5f74d117b7300523041ec239d2c7b64fc495ef954f48f81ca71507e510c6 System.Data.Common.dll
|
||||
65bd4ccac3f6f062a68d2ff797bb3908b7f21f908c95a1e85729b8c5bbcb3b87 System.Data.DataSetExtensions.dll
|
||||
dc01c232769d86816af9d67e492902487bfc87f787f811ca098f42f4988ad789 System.Data.dll
|
||||
baeabf6461eb78165280fe2a0fca951146de0d8f672ec20a159aa1f431bb409a System.Diagnostics.Contracts.dll
|
||||
ba04477089ee6fc9ae8c2a8e711905fe1d7a113c785cb168d28eccaed435400b System.Diagnostics.Debug.dll
|
||||
c84547ea80b944c4683901e03c2e0c00e462a7b12a3657f5f3e1474a5d52edaf System.Diagnostics.DiagnosticSource.dll
|
||||
b86967674838e9e7465e171d334f6b970720ebcf005326e45c1c08e5720a0054 System.Diagnostics.FileVersionInfo.dll
|
||||
1acaee1d612a45f2f287675b5b84defed1b34a90cc659641f97043f45076fbe7 System.Diagnostics.Process.dll
|
||||
c464ff65bb7a1ef7e70b0c610aea951e8f71045cfde50602832969aa02253b6e System.Diagnostics.StackTrace.dll
|
||||
a1656873dae8b3f2a56714f5a9bcf179e8064a992943cd0b275e83310fd4edff System.Diagnostics.TextWriterTraceListener.dll
|
||||
dade40a11c2594fc03c84d119050f8b4281077bbc28298e3c2f6d96673cb0667 System.Diagnostics.Tools.dll
|
||||
248c392f7df6bd5de9be9411dfbbd61fd6ae9ea6f896eb8a9dd6445cb54af2f2 System.Diagnostics.TraceSource.dll
|
||||
b8274d672ee21b7ab2b579aec0c55795cb9fb3e1f15e9b3c2ee07d90260a3fa2 System.Diagnostics.Tracing.dll
|
||||
5f04571de46d5defec5e946b618b7b1b10b9c613492a8089ba926d3dad0c6916 System.Drawing.Primitives.dll
|
||||
86fe6479c86f0f99358adcb89ecba5d3fb91a30d333545a17c00ef67d86a29f1 System.Drawing.dll
|
||||
3d645a280ed6d073664f229842847d8af2dc2a7126ccf27c5eeba2c55c08286d System.Dynamic.Runtime.dll
|
||||
614c4e1729c2011b1e40424d7b00b3dd2b76ca7abb438c62d93048c97d9ad44a System.Formats.Asn1.dll
|
||||
d8552ece59785ee1790ed8d2bdad03c0059c26a461f19c76d215c24aff8af190 System.Formats.Tar.dll
|
||||
cb2a60039ed7a7a797d133ecee1755185305632b8c78d62dcaf0d2ccb4e15ed6 System.Globalization.Calendars.dll
|
||||
7d27ac98541e7e6e72dab31aed4055fc9435b777bfce0f50722440601efd77bc System.Globalization.Extensions.dll
|
||||
e374eb513cb207833143ac4967155589087e4fb71a8ae9108ee1d64596b67484 System.Globalization.dll
|
||||
b3525059b5751482765b660d86d90de7e9728707c65d9cc5a63f1152ec43a952 System.IO.Compression.Brotli.dll
|
||||
3fab44511b3e88c31430c987223f46c71dda6f890a2d6ecb7b29031ccc4b6b5e System.IO.Compression.FileSystem.dll
|
||||
ce43bb776a6df4abe190d0e77096046475709f8e8b0c823e10cb7b39099c32a4 System.IO.Compression.Native.dll
|
||||
02096ce99b1fef365d4ba9c03edf0e18f7981dac6943ab56676ad66d0bb2c9ff System.IO.Compression.ZipFile.dll
|
||||
5f7c0695725d3485c86d0bf445c99be1fd320f17b11048a905041ff187dd4cbc System.IO.Compression.dll
|
||||
b14b8ee22bd83e07c6a004179b70aa7b2958791aef5e834c5de72c49308419fd System.IO.FileSystem.AccessControl.dll
|
||||
1dc8cf48e1bf26700064f54e510fab4ad0f5482ad113261a71807f9c194180dd System.IO.FileSystem.DriveInfo.dll
|
||||
a72218414270188a3d11fd291ff63c407f65f0a4ff8ebaa8351990649fdaa9c5 System.IO.FileSystem.Primitives.dll
|
||||
c60472fbd6ff9bb4a909605ab9fd08462eeb1cb058cec3deb49a21f84e4ab602 System.IO.FileSystem.Watcher.dll
|
||||
1fdccf62b58857da2d75f26f0fa31ce342e035e08b61f08a439088834c25a650 System.IO.FileSystem.dll
|
||||
be0350b4aa7e08c5a88a0d887aeee22e11144dc73f10805e36b2bb21440a6298 System.IO.IsolatedStorage.dll
|
||||
1c60d7b873037f161663cc1f98ccadad1493195952b3f8dd318468ac451ac4ae System.IO.MemoryMappedFiles.dll
|
||||
0306263c46f0fe7ebe87f4427d3365a23e92faed787b81c54337349688662629 System.IO.Pipelines.dll
|
||||
e7af8e95bc18598a4cf42daae14d61518bc9944ed68c11a0742765419f04f2c8 System.IO.Pipes.AccessControl.dll
|
||||
e631dad2c1c1657f40b512d15ed4a636d20341e8a0c6df34f2cd7d9b20848836 System.IO.Pipes.dll
|
||||
ee80874913ba2b3dc55f05ed18043ef40a42cec0c2095a68a2825ec66e069c25 System.IO.UnmanagedMemoryStream.dll
|
||||
7696915987cd96348e15e6b230394a9042e278baf26d07d2414b99e8a66ce969 System.IO.dll
|
||||
2d74c61b46462f83d17c46fbda7087977d293bd0f6808742910d0f6a29d5f5e8 System.Linq.AsyncEnumerable.dll
|
||||
eb9139d158b544c11b65cd32c6bfbbc2a11bfe5e9ec61ecc94999843afd5cd2c System.Linq.Expressions.dll
|
||||
162297aa003a7a0951b3333418584f2de68d9a31146e0c4ebbf3a275ef250ee4 System.Linq.Parallel.dll
|
||||
03fd086266f5ed63a077df4fdb5c69ce08799484aed94485965604148fc44461 System.Linq.Queryable.dll
|
||||
1c6886fb239a6af59da0dc1561d9f010e2e983a1e826d6e8f8a61f7ea42a3af1 System.Linq.dll
|
||||
5bbec55d9b01c664055180840b651b1b1f01c15f7f45ee84192b95a09f2c355b System.Memory.dll
|
||||
651a91c2658632929ba7f50d415b2db6151fd96969be0b47e4f9672d648ec86f System.Net.Http.Json.dll
|
||||
fc7ad004bdaca8763dcb23ab3a5fb01c9aed9735f678563f4f03254c9c956f8f System.Net.Http.dll
|
||||
5e514d43d23325ceaeeabc00906f6f782424e8b2b01fc050ede60559a8202851 System.Net.HttpListener.dll
|
||||
b65a90cdfdc51ee4a5c2cd4e0764ec42b46c8e098aaa6d4f57e8e8c3fb3560aa System.Net.Mail.dll
|
||||
cc5b82c8101e3af2ab05dea804d333109f954f32ec49a9e4e71e3679ef4d7d58 System.Net.NameResolution.dll
|
||||
3b97a77bab7f4a5215b12b7d0f16d47d6a617bcafa59d6e4b9efd3b695bbe0f7 System.Net.NetworkInformation.dll
|
||||
2b91becc5ea71a9b91f544df76ad0c5a29a87798484b37b9c2f05a8a598f1ae3 System.Net.Ping.dll
|
||||
01d8bef670ac4265708686d37076d8d21daf3152cd0e7b2aa264302c369f70be System.Net.Primitives.dll
|
||||
ae641f56bcad5c06551f90b855d7a61c9bd401d0c0a9985ccd662da860c3d5bb System.Net.Quic.dll
|
||||
5e462536c5b743dbef0522174a576ecb7be0dd52c5074e64b7ca73bc7dc570d0 System.Net.Requests.dll
|
||||
c03a6cba2d1e841f78293188b8356e0890a03ad9860eb5f602e69ac8ddd253c4 System.Net.Security.dll
|
||||
d39e3896fa6e4b42dcb6aabace1e9d2f8c15c6ecfe10868668dd9de119aa675b System.Net.ServerSentEvents.dll
|
||||
dc7433871738ffb8ce7f7963cee7fadc2103ab4b61e461a70e60d848625ae297 System.Net.ServicePoint.dll
|
||||
7e8787c401641f3d749847c552ad8c8c600896e1aaead24c93440039801dc98f System.Net.Sockets.dll
|
||||
8cd16344c501ab69ee11eb1108efb37d4c789de9bf421bb3e8703800ca1a8b1d System.Net.WebClient.dll
|
||||
f5973c353b9204e5c1cceec843707c7be368293428d52f62bc746400346103b3 System.Net.WebHeaderCollection.dll
|
||||
9bb235262aa0f2530fe8cadf095432438746dc3bf5d1090caa7d0eb4ee2dca7f System.Net.WebProxy.dll
|
||||
9ae53fe2d695d041d834fe741c52a60d77031667dde8078281cf56904aa65fb3 System.Net.WebSockets.Client.dll
|
||||
dc3632ff6a2f4118904eb64edc433c0d79c497b3ad2c01e1287cc86da14de612 System.Net.WebSockets.dll
|
||||
1bb00c4e169c0a20ad8763f4105204c221b97e037464b5bacb6ec4b9d40e0ad7 System.Net.dll
|
||||
2025fbc96c75d61d82cee26ccacb100d773a4e393630e2697a5c7bc6c4ee5a8e System.Numerics.Vectors.dll
|
||||
c39d8710b4aba77631159b90e04abd81b58ff3cc9fc8433621b76683cd6aec9a System.Numerics.dll
|
||||
16f21d6da2db3ce7a1c0b904bc2f3658685156a2155e5aaba8a3d45f4bc06c74 System.ObjectModel.dll
|
||||
69d56e12535d3a8f2f8f89ac8f97577e6dc788d26f2e7b69be8fb5f6ff17ff28 System.Private.CoreLib.dll
|
||||
4e329edac8f17617d2d46d2d472e21c48614276a9879f3f7b4be2cb2841ed3f6 System.Private.DataContractSerialization.dll
|
||||
eb07de9b8f80dbc1c2cad80598e184a8369f6cbd9d105d50bcc6cd3428e61ce8 System.Private.Uri.dll
|
||||
3c2edaf8c5fafb005e25631b8ed48a64050bd126a8a5cba2f84b6869d6a6df47 System.Private.Xml.Linq.dll
|
||||
3467185933c682c10a67eb6b4eb78df5a1debc63d4def7708d23db9fb79780fc System.Private.Xml.dll
|
||||
93b0f758fac7aef8eb3256174fe621ac9de7db98e044e22d4b6cdbf7b462c5a7 System.Reflection.DispatchProxy.dll
|
||||
3f8d14d45f250218d9c66f158b7a218ac73d1f2df75dbcf71a09f12f1711bf5f System.Reflection.Emit.ILGeneration.dll
|
||||
f43856d942af20cd256a7358afad7fdb50df4e9e307e29beb34dff8dbd094b6c System.Reflection.Emit.Lightweight.dll
|
||||
f0c3777ec9c76eeb3198de980054247fda2d184e8dd3d3693bc433613a6df364 System.Reflection.Emit.dll
|
||||
8ccbd7bd124cbfaa1cfd9315d922dd693ad7ade5d0436d246b188e02b40919df System.Reflection.Extensions.dll
|
||||
5af6e802d91f1e404a95c55e23310185e7de09adac62ffd6fd56b98a6b31b15d System.Reflection.Metadata.dll
|
||||
9cc0088b3e2d6a0771063dafd2c924538dff5087c20610f7826a088a38c27ae0 System.Reflection.Primitives.dll
|
||||
479a0a76d0360120f262ca9d501637916382a5d162f10c29d37b01888f5fd00d System.Reflection.TypeExtensions.dll
|
||||
d3d7fa31b89606d7a5c10a26ced05a29d32ab2fb87a54f10c82cd74e8e19725d System.Reflection.dll
|
||||
181cf4b3b528f7e2a3316fb792339320a1c40c96c7b45b726ff16257097276e3 System.Resources.Reader.dll
|
||||
06fbffe507abc62101f0466d1570cecb074ec6a432a1ba058d4b9360ea13764f System.Resources.ResourceManager.dll
|
||||
1dd70e4933c113a2a9963f79068a1e0fe52bcbb5dfaf54255dd41af5b4e05d35 System.Resources.Writer.dll
|
||||
bb342e1fbacfe7589b71936fb000c36b54ddc96d578bc0888623e19549c1e6f3 System.Runtime.CompilerServices.Unsafe.dll
|
||||
657abf22f77265e6e111fa0c6f55fa176373dd447fcc0f0c4145da91fcdda047 System.Runtime.CompilerServices.VisualC.dll
|
||||
f7e44a3f016421af7130ccdd913c57419d3cd2a0f48e34bdd1295797f2535cf8 System.Runtime.Extensions.dll
|
||||
b21415740db52c068dddeb4dc61e95a41ec23b1a4c1b1623ff6b65399c7c0fdd System.Runtime.Handles.dll
|
||||
1c91d7b7dd6da38c6426a4be35b3458ef3d127ea84533941528694e9db1a145c System.Runtime.InteropServices.JavaScript.dll
|
||||
f0b683af8a5db0f4cbaa2119f66ba93a01ee0db8ba1079acd01f01d247c111a6 System.Runtime.InteropServices.RuntimeInformation.dll
|
||||
bde2bb33524a73e2964cd47ddf753150d685b31ebb1c4779e66ca426b2b419bf System.Runtime.InteropServices.dll
|
||||
61cedf60e24e672bbde2869ceaee84342d22823315aae7fb7b768e9a6e6893a2 System.Runtime.Intrinsics.dll
|
||||
b55e68bf26539914d8eb80718dc5b183f36d53c7fa20103f52c06796d33aa0c6 System.Runtime.Loader.dll
|
||||
46b0e0c9b0198446a5d4ae8579433a038d7f1199e0378ee6213a0390bdd9a99c System.Runtime.Numerics.dll
|
||||
18e20e41f0d87206ff1fbede425b7737be7c554c1704af3c684e83bbdec63157 System.Runtime.Serialization.Formatters.dll
|
||||
87249d372d73fc7fcdc057be0efba1c36fe7318af832463dcfbf55fd067bfa97 System.Runtime.Serialization.Json.dll
|
||||
5981ef301f6a849ae73bfa0eeb4956992fc15b00f705c35f208eaf6793a37ab3 System.Runtime.Serialization.Primitives.dll
|
||||
ab0c54734d37e5aac3f726fe7806ff8de5c5bce757f7993135540154a72ade79 System.Runtime.Serialization.Xml.dll
|
||||
39da6e91e025583c2d51a5180614cf278bdf7f6d850c4c011422869efca625ce System.Runtime.Serialization.dll
|
||||
d6b4189c8e9afce3629b27c902c198a54ad3a355ec8409d3880b3b68fb1cf445 System.Runtime.dll
|
||||
c83dce7b6b0737d14771c9ad38a8726787a91472be503d8f911bfe91668efadb System.Security.AccessControl.dll
|
||||
77c7616c8f073677f8a057ef032b21d8f6dfeb19179b936bd54bab268e71cbf5 System.Security.Claims.dll
|
||||
0e5de3978293221c0e36bf52786abea8f7b74ebf06de58c9717db4507e59ac10 System.Security.Cryptography.Algorithms.dll
|
||||
9198b7e57489278215a2489d66d9d52c7a9d65ae7abe399cc9d27d1b23debbf6 System.Security.Cryptography.Cng.dll
|
||||
2774b21002a29479de3523f8781d1411e4990575b50f1316d6a9cd490980c2db System.Security.Cryptography.Csp.dll
|
||||
070abb893bb963b2a846ad8b8c1354563c7b362d1c492eec53538fc28a871001 System.Security.Cryptography.Encoding.dll
|
||||
e2a8cba098ec00d19d043750e8a19374cc65d1a498b9eb15dbffe0eecc579b32 System.Security.Cryptography.OpenSsl.dll
|
||||
89e9947ee1e7839eeac2c9c0b37a2b0c0433ff338dadec6380fac1eae375ffd3 System.Security.Cryptography.Primitives.dll
|
||||
398e55927b3cfd070bc8d204740e50d012cb78f7a2dcb968a33869b4aa54e067 System.Security.Cryptography.X509Certificates.dll
|
||||
b043b1ed136164fd69606a9e7f26f1fc05d0c7cb888c0c00e3b58544623cc7e5 System.Security.Cryptography.dll
|
||||
25f1d31f27d8e9a97fa203160dbf9a8a7be8188328ac74516002d0ac071961d9 System.Security.Principal.Windows.dll
|
||||
d1cdbae10415e4f384ecdf34cd6e427f7c1d67bb6549b7e15193006428734bb4 System.Security.Principal.dll
|
||||
3347281129d6cfc4a5c912dbb9f803878c99cc60d125ca5f2adbc4718ccf348a System.Security.SecureString.dll
|
||||
e81926edd150a900fa0d6832aa813b2c3dfb156e7116a7cca2d96640ff24e438 System.Security.dll
|
||||
9537a9d13c43511fb95b6d30dda7817851b23e864503fa336626522499b51d24 System.ServiceModel.Web.dll
|
||||
13fb65e12deec9ac60a8342dec6caeff8d35b56dc142cdabfab2745620d46fd0 System.ServiceProcess.dll
|
||||
e3f7a38a01cd863716d83ae322a007a2d052044cd8bfc2b5b1c268ac05c9d931 System.Text.Encoding.CodePages.dll
|
||||
fbbc0dde38272605b8b95271cca7202ca04d5fa115acbcee936e1bed611fd23c System.Text.Encoding.Extensions.dll
|
||||
f1531dcab1fe59529829a1a241953a5e55ef8340c8cf1a21c053eeb7c48e2a84 System.Text.Encoding.dll
|
||||
319eb068c30ae985653a31911086141f5ba26b99e0ce7ff083f455ad42d4c584 System.Text.Encodings.Web.dll
|
||||
ff440fd7d4ae3d5a6d080c1ebaaae7d5f4145ea162ab12bf8931e92b4311f469 System.Text.Json.dll
|
||||
244be34f8333ff60b1fa87f54feea7e8338e2ff96fdb148a4d4bf12b7c981c86 System.Text.RegularExpressions.dll
|
||||
6f4b852763d9bdf83013893f294cd021a0efd84243374e52e148d8b665ebc8ec System.Threading.AccessControl.dll
|
||||
26f3f523ae3a685b462c1b192ac752cfa8da5db5ba4e2714b2e64635e717a4d6 System.Threading.Channels.dll
|
||||
9442e2b745620403121ff4868fd430a2178029c22ae6a8dcac77d957ada4be42 System.Threading.Overlapped.dll
|
||||
bbf7de8812c20b8e61f9833d72814dd858c4781fa35500b2374c7e5f19d3a246 System.Threading.Tasks.Dataflow.dll
|
||||
b35a1faeecc0fb706b06f470a13fb3b1d2addfef1cd5a81fb1bdbd75ad6c8fdd System.Threading.Tasks.Extensions.dll
|
||||
2853f090ef0c1bd47f91800ef71b0b44084b1f703b3b699919466e065ba2fee2 System.Threading.Tasks.Parallel.dll
|
||||
a908649b99249e9533d674ed8838f2cace1f6a4071d848bf9edf7b96dc4ebc5f System.Threading.Tasks.dll
|
||||
5e1c4834abd41d88f79872557c69d20502e2d220bde333870e31d1a1eb4eacd2 System.Threading.Thread.dll
|
||||
2135197f9cbc09004ca02055bf54b5e3d0e2d7a9d61c477e4ef129321eb0b4c2 System.Threading.ThreadPool.dll
|
||||
a7763eba808803faab8e904fd5b467d9c7dd5c18ddd9a584d7c686f08d27e10e System.Threading.Timer.dll
|
||||
6c2137fb877e647a6c0f8909db8ca7af1e6fe95f19c6e531f6a74539fabcc6ad System.Threading.dll
|
||||
213df40904a1b088fce848eb34bbc91785cee298632e06670518d306536af23b System.Transactions.Local.dll
|
||||
bfffd1196acf43fc9c88ebb561bb3a964ede3d8269bba09cf3258ead1ab4fcc4 System.Transactions.dll
|
||||
03a5049c71a54d9e8c2f2b9180529804d3e956ad6432a0668946115b29d3a830 System.ValueTuple.dll
|
||||
1097a135ce82145a8f7dbacc0b8a4d8951e067652814ff6d9fff0927b21706ce System.Web.HttpUtility.dll
|
||||
5fc03752ad1c79c05bdf71cfc841f7c16cfcc4366365d8f7f31e22cff3cadd7f System.Web.dll
|
||||
b2a12218c022eba72d8acbc36c012211f965bb49c2fe92c0aaf0964ee785c800 System.Windows.dll
|
||||
f66daa73628bd932749377aa5094ebad056a63748223ed0dedb4b7dcd49e22b9 System.Xml.Linq.dll
|
||||
496dc55783342234033fe7162f618938691f25dd818633cdd386dba6e4e1c271 System.Xml.ReaderWriter.dll
|
||||
4a38c5a78410d11d32df42565312306eefc1bee5c73a6c5c8c661b0cf1ac0717 System.Xml.Serialization.dll
|
||||
fd3c02115f7ad89770a70f18f83c8e4cdf8c78bb4f88046923f3285fa853c7f4 System.Xml.XDocument.dll
|
||||
d68c378b07f099610b2eda021a232499cac2d6b96fce72b20a4f0b07efc85513 System.Xml.XPath.XDocument.dll
|
||||
03c3c78e671c3abf1d10c830eb67b8761bec7b6dcc0ae74462736df3616434dd System.Xml.XPath.dll
|
||||
fc671e921ca4cae98c3b1cd0ad0fdf1e75f115917c9fa0826f194efbd149c1ba System.Xml.XmlDocument.dll
|
||||
8e9bd064b432d8617038f2100b8268b8f46e4c22a6c09395ad0519e657c8801b System.Xml.XmlSerializer.dll
|
||||
8b35480d266706f1c8db8e70216a72ba26d3fb25725f8a1131731e4d380410ef System.Xml.dll
|
||||
ea77299c8ae8751e2868343efc838167b2612c58863690b83692de4d66a34578 System.dll
|
||||
a88115b54a4782631612f995f857624994143e783aca58dfe2fe0800417a49e6 WindowsBase.dll
|
||||
47bfb8cdf3a7b786d45c3db5ba763d97b1c93ad60c486d4472af76d1922dccb3 ZB.MOM.WW.OtOpcUa.Client.CLI.deps.json
|
||||
23951460d6790e23f3dfa7d06b4019c09c01492846941c55aeb66a03a9017e69 ZB.MOM.WW.OtOpcUa.Client.CLI.dll
|
||||
257b5b13e980072e46f9405aeddbbddb440a17ad9d26e122ede3fddb15cb27cf ZB.MOM.WW.OtOpcUa.Client.CLI.exe
|
||||
ef79b46acb7e02de3e00c370964d4509e1f7da0c23fbf7bb6b731241319f5f0f ZB.MOM.WW.OtOpcUa.Client.CLI.pdb
|
||||
79478f035e69ab7220e5a5c0f904e8f74441d8390ecea88d00f58da33c6714a4 ZB.MOM.WW.OtOpcUa.Client.CLI.runtimeconfig.json
|
||||
dcf9172fcfc61882d7bf795add6b3e97f87eac854c57c4f274e09c492624238e ZB.MOM.WW.OtOpcUa.Client.Shared.dll
|
||||
95ce530dd3702c2a09aa1a8993f300ca795389f77eca4f0e464d3c9982117a01 ZB.MOM.WW.OtOpcUa.Client.Shared.pdb
|
||||
4b848b0ed6ad94a455a85e93cd0c10faef62f349c7ce6f39415ae55af72655d0 clretwrc.dll
|
||||
ebfb09f29cfdc3cd269a4a5bccc0bc6e4e7afce9a7d263e43cb52bdec98e9e43 clrgc.dll
|
||||
936c6122bb95df8bb6c7552e93ac01e426bfa5a5081dd7fc774703e05edb2d04 clrgcexp.dll
|
||||
e33038c23f32074683e170b0ea74dae6ee74a05bb5e8ef6c9fd4cc43771b34cf clrjit.dll
|
||||
1bc65b8d45474b19adf3ca85ce881087aff599ffc72b2c1a323e878227757b65 coreclr.dll
|
||||
da50d230f70332385b86c44f9dc3f571b60340f8b603bc0e2f201b5a19240acd createdump.exe
|
||||
5b9358572daa76176f97f1bb80fe764b24ee1bc2cce0579230e7f9a28e3fbbed hostfxr.dll
|
||||
84275dc570382246b4b36ebb3094c2b38190c2fd80998d1da20b95dfcae1c546 hostpolicy.dll
|
||||
4a9b277d882a52f19b89047748e6ab1043c1582f834b20423c8c7f16a76b6ea3 mscordaccore.dll
|
||||
4a9b277d882a52f19b89047748e6ab1043c1582f834b20423c8c7f16a76b6ea3 mscordaccore_amd64_amd64_10.0.1426.52326.dll
|
||||
31081748cdac21d8734422cb3188070c4f49cb9fd85051a7605bbb7337a7331f mscordbi.dll
|
||||
5ff7b9c14324371cab67e190165015103701045ebc36edcb8a829e5505c2c765 mscorlib.dll
|
||||
9eb4ec98c78e698e0c25e9088a5670eaad1e12ab4df066eb3803c495dc0031ce mscorrc.dll
|
||||
7b32a336b638570bff7b2f4782ebdc05b8c70fac76fdb412f3e8a3c181c32a61 msquic.dll
|
||||
2844417955d5b11f8434fcc969f52bc09104f438ae2f4d5595c36c355d06e270 netstandard.dll
|
||||
+1376
File diff suppressed because it is too large
Load Diff
+241
@@ -0,0 +1,241 @@
|
||||
a58275640773dc3ff06ceafad752fd399e4ed7cef93039354b7eb06a126590ff BitFaster.Caching.dll
|
||||
af06268aba8215c17b300fe8ec81bbef8d9982b5958a3291563f504537ce844d CliFx.dll
|
||||
febbda76f97e6c1b13d03da160cb0b65bb441d67e2d486e1f2bc46eba50e9854 Microsoft.Bcl.TimeProvider.dll
|
||||
d8ea1fbbaafdc9734420131c5d1f4624826e411bad3e51d3eb4fb95ab154f66f Microsoft.CSharp.dll
|
||||
70e4b89978ce57ef87b28f4921f3140c383b04aa96e7f3bdb3c4ebb898fd8a72 Microsoft.DiaSymReader.Native.amd64.dll
|
||||
a7e80a5ed7efaaa21da13993a01be345a3221ce92422c2cb33655399a357dc6f Microsoft.Extensions.AmbientMetadata.Application.dll
|
||||
b99d010d6b9e5bb863399959d6140bc59ed29ef921957bea3f666ada7995aa50 Microsoft.Extensions.Compliance.Abstractions.dll
|
||||
fb45286fa39f58b9e74b6346e31034e00031170169ee11fd0a15f99b6dca0b56 Microsoft.Extensions.Configuration.Abstractions.dll
|
||||
cdb9894a560842062c820e6335c445351bba26fa92e27b3e703ad07e977c8227 Microsoft.Extensions.Configuration.Binder.dll
|
||||
c11796ac536b45b6028527bb9543607f6a5fca98b1784339226d68cb98705333 Microsoft.Extensions.Configuration.dll
|
||||
da04edc338d5aa0f38a1f5fa5ff3ee7e36affe9c961daf3ea724a428bd746bc6 Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
a73a6c6404212d70a80f8cccde2bc527976f9fcb693360f6cf32e9b2d38c9a8b Microsoft.Extensions.DependencyInjection.AutoActivation.dll
|
||||
2d0e268bf76b4ce36a55ebb2767354db956c6660de65d6cccfc35c957fb12cfc Microsoft.Extensions.DependencyInjection.dll
|
||||
623879199a4d98248dbce917e8b2c11b1f5eff24a01cb3b50d772461566dbad4 Microsoft.Extensions.Diagnostics.Abstractions.dll
|
||||
476e2c7298b102b6cfce2d6ae2acad52ce7248d4511f36d42ce35a77fde1df55 Microsoft.Extensions.Diagnostics.ExceptionSummarization.dll
|
||||
c2b5e806a61d40ce428764647e8c2bcad20283a3c87f081ff483923ed113aaa5 Microsoft.Extensions.Diagnostics.dll
|
||||
0ad9800893013d1e11c6b5afc6ef8a3fc0f14d38fa80bf5d63485fc70f848216 Microsoft.Extensions.FileProviders.Abstractions.dll
|
||||
37c244f5685ca031be74a49bd23b2634588235f672f3a0b0b352ca8f6f6c3887 Microsoft.Extensions.Hosting.Abstractions.dll
|
||||
347d266abd3c7376b56ab7b10b36510abe2fe3a36e0cda5e7ad0fd668f5f8102 Microsoft.Extensions.Http.Diagnostics.dll
|
||||
eb573ea6c8f24d2178d733c1f7f6fdf2856056c6aa5322f667d685afdd20afbb Microsoft.Extensions.Http.Resilience.dll
|
||||
5f1f986dda7614d800aac232d54ef229c7e557c54a70b060d71752897e26c9bd Microsoft.Extensions.Http.dll
|
||||
7c242f8ca612fa1acc61f78efd5f8c89e01bd0bd47dc4ecc65e0e6e24f1a1668 Microsoft.Extensions.Logging.Abstractions.dll
|
||||
10465e68c4431d3fd790911b56fcd3cfca89dfb4b0ba75d1affd970892824b2f Microsoft.Extensions.Logging.Configuration.dll
|
||||
05b76234f2a5eb945b268ced706cb4d81446778ea6bd6910298b5e9111170b4a Microsoft.Extensions.Logging.dll
|
||||
634cca4d69263df34f856a45d6f0eea0fbd82929ba410718254bdbdb03e12b70 Microsoft.Extensions.ObjectPool.dll
|
||||
460a4ac4770f3e134454076aaf02a4774a25a40e03e3cefbd5bc4c5f5a70af9f Microsoft.Extensions.Options.ConfigurationExtensions.dll
|
||||
b4ff561da6a7b11b68341f9fd32cab3f8b23cdd8b40332b9fd8bed73a9ee7de3 Microsoft.Extensions.Options.dll
|
||||
67642533eb87e8dadeb9026de59ff4b66cc9bf35c0cfbedfef7b79bc6d8b30bc Microsoft.Extensions.Primitives.dll
|
||||
ef993eca52f7d1dfa47d34678c4d4d69ad35e4052797f679a2f6fec2eea820ef Microsoft.Extensions.Resilience.dll
|
||||
052ae9f51b926b0a61b06081eebca430c603ca41af463fa925aba4434d0b4628 Microsoft.Extensions.Telemetry.Abstractions.dll
|
||||
7cea61a2885a8fef83e85dc3615a9e8add8748cec129e45e7cf4240cce61528b Microsoft.Extensions.Telemetry.dll
|
||||
578203d4915aa43283a3d6fa1083f4b80f333ef544e39ff0fcfdada1b7499a7d Microsoft.VisualBasic.Core.dll
|
||||
95aa41f885965447a62b59f1b3ce1677300c51c009048c8c677b961e98e99a72 Microsoft.VisualBasic.dll
|
||||
637adb956e9e80549239f1707db3885683504efbfc2ed8ea93a3d187ef53789c Microsoft.Win32.Primitives.dll
|
||||
143a613fc7c87e09c02cac0cc1469f850120bed98c5a1602ad84fc42b6c1ae63 Microsoft.Win32.Registry.dll
|
||||
620da406fabdbc75d11f9827ea7e39d2d3c762471bd2264b0d11f1d6cd9247cd Opc.Ua.Client.dll
|
||||
6ed6a594c93c3ff35d1a16539a9fe87c1e2640549cc2f48ed6bae333dc8bf0e7 Opc.Ua.Configuration.dll
|
||||
51cfad48657d95d38074bb88be29aea6f5b361a07397247d58838d066b99772e Opc.Ua.Core.Schema.dll
|
||||
a7dd141b8dabe8848ff28c2fb8e16a85a0508e6a49e6b1a1c1e267175b99af96 Opc.Ua.Core.Types.dll
|
||||
9d0857aa6b7f3c49037d4ea557b4da8edf07e146069464481783e66c5c9cd35a Opc.Ua.Core.dll
|
||||
7f4969aceb2f0db5328c6882cb4b117342f3b18905c38acdba600683860c4fd0 Opc.Ua.Security.Certificates.dll
|
||||
c542f69882f4e8a4ebd5ccc28a3881d6967c7ffb6dcc3c56dc6c776f39c2ede1 Opc.Ua.Types.dll
|
||||
37762ea6fcf05154685b0a616461705c837c2f07d98e4037dc3a0e4b4c186ea5 Polly.Core.dll
|
||||
8adac7a20cd056b9a8623efb6e6f9b99a82e18d3c7b7f6c788f7fc4b20ce5f18 Polly.Extensions.dll
|
||||
afe3042cd4062438857d42880623845f32575375f460fd1ac07f705ea0211804 Polly.RateLimiting.dll
|
||||
cd84c110a96a28b969f9b75873801ded483ff8e2396507e2a53ab977584f39c6 Serilog.Sinks.Console.dll
|
||||
e6b551a75ff7fff20dd0024670d5c42dfb74afa16d54aa0201106dea400a9505 Serilog.dll
|
||||
b03e016fa01d7cc9723044c7020940779e4af59e29bdf47f72bc6ed9d9b1d257 System.AppContext.dll
|
||||
9bd4590fa18b9a6509efb5147158a6abbe4799e82e0efa9fa240102b6084872a System.Buffers.dll
|
||||
7f2ac0ec3bb9425017006cc750dc94a3c37ed175ba2f4eaa3f8f8e5cf35472e0 System.Collections.Concurrent.dll
|
||||
ce2385891f525991c59d99a86cfaf8d5a81c56f24b01a433f42eb85071832121 System.Collections.Immutable.dll
|
||||
82ab716ab740669598d8cda36a92690bcc4b01ebba8b21c0c4f0a7a8ee1d9248 System.Collections.NonGeneric.dll
|
||||
d9ed158ef29df6146151d13260ddbb2310da7150eb98c2637ce91d057f7786cb System.Collections.Specialized.dll
|
||||
78d429a901a73a09cda6037befaa56b79bfa557000b2a69ba1c1210253c0b21d System.Collections.dll
|
||||
f2c3fda351505065effbb42e175e50b4c9bcb4c4f560ebacc868d50d29252eab System.ComponentModel.Annotations.dll
|
||||
f7675a194e2f444670b94d3d3866dd3dd16b48b332cc5811268ff903e6c17a65 System.ComponentModel.DataAnnotations.dll
|
||||
d060e7f58feb609db4f47e2a6da25c4a9b406b97589004d4022d31d673aacc52 System.ComponentModel.EventBasedAsync.dll
|
||||
953db884b5edfc396ed4036413240e538cdbb858c06354d976d7b2e6ccce7167 System.ComponentModel.Primitives.dll
|
||||
8faabcf0ea88a11425d247b19d9cc8a64a78a7c07ff977854cf4a9166e0415b7 System.ComponentModel.TypeConverter.dll
|
||||
72b3608363e47f2cf3cf3fc9fe2fcefb760e5292ebb9d650fa4ced3896dab5f9 System.ComponentModel.dll
|
||||
c53f9278c6889d8562d616106413bf50198f452316b4c5002100c568d541428c System.Configuration.dll
|
||||
8be68e4cb2f0b64b5f37f7a7aa82db2ae1648115a9b7b9381a3cfac7cdb4aeb5 System.Console.dll
|
||||
f1dcf1577c6a675f1c85ee9f13d103495ce123ed232001646f4132d76c1480cb System.Core.dll
|
||||
e6be5f74d117b7300523041ec239d2c7b64fc495ef954f48f81ca71507e510c6 System.Data.Common.dll
|
||||
65bd4ccac3f6f062a68d2ff797bb3908b7f21f908c95a1e85729b8c5bbcb3b87 System.Data.DataSetExtensions.dll
|
||||
dc01c232769d86816af9d67e492902487bfc87f787f811ca098f42f4988ad789 System.Data.dll
|
||||
baeabf6461eb78165280fe2a0fca951146de0d8f672ec20a159aa1f431bb409a System.Diagnostics.Contracts.dll
|
||||
ba04477089ee6fc9ae8c2a8e711905fe1d7a113c785cb168d28eccaed435400b System.Diagnostics.Debug.dll
|
||||
c84547ea80b944c4683901e03c2e0c00e462a7b12a3657f5f3e1474a5d52edaf System.Diagnostics.DiagnosticSource.dll
|
||||
b86967674838e9e7465e171d334f6b970720ebcf005326e45c1c08e5720a0054 System.Diagnostics.FileVersionInfo.dll
|
||||
1acaee1d612a45f2f287675b5b84defed1b34a90cc659641f97043f45076fbe7 System.Diagnostics.Process.dll
|
||||
c464ff65bb7a1ef7e70b0c610aea951e8f71045cfde50602832969aa02253b6e System.Diagnostics.StackTrace.dll
|
||||
a1656873dae8b3f2a56714f5a9bcf179e8064a992943cd0b275e83310fd4edff System.Diagnostics.TextWriterTraceListener.dll
|
||||
dade40a11c2594fc03c84d119050f8b4281077bbc28298e3c2f6d96673cb0667 System.Diagnostics.Tools.dll
|
||||
248c392f7df6bd5de9be9411dfbbd61fd6ae9ea6f896eb8a9dd6445cb54af2f2 System.Diagnostics.TraceSource.dll
|
||||
b8274d672ee21b7ab2b579aec0c55795cb9fb3e1f15e9b3c2ee07d90260a3fa2 System.Diagnostics.Tracing.dll
|
||||
5f04571de46d5defec5e946b618b7b1b10b9c613492a8089ba926d3dad0c6916 System.Drawing.Primitives.dll
|
||||
86fe6479c86f0f99358adcb89ecba5d3fb91a30d333545a17c00ef67d86a29f1 System.Drawing.dll
|
||||
3d645a280ed6d073664f229842847d8af2dc2a7126ccf27c5eeba2c55c08286d System.Dynamic.Runtime.dll
|
||||
614c4e1729c2011b1e40424d7b00b3dd2b76ca7abb438c62d93048c97d9ad44a System.Formats.Asn1.dll
|
||||
d8552ece59785ee1790ed8d2bdad03c0059c26a461f19c76d215c24aff8af190 System.Formats.Tar.dll
|
||||
cb2a60039ed7a7a797d133ecee1755185305632b8c78d62dcaf0d2ccb4e15ed6 System.Globalization.Calendars.dll
|
||||
7d27ac98541e7e6e72dab31aed4055fc9435b777bfce0f50722440601efd77bc System.Globalization.Extensions.dll
|
||||
e374eb513cb207833143ac4967155589087e4fb71a8ae9108ee1d64596b67484 System.Globalization.dll
|
||||
b3525059b5751482765b660d86d90de7e9728707c65d9cc5a63f1152ec43a952 System.IO.Compression.Brotli.dll
|
||||
3fab44511b3e88c31430c987223f46c71dda6f890a2d6ecb7b29031ccc4b6b5e System.IO.Compression.FileSystem.dll
|
||||
ce43bb776a6df4abe190d0e77096046475709f8e8b0c823e10cb7b39099c32a4 System.IO.Compression.Native.dll
|
||||
02096ce99b1fef365d4ba9c03edf0e18f7981dac6943ab56676ad66d0bb2c9ff System.IO.Compression.ZipFile.dll
|
||||
5f7c0695725d3485c86d0bf445c99be1fd320f17b11048a905041ff187dd4cbc System.IO.Compression.dll
|
||||
b14b8ee22bd83e07c6a004179b70aa7b2958791aef5e834c5de72c49308419fd System.IO.FileSystem.AccessControl.dll
|
||||
1dc8cf48e1bf26700064f54e510fab4ad0f5482ad113261a71807f9c194180dd System.IO.FileSystem.DriveInfo.dll
|
||||
a72218414270188a3d11fd291ff63c407f65f0a4ff8ebaa8351990649fdaa9c5 System.IO.FileSystem.Primitives.dll
|
||||
c60472fbd6ff9bb4a909605ab9fd08462eeb1cb058cec3deb49a21f84e4ab602 System.IO.FileSystem.Watcher.dll
|
||||
1fdccf62b58857da2d75f26f0fa31ce342e035e08b61f08a439088834c25a650 System.IO.FileSystem.dll
|
||||
be0350b4aa7e08c5a88a0d887aeee22e11144dc73f10805e36b2bb21440a6298 System.IO.IsolatedStorage.dll
|
||||
1c60d7b873037f161663cc1f98ccadad1493195952b3f8dd318468ac451ac4ae System.IO.MemoryMappedFiles.dll
|
||||
0306263c46f0fe7ebe87f4427d3365a23e92faed787b81c54337349688662629 System.IO.Pipelines.dll
|
||||
e7af8e95bc18598a4cf42daae14d61518bc9944ed68c11a0742765419f04f2c8 System.IO.Pipes.AccessControl.dll
|
||||
e631dad2c1c1657f40b512d15ed4a636d20341e8a0c6df34f2cd7d9b20848836 System.IO.Pipes.dll
|
||||
ee80874913ba2b3dc55f05ed18043ef40a42cec0c2095a68a2825ec66e069c25 System.IO.UnmanagedMemoryStream.dll
|
||||
7696915987cd96348e15e6b230394a9042e278baf26d07d2414b99e8a66ce969 System.IO.dll
|
||||
2d74c61b46462f83d17c46fbda7087977d293bd0f6808742910d0f6a29d5f5e8 System.Linq.AsyncEnumerable.dll
|
||||
eb9139d158b544c11b65cd32c6bfbbc2a11bfe5e9ec61ecc94999843afd5cd2c System.Linq.Expressions.dll
|
||||
162297aa003a7a0951b3333418584f2de68d9a31146e0c4ebbf3a275ef250ee4 System.Linq.Parallel.dll
|
||||
03fd086266f5ed63a077df4fdb5c69ce08799484aed94485965604148fc44461 System.Linq.Queryable.dll
|
||||
1c6886fb239a6af59da0dc1561d9f010e2e983a1e826d6e8f8a61f7ea42a3af1 System.Linq.dll
|
||||
5bbec55d9b01c664055180840b651b1b1f01c15f7f45ee84192b95a09f2c355b System.Memory.dll
|
||||
651a91c2658632929ba7f50d415b2db6151fd96969be0b47e4f9672d648ec86f System.Net.Http.Json.dll
|
||||
fc7ad004bdaca8763dcb23ab3a5fb01c9aed9735f678563f4f03254c9c956f8f System.Net.Http.dll
|
||||
5e514d43d23325ceaeeabc00906f6f782424e8b2b01fc050ede60559a8202851 System.Net.HttpListener.dll
|
||||
b65a90cdfdc51ee4a5c2cd4e0764ec42b46c8e098aaa6d4f57e8e8c3fb3560aa System.Net.Mail.dll
|
||||
cc5b82c8101e3af2ab05dea804d333109f954f32ec49a9e4e71e3679ef4d7d58 System.Net.NameResolution.dll
|
||||
3b97a77bab7f4a5215b12b7d0f16d47d6a617bcafa59d6e4b9efd3b695bbe0f7 System.Net.NetworkInformation.dll
|
||||
2b91becc5ea71a9b91f544df76ad0c5a29a87798484b37b9c2f05a8a598f1ae3 System.Net.Ping.dll
|
||||
01d8bef670ac4265708686d37076d8d21daf3152cd0e7b2aa264302c369f70be System.Net.Primitives.dll
|
||||
ae641f56bcad5c06551f90b855d7a61c9bd401d0c0a9985ccd662da860c3d5bb System.Net.Quic.dll
|
||||
5e462536c5b743dbef0522174a576ecb7be0dd52c5074e64b7ca73bc7dc570d0 System.Net.Requests.dll
|
||||
c03a6cba2d1e841f78293188b8356e0890a03ad9860eb5f602e69ac8ddd253c4 System.Net.Security.dll
|
||||
d39e3896fa6e4b42dcb6aabace1e9d2f8c15c6ecfe10868668dd9de119aa675b System.Net.ServerSentEvents.dll
|
||||
dc7433871738ffb8ce7f7963cee7fadc2103ab4b61e461a70e60d848625ae297 System.Net.ServicePoint.dll
|
||||
7e8787c401641f3d749847c552ad8c8c600896e1aaead24c93440039801dc98f System.Net.Sockets.dll
|
||||
8cd16344c501ab69ee11eb1108efb37d4c789de9bf421bb3e8703800ca1a8b1d System.Net.WebClient.dll
|
||||
f5973c353b9204e5c1cceec843707c7be368293428d52f62bc746400346103b3 System.Net.WebHeaderCollection.dll
|
||||
9bb235262aa0f2530fe8cadf095432438746dc3bf5d1090caa7d0eb4ee2dca7f System.Net.WebProxy.dll
|
||||
9ae53fe2d695d041d834fe741c52a60d77031667dde8078281cf56904aa65fb3 System.Net.WebSockets.Client.dll
|
||||
dc3632ff6a2f4118904eb64edc433c0d79c497b3ad2c01e1287cc86da14de612 System.Net.WebSockets.dll
|
||||
1bb00c4e169c0a20ad8763f4105204c221b97e037464b5bacb6ec4b9d40e0ad7 System.Net.dll
|
||||
2025fbc96c75d61d82cee26ccacb100d773a4e393630e2697a5c7bc6c4ee5a8e System.Numerics.Vectors.dll
|
||||
c39d8710b4aba77631159b90e04abd81b58ff3cc9fc8433621b76683cd6aec9a System.Numerics.dll
|
||||
16f21d6da2db3ce7a1c0b904bc2f3658685156a2155e5aaba8a3d45f4bc06c74 System.ObjectModel.dll
|
||||
69d56e12535d3a8f2f8f89ac8f97577e6dc788d26f2e7b69be8fb5f6ff17ff28 System.Private.CoreLib.dll
|
||||
4e329edac8f17617d2d46d2d472e21c48614276a9879f3f7b4be2cb2841ed3f6 System.Private.DataContractSerialization.dll
|
||||
eb07de9b8f80dbc1c2cad80598e184a8369f6cbd9d105d50bcc6cd3428e61ce8 System.Private.Uri.dll
|
||||
3c2edaf8c5fafb005e25631b8ed48a64050bd126a8a5cba2f84b6869d6a6df47 System.Private.Xml.Linq.dll
|
||||
3467185933c682c10a67eb6b4eb78df5a1debc63d4def7708d23db9fb79780fc System.Private.Xml.dll
|
||||
93b0f758fac7aef8eb3256174fe621ac9de7db98e044e22d4b6cdbf7b462c5a7 System.Reflection.DispatchProxy.dll
|
||||
3f8d14d45f250218d9c66f158b7a218ac73d1f2df75dbcf71a09f12f1711bf5f System.Reflection.Emit.ILGeneration.dll
|
||||
f43856d942af20cd256a7358afad7fdb50df4e9e307e29beb34dff8dbd094b6c System.Reflection.Emit.Lightweight.dll
|
||||
f0c3777ec9c76eeb3198de980054247fda2d184e8dd3d3693bc433613a6df364 System.Reflection.Emit.dll
|
||||
8ccbd7bd124cbfaa1cfd9315d922dd693ad7ade5d0436d246b188e02b40919df System.Reflection.Extensions.dll
|
||||
5af6e802d91f1e404a95c55e23310185e7de09adac62ffd6fd56b98a6b31b15d System.Reflection.Metadata.dll
|
||||
9cc0088b3e2d6a0771063dafd2c924538dff5087c20610f7826a088a38c27ae0 System.Reflection.Primitives.dll
|
||||
479a0a76d0360120f262ca9d501637916382a5d162f10c29d37b01888f5fd00d System.Reflection.TypeExtensions.dll
|
||||
d3d7fa31b89606d7a5c10a26ced05a29d32ab2fb87a54f10c82cd74e8e19725d System.Reflection.dll
|
||||
181cf4b3b528f7e2a3316fb792339320a1c40c96c7b45b726ff16257097276e3 System.Resources.Reader.dll
|
||||
06fbffe507abc62101f0466d1570cecb074ec6a432a1ba058d4b9360ea13764f System.Resources.ResourceManager.dll
|
||||
1dd70e4933c113a2a9963f79068a1e0fe52bcbb5dfaf54255dd41af5b4e05d35 System.Resources.Writer.dll
|
||||
bb342e1fbacfe7589b71936fb000c36b54ddc96d578bc0888623e19549c1e6f3 System.Runtime.CompilerServices.Unsafe.dll
|
||||
657abf22f77265e6e111fa0c6f55fa176373dd447fcc0f0c4145da91fcdda047 System.Runtime.CompilerServices.VisualC.dll
|
||||
f7e44a3f016421af7130ccdd913c57419d3cd2a0f48e34bdd1295797f2535cf8 System.Runtime.Extensions.dll
|
||||
b21415740db52c068dddeb4dc61e95a41ec23b1a4c1b1623ff6b65399c7c0fdd System.Runtime.Handles.dll
|
||||
1c91d7b7dd6da38c6426a4be35b3458ef3d127ea84533941528694e9db1a145c System.Runtime.InteropServices.JavaScript.dll
|
||||
f0b683af8a5db0f4cbaa2119f66ba93a01ee0db8ba1079acd01f01d247c111a6 System.Runtime.InteropServices.RuntimeInformation.dll
|
||||
bde2bb33524a73e2964cd47ddf753150d685b31ebb1c4779e66ca426b2b419bf System.Runtime.InteropServices.dll
|
||||
61cedf60e24e672bbde2869ceaee84342d22823315aae7fb7b768e9a6e6893a2 System.Runtime.Intrinsics.dll
|
||||
b55e68bf26539914d8eb80718dc5b183f36d53c7fa20103f52c06796d33aa0c6 System.Runtime.Loader.dll
|
||||
46b0e0c9b0198446a5d4ae8579433a038d7f1199e0378ee6213a0390bdd9a99c System.Runtime.Numerics.dll
|
||||
18e20e41f0d87206ff1fbede425b7737be7c554c1704af3c684e83bbdec63157 System.Runtime.Serialization.Formatters.dll
|
||||
87249d372d73fc7fcdc057be0efba1c36fe7318af832463dcfbf55fd067bfa97 System.Runtime.Serialization.Json.dll
|
||||
5981ef301f6a849ae73bfa0eeb4956992fc15b00f705c35f208eaf6793a37ab3 System.Runtime.Serialization.Primitives.dll
|
||||
ab0c54734d37e5aac3f726fe7806ff8de5c5bce757f7993135540154a72ade79 System.Runtime.Serialization.Xml.dll
|
||||
39da6e91e025583c2d51a5180614cf278bdf7f6d850c4c011422869efca625ce System.Runtime.Serialization.dll
|
||||
d6b4189c8e9afce3629b27c902c198a54ad3a355ec8409d3880b3b68fb1cf445 System.Runtime.dll
|
||||
c83dce7b6b0737d14771c9ad38a8726787a91472be503d8f911bfe91668efadb System.Security.AccessControl.dll
|
||||
77c7616c8f073677f8a057ef032b21d8f6dfeb19179b936bd54bab268e71cbf5 System.Security.Claims.dll
|
||||
0e5de3978293221c0e36bf52786abea8f7b74ebf06de58c9717db4507e59ac10 System.Security.Cryptography.Algorithms.dll
|
||||
9198b7e57489278215a2489d66d9d52c7a9d65ae7abe399cc9d27d1b23debbf6 System.Security.Cryptography.Cng.dll
|
||||
2774b21002a29479de3523f8781d1411e4990575b50f1316d6a9cd490980c2db System.Security.Cryptography.Csp.dll
|
||||
070abb893bb963b2a846ad8b8c1354563c7b362d1c492eec53538fc28a871001 System.Security.Cryptography.Encoding.dll
|
||||
e2a8cba098ec00d19d043750e8a19374cc65d1a498b9eb15dbffe0eecc579b32 System.Security.Cryptography.OpenSsl.dll
|
||||
89e9947ee1e7839eeac2c9c0b37a2b0c0433ff338dadec6380fac1eae375ffd3 System.Security.Cryptography.Primitives.dll
|
||||
398e55927b3cfd070bc8d204740e50d012cb78f7a2dcb968a33869b4aa54e067 System.Security.Cryptography.X509Certificates.dll
|
||||
b043b1ed136164fd69606a9e7f26f1fc05d0c7cb888c0c00e3b58544623cc7e5 System.Security.Cryptography.dll
|
||||
25f1d31f27d8e9a97fa203160dbf9a8a7be8188328ac74516002d0ac071961d9 System.Security.Principal.Windows.dll
|
||||
d1cdbae10415e4f384ecdf34cd6e427f7c1d67bb6549b7e15193006428734bb4 System.Security.Principal.dll
|
||||
3347281129d6cfc4a5c912dbb9f803878c99cc60d125ca5f2adbc4718ccf348a System.Security.SecureString.dll
|
||||
e81926edd150a900fa0d6832aa813b2c3dfb156e7116a7cca2d96640ff24e438 System.Security.dll
|
||||
9537a9d13c43511fb95b6d30dda7817851b23e864503fa336626522499b51d24 System.ServiceModel.Web.dll
|
||||
13fb65e12deec9ac60a8342dec6caeff8d35b56dc142cdabfab2745620d46fd0 System.ServiceProcess.dll
|
||||
e3f7a38a01cd863716d83ae322a007a2d052044cd8bfc2b5b1c268ac05c9d931 System.Text.Encoding.CodePages.dll
|
||||
fbbc0dde38272605b8b95271cca7202ca04d5fa115acbcee936e1bed611fd23c System.Text.Encoding.Extensions.dll
|
||||
f1531dcab1fe59529829a1a241953a5e55ef8340c8cf1a21c053eeb7c48e2a84 System.Text.Encoding.dll
|
||||
319eb068c30ae985653a31911086141f5ba26b99e0ce7ff083f455ad42d4c584 System.Text.Encodings.Web.dll
|
||||
ff440fd7d4ae3d5a6d080c1ebaaae7d5f4145ea162ab12bf8931e92b4311f469 System.Text.Json.dll
|
||||
244be34f8333ff60b1fa87f54feea7e8338e2ff96fdb148a4d4bf12b7c981c86 System.Text.RegularExpressions.dll
|
||||
6f4b852763d9bdf83013893f294cd021a0efd84243374e52e148d8b665ebc8ec System.Threading.AccessControl.dll
|
||||
26f3f523ae3a685b462c1b192ac752cfa8da5db5ba4e2714b2e64635e717a4d6 System.Threading.Channels.dll
|
||||
9442e2b745620403121ff4868fd430a2178029c22ae6a8dcac77d957ada4be42 System.Threading.Overlapped.dll
|
||||
4638d6b12ecce5eb1e0b0e5a9ebb23d1c2d708f6e8d3427adb9cf3e15f7ada71 System.Threading.RateLimiting.dll
|
||||
bbf7de8812c20b8e61f9833d72814dd858c4781fa35500b2374c7e5f19d3a246 System.Threading.Tasks.Dataflow.dll
|
||||
b35a1faeecc0fb706b06f470a13fb3b1d2addfef1cd5a81fb1bdbd75ad6c8fdd System.Threading.Tasks.Extensions.dll
|
||||
2853f090ef0c1bd47f91800ef71b0b44084b1f703b3b699919466e065ba2fee2 System.Threading.Tasks.Parallel.dll
|
||||
a908649b99249e9533d674ed8838f2cace1f6a4071d848bf9edf7b96dc4ebc5f System.Threading.Tasks.dll
|
||||
5e1c4834abd41d88f79872557c69d20502e2d220bde333870e31d1a1eb4eacd2 System.Threading.Thread.dll
|
||||
2135197f9cbc09004ca02055bf54b5e3d0e2d7a9d61c477e4ef129321eb0b4c2 System.Threading.ThreadPool.dll
|
||||
a7763eba808803faab8e904fd5b467d9c7dd5c18ddd9a584d7c686f08d27e10e System.Threading.Timer.dll
|
||||
6c2137fb877e647a6c0f8909db8ca7af1e6fe95f19c6e531f6a74539fabcc6ad System.Threading.dll
|
||||
213df40904a1b088fce848eb34bbc91785cee298632e06670518d306536af23b System.Transactions.Local.dll
|
||||
bfffd1196acf43fc9c88ebb561bb3a964ede3d8269bba09cf3258ead1ab4fcc4 System.Transactions.dll
|
||||
03a5049c71a54d9e8c2f2b9180529804d3e956ad6432a0668946115b29d3a830 System.ValueTuple.dll
|
||||
1097a135ce82145a8f7dbacc0b8a4d8951e067652814ff6d9fff0927b21706ce System.Web.HttpUtility.dll
|
||||
5fc03752ad1c79c05bdf71cfc841f7c16cfcc4366365d8f7f31e22cff3cadd7f System.Web.dll
|
||||
b2a12218c022eba72d8acbc36c012211f965bb49c2fe92c0aaf0964ee785c800 System.Windows.dll
|
||||
f66daa73628bd932749377aa5094ebad056a63748223ed0dedb4b7dcd49e22b9 System.Xml.Linq.dll
|
||||
496dc55783342234033fe7162f618938691f25dd818633cdd386dba6e4e1c271 System.Xml.ReaderWriter.dll
|
||||
4a38c5a78410d11d32df42565312306eefc1bee5c73a6c5c8c661b0cf1ac0717 System.Xml.Serialization.dll
|
||||
fd3c02115f7ad89770a70f18f83c8e4cdf8c78bb4f88046923f3285fa853c7f4 System.Xml.XDocument.dll
|
||||
d68c378b07f099610b2eda021a232499cac2d6b96fce72b20a4f0b07efc85513 System.Xml.XPath.XDocument.dll
|
||||
03c3c78e671c3abf1d10c830eb67b8761bec7b6dcc0ae74462736df3616434dd System.Xml.XPath.dll
|
||||
fc671e921ca4cae98c3b1cd0ad0fdf1e75f115917c9fa0826f194efbd149c1ba System.Xml.XmlDocument.dll
|
||||
8e9bd064b432d8617038f2100b8268b8f46e4c22a6c09395ad0519e657c8801b System.Xml.XmlSerializer.dll
|
||||
8b35480d266706f1c8db8e70216a72ba26d3fb25725f8a1131731e4d380410ef System.Xml.dll
|
||||
ea77299c8ae8751e2868343efc838167b2612c58863690b83692de4d66a34578 System.dll
|
||||
a88115b54a4782631612f995f857624994143e783aca58dfe2fe0800417a49e6 WindowsBase.dll
|
||||
aa729e2a47fb8c1ea22efd81ee7c276215aa304a5d42b602409c19b7c470b692 ZB.MOM.WW.OtOpcUa.Client.CLI.deps.json
|
||||
8ba541d4f96ef1ad9290dcd629eaf36b46a5f30dd1f5f76800d4f7a16bc55357 ZB.MOM.WW.OtOpcUa.Client.CLI.dll
|
||||
e2c88c071733e5807a260ee33d5064e1ec13178d2562aab8d7faff763b6974a0 ZB.MOM.WW.OtOpcUa.Client.CLI.exe
|
||||
67b5fad0f9fac557489a78bb10cfcc477d3cc42f98c1df8e60196b674ce249c4 ZB.MOM.WW.OtOpcUa.Client.CLI.pdb
|
||||
79478f035e69ab7220e5a5c0f904e8f74441d8390ecea88d00f58da33c6714a4 ZB.MOM.WW.OtOpcUa.Client.CLI.runtimeconfig.json
|
||||
bf99d8b3c7a11603ef0caa727c08ff49eaef150ed366b946dab13e69abd52ce0 ZB.MOM.WW.OtOpcUa.Client.Shared.dll
|
||||
9fd627631c4e612ade4933fb3019500e767a4beb5b3ad9aad8a7bc5de5381e81 ZB.MOM.WW.OtOpcUa.Client.Shared.pdb
|
||||
c6d4f34cb488992813e24f8aa8a2dbf52f41c5699b02264fb26c27f28c28e430 ZB.MOM.WW.OtOpcUa.Core.Abstractions.dll
|
||||
66afd08fa9130faab591ee26e083c7ae798b52092fa8fbfbc1fd6759f64dbca6 ZB.MOM.WW.OtOpcUa.Core.Abstractions.pdb
|
||||
c97efbc79aa183dbbf7246d7f98bb34fb1a602bce08b0b2ea73f8fa65fe61265 ZB.MOM.WW.OtOpcUa.Core.Abstractions.xml
|
||||
29228af6e0a2d5fe61dc5f99cd599284d9f8a74ed5129a6c316ef36149eb1af2 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.dll
|
||||
4d4d26f18598e3f9aabd236de8069fefd6390c1dd6e0e96b55a91f56719a7d9a ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.pdb
|
||||
4b848b0ed6ad94a455a85e93cd0c10faef62f349c7ce6f39415ae55af72655d0 clretwrc.dll
|
||||
ebfb09f29cfdc3cd269a4a5bccc0bc6e4e7afce9a7d263e43cb52bdec98e9e43 clrgc.dll
|
||||
936c6122bb95df8bb6c7552e93ac01e426bfa5a5081dd7fc774703e05edb2d04 clrgcexp.dll
|
||||
e33038c23f32074683e170b0ea74dae6ee74a05bb5e8ef6c9fd4cc43771b34cf clrjit.dll
|
||||
1bc65b8d45474b19adf3ca85ce881087aff599ffc72b2c1a323e878227757b65 coreclr.dll
|
||||
da50d230f70332385b86c44f9dc3f571b60340f8b603bc0e2f201b5a19240acd createdump.exe
|
||||
5b9358572daa76176f97f1bb80fe764b24ee1bc2cce0579230e7f9a28e3fbbed hostfxr.dll
|
||||
84275dc570382246b4b36ebb3094c2b38190c2fd80998d1da20b95dfcae1c546 hostpolicy.dll
|
||||
4a9b277d882a52f19b89047748e6ab1043c1582f834b20423c8c7f16a76b6ea3 mscordaccore.dll
|
||||
4a9b277d882a52f19b89047748e6ab1043c1582f834b20423c8c7f16a76b6ea3 mscordaccore_amd64_amd64_10.0.1426.52326.dll
|
||||
31081748cdac21d8734422cb3188070c4f49cb9fd85051a7605bbb7337a7331f mscordbi.dll
|
||||
5ff7b9c14324371cab67e190165015103701045ebc36edcb8a829e5505c2c765 mscorlib.dll
|
||||
9eb4ec98c78e698e0c25e9088a5670eaad1e12ab4df066eb3803c495dc0031ce mscorrc.dll
|
||||
7b32a336b638570bff7b2f4782ebdc05b8c70fac76fdb412f3e8a3c181c32a61 msquic.dll
|
||||
2844417955d5b11f8434fcc969f52bc09104f438ae2f4d5595c36c355d06e270 netstandard.dll
|
||||
+1396
File diff suppressed because it is too large
Load Diff
+1132
File diff suppressed because it is too large
Load Diff
+413
@@ -0,0 +1,413 @@
|
||||
d9b44216b34fc9655c86c3e9d30422e47683969577e205a17096a9a706db768e Akka.Cluster.Hosting.dll
|
||||
9f5b418e908a4d579858889af823f780a5e7ff6be2f27c24aa38309759d09423 Akka.Cluster.Sharding.dll
|
||||
a819b0c3e73e08ea474936ad429763ec11681f43c090e2b92dbc1d37d7c94e35 Akka.Cluster.Tools.dll
|
||||
e64aee4dbd305f533c9eea995c9676c0ce7bc8e55a77437afd14b0cf8fe3c0a9 Akka.Cluster.dll
|
||||
2472a627de9cf9185b3a98860266b7751c173f859d3bd185b272d5f4078be26b Akka.Coordination.dll
|
||||
ebea19a2f75f2e275531fbd62be5499a5132563958ebccfc25a450979cfa0039 Akka.DependencyInjection.dll
|
||||
8c1733537b6cedfb4e7234b86ae63a45cd204ad3c6bc8843f52a85643c507a89 Akka.Discovery.dll
|
||||
56100ac684f6acef390b2e546d198899366f035aaa51bb64bc494ebaf2d85007 Akka.DistributedData.LightningDB.dll
|
||||
9ba2724f0cd49676338241b6249e3b9b95a5c50ddadea5e28adedf31b3ef9fc6 Akka.DistributedData.dll
|
||||
937444c766e641d7c1f86e718e97a148587136a249f91c2986e1f77e2f8d9f92 Akka.Hosting.dll
|
||||
49068dc58456684f3c2804bb541223c3aa2dade07f4b1e9877b2e7e058d2056a Akka.Logger.Serilog.dll
|
||||
a9e840a8bc6d7c404e0c83ec5576fcaac3a848880c0ab2b0ed9f1bae33ec2076 Akka.Persistence.Hosting.dll
|
||||
c11fc9b044bb927d764f85c0ca8a02c16e8084c05c5ecffd050869ed7810c390 Akka.Persistence.dll
|
||||
f0d2ca67e9affd0c68ef32dc859974fe415c00ec5a4710a8e06467542799ad6b Akka.Remote.Hosting.dll
|
||||
b1d27508442727938c4076561f6b4ee81cdd3caa0ef76a481cb45dbfc4c5a0fb Akka.Remote.dll
|
||||
e3d9024ece608d6f8b2a15d15f211d50919ed983834fa85d9cc3c9be3c56eb73 Akka.Streams.dll
|
||||
b2d2b8422ba6759d315cbd07622e705fb69daf64e9425cda45f5605132303e34 Akka.dll
|
||||
224d09cb39eae4d8c30272a0c49beb19d873c87347eae9487f0ddd859d752b56 Azure.Core.dll
|
||||
af18f20be25b2895c912f3ba0a9f2901a82dda823edcad76e6a19eac9886a40f Azure.Identity.dll
|
||||
7af73841cafd0c8b05ad166c45ad0886bcf80926d4c4a65e0fa7578ea1e04d03 BitFaster.Caching.dll
|
||||
65f066d108192cefc6e44f18e2d92cf338be30056f4fad02d6b8ea692f81bd37 DotNetty.Buffers.dll
|
||||
809d9e582ce909356b34ef8d4f212adea5d5ca25e1492a31ccb81a6f9be23070 DotNetty.Codecs.dll
|
||||
7a375647446f11a5d5f5eddf72f0327b4b69956a91917100d0f4d8f120fa7962 DotNetty.Common.dll
|
||||
08ce96ee9108adda52adb87119c54fdb819806817867943987d77983c3f1a9c5 DotNetty.Handlers.dll
|
||||
f393993cc027ec61f758b8832029b21f2efd8583807e0aa06af4df90d239eb09 DotNetty.Transport.dll
|
||||
318092fdd4eccb8e30ab04493a5ce3e827714df2721770af62ef81aea8bd21d8 FASTER.core.dll
|
||||
c2769d0bc587db846b99fefcd778a8ffbb7fbcb4a03d2fcd8ce9573c7ef7042a Google.Protobuf.dll
|
||||
7340bd5dccbe5298825df443d4971a90afd87388e381c008a90556e42c2c04d1 Grpc.AspNetCore.Server.ClientFactory.dll
|
||||
f200b4cae34c51f4f607c684dd72107ad2487808673ae20960edacdf437ec9dd Grpc.AspNetCore.Server.dll
|
||||
3535e79c38523d239303a33d420c8a856babdcc4d08a167d532decdcc5453951 Grpc.Core.Api.dll
|
||||
ad2dae77484dabaa9dade62035d761a0d1ec26394e8b600e80dff7b792c088e7 Grpc.Net.Client.dll
|
||||
9bf1e593838013238a56d5b4e4e2dd2e8c93589063eaf2a3b2f71e3d3219fd3d Grpc.Net.ClientFactory.dll
|
||||
d91c6969c65943f22f8a6f67f832e763def7fcb2af0ce16862b3748fa06e0521 Grpc.Net.Common.dll
|
||||
b0ebedf36fd19f1dedd7547e49c5a7b6e4a6b53015dde70699e4e69ae8f50406 LightningDB.dll
|
||||
1bb34492a9018fec3f627458364dc6e46fef076a647df181403246da65f5bce2 MQTTnet.dll
|
||||
2a2f99ce877c62a8c600c390ce1f15bb0cc2a92a973a9da60ddcf4bd60bdcb64 Microsoft.AspNetCore.Authentication.JwtBearer.dll
|
||||
a768ee07664430adbbdf9a761ed0b691dbf52d67d2f1af833de606b851516394 Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.dll
|
||||
1ce2e273eab3c4ca003e65bfdf78318b3195f08385c814a02f10890bdd34d05f Microsoft.AspNetCore.Http.Connections.Client.dll
|
||||
5833a8070a9c50faa38331fead1c106c4c4bf4e6eca773b00a1d44e16c6911f8 Microsoft.AspNetCore.SignalR.Client.Core.dll
|
||||
f5201eaf736cab8651013a49b6bd8bbd2d80fb2f46ffdef0e40ce21bfcb161f3 Microsoft.AspNetCore.SignalR.Client.dll
|
||||
136d5965cf4768e8420b547a8bddea882921f426c371833d558a858a2f0c235a Microsoft.Bcl.AsyncInterfaces.dll
|
||||
009a27b8e3093fdd2960bba63e4acd48eab05c4f8f8a6d9fe8c24b4657f44c4f Microsoft.Bcl.Cryptography.dll
|
||||
d0f4798de9cb78c13463a0f3df747814c177ec15e03e1c03aee17136798a2cfe Microsoft.CodeAnalysis.CSharp.Scripting.dll
|
||||
cfb5f2785c30485eda803d58fb8330d737cb07d469cd3d7bc1113d58e8d8e4bb Microsoft.CodeAnalysis.CSharp.dll
|
||||
7c3973a0997a1901c4f5978ef901e3ae96ddb780dead70a42f65f2e3f6f23e8f Microsoft.CodeAnalysis.Scripting.dll
|
||||
0a7fb1d94e0e7f46798b138caa67e5d5fb8fb98fd31b5294c917def057ab3d80 Microsoft.CodeAnalysis.dll
|
||||
5a34e2fa3479b1508dbc20fbeb2c9172f18c3868bdb147a185213a446645b400 Microsoft.Data.SqlClient.dll
|
||||
9f1fe804321767b6cc8db751ecedd56ab308e5f15492a7f40d7093bb61ab7638 Microsoft.Data.Sqlite.dll
|
||||
34aaa94035fdb18400c9c40df82a731d935153e71c99932a92830e5807cf41d6 Microsoft.EntityFrameworkCore.Abstractions.dll
|
||||
ae537828754942c45e884795bf666205f5cff414c9238641bbe8687ea455cb79 Microsoft.EntityFrameworkCore.Relational.dll
|
||||
9261df9184d4aa3914e9f20cbe9a8abc478702de3ebdddcb622143f798698464 Microsoft.EntityFrameworkCore.SqlServer.dll
|
||||
1783882ff577f09cd2b220f322e0b3eea0f77bb86f80611089274482ae1dbf75 Microsoft.EntityFrameworkCore.dll
|
||||
0d7fae30684654fa9173ad248ab41b713a48d81df0ef446ee4e40c8d380893e8 Microsoft.Extensions.DependencyModel.dll
|
||||
39de9399e095736aeae2a29568207ea349d889bc3b72affa68f92d6581bf6f1a Microsoft.Extensions.Hosting.WindowsServices.dll
|
||||
9c1f736b16cacd318afe07d3b9d707a4b4b56def5e403b0aff471c1af413aaf0 Microsoft.Identity.Client.Extensions.Msal.dll
|
||||
10d59df4170053ea9597e3c20adc9607ad17318ad5d8747eda3d930a5a4b463a Microsoft.Identity.Client.dll
|
||||
b438fd27bdd5ba7dc4a482c1f135d6305301b1685f624bb36ac0ed24f499fc2d Microsoft.IdentityModel.Abstractions.dll
|
||||
cf889db7a04e956d03726954f9389a23a952666a66137021c712ee977630bd37 Microsoft.IdentityModel.JsonWebTokens.dll
|
||||
da14a0467587838b7fedc6670315452ff9c7a9fe54fb7f0742fe7a34274753b7 Microsoft.IdentityModel.Logging.dll
|
||||
3fdcb7b20fe91de47857aa3fee0d13affaecfd0544cae5a3ad3f7f105a3d8cd6 Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
|
||||
1126552d469948ed6d7887e8c24cbd65fddad103193eeea869930e27da2bc010 Microsoft.IdentityModel.Protocols.dll
|
||||
b3d4bcb1d9f9c469825e7aa041bc35c33d85651a88ee24b5ef9ea29d7502d214 Microsoft.IdentityModel.Tokens.dll
|
||||
a9dca1b42bc875f966b78b2c0880e62b838f0ed6567166d7f1f07ae4b76ec4bf Microsoft.SqlServer.Server.dll
|
||||
e7734ef5db26f5e5626f8ef354831c60adff9a8e88447cc5e865cfe1f9e466bc MySqlConnector.dll
|
||||
a28c251dfe36d881e9e2462e171441b8b0ec156fe3f452602c9149b1b9efe05b Newtonsoft.Json.dll
|
||||
85918b6f9e91acffac9bd081b70404b0456c7a6f0c9c5666ccda8951bd8120d4 Novell.Directory.Ldap.NETStandard.dll
|
||||
e2bcafe1660fe4543fe9dfcabed972ec8d32259e5ea8009462ce1de23c7034c2 Npgsql.dll
|
||||
fd000b186f4bc5dbd9947e876f96c178e8c4259ee3e8717d672a4ac2f4c3a058 Opc.Ua.Client.dll
|
||||
30fb5142f13a3b3083c0484bcdedaec2efe2f50e57f10ec6a61257ca5359aa7e Opc.Ua.Configuration.dll
|
||||
602e85316943ad7ebae33a23d60a69a6ea50d91250ad0556906b816435daa37c Opc.Ua.Core.dll
|
||||
a2a05c64348f6f8aa60de0fe27d8e5e22d12e09b1ba6172ca34b3773620e394c Opc.Ua.Security.Certificates.dll
|
||||
d8d9706dea577858325730cd89896826ed82f7bfcf9503ccd0260311663a69f4 Opc.Ua.Server.dll
|
||||
c5c5e36cf6381444b408fe1b51726b17deca74173764cd62ccee954b3c8c2718 Opc.Ua.Types.dll
|
||||
5c5727de149a0232825774a8ee75b60581ce19ce8b944d422bd545e2e3d7f915 OpenTelemetry.Api.ProviderBuilderExtensions.dll
|
||||
ca5ddb7a51bcbb1ab8bcc6484603c70a4077142a8745d521c4bd2363f9e7c217 OpenTelemetry.Api.dll
|
||||
20bf20b94e2e92a73d20d97b81d9cd3b26ef0967ff29f80d84b421c4317ac77e OpenTelemetry.Exporter.OpenTelemetryProtocol.dll
|
||||
60dcd62f532a61821328e52e511bd47db620c301c7105c4aaf70619c0f217d65 OpenTelemetry.Exporter.Prometheus.AspNetCore.dll
|
||||
a627ebf2a7d14e0f0b3c2568e6ee37773397de25c90ee89d4560422c42d8b945 OpenTelemetry.Extensions.Hosting.dll
|
||||
247771e79186a704722510e03aefb2f09c10286ff3fc658dcd4bb81ba347f6c3 OpenTelemetry.Instrumentation.AspNetCore.dll
|
||||
8edab07d2cc02b81cc53bd9ccc0f6160e483a4b42ced3cf339de530fecfe88ee OpenTelemetry.Instrumentation.GrpcNetClient.dll
|
||||
154c41bc484085a74a0b1886478ffb4aeaf850686d173d0c93a11ad0283aea2e OpenTelemetry.Instrumentation.Http.dll
|
||||
a789454f78efbf4d2f04605b98d3f143f6396bec208f4b5765e8e8d2d0f35143 OpenTelemetry.Instrumentation.Process.dll
|
||||
08b62837d801db4afe0ac77d27fe66fff99493cbb6b9c49a5876627c2aabd7a8 OpenTelemetry.Instrumentation.Runtime.dll
|
||||
edc9799efd614cb083193d90eafcd99abf70496738c3065933093cf99d162cae OpenTelemetry.dll
|
||||
a76f5f278e9db505d76ce21bc57163c0079ec03ef1dda7d9a524d9bec3a3bbbf Oracle.ManagedDataAccess.dll
|
||||
df10c208f9987484230282411a01979db0cf45ef5ccf798d9e7e0cf961287e0d OtOpcUa.Host
|
||||
e4e98eada040063f8ea48168bf06f1e1ca2b768da625596c8299d90797ccb0b5 OtOpcUa.Host.dll
|
||||
95653c8ea484279fb2653d0c13e40409cb52dd080a4f7990a3049905d8b846ea OtOpcUa.Host.pdb
|
||||
eff38a9750f7cca2407b1d639a963d56ffea92088e6da971bbbfa74e3dcd7224 OtOpcUa.Host.runtimeconfig.json
|
||||
802ffe5c74c26cf6bdd0f0ecacc36965807a267765f61b63eea8605da15fe0e3 Polly.Core.dll
|
||||
dfb748806727fe261f48e15ed6c1e3ab952f7021208fec4df0184615ba5ec6f0 Reactive.Streams.dll
|
||||
e293fe25f6e774069a5c38f0778e47f2c8a0d7327741a6df1c62fb0f98d497cf S7.Net.dll
|
||||
bc69777001eb4db81c580f62835396f67e74aaa381eef446193a904499d5310b SQLitePCLRaw.batteries_v2.dll
|
||||
50c999a1ab2afeacc93bce5ac2948d3bb630d99d23efc3cfcbd8bc11d3426eb7 SQLitePCLRaw.core.dll
|
||||
02ad639f45a26de1919ffbb6696bdb399ad01afc149970a163c3867162f310b3 SQLitePCLRaw.provider.e_sqlite3.dll
|
||||
c49ea3d1dcdf33d1cac92a96b7f6c8803e232e970b73b17a00410a32769f55ea Seeder
|
||||
50ee8159f0459ee69e9517f6d6285d822a70eba03765b9073c91ba8babb0628a Seeder.deps.json
|
||||
18690a15628f028df95bd4a578049a3997f31e41c22a5a06ee04e50739920de5 Seeder.dll
|
||||
27e2a6e37b5580db1d4bf07d4b89dd98800a8218b011c2886f38ce52460c8833 Seeder.pdb
|
||||
bdbb6b43e509fbbab6c78b7004c4debf1e9791a648a08f730ff5997f71ef7099 Seeder.runtimeconfig.json
|
||||
a550c57df7a04edbed00da036fc14be12acd0d425b7401855975fb628e3dbada Serilog.AspNetCore.dll
|
||||
3e6d0284179ee0e1c197568fd79b58f869d15298fff8ecb8447322fe87d44f47 Serilog.Extensions.Hosting.dll
|
||||
80d3edbe3e3ac0b4c5bc764474220e7da11df8d285e0098f3dc1b65a734c8507 Serilog.Extensions.Logging.dll
|
||||
319fbcefc2161dd50ccdd8d60b30edee48a09f794aedb28421a23f35ddd670d9 Serilog.Formatting.Compact.dll
|
||||
ec8cfd1f8970a44e2aa3f7bcc71116ca2691b196564bff83e3e3ead0c1143b67 Serilog.Settings.Configuration.dll
|
||||
dc88002ddd9f5fd0ffec9a6568ef89954671f60f2c9161593ee78932538c1e3e Serilog.Sinks.Console.dll
|
||||
df543d3df8bd00d72e5eb2b9b2a15e67a6e4d10c13834de4cedbf500b8793e01 Serilog.Sinks.Debug.dll
|
||||
4f4282671c2ac68284b4dc99f7a76eac9cbd4e659978cef642cff9e6c01b676d Serilog.Sinks.File.dll
|
||||
e17a2dd847560cd22bdb6df8302f8fd202c3f073888cdd9ad8b1df9e80da4351 Serilog.Sinks.OpenTelemetry.dll
|
||||
e6b551a75ff7fff20dd0024670d5c42dfb74afa16d54aa0201106dea400a9505 Serilog.dll
|
||||
ce44a4fae4c4787c12475700e19a365fc2f388ae5d0f6182557ce5ea175be7f6 System.ClientModel.dll
|
||||
434522d676f626589e21aedea883f6acfbe276f9c3a935dfb4d8af7a19feb75a System.ComponentModel.Composition.dll
|
||||
08b618461d62fe65451bdac4dbc25f8ac8ab16a914a687f2dbe3923bf0e8b3e7 System.Configuration.ConfigurationManager.dll
|
||||
703fa599513e6ef21193933f061f2b6cdd57f268d593344faa5980b823e8226c System.Data.Odbc.dll
|
||||
c596c35317c7bd5ae3938854996d62c24c7f67f61d3710a379bf1f3ab1a9e3b4 System.Diagnostics.PerformanceCounter.dll
|
||||
096102bad94746479987ffc4fc6c9faafb9e1ae6ed1c74c9a7dccae0e4f3ea9f System.DirectoryServices.Protocols.dll
|
||||
56cf18b0b16ea80738e0768cdcbc9368f13bdbedaca86025756009e30f969fe6 System.IdentityModel.Tokens.Jwt.dll
|
||||
75a516771f2e10fdb76c1ea603f8d11e702af7ec97b383f1036cee114ef3f491 System.Interactive.Async.dll
|
||||
149757a4113ae6102c425f1469a7cc14deb28635e94cbc9e0404f5e4dc518001 System.Linq.Async.dll
|
||||
bae79a4ff6e8fcfb65a3d88eb53d281898e699e5471ebd780843e5616753f0c3 System.Memory.Data.dll
|
||||
c1cae1a8b97d5e0ed64f7a9947f6ae44498398b6e9ee71473c2bef24646e91f8 System.Reactive.dll
|
||||
02321322ec85e0a68f28ad33e549213b1dbf3de0e66c3f7803f9ae32c0d00ffd System.Security.Cryptography.ProtectedData.dll
|
||||
62ca0ff8bccaf622bd75f03b6a5ab46b8ad7b28c5eb6ba6a0a9e4ecc49cca640 System.ServiceProcess.ServiceController.dll
|
||||
f9892e164816e0b1cc9aa47c2efe3f48814ea8fbe4f04a125460555eaac9d9ab TwinCAT.Ads.Abstractions.dll
|
||||
016eb9f6687832b0a7a819609ffb3227204f75732919ef19fb3366c038a11c5e TwinCAT.Ads.ConfigurationProviders.dll
|
||||
7da06f37c0572d5a8af8e0a5d6a81bea18c3ce1c08ee7501668570fc70a7d033 TwinCAT.Ads.Server.dll
|
||||
2a9c2ca91889e24f088123ce313fc96060897b9e34232022b0566dfd2ea32a0d TwinCAT.Ads.dll
|
||||
8dfda63f20ac0a34c43716f593bcad60755daf71ae4aefbf7ab1f34a0951de11 ZB.MOM.WW.Audit.dll
|
||||
24099d4d38811a364569cba4924af2430fe1e8ad8d3e735bd840dbfaa548cef8 ZB.MOM.WW.Auth.Abstractions.dll
|
||||
ac062c1f634055ad9b80bd13344481318d6f45ac45f40dbaeed861ee20a75984 ZB.MOM.WW.Auth.AspNetCore.dll
|
||||
8625dea672beff26bd8f4f2aa54307cf652e50ad66a2c6625bb27d282199c32d ZB.MOM.WW.Auth.Ldap.dll
|
||||
ad89f1d2abcad33be99b03bca37b26a9b92f90c354e98a99928d6176b12d58a7 ZB.MOM.WW.Configuration.dll
|
||||
a1345d712159544954955b41e7d04bc35180e1b9b36fdddcaedff5821a09d9c1 ZB.MOM.WW.Health.Akka.dll
|
||||
d4fa98ca71512d1927037db22477facf49472249854898fca55c49c726307693 ZB.MOM.WW.Health.EntityFrameworkCore.dll
|
||||
3c95dff17440b9df9195092812949b6e16e0c02456953650a839963af66df633 ZB.MOM.WW.Health.dll
|
||||
b89a02e0d228ec549c4dfb755694f7f67b573a6077f06ff2781165e884fc5e12 ZB.MOM.WW.HistorianGateway.Client.dll
|
||||
e60d3d4650be5d251982f7847404daf1b666f61d56e2b0ccb844af8677e97743 ZB.MOM.WW.HistorianGateway.Contracts.dll
|
||||
d4da2a5bdfd3ebcb56f7ec948cda12bf378dc34079cd20e864509902a93bed38 ZB.MOM.WW.LocalDb.Contracts.dll
|
||||
234e31795fd0641f8f873f9ce9641d7d4b028be724463abdafb0f119dc18d800 ZB.MOM.WW.LocalDb.Replication.dll
|
||||
ac243f94af069faa0b171556a6e24bd5140237f275f3548c37789993c221ee6c ZB.MOM.WW.LocalDb.dll
|
||||
0c058c2827829d54a8556308e4ed552f1cb0011b863c26dafd40cef7bff5c42d ZB.MOM.WW.MxGateway.Client.dll
|
||||
af97aa90aa944afd6e7613d5bbdbe85cd43c6f33f2bcdcf74b1ef5d854369775 ZB.MOM.WW.MxGateway.Contracts.dll
|
||||
e70d68b0f6b8368ca0db9cc8301616c51f917df192d340599fbd92b64a176f27 ZB.MOM.WW.OtOpcUa.AdminUI.dll
|
||||
e7fd05dfa6b14971616032bfeae46195d302659b64e81865d9f97c3069dc8521 ZB.MOM.WW.OtOpcUa.AdminUI.pdb
|
||||
697210daff97f2f4ddc02966a6224442b495c929997c9babe9f50635c2a6bddb ZB.MOM.WW.OtOpcUa.Cluster.dll
|
||||
94374787dcf4e00b1dfed6e9d751fbcdbbbe3b41d3f7cd92e94952dfcd1faba4 ZB.MOM.WW.OtOpcUa.Cluster.pdb
|
||||
7d11cd2139c07f9a54e38f302122f4fd770373cd56301e99bc0fe04741a2412e ZB.MOM.WW.OtOpcUa.Commons.dll
|
||||
60e9a16257a79324e44ff6e072ced9540366607d0ec12759aaede3370c2998c7 ZB.MOM.WW.OtOpcUa.Commons.pdb
|
||||
3e7918cecfa902550297f34fea14615d4dd8f7414f2ae8eba9abc42d87881ffc ZB.MOM.WW.OtOpcUa.Configuration.dll
|
||||
3beb2197c5113e1facdea22619fd8cfa6831065978877d87ceedf8449f98f5c1 ZB.MOM.WW.OtOpcUa.Configuration.pdb
|
||||
151be457f42fd6e36319e63d55ad28c5e9f7f07ce98fc6428dcf7695db2cb0c7 ZB.MOM.WW.OtOpcUa.Configuration.xml
|
||||
6da949d1f1f2197bc4488ae5ec64e03df9d807a6947148b6c9f5f452cdef2ebe ZB.MOM.WW.OtOpcUa.ControlPlane.dll
|
||||
7e7822b508535ad2c52b9692b46a05c532822a71afc4c2c1bee9df03f8c2d957 ZB.MOM.WW.OtOpcUa.ControlPlane.pdb
|
||||
2834bcde7b2df9cef036deeed0340c46e3831be18a9b4fa9eae0b237a3a667dc ZB.MOM.WW.OtOpcUa.Core.Abstractions.dll
|
||||
f8a70551fd5fd1c782ba6c3221451dbae5c88728d40d43fadd06828dc2f11054 ZB.MOM.WW.OtOpcUa.Core.Abstractions.pdb
|
||||
bac920d88ceefc73c12650d0899dfb66437154e6bd96f700355487482ffac0ec ZB.MOM.WW.OtOpcUa.Core.Abstractions.xml
|
||||
0b1d5d783df8f3dc4214e2e30bf7bbca1e153523167dc85b249e8251286f5eab ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.dll
|
||||
cbd6dc0d266c542d08691cfccc15f33fffc65a94793fc48cf4bc722991c9d28c ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.pdb
|
||||
e55af77bab0ec8d427e4823bd79b881f026a9a7154393852dd282fedbd7878cb ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.xml
|
||||
5578e64d861b64226dc6e60933451f5589101313d83cf078c5202d81ff5b7043 ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.dll
|
||||
c275e138eb818e5f42c788a13f7bc58c9dc2ab67c345ed953c3b9fe07c7e315a ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.pdb
|
||||
98ac58b6f49df51b405e7cc49dd297d72c25a544b3151cecbf7f111ffd8fdb8c ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.xml
|
||||
0139d48192ed468c719c783ce2d71bf8796808d0bbc1c058b54f15f95087752c ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.dll
|
||||
d15204d1afe9d17b9e3c0551eaefc7acae7dd978471a2cc4750ca0fb8bbafbed ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.pdb
|
||||
1daf5bbd3dfdbc85b4b5d6102592549e460ce5054716c004f207e4856bc38e80 ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.xml
|
||||
b608938c09c804894ecbf82240f12cb9973b5d341d49d2842ecb6af0231644c2 ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.dll
|
||||
eefa38044b6d3b4fca7110c0878c596c426a8717053cf71216dee087eda2a304 ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.pdb
|
||||
8348f87d6691b40e764fa8cf2defc7f2d4e1b585832d86985db92e15511020d0 ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.xml
|
||||
7fdf3b7f2839893aca6a5e5794095f01df5b36429a6429021a224ecd56fa7368 ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.dll
|
||||
c9b023eba729b880dff359abcc7b304b8bdfa339cbd76b3a865df546d5101052 ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.pdb
|
||||
1144d8e281e7420c26d6d7fe3dceac00e18c8c6556458b9bf8bc15b4964f7a45 ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.xml
|
||||
6af8ad75cdf0f5dd999236ffaff8370e5e98ed575cbb5d2b443bfac70c9b53d1 ZB.MOM.WW.OtOpcUa.Core.Scripting.dll
|
||||
28d6f7380c926ccd63b08794207819288d148714c685b6f087eb3f6d84116a18 ZB.MOM.WW.OtOpcUa.Core.Scripting.pdb
|
||||
5d6a6f1e867319a4433ee74ee965dd1c6138885dad4f2ad94ff8a19d3d22c18b ZB.MOM.WW.OtOpcUa.Core.Scripting.xml
|
||||
0c7cb61559e0eceb00d8f2b49d6549ac4f539007407649cef7c1a67706501796 ZB.MOM.WW.OtOpcUa.Core.VirtualTags.dll
|
||||
3ebaa9c377eb714d552371e62f288f2114ca251cc4ed54b7f6412aecaa9cf601 ZB.MOM.WW.OtOpcUa.Core.VirtualTags.pdb
|
||||
b600e9174c9f59c10c6cbef14dc4f313d79c84c69c94b23fc25a481d763f2c22 ZB.MOM.WW.OtOpcUa.Core.VirtualTags.xml
|
||||
036abdf974e5a03915f86844a22d157c39c86457cb2f033c734c3f873a7c3a39 ZB.MOM.WW.OtOpcUa.Core.dll
|
||||
fad78b03e870dfdd6647fd8083c46f98e8f79bc4c35d5c557bdf94765c70384f ZB.MOM.WW.OtOpcUa.Core.pdb
|
||||
76f843527b6ec5520f8a22a912208bbf9b5bedd0c42a0123808d0ad6e2791ee0 ZB.MOM.WW.OtOpcUa.Core.xml
|
||||
a8550b072c27ba0fae4c6930b64432fd8805cf55dae588f7a325779d9850f8a4 ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.dll
|
||||
bdf6ccce6d8941e78d1c10de0fea31ad7a0b925ca20f7224bf769638db2b3e3c ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.pdb
|
||||
88e44591e5ad0edf1c8323dce58d3f572cb569f170b5999e66f0cdadb3afd1c4 ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.xml
|
||||
b8bc92ecd58d1ce0a5370c8bb127b7509c8887e7b9a3df05c95a38593e2aa71e ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.dll
|
||||
991e5594c2b13960e59e1db665bc595efd3b7c16bcfbdcdac87f0e11ea7879a2 ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.pdb
|
||||
224d5f7afe966f9c9fa1c290febd1b6b437285e11cec4ac00b56df9cfc55c749 ZB.MOM.WW.OtOpcUa.Driver.AbCip.dll
|
||||
e8c01ef9d690220ca03330d6df9fa9a449eb58474f02d17bdde8fc64308565a8 ZB.MOM.WW.OtOpcUa.Driver.AbCip.pdb
|
||||
e4fd4beecddd5f80c1238e17aa6ef752f134b7b6854e71f8cc9505b730a94c5a ZB.MOM.WW.OtOpcUa.Driver.AbCip.xml
|
||||
4734eb7368655dff4c0d21ff2554b94786470c46964c7d132980a24c5e5dcd4f ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.dll
|
||||
fd9a7ef155b01af3b7e9b054848d2e18ec737ac24f510710c507fac6664436df ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.pdb
|
||||
8f0692ddf9b4448f4f26f7482cd350edc2e6eb1cb72d844d0ddcb64d0b7e4ef0 ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.dll
|
||||
d0e6f8498c6df567a16eb3f00ea7f2063c9aba14e3de7d5f4d50f68a70fe1c35 ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.pdb
|
||||
09228d8cd1ab88adffcac4ac504fade6bb3d1df938fc06eb7e008fcef08f5f60 ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.xml
|
||||
9ff65141f1193c65258e984541621a5527b5d7ff41ac37d07880a8cf239ab3bb ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.dll
|
||||
a3b893f5b40db87d913b49042ecaa1b6170b7671b8ed850036e5a0b4d6109460 ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.pdb
|
||||
2452766cac3fa00a309ec057dddb1e214d22c22590f234271f44782e65260c37 ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.xml
|
||||
83a8dde4b5a41ee803a5aca9a1bf816efeae9e3a411c2455ecede18c9d0ce45a ZB.MOM.WW.OtOpcUa.Driver.Calculation.dll
|
||||
77e8bdb525827df4390d4a4b30245c0b2d83cd36cc48cec9d7f6bd927566b69b ZB.MOM.WW.OtOpcUa.Driver.Calculation.pdb
|
||||
15af650cae7be32c5733488095379d8ce6b70cedd8ba9f138e47697e9a9e24b8 ZB.MOM.WW.OtOpcUa.Driver.Calculation.xml
|
||||
e82e7c07b54f73230af213f8c7f7f29cdb5a9a21da5224dadb294efbc08b45f9 ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.dll
|
||||
debfe9bfe847f4129233ace9aab695c886a75319bd268b578e2efa6a0e656cc7 ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.pdb
|
||||
f854176aa908233fa38ccb10eec7225cc9e92b625844515a6d63afb93a5c3de1 ZB.MOM.WW.OtOpcUa.Driver.FOCAS.dll
|
||||
8252d7d2bc6a46d4650c0906325a44fc21cf283ea61896e3c0f4fbd3304fcd74 ZB.MOM.WW.OtOpcUa.Driver.FOCAS.pdb
|
||||
903b317e9358ed9343539eb5e0d79b03e754d57933407aae751ddab701dfc90b ZB.MOM.WW.OtOpcUa.Driver.FOCAS.xml
|
||||
65cc53e1115c148aa629aa8badcd8f85fda5760f4a6bfe90d74fdc1b12ae8c6a ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.dll
|
||||
8b0002c3b5792ed6fcb0c79d31c19971aa7c74745a22088b93b1af6fd1509958 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.pdb
|
||||
6b156f7db7a65bd4549dc41a4feaed5f412c24b30919789ee5713663b5e6f169 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.dll
|
||||
19ff8c8103771032665d3d900f8724d01f41e2e0e1b202c0f50256f224dd01d6 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.pdb
|
||||
4285ef3aca2981e700246fc0aa90d0b76a2307d8df6bec1e445acc14de6367c1 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.dll
|
||||
787374f7ae40f7f6947982987aa40b8768d4473f2e3592d382ba5d7be6b5fea2 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.pdb
|
||||
aef31cd0df95839b045f21016fca05214bddad841eb0572f3a81f9fd0422a5f6 ZB.MOM.WW.OtOpcUa.Driver.Galaxy.xml
|
||||
7b3e7da6a68574a73038481cb2790e600dd690bf9e09a40650f0c22cd30af328 ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.dll
|
||||
2f41aa467148c619e2d261782514e8ca52661d7bcabb44041908fc0f315f2e5f ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.pdb
|
||||
9d008d19967e9b4908bfd835588c7787c8a81d7fa236c378f255f110beae6f0f ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.xml
|
||||
4fa5557e369d1df7e37d9d4e27b7303f0691264378ddf1d01b532b16cf63ec20 ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.dll
|
||||
e4e32adad5065c33eb59b3ae2046b6abfbd8199d7c2d55b94cacd3a30cc7a6c8 ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.pdb
|
||||
d80730a23a7a35f996103b5b808526406926de9ea150bc0964b51612bd33bc89 ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.xml
|
||||
09b12b7e875748b81b3160b136c34feeb36ce7d3bc2789b5da6d0581c422a47b ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.dll
|
||||
5c11fac90a2e3ab410a2aeaceb208c9338776064de3362cd3bb531c67419bda0 ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.pdb
|
||||
f2031e9bade0a56ed491a88476d278f8c65341655a97203003f1af753b1f9fe5 ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.xml
|
||||
0961e18dc9216ff1b270a233a1b295f3e7659c78d0bf93714da600c3f8832046 ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.dll
|
||||
52d57b7b4e792196337ccda7049ddb9030b28668e9856f8be0c444f54b90bfa9 ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.pdb
|
||||
bee8755c64b9243549d6711c5d0ad659ef4c7eb236dc8e0f79843945c090fdc7 ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.xml
|
||||
d4d6881cc7d8da100db859d73df8582b5d79f08f901f7bc5f268cdca3b8b0faf ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.dll
|
||||
cb0ce18b2160ef565f3cd1f77534b4ddbdb97b3e034d2bce1e025ea0dc235e3d ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.pdb
|
||||
037a6939282ec48dd6e28616c5f0f67b2afcb03d4274712ea8c167ed5b25488e ZB.MOM.WW.OtOpcUa.Driver.MTConnect.dll
|
||||
3ece06c4c08026ea58080df406c20aef9f874da89a78c8bc8ae05ded29e359d1 ZB.MOM.WW.OtOpcUa.Driver.MTConnect.pdb
|
||||
1b64d38425c0c55607242efc2d62ea045d643e2b61317895e0f4524359323848 ZB.MOM.WW.OtOpcUa.Driver.MTConnect.xml
|
||||
4e53845bbfdb7b6deafbc20021604843420e663e07db51050be6f4c1c8b3cac1 ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.dll
|
||||
07999413e2099ffe6c3b98f9960f196f0ff82fc81262aa37ccd7d775ae6828cf ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.pdb
|
||||
accd72b04152c7564f0b78cb21bc2502f6896b9fab47fd61a6856fe5c3db327e ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.xml
|
||||
28e94d9f4c8cc13522e522562b76cf89e4053c4070a87241f9efccbcabd0d83a ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.dll
|
||||
68fe954a13daacdb7c77303a883f01d2ef24753c00526859c224e2b4d71c0be4 ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.pdb
|
||||
21e0d51b5e81ef07f683133427f14717128e3539a80c2455519090ad63528d3d ZB.MOM.WW.OtOpcUa.Driver.Modbus.dll
|
||||
f68a2d0e14475d87aa92f2e85387a3472c1d93e5752b4cd30672a2b2fd7bded4 ZB.MOM.WW.OtOpcUa.Driver.Modbus.pdb
|
||||
a79e16097cfc1b545a17c1e8e29e1de426d6659a4b99f4a321d42965335b4827 ZB.MOM.WW.OtOpcUa.Driver.Modbus.xml
|
||||
89abf8dfa6995f0de2686a87202446278c823a5f5e43fc3e2c3d6c0098028865 ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.dll
|
||||
9618e247d2000587cff14d461e98ee5a1575528d31a549918901ff5f4bb25d1b ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.pdb
|
||||
3924c927d5c412cbd9b8764e9f18309e9ff5bbcd92b146bf85177d98f4526f2d ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.dll
|
||||
6053ab6dca4063a702856e9fb04f7b62e32be788f11ea5e4b563cf894d70ae00 ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.pdb
|
||||
87cd4dda1c62bcccbba14f42b70127fb591b161737fc203e4fa3246bb7d42f8d ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.dll
|
||||
6fd8fa643ae3de6703b7bc05c5d812bfb3dcd023c85a3d928c52b66171ede8ff ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.pdb
|
||||
8ceaec5a103041419f4c56f20a64387bba7a79eac5cba2c9c4bf96cd1cbfd688 ZB.MOM.WW.OtOpcUa.Driver.Mqtt.dll
|
||||
edb2f6b6f41754706257eec469523184001b9afc27396670ab424fb22147e201 ZB.MOM.WW.OtOpcUa.Driver.Mqtt.pdb
|
||||
d13d7f41df9e48aa19c97826f3e541ee9fcb4eac88a5eb7a78ce608eb4993e48 ZB.MOM.WW.OtOpcUa.Driver.Mqtt.xml
|
||||
87856db34f3fb0e76368646e698a6a501a5fa2674665bdd5b9078b36b6a72c72 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.dll
|
||||
651dda8035ef1aadbb241be2953885f22cb0eab02c9fc25073b72b8be9ecb3dd ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.pdb
|
||||
e73cdae1e1f0dc1e7c377a42fd745faf4e5d10ce56f6f17030a93a52aebf5f47 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.dll
|
||||
56480b91236103500a33f4881ecc7629f6d2d18f1ed190faa8fd6f2bef4c2507 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.pdb
|
||||
bfe478e74498cf0f36c1f342b837a386c20ac4e0f2d9e4524e877e6be4e2e4b5 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.dll
|
||||
b5d6ec70dcd3626685f375b925f0dbadf1e1455922b89bc97257024517ea3276 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.pdb
|
||||
f643355f87a97a84ca4c2906936e65ffbf371bc99ec84b90aadc27d8fc9c42b5 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.dll
|
||||
459c53b1eb95dfaf45905a6acf5ad2e823c60e62d2fcf995ce073610a8af0212 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.pdb
|
||||
80cc9b5a72af3ed9a66502c6b0b295f238f0488a16370f8a7d02de421dcba296 ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.xml
|
||||
fdd9dc086f1881134d2ece051fdd31831a322cae493a2675595e6be05e3364c9 ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.dll
|
||||
358a97e147ce601461dc0ee8e0d71dd74a1da600fd17d596120f8b3084e811ac ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.pdb
|
||||
6ca2a698a0f278e6424119489072a51dd87008435902987f25721e511643ccb3 ZB.MOM.WW.OtOpcUa.Driver.S7.dll
|
||||
5054292e644ba541fd6ccc677df0b6d12f3ccf4f374dd74f298f72a2bcf1a5ff ZB.MOM.WW.OtOpcUa.Driver.S7.pdb
|
||||
d61d42a0c978ae00ac5073f640ef3184aea886c7917ca859ef233de4d4970bef ZB.MOM.WW.OtOpcUa.Driver.S7.xml
|
||||
661c3743254d1faccfce7b3811a865e8b1221b8a9e5a640741b44670521c430c ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.dll
|
||||
1af4f97f88ab43c49bec2305b85f25813e9ce9e7203f348e4f7fc26964ef1b7a ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.pdb
|
||||
bbfe7f6d316b602d4b40c46ca050652377819a9f0165706d1fd553d79289139b ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.xml
|
||||
0bd88a56b97f397ab9a446e2b9461dc1c53f93c08b8749842fc08abfb6548448 ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.dll
|
||||
22bfc68c7b66a93655750a49166a3ddbcab2ab08263eb57452031b50a1078182 ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.pdb
|
||||
f038c7f0cc8d13363ace7df1a807b3c4ad0fb89a5cd225e6fd6ab29bd9fb6531 ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.xml
|
||||
47d2bf282c522d7b6bfa017738f1f3a38a9faafd69a6fda330af2a60184107e2 ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.dll
|
||||
c774a85a6dba482c0c3a947b4372d8e775ce9fb53c7190256d22901712a90c3f ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.pdb
|
||||
a5c66fa18282501de55be8a0787b5f7797a0d3f3630934fe05297393f3dd298f ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.xml
|
||||
720363c10bdc046959f302e6ce77728f3bb80f35cd58a685fca02943afe9470a ZB.MOM.WW.OtOpcUa.Driver.Sql.dll
|
||||
ef234c648bde032f4f4e3e5af1d5088e0c195efd865523035e1fba1717416a16 ZB.MOM.WW.OtOpcUa.Driver.Sql.pdb
|
||||
70efab3049ef06f407d52cce405347c4fc901f8097db677ac123e6bd09290dd6 ZB.MOM.WW.OtOpcUa.Driver.Sql.xml
|
||||
52d68b2120db704b464bbada2b295089914ceccce4d38a508213e5f24bf22671 ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.dll
|
||||
8afe9d016e17d71fbc482f947b4b379e87674a2181939523481bd302da8ad2f6 ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.pdb
|
||||
2b68dc523c80c3b6d6ebb5b924d176766e70d9f4855411a001ff948490f81e64 ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.dll
|
||||
0cf150063c288045f1dbaec7792a539425d512d98e4be8eb66d5cea0cd9d68d2 ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.pdb
|
||||
7bb97e07a5486091ead3746ec09055b07a3042d71117da9cd0883e5ec2c2054e ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.xml
|
||||
c9065f65dc2a34965024506115167c0111772a3c416f09123b59fb7624df5f43 ZB.MOM.WW.OtOpcUa.OpcUaServer.dll
|
||||
f06009fb42ea0d1286f49e1eb0737d6cbc916bf8d1d0ea09a3c1a8a004f1bc12 ZB.MOM.WW.OtOpcUa.OpcUaServer.pdb
|
||||
2ea66309f1be39a452b5eecddfc6f7f76f2e5f639a3ae774c907890d7750ce72 ZB.MOM.WW.OtOpcUa.Runtime.dll
|
||||
e6e6b10ebc8c3ad5bb7bbf10930af4d07dbe7ab1bc24d8bb4b7bbef7ad6abc99 ZB.MOM.WW.OtOpcUa.Runtime.pdb
|
||||
01f8383613c6c28512a13d17a822c5d217fdd2bc8ae4aa0e60eae58fdb83c6d8 ZB.MOM.WW.OtOpcUa.Security.dll
|
||||
1b28d8cdf38dfed06fa387e0c5fd8c01cd4a29cebdc7917989f4a35f26e94213 ZB.MOM.WW.OtOpcUa.Security.pdb
|
||||
3a39c92e9a96a305bd229e99d2f59f2c273f8d08c03e431d47e24bd8b8b0ef49 ZB.MOM.WW.Secrets.Abstractions.dll
|
||||
d6a3780f3487f5c8432fe12c057defb709d1dc7678c59307acd19b4cb0d6bdb7 ZB.MOM.WW.Secrets.Replicator.AkkaDotNet.dll
|
||||
782f903b42bce46fb3de827e24d1edcbe41187976b6918c740383de158e35064 ZB.MOM.WW.Secrets.Ui.dll
|
||||
0565fd86abead89be7b4520dddf92cabd5d0994f3620069aa496b8dfa41c9f39 ZB.MOM.WW.Secrets.dll
|
||||
bd33ce7657de5d2966a7768a014f8282ca434a208b05defa2d27bf24c6f124c5 ZB.MOM.WW.Telemetry.Serilog.dll
|
||||
834772ecc662ea7c49a5b512a26f2447db55a072ef1fad16ca768fbee0cfe853 ZB.MOM.WW.Telemetry.dll
|
||||
12bf7d7ec7a618acdf9f5bff9a7c67091ce715698d3befb9aa610cc5c8b1b221 ZB.MOM.WW.Theme.dll
|
||||
169a54d22027e13823af0d41c1314a6d3e44852041c8b35aa80478a88399fe1b appsettings.Development.json
|
||||
eca047204cf6a9b4d89628d7ee2048bc68d46db55dcb4ae9bcf24dbe9e44cd46 appsettings.admin-driver.json
|
||||
bb08f16d701697fcd70695b75d81a4b09bce57daaa95d6fd81ff469258ad3530 appsettings.admin.json
|
||||
a7dc1ab1db2e93f1a6e78b7b1b425720c3c610cb406e6266f0dbe2ebe01badaf appsettings.driver.json
|
||||
89f72acaded7f2d3ca434f2d922fe4daccdc03aa342f3973d35a160be9221b2a appsettings.json
|
||||
936352b9810cfdf43d9b5bc5c099af32e399543bbb1b23a08b08fedd291ebf01 cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
8a4981588d9918e67b6524219c3d4e94c7a98c943b877add612a195c30c45f6a cs/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
c31516f7d942af11d52d2f01e13ca4ce20c8c9c09e2d8b433920757aec262a5d cs/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
aa029203bbbd501902fe7bd72b4073891676de5fc599ee3e6ee97c5eba4237fd cs/Microsoft.CodeAnalysis.resources.dll
|
||||
6e9b997f45393346cf2f96da99f7fa868f2286964a49ce66a59988defdaf84b6 cs/Microsoft.Data.SqlClient.resources.dll
|
||||
ab5a8419880fe8d756dee1816974cb1358dceed093a4719fa145ed5650c73b66 de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
0da5bd754a34b50703312fa988d12429f78c8702919b1867757173993f333dbc de/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
7e5fdadb82ebc0bbb05d4b469b1f0ca78c1ced9fd66e5d5163bb9deee1abbadb de/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
970bf03bc4195a48aa378023fddb825789587103f27c26a72e7a600509649aa5 de/Microsoft.CodeAnalysis.resources.dll
|
||||
30e111759eb091735455f8a7e3cb2a5aff16287149cf3d4e7a67624f00320fc3 de/Microsoft.Data.SqlClient.resources.dll
|
||||
724478523cff7e0d3093c6cbf4cc360b1dc235d91f2c281fdd50f207b5afc518 es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
090e0fabb14bfeab386f71129906b4f687a1d76485776dc09b37ceefe510ca16 es/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
4fd738f23da9f53c2ac1d7daa716eabe72f2711f5e57e0b556a46ee996d5fb2c es/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
1384821617fc8318da873213614a80b54f306bb3c644896475e1ea6e2c5ea223 es/Microsoft.CodeAnalysis.resources.dll
|
||||
6bb867e62e3aef301cecc99311603339301a086bdcfc8683c2c21f9f99850b34 es/Microsoft.Data.SqlClient.resources.dll
|
||||
4bff2d170b55186bd650598f51c82fc1a98a5bacf4b69cd5e5b6b0ff3b77f5b6 fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
a3bbe3f44ded49812b428ef7c9aeff1e65b4230b4496df69b4add657d38428c2 fr/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
07286c85ee919ed0081499c2c7fc4c83eb747ecdee259ff643bb07eca9c55de5 fr/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
6b8bd650dc05af2fdc06b7ff0a2ea05f4913d9c80a7f5d3db905af92c202f245 fr/Microsoft.CodeAnalysis.resources.dll
|
||||
2eac255e2a16495d0bb89aeafa5aa668f74e12358e76eb1756de271b8b91e1de fr/Microsoft.Data.SqlClient.resources.dll
|
||||
e076dd86fb0bbe3c4785797473a51d3f33ffb85bddade11c3295eb58203b5036 it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
0798746130f8d7ba0ba31fbcb33b4af67c2dd050290793a5ab9f1dbf059407db it/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
b5ecc81cf071afc0b816ffa73510c0cb022b67f00d397341dc243894936026a9 it/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
b7849b3d34014cac6bedf60beb7c9165f344e408b8cd33a651c6375fe5856ddb it/Microsoft.CodeAnalysis.resources.dll
|
||||
5a50867ea6c62b3be1fe4429360fe8018f3002b95c4c7b2d306daf19b4a50053 it/Microsoft.Data.SqlClient.resources.dll
|
||||
223cc533aabaa9641bb3e90e24918502475a639f703951bec6565de5709968cb ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
8ebdefc1fe425ce9673afc523cf892258924df967809d2260d18e2389c3047ba ja/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
c5b03bbfc3a237e68c81abeaf0177203b22160d0823de87f833243b5d772457b ja/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
f34557d91dd176c2046dda80c7d666cedd34d946ebabc7a41ed6e1f2dad76995 ja/Microsoft.CodeAnalysis.resources.dll
|
||||
75539952a99301eba174bcaeeaded6da4d758c6f12565bed4208dc50b0344abe ja/Microsoft.Data.SqlClient.resources.dll
|
||||
c13c8e207f48ac04b5ab76192d61f049490d7d3e50b2550111a14556199b2c6a ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
584b85fb5614045da48a0192ae0e3809ac01b58c65170162e4410ab9c46cb8d7 ko/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
76c3fabf0b2c5a6eefa283361e836150b0989aaa0534b4ac9a36e5a5e6e899ad ko/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
792504707fb71f02aff2d12e4ad21fe34b599eb8b56fd2d9e5a14b3d4b0311d7 ko/Microsoft.CodeAnalysis.resources.dll
|
||||
a5eac865982205ce0d1b94ae4cae4ec003b514829542140c91e67cf86312d5fc ko/Microsoft.Data.SqlClient.resources.dll
|
||||
dec38f56006ae9e2119e9f61f9ff0e1aa9c08503ba4f42943c2d7632f60cbad5 libplctag.NativeImport.dll
|
||||
1545b5813148d7ade7662282683e15d2761e0e34cb853bafa3b11a4d47795aa4 libplctag.dll
|
||||
03f45c69c264bdda12e7a9fcabe6a17e5b6a00e90f760268dcde43b7442c0a7b pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
b6ba17056f46a371e8b208eb6f0c11fe1eeb247b9a74f0d61e6d65527d9e3a38 pl/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
259283901aeb5803ff90881e968ca32d4070c78e570a0ed3aca36f49413b2ed1 pl/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
9a3b8471dad02c0a4afdc281b36e1c5743bcf38c8707fb4a5a328b9332e515a2 pl/Microsoft.CodeAnalysis.resources.dll
|
||||
ca9d25b7405908146f988c7fad48ded63e7f02df0e43bd1406803010428338be pl/Microsoft.Data.SqlClient.resources.dll
|
||||
a7762a712cadcc489a17bdc431e6fce109c37dcd2f8e66742c85915333beacbb pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
248faced9a2e759f1e43f9bd2758dd3afe728279194633b417d02d865054069b pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
8850967fa3c77846c4ba03456f441c97b63b8370a9a3dedc2998c42e351e0f57 pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
64d51e84643cb6b1dffa8640cebd718493a58545cef295082aa4bcdd43c4dead pt-BR/Microsoft.CodeAnalysis.resources.dll
|
||||
2a295a383e9076b24f47c1759e1c43176dfd876bc6444a661dee21170cde6b52 pt-BR/Microsoft.Data.SqlClient.resources.dll
|
||||
a9f6c8a31dc5b4415ab72bdcf85b5966cb417fbadfd2016eced02244a5b6786a ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
ee16ffb5ef0a2d63ed86ccc8edfd31a3df5798e7f8673298ed71a9fd7a07339d ru/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
bb70b4978fbbd45824c70a522c868df3f9417f3bd46f3aa69939ee30fb808845 ru/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
970245f28ee8d653babe0db8f4e13df45dd6e36a754219cf863cb67ee95b9a5d ru/Microsoft.CodeAnalysis.resources.dll
|
||||
f7d51f47b1eba12021161ee39a7d08d24df1dcd52c131d1d94ee2c7e432f4cb4 ru/Microsoft.Data.SqlClient.resources.dll
|
||||
f1ab158671d51b10071d6eb76bebb835ec4669350cf5ccbb9610743e6786411c runtimes/android-arm/native/liblmdb.so
|
||||
65f0c5bbcfe1c3245618b7e824285130f7a18bb17ae7cadf4e8ee39df74850af runtimes/android-arm64/native/liblmdb.so
|
||||
f51ed67f10da2d72f39740c568eef8fce424d08d27782886ea3344a3e6d735c8 runtimes/android-x64/native/liblmdb.so
|
||||
d5e91d6c330f5012665fe3e52aee42f0d9912dbfa0ec3468813e1dd5ef02e46a runtimes/android-x86/native/liblmdb.so
|
||||
c64ae8d44dc3e1aa03aca4e79ccc501cbc3a3c490e8e2ea9e369367f68cf0f21 runtimes/browser-wasm/nativeassets/net9.0/e_sqlite3.a
|
||||
b0807a8ab048853b72a0b2fb2d1c89073b461dca68b79ca92bb8c8ada2ac246f runtimes/ios-arm/native/liblmdb.dylib
|
||||
b02ff794049491e10bd596a39971f1421096eeb26acb8506729590813bdc4811 runtimes/ios-arm64/native/liblmdb.dylib
|
||||
f1f619b49c8ac4a4ffa344faab51d2e1a2018840d5a0b3ef90b6a90d54ad7791 runtimes/iossimulator-arm64/native/liblmdb.dylib
|
||||
7aacaa620a97cd7277f8030a278c0a2f6a64ec941a14c854a3016515c103dd5b runtimes/iossimulator-x64/native/liblmdb.dylib
|
||||
43556c2f5075857bf57be1136d556733bdc27195884fbdde127cd976d1c25ad5 runtimes/linux-arm/native/libe_sqlite3.so
|
||||
cf6257fba1cda7982ecd35c45c1ce337cd63bd88c1c07b53220d096610863497 runtimes/linux-arm/native/liblmdb.so
|
||||
707fff6b18c1f083158e7a543c8d2545d5485f547ffd96db29679a95f52878d5 runtimes/linux-arm64/native/libe_sqlite3.so
|
||||
b4002a16380d150bec20c4890f090ddddf1d4deb9c04f4ba33d64004252ad509 runtimes/linux-arm64/native/liblmdb.so
|
||||
3f4d9b9ca49bb3f100882e78ba85807398cee19b481bfd4c301a8f5f58d48540 runtimes/linux-armel/native/libe_sqlite3.so
|
||||
985884523e512414f3e50aa359f08dad3ce635e99405e7823de9b26a7db38d09 runtimes/linux-mips64/native/libe_sqlite3.so
|
||||
7fec7057d16e8b5ae54fed0c42a0e6b85e40df0d57092ef20cd647a4e1c1e0ed runtimes/linux-musl-arm/native/libe_sqlite3.so
|
||||
530e2f74f259fe04faa4b595336e671fab5eedbb6f4e94dad59494efb7b00c2a runtimes/linux-musl-arm64/native/libe_sqlite3.so
|
||||
d8e54eb7dc52ea0a7df9b78ac6feb85af429e7264613099df478825dea5805d4 runtimes/linux-musl-riscv64/native/libe_sqlite3.so
|
||||
64260c0460ad6efa7dce9263bff7a4b64ad66172ccc580cb09181c845e1a3407 runtimes/linux-musl-s390x/native/libe_sqlite3.so
|
||||
647b7b5886526691aed58e0fcbb56dc1e6dea8b1f9f5390782f0c95269250db1 runtimes/linux-musl-x64/native/libe_sqlite3.so
|
||||
1ef00b5e3ac63e491f59ecf587680fc52ad844cea62e0a879a1315ef6bd10fc6 runtimes/linux-ppc64le/native/libe_sqlite3.so
|
||||
6b390eecbc6f55c44d9ab8a774f1fe4283dfb33a72e6f29f4e0b173065e7e105 runtimes/linux-riscv64/native/libe_sqlite3.so
|
||||
dfd5ab35f6d61155a3c629d0bceff4d6e0f0f190983f3fb8f681fb34ec08c67e runtimes/linux-s390x/native/libe_sqlite3.so
|
||||
b0f5c48026fedcf9f05cf31c6fadf9e1e001ca59cd85aa68b8b6814e52c18a07 runtimes/linux-x64/native/libe_sqlite3.so
|
||||
72d407134010936a8e13dd54ae7b11a338716159c4b9b32e3bd39aa629efbafe runtimes/linux-x64/native/liblmdb.so
|
||||
fe8229e5baeaf21e721cf65626a6b07ec22d9b17d07bd624e7a77927174277f1 runtimes/linux-x86/native/libe_sqlite3.so
|
||||
d9258e7a728e8fcd1a10ea4ee896b75b01d73f8c9a7fa9df88e3671246e00772 runtimes/linux/lib/net8.0/System.DirectoryServices.Protocols.dll
|
||||
8d63d80bc6caa754679d6fc89fd741a32c156f136c34759cc8fff8cd51468a93 runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib
|
||||
43d27adbc5ba40850bac42a12aea08314a22a43d3ce77cdc7a6cc47ecffb5746 runtimes/maccatalyst-x64/native/libe_sqlite3.dylib
|
||||
09fe20a6c050912a7944b2f2f2981debe31679f7919f523c87251ae8cf0f2daa runtimes/osx-arm64/native/libe_sqlite3.dylib
|
||||
faaf9f29d1615bb50f3ee7e1d9307e133ae2971b7fc3561b8a0967da93838d66 runtimes/osx-arm64/native/lmdb.dylib
|
||||
02344e1d0bcb5ed447ad9b79ed19e37a590fb1ece3eba1e63efbc35e36e47bdf runtimes/osx-x64/native/libe_sqlite3.dylib
|
||||
0282f75e160e9d948437059694123183c6beccf7ccb35690a8ebac87f2d524bc runtimes/osx/lib/net8.0/System.DirectoryServices.Protocols.dll
|
||||
8d362b0b90a1f0e947cf1d863ae80f452a00bcef04793a658d4944b6846c4e00 runtimes/osx/native/lmdb.dylib
|
||||
43a9b962918c2521267ef3b9515d7d6faa148a3f141cb53bed379b8058017ecf runtimes/unix/lib/net10.0/System.Data.Odbc.dll
|
||||
4a95c42d14d8a83ca1007793648b6dae59cee957ea12470578f10c918f91d225 runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll
|
||||
73b61c3381e32613f59bbe3af7f58871c8cd486e04a9c0e71409f6a1972d6f84 runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll
|
||||
4177542756bd94f75b55fb74367e0cf34e66a88ffaf95755489af14c6ca2f792 runtimes/win-arm64/native/e_sqlite3.dll
|
||||
7e37c5bba3da06a955c122e3515b2980e2f1b8732ec0297f0a7e77e79b4de331 runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll
|
||||
b7385d722c83fb52142a00477a726723745916d22a555711ee89834c1111fb2e runtimes/win-x64/native/e_sqlite3.dll
|
||||
a5d4e3bcbddbbd549d3bb4e2b882970d2df9a8b9763d45cb9905e6fe169ff9b3 runtimes/win-x64/native/lmdb.dll
|
||||
c941b834214ab2797f9c5a2f08f6a79d090efd7e06beb3a65658c258649fc306 runtimes/win-x64/native/lmdbautoresize.dll
|
||||
16efa76f220e23166a95873baaed43899191470c13848c944a679ff2bf5ac941 runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll
|
||||
d13eb819d1353d98c684c88672868bbfcc6a52eb5987bdf2557ec02fabce4ea7 runtimes/win-x86/native/e_sqlite3.dll
|
||||
798d6b41df67ad5825b4ea8a40e052b87fd665bf602beabd82c3abd92e9a1ed3 runtimes/win-x86/native/lmdb.dll
|
||||
0e80c518868ab54e032b0f2811f2c9d8ea3a3b26218c463c64f05821cc386d91 runtimes/win-x86/native/lmdbautoresize.dll
|
||||
e5b58b051fa474dd59adf6fb405d980caa974dd7519ef279824fae43df412192 runtimes/win/lib/net10.0/System.Data.Odbc.dll
|
||||
e0acaa275f33f652057c418f3f434f24b65321ecadcc220ffce58f65e2bf47f8 runtimes/win/lib/net10.0/System.Diagnostics.EventLog.Messages.dll
|
||||
3961824bc760e2e5433c8bec08f85bb4c391ef545a1bed524bcc8cd4217852bc runtimes/win/lib/net10.0/System.ServiceProcess.ServiceController.dll
|
||||
fb93811a325ab59af45cdaeb57d47a8b1dacfdb19b87cefd1366cb0680250f1a runtimes/win/lib/net8.0/System.Diagnostics.PerformanceCounter.dll
|
||||
c3af191077a7a45d67e89b7ba2667388dd1b6ea79c6dd97fc8c7773c4f2b89b7 runtimes/win/lib/net8.0/System.DirectoryServices.Protocols.dll
|
||||
13011951ee100b419e0b494baecdbe1402be5cb487d72056014a83253afc1d6e runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll
|
||||
49472c8fbecc7b2ec57206d4999178e36dc6139211a67477b5e7e79514b64d8d tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
5159173800f97d767f95eff070fa1a44b20389f81680825333d792da5e1d62fa tr/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
6bed49878f14edb6c7cff9b35ebf18dd4556500f8329115a31fc86fed6b89209 tr/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
c71e350d84791c15caa4897493d63296fcf1c061f1180dcf2d2cfa62e8e8f152 tr/Microsoft.CodeAnalysis.resources.dll
|
||||
fc8df599a964558fc9587aeaa6c956e1d375944283907193660fa3e96ee38980 tr/Microsoft.Data.SqlClient.resources.dll
|
||||
b5896db7bdcef22f5675babe0348529d138725d9f228afc08dcd252aa9924411 zh-Hans/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
5bb17f29f827ec0e01526e60aeada465229db2c6957ba2799a171142bd970b33 zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
d049b4dcfe1c22aa9dea4b538e31ce9fc3277e23b0fce7fe79a3fec8aad581bd zh-Hans/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
37d9e69257a1d58e8b1b0f3db40c45cd1e48d109b9bfcd6c496c8189d1dee38e zh-Hans/Microsoft.CodeAnalysis.resources.dll
|
||||
d12450a0c88feaafbf3db907ba9e66e0735ecf43f9089a1b6b583675e561a571 zh-Hans/Microsoft.Data.SqlClient.resources.dll
|
||||
178f07468dc0e3acdce6b62a46ae7bedd2f77bfdf8a2e335666281425214f5fd zh-Hant/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
|
||||
1c628beac6bd5de647783ae50df6679c8dd16c8baa977f08b0351351e31f9a14 zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll
|
||||
4a39ef7b9992d01551bb961652f0bc663335bdac513d4c038f56f59995acfa93 zh-Hant/Microsoft.CodeAnalysis.Scripting.resources.dll
|
||||
339868d7df872f7acf9364775d7face59b361ace535480481745e7357c97481b zh-Hant/Microsoft.CodeAnalysis.resources.dll
|
||||
6a045428a176c4a42518ef6918b93ba0ee4a126dd15b523cc123bb14cad55e21 zh-Hant/Microsoft.Data.SqlClient.resources.dll
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"utc": "2026-11-12T14:47:01.5002420Z",
|
||||
"probes": [
|
||||
{
|
||||
"name": "prepare-trusted-client",
|
||||
"args": [
|
||||
"prepare",
|
||||
"C:\\OtOpcUa800\\state\\client-pki"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "prepare",
|
||||
"result": "prepared",
|
||||
"clientName": "Gate800Client",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
},
|
||||
{
|
||||
"name": "prepare-untrusted-client",
|
||||
"args": [
|
||||
"prepare",
|
||||
"C:\\OtOpcUa800\\state\\untrusted-client-pki"
|
||||
],
|
||||
"exit": 0,
|
||||
"secretOccurrencesInOutput": 0,
|
||||
"result": {
|
||||
"mode": "prepare",
|
||||
"result": "prepared",
|
||||
"clientName": "Gate800Client",
|
||||
"autoAccept": false
|
||||
},
|
||||
"output": null
|
||||
}
|
||||
],
|
||||
"cliClosedPortExit": 1,
|
||||
"cliClosedPortOutput": "ERROR\r\nOpc.Ua.ServiceResultException: Could not connect to the remote endpoint.\r\n System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it.\r\n at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) \r\n at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) \r\n at Opc.Ua.Bindings.TcpByteTransport.ConnectAsync(Uri url, CancellationToken ct) \r\n at Opc.Ua.Bindings.UaSCUaBinaryClientChannel.ConnectAsync(Uri url, Int32 timeout, CancellationToken ct) \r\n at Opc.Ua.Bindings.UaSCUaBinaryClientChannel.ConnectAsync(Uri url, Int32 timeout, CancellationToken ct) \r\n at Opc.Ua.Bindings.UaSCUaBinaryTransportChannel.OpenInternalAsync(Uri endpointUrl, ITransportWaitingConnection connection, TransportChannelSettings settings, CancellationToken ct) \r\n at Opc.Ua.Bindings.UaSCUaBinaryTransportChannel.OpenInternalAsync(Uri endpointUrl, ITransportWaitingConnection connection, TransportChannelSettings settings, CancellationToken ct) \r\n at Opc.Ua.ClientChannelManager.CreateUaBinaryChannelAsync(ApplicationConfiguration configuration, EndpointDescription description, EndpointConfiguration endpointConfiguration, Certificate clientCertificate, CertificateCollection clientCertificateChain, IServiceMessageContext messageContext, ITransportChannelBindings transportChannelBindings, ISecurityPolicyRegistry securityPolicies, CancellationToken ct) \r\n at Opc.Ua.DiscoveryClient.CreateAsync(ApplicationConfiguration application, Uri discoveryUrl, DiagnosticsMasks returnDiagnostics, CancellationToken ct) \r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters.DefaultEndpointDiscovery.SelectEndpointAsync(ApplicationConfiguration config, String endpointUrl, MessageSecurityMode requestedMode, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\Adapters\\DefaultEndpointDiscovery.cs:21\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectToEndpointAsync(ConnectionSettings settings, String endpointUrl, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:790\r\n at ZB.MOM.WW.OtOpcUa.Client.Shared.OpcUaClientService.ConnectAsync(ConnectionSettings settings, CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.Shared\\OpcUaClientService.cs:129\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.CommandBase.CreateServiceAndConnectAsync(CancellationToken ct) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\CommandBase.cs:116\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:47\r\n at ZB.MOM.WW.OtOpcUa.Client.CLI.Commands.ReadCommand.ExecuteAsync(IConsole console) in \\private\\tmp\\claude-501\\-Users-dohertj2-Desktop-scadaproj\\a6d396bd-5e2c-4e21-a60d-576a5e97f6b7\\scratchpad\\wt800\\src\\Client\\ZB.MOM.WW.OtOpcUa.Client.CLI\\Commands\\ReadCommand.cs:78\r\n at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \\_\\CliFx\\CliApplication.cs:144\r\n at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in \\_\\CliFx\\CliApplication.cs:185\r\n",
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 1077,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"rootSddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)",
|
||||
"privateSddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)",
|
||||
"secretsDirSddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)"
|
||||
}
|
||||
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"utc": "2026-11-12T15:21:07.1490542Z",
|
||||
"candidateSnapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"restored": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"restoredSnapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"quarantine": "C:\\OtOpcUa800\\quarantine-candidate"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"exit": 0,
|
||||
"output": "{\"result\":\"seeded-through-public-cache\",\"localDb\":\"C:\\\\OtOpcUa800\\\\OtOpcUa\\\\data\\\\otopcua-localdb.db\",\"revision\":\"2c94f0ad0c045e97c77ba9dbf75fda248a64a56bc61d744b026625c20cf65c93\",\"bytes\":1752}\r\n",
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"label": "b0",
|
||||
"utc": "2026-11-12T14:47:50.5298334Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 7799,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "b1",
|
||||
"utc": "2026-11-12T14:51:32.7250851Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 19780,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 76,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 6,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "b2reboot",
|
||||
"utc": "2026-11-12T15:06:49.4418053Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 29577,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 152,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "b3",
|
||||
"utc": "2026-11-12T15:09:38.9851067Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 42107,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 228,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "b4",
|
||||
"utc": "2026-11-12T15:11:22.7970273Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 56209,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 304,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "c1",
|
||||
"utc": "2026-11-12T15:13:13.3209355Z",
|
||||
"stopSeconds": 1.8,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 73643,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 380,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "c2",
|
||||
"utc": "2026-11-12T15:14:43.5490461Z",
|
||||
"stopSeconds": 1.8,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 91074,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 456,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"label": "c3",
|
||||
"utc": "2026-11-12T15:20:29.4358945Z",
|
||||
"stopSeconds": 1.8,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Scripting__Runner",
|
||||
"Scripting__Worker__Identity",
|
||||
"Scripting__Worker__PeCacheDir",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "24622724efc7a949f1abc1a99eb9312b6808d8c962c0f70bf92b9f7e253e3be4",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 109084,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 532,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"label": "r1",
|
||||
"utc": "2026-11-12T15:22:28.1637506Z",
|
||||
"stopSeconds": 1.6,
|
||||
"hostProcessGone": true,
|
||||
"leftoverWorkers": 0,
|
||||
"service": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"redaction": [
|
||||
{
|
||||
"source": "logs\\otopcua-20261112.log",
|
||||
"chars": 69603,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\scripts-20261112.log",
|
||||
"chars": 380,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "logs\\serilog-selflog.txt",
|
||||
"chars": 0,
|
||||
"secretOccurrences": 0
|
||||
},
|
||||
{
|
||||
"source": "EventLog:Application",
|
||||
"events": 0,
|
||||
"secretOccurrences": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"serverTrusted": [
|
||||
"Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der"
|
||||
],
|
||||
"untrustedClientNotCopied": "Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der"
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
{
|
||||
"utc": "2026-11-12T15:11:39.0806566Z",
|
||||
"before": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "F9A193C6C7D224006094E26CE4CD1616961BCB9048FF38A468786618A26E3A91",
|
||||
"productVersion": "1.0.0+efb9197a0f48802450474413c58b9d0c461b836d"
|
||||
},
|
||||
"opcUaCore": "1.5.378.182"
|
||||
},
|
||||
"after": {
|
||||
"name": "OtOpcUaHost",
|
||||
"state": "Stopped",
|
||||
"startMode": "Auto",
|
||||
"pathName": "\"C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe\"",
|
||||
"startName": "NT SERVICE\\OtOpcUaHost",
|
||||
"processId": 0,
|
||||
"exitCode": 0,
|
||||
"serviceSpecificExitCode": 0,
|
||||
"envNames": [
|
||||
"ASPNETCORE_URLS",
|
||||
"Cluster__Hostname",
|
||||
"Cluster__Port",
|
||||
"Cluster__PublicHostname",
|
||||
"Cluster__Roles__0",
|
||||
"Cluster__SeedNodes__0",
|
||||
"Cluster__SystemName",
|
||||
"ConfigSource__ApiKey",
|
||||
"ConfigSource__CentralFetchEndpoints__0",
|
||||
"ConfigSource__FetchTimeoutSeconds",
|
||||
"ConfigSource__Mode",
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"OpcUa__AllowAnonymous",
|
||||
"OpcUa__ApplicationName",
|
||||
"OpcUa__ApplicationUri",
|
||||
"OpcUa__AutoAcceptUntrustedClientCertificates",
|
||||
"OpcUa__EnabledSecurityProfiles__0",
|
||||
"OpcUa__EnabledSecurityProfiles__1",
|
||||
"OpcUa__OpcUaPort",
|
||||
"OpcUa__PublicHostname",
|
||||
"OTOPCUA_ROLES",
|
||||
"Secrets__SqlitePath",
|
||||
"Security__Acl__Enabled",
|
||||
"Security__ApiKeys__Pepper",
|
||||
"Security__Ldap__Enabled",
|
||||
"ZB_SECRETS_MASTER_KEY"
|
||||
],
|
||||
"envDigest": "fd534f8ddd55fa0502a7242efdf95a59dbcadb793620afe563117b1d5b9fe32c",
|
||||
"exe": {
|
||||
"path": "C:\\OtOpcUa800\\OtOpcUa\\OtOpcUa.Host.exe",
|
||||
"sha256": "6E9EFDDE592EB342719E9C0D47783E306BC9DD697AE80FC32D45DD1538A52000",
|
||||
"productVersion": "1.0.0+438484fdca4df12be6fbcae71cfbbeabb9386004"
|
||||
},
|
||||
"opcUaCore": "2.0.1.2"
|
||||
},
|
||||
"appsettingsNodeVsPublisher": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"node": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"publisher": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"node": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"publisher": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"node": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"publisher": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"node": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"publisher": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"node": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"publisher": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A"
|
||||
}
|
||||
],
|
||||
"stagedSnapshot": {
|
||||
"certs": [
|
||||
{
|
||||
"file": "OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"thumbprint": "CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA",
|
||||
"subject": "CN=OtOpcUaGate800, O=OPC Foundation",
|
||||
"notBefore": "2026-11-11T00:00:00.0000000Z",
|
||||
"notAfter": "2027-11-11T00:00:00.0000000Z",
|
||||
"keySize": 2048
|
||||
}
|
||||
],
|
||||
"pki": [
|
||||
{
|
||||
"path": "pki\\own",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\own\\private\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].pfx",
|
||||
"dir": false,
|
||||
"sha256": "D0130A14E33ACF4F7EF0859790ACA7CBF4EBDE1ECB90163B6C528E89FF53B07D",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\rejected\\certs\\Gate800Client [C91ACD459294599052131D438FE9C4F4128637F5].der",
|
||||
"dir": false,
|
||||
"sha256": "7964A941068908D23C1875F2F4E2CBA91510915B5BCDF563614E5B6E314F54B9",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs",
|
||||
"dir": true,
|
||||
"sha256": null,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;OICIID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\Gate800Client [7F8DAF694729411881528567DA4CAB8EB2C7BFFC].der",
|
||||
"dir": false,
|
||||
"sha256": "CB8C21F6006FBAE742A0AC7F110BA28B05C1C22897C0EE3E920B711EC6CE4BCE",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaClient [F93FDAF3671D24914535075DC23E90C76B60BAE6].der",
|
||||
"dir": false,
|
||||
"sha256": "901F62E2649C3BF57B4998E230DECD5F85ED38F1003B54E9CDDE823256C90671",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"path": "pki\\trusted\\certs\\OtOpcUaGate800 [CEF9D91F8CBC0EE78B317D3AA51EB40CD9C41ACA].der",
|
||||
"dir": false,
|
||||
"sha256": "F38E6B2EC17CB6F5A67F9F1BC56BF3AF522650D7F5A6E0F2C8D0B10BE1E3F845",
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"path": "data\\otopcua-localdb.db",
|
||||
"dir": false,
|
||||
"length": 102400,
|
||||
"sddl": "O:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059G:S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059D:AI(A;ID;0x1301bf;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
],
|
||||
"roots": {
|
||||
"install": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;OICI;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)",
|
||||
"appsettings": [
|
||||
{
|
||||
"file": "appsettings.admin-driver.json",
|
||||
"sha256": "ECA047204CF6A9B4D89628D7EE2048BC68D46DB55DCB4AE9BCF24DBE9E44CD46",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.admin.json",
|
||||
"sha256": "BB08F16D701697FCD70695B75D81A4B09BCE57DAAA95D6FD81FF469258AD3530",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.Development.json",
|
||||
"sha256": "169A54D22027E13823AF0D41C1314A6D3E44852041C8B35AA80478A88399FE1B",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.driver.json",
|
||||
"sha256": "A7DC1AB1DB2E93F1A6E78B7B1B425720C3C610CB406E6266F0DBE2EBE01BADAF",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
},
|
||||
{
|
||||
"file": "appsettings.json",
|
||||
"sha256": "89F72ACADED7F2D3CA434F2D922FE4DACCDC03AA342F3973D35A160BE9221B2A",
|
||||
"sddl": "O:BAG:S-1-5-21-3358580898-976645380-93926719-513D:AI(A;ID;0x1200a9;;;S-1-5-80-3928861625-3486739760-3962757976-1980707066-3667558059)(A;ID;FA;;;SY)(A;ID;FA;;;BA)"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"backup": {
|
||||
"path": "C:\\OtOpcUa800\\backup-baseline",
|
||||
"files": 1386
|
||||
},
|
||||
"previous": "C:\\OtOpcUa800\\OtOpcUa.prev-baseline"
|
||||
}
|
||||
Reference in New Issue
Block a user