From 05d996f4c4ea84bf18fac42919dfa02fa4081175 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 12 Dec 2025 15:09:25 +0100 Subject: [PATCH 01/10] update NuGet package versions across projects - RestSharp and RestSharp.Serializers.NewtonsoftJson to 113.0.0 - System.IdentityModel.Tokens.Jwt to 8.15.0 - System.Text.Encodings.Web to 10.0.1 - PuppeteerSharp to 20.2.5 - Swashbuckle.AspNetCore to 10.0.1 - Microsoft.IdentityModel.Tokens to 8.15.0 Also updated a using directive in Program.cs to reflect changes in the OpenAPI package structure. No functional code changes were made. --- roles/lib/files/FWO.Api.Client/FWO.Api.Client.csproj | 4 ++-- roles/lib/files/FWO.Config.File/FWO.Config.File.csproj | 2 +- roles/lib/files/FWO.Mail/FWO.Mail.csproj | 2 +- roles/lib/files/FWO.Report/FWO.Report.csproj | 2 +- .../files/FWO.Middleware.Server/FWO.Middleware.Server.csproj | 4 ++-- roles/middleware/files/FWO.Middleware.Server/Program.cs | 2 +- roles/tests-unit/files/FWO.Test/FWO.Test.csproj | 4 ++-- roles/ui/files/FWO.UI/FWO.Ui.csproj | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/roles/lib/files/FWO.Api.Client/FWO.Api.Client.csproj b/roles/lib/files/FWO.Api.Client/FWO.Api.Client.csproj index 1d279b22ed..d0a5164ba2 100644 --- a/roles/lib/files/FWO.Api.Client/FWO.Api.Client.csproj +++ b/roles/lib/files/FWO.Api.Client/FWO.Api.Client.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/roles/lib/files/FWO.Config.File/FWO.Config.File.csproj b/roles/lib/files/FWO.Config.File/FWO.Config.File.csproj index 8cf70d18d1..04d8e7cdce 100644 --- a/roles/lib/files/FWO.Config.File/FWO.Config.File.csproj +++ b/roles/lib/files/FWO.Config.File/FWO.Config.File.csproj @@ -7,7 +7,7 @@ - + diff --git a/roles/lib/files/FWO.Mail/FWO.Mail.csproj b/roles/lib/files/FWO.Mail/FWO.Mail.csproj index 5025dcdbdd..60c6e8e069 100644 --- a/roles/lib/files/FWO.Mail/FWO.Mail.csproj +++ b/roles/lib/files/FWO.Mail/FWO.Mail.csproj @@ -10,7 +10,7 @@ - + diff --git a/roles/lib/files/FWO.Report/FWO.Report.csproj b/roles/lib/files/FWO.Report/FWO.Report.csproj index a32ce5cb95..fe3a225796 100644 --- a/roles/lib/files/FWO.Report/FWO.Report.csproj +++ b/roles/lib/files/FWO.Report/FWO.Report.csproj @@ -8,7 +8,7 @@ - + diff --git a/roles/middleware/files/FWO.Middleware.Server/FWO.Middleware.Server.csproj b/roles/middleware/files/FWO.Middleware.Server/FWO.Middleware.Server.csproj index d99f24106f..a1dd6871b5 100644 --- a/roles/middleware/files/FWO.Middleware.Server/FWO.Middleware.Server.csproj +++ b/roles/middleware/files/FWO.Middleware.Server/FWO.Middleware.Server.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/roles/middleware/files/FWO.Middleware.Server/Program.cs b/roles/middleware/files/FWO.Middleware.Server/Program.cs index b3e8260abd..3430e1e8ce 100644 --- a/roles/middleware/files/FWO.Middleware.Server/Program.cs +++ b/roles/middleware/files/FWO.Middleware.Server/Program.cs @@ -5,7 +5,7 @@ using FWO.Middleware.Server; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.IdentityModel.Tokens; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using System.Reflection; // Implicitly call static constructor so background lock process is started diff --git a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj index 0d41219454..07ee349760 100644 --- a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj +++ b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj @@ -9,11 +9,11 @@ - + - + diff --git a/roles/ui/files/FWO.UI/FWO.Ui.csproj b/roles/ui/files/FWO.UI/FWO.Ui.csproj index bbd07b340c..93eacb121e 100644 --- a/roles/ui/files/FWO.UI/FWO.Ui.csproj +++ b/roles/ui/files/FWO.UI/FWO.Ui.csproj @@ -8,7 +8,7 @@ - + From d5001049526c5bfe8bc3f01143104b2ce892273c Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 12 Dec 2025 15:15:58 +0100 Subject: [PATCH 02/10] update bunit Upgraded bunit to 2.2.2 and Microsoft.NET.Test.Sdk to 18.0.1 in the test project. Refactored UiRsbLinkTest.cs to use new bunit APIs, including BunitContext, BunitNavigationManage. --- .../tests-unit/files/FWO.Test/FWO.Test.csproj | 6 ++-- .../files/FWO.Test/UiRsbLinkTest.cs | 31 +++++++++---------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj index 07ee349760..e0ae1e16c3 100644 --- a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj +++ b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -8,11 +8,11 @@ - + - + diff --git a/roles/tests-unit/files/FWO.Test/UiRsbLinkTest.cs b/roles/tests-unit/files/FWO.Test/UiRsbLinkTest.cs index e90f297ec4..5623776b2e 100644 --- a/roles/tests-unit/files/FWO.Test/UiRsbLinkTest.cs +++ b/roles/tests-unit/files/FWO.Test/UiRsbLinkTest.cs @@ -1,4 +1,3 @@ - using AngleSharp.Css.Dom; using AngleSharp.Dom; using Bunit; @@ -12,13 +11,11 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.JSInterop; using NUnit.Framework; -using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace FWO.Test { [FixtureLifeCycle(LifeCycle.InstancePerTestCase)] - public class UiRsbLinkTest : Bunit.TestContext + public class UiRsbLinkTest : BunitContext { static readonly UserConfig userConfig = new SimulatedUserConfig { @@ -41,25 +38,25 @@ public async Task ObjShouldBeVisibleAfterNavigation() Services.AddScoped(_ => JSInterop.JSRuntime); Services.AddLocalization(); - var objToFind = currentReport.ReportData.ManagementData[0].Objects[1]; - var hrefValue = ReportDevicesBase.GetReportDevicesLinkAddress(OutputLocation.report, currentReport.ReportData.ManagementData[0].Id, ObjCatString.NwObj, 0, objToFind.Id, currentReport.ReportType); - var link = $"https://localhost/{hrefValue}"; + Data.NetworkObject objToFind = currentReport.ReportData.ManagementData[0].Objects[1]; + string hrefValue = ReportDevicesBase.GetReportDevicesLinkAddress(OutputLocation.report, currentReport.ReportData.ManagementData[0].Id, ObjCatString.NwObj, 0, objToFind.Id, currentReport.ReportType); + string link = $"https://localhost/{hrefValue}"; - var navigationManager = Services.GetRequiredService(); + BunitNavigationManager navigationManager = Services.GetRequiredService(); navigationManager.NavigateTo(link); // Mock JS interop JSInterop.Setup("getCurrentUrl").SetResult(link); - var scrollIntoRSBViewInvocation = JSInterop.Setup("scrollIntoRSBView", _ => true).SetResult(true); - var removeUrlFragmentInvocation = JSInterop.SetupVoid("removeUrlFragment"); + JSRuntimeInvocationHandler scrollIntoRSBViewInvocation = JSInterop.Setup("scrollIntoRSBView", _ => true).SetResult(true); + JSRuntimeInvocationHandler removeUrlFragmentInvocation = JSInterop.SetupVoid("removeUrlFragment"); // Act - var cut = RenderComponent(parameters => parameters + IRenderedComponent cut = Render(parameters => parameters .Add(p => p.CurrentReport, currentReport) .Add(p => p.SelectedRules, [currentReport.ReportData.ManagementData[0].Devices[0].Rules![0]])); // manually trigger - var anchorNavToRSB = cut.FindComponent(); + IRenderedComponent anchorNavToRSB = cut.FindComponent(); Task timeout = Task.Delay(2000); Task scrollTask = anchorNavToRSB.InvokeAsync(() => anchorNavToRSB.Instance.ScrollToFragment()); Task completedTask = await Task.WhenAny(scrollTask, timeout); @@ -69,12 +66,12 @@ public async Task ObjShouldBeVisibleAfterNavigation() } // Assert Assert.That(scrollIntoRSBViewInvocation.Invocations, Is.Not.Empty, "scrollIntoRSBView should have been called"); - var invocation = scrollIntoRSBViewInvocation.Invocations.First(); - var parameter = invocation.Arguments[0]; + JSRuntimeInvocation invocation = scrollIntoRSBViewInvocation.Invocations.First(); + object? parameter = invocation.Arguments[0]; Assert.That(parameter, Is.Not.Null, "scrollIntoRSBView was called with a null parameter"); Assert.That(parameter, Is.InstanceOf(), "scrollIntoRSBView was called with a non-string parameter"); Assert.That((string)parameter!, Is.Not.Empty, "scrollIntoRSBView was called with an empty string"); - var element = cut.Find($"#{parameter}"); + IElement element = cut.Find($"#{parameter}"); Assert.That(IsElementVisible(element), Is.True, "Element is not visible (might be incorrect tab or collapsed)"); } @@ -82,8 +79,8 @@ private bool IsElementVisible(IElement? element) { while (element != null) { - var computedStyle = element.Owner?.DefaultView?.GetComputedStyle(element); - var display = computedStyle?.GetPropertyValue("display"); + ICssStyleDeclaration? computedStyle = element.Owner?.DefaultView?.GetComputedStyle(element); + string? display = computedStyle?.GetPropertyValue("display"); if (display == "none") { Log.WriteError("Test UI RSB", $"Element {element.TagName} is not visible"); From 0447ef9e4911bdb3f167dd575ad3af703e1a1657 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 12 Dec 2025 15:24:52 +0100 Subject: [PATCH 03/10] update NUnit3TestAdapter to v5.2.0 Upgraded the NUnit3TestAdapter NuGet package in FWO.Test.csproj --- roles/tests-unit/files/FWO.Test/FWO.Test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj index e0ae1e16c3..77d56862d8 100644 --- a/roles/tests-unit/files/FWO.Test/FWO.Test.csproj +++ b/roles/tests-unit/files/FWO.Test/FWO.Test.csproj @@ -11,7 +11,7 @@ - + From 58694841585103a2f42641c466b3e2d4ad5b54e6 Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Mon, 15 Dec 2025 12:18:29 +0100 Subject: [PATCH 04/10] fix missing proxy env for puppeteer fresh install --- roles/lib/tasks/install_puppeteer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/lib/tasks/install_puppeteer.yml b/roles/lib/tasks/install_puppeteer.yml index bdbfddd431..1554d83030 100644 --- a/roles/lib/tasks/install_puppeteer.yml +++ b/roles/lib/tasks/install_puppeteer.yml @@ -102,6 +102,7 @@ Accept: application/json register: chrome_versions become: false + environment: "{{ proxy_env }}" # Parse once, regardless of Content-Type - name: normalize/parse JSON response From cbfbbd32ce4df5e1d622eb14ee6620b90fcc937d Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Mon, 15 Dec 2025 16:55:07 +0100 Subject: [PATCH 05/10] make chrome download more robust --- ...st-known-good-versions-with-downloads.json | 19 +++++ roles/lib/tasks/install_puppeteer.yml | 78 +++++++++++++++---- 2 files changed, 80 insertions(+), 17 deletions(-) create mode 100644 roles/lib/files/chrome/last-known-good-versions-with-downloads.json diff --git a/roles/lib/files/chrome/last-known-good-versions-with-downloads.json b/roles/lib/files/chrome/last-known-good-versions-with-downloads.json new file mode 100644 index 0000000000..604f35744f --- /dev/null +++ b/roles/lib/files/chrome/last-known-good-versions-with-downloads.json @@ -0,0 +1,19 @@ +{ + "timestamp": "2024-11-15T00:00:00Z", + "channels": { + "Stable": { + "channel": "Stable", + "version": "128.0.6613.137", + "revision": "1188749", + "downloads": { + "chrome": [ + { + "platform": "linux64", + "url": "https://storage.googleapis.com/chrome-for-testing-public/128.0.6613.137/linux64/chrome-linux64.zip", + "revision": "1188749" + } + ] + } + } + } +} diff --git a/roles/lib/tasks/install_puppeteer.yml b/roles/lib/tasks/install_puppeteer.yml index 1554d83030..0f68298c30 100644 --- a/roles/lib/tasks/install_puppeteer.yml +++ b/roles/lib/tasks/install_puppeteer.yml @@ -85,25 +85,69 @@ environment: "{{ proxy_env }}" # get google chrome for pdf generation -- block: - - name: get last known good versions (primary) - uri: - url: https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json - return_content: true - register: chrome_versions - become: false - - rescue: - - name: fallback - get last known good versions (raw.githubusercontent.com) - uri: - url: https://raw.githubusercontent.com/GoogleChromeLabs/chrome-for-testing/main/data/last-known-good-versions-with-downloads.json - return_content: true - headers: - Accept: application/json - register: chrome_versions - become: false +- name: get last known good versions (primary) + uri: + url: https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json + return_content: true + register: chrome_versions_primary + failed_when: false + become: false + environment: "{{ proxy_env }}" + +- name: get last known good versions (GitHub API raw) + uri: + url: https://api.github.com/repos/GoogleChromeLabs/chrome-for-testing/contents/data/last-known-good-versions-with-downloads.json?ref=main + headers: + Accept: application/vnd.github.v3.raw + return_content: true + register: chrome_versions_github_api + failed_when: false + become: false environment: "{{ proxy_env }}" +- name: fallback - get last known good versions (raw.githubusercontent.com) + uri: + url: https://raw.githubusercontent.com/GoogleChromeLabs/chrome-for-testing/main/data/last-known-good-versions-with-downloads.json + return_content: true + headers: + Accept: application/json + register: chrome_versions_fallback + failed_when: false + become: false + environment: "{{ proxy_env }}" + +- name: load bundled chrome metadata when network is blocked + set_fact: + chrome_versions_local_content: "{{ lookup('file', chrome_versions_local_path | default(role_path + '/files/chrome/last-known-good-versions-with-downloads.json'), errors='ignore') }}" + when: + - chrome_versions_primary.status | default(-1) != 200 + - chrome_versions_github_api.status | default(-1) != 200 + - chrome_versions_fallback.status | default(-1) != 200 + +- name: pick chrome metadata source (primary -> fallback -> bundled) + set_fact: + chrome_versions: >- + {{ + chrome_versions_primary + if (chrome_versions_primary.status | default(-1)) == 200 else + ( + chrome_versions_github_api + if (chrome_versions_github_api.status | default(-1)) == 200 else + ( + chrome_versions_fallback + if (chrome_versions_fallback.status | default(-1)) == 200 else + {'content': chrome_versions_local_content} + ) + ) + }} + +- name: fail when no chrome metadata available + fail: + msg: >- + Could not fetch Chrome for Testing version metadata. + Allow proxy access, or set chrome_versions_local_path to a reachable JSON file. + when: chrome_versions.content is not defined or (chrome_versions.content | string | trim | length) == 0 + # Parse once, regardless of Content-Type - name: normalize/parse JSON response set_fact: From 91d4012b2ebf4a854644bcae5c514cf33a61faaf Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Mon, 15 Dec 2025 17:40:00 +0100 Subject: [PATCH 06/10] fix1 --- roles/lib/tasks/install_puppeteer.yml | 39 ++++----------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/roles/lib/tasks/install_puppeteer.yml b/roles/lib/tasks/install_puppeteer.yml index 0f68298c30..8d1d4d43f9 100644 --- a/roles/lib/tasks/install_puppeteer.yml +++ b/roles/lib/tasks/install_puppeteer.yml @@ -94,7 +94,7 @@ become: false environment: "{{ proxy_env }}" -- name: get last known good versions (GitHub API raw) +- name: get last known good versions (github api raw) uri: url: https://api.github.com/repos/GoogleChromeLabs/chrome-for-testing/contents/data/last-known-good-versions-with-downloads.json?ref=main headers: @@ -105,48 +105,19 @@ become: false environment: "{{ proxy_env }}" -- name: fallback - get last known good versions (raw.githubusercontent.com) - uri: - url: https://raw.githubusercontent.com/GoogleChromeLabs/chrome-for-testing/main/data/last-known-good-versions-with-downloads.json - return_content: true - headers: - Accept: application/json - register: chrome_versions_fallback - failed_when: false - become: false - environment: "{{ proxy_env }}" - -- name: load bundled chrome metadata when network is blocked - set_fact: - chrome_versions_local_content: "{{ lookup('file', chrome_versions_local_path | default(role_path + '/files/chrome/last-known-good-versions-with-downloads.json'), errors='ignore') }}" - when: - - chrome_versions_primary.status | default(-1) != 200 - - chrome_versions_github_api.status | default(-1) != 200 - - chrome_versions_fallback.status | default(-1) != 200 - -- name: pick chrome metadata source (primary -> fallback -> bundled) +- name: pick chrome metadata source (primary -> github api) set_fact: chrome_versions: >- {{ chrome_versions_primary if (chrome_versions_primary.status | default(-1)) == 200 else - ( - chrome_versions_github_api - if (chrome_versions_github_api.status | default(-1)) == 200 else - ( - chrome_versions_fallback - if (chrome_versions_fallback.status | default(-1)) == 200 else - {'content': chrome_versions_local_content} - ) - ) + chrome_versions_github_api }} - name: fail when no chrome metadata available fail: - msg: >- - Could not fetch Chrome for Testing version metadata. - Allow proxy access, or set chrome_versions_local_path to a reachable JSON file. - when: chrome_versions.content is not defined or (chrome_versions.content | string | trim | length) == 0 + msg: "Could not fetch Chrome for Testing version metadata via primary URL or GitHub API." + when: chrome_versions.status | default(-1) != 200 # Parse once, regardless of Content-Type - name: normalize/parse JSON response From f7de3f6845936de3a15bf8bc047af99ac1276291 Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Tue, 16 Dec 2025 08:51:05 +0100 Subject: [PATCH 07/10] updating proxy ACL --- documentation/installer/install-advanced.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/documentation/installer/install-advanced.md b/documentation/installer/install-advanced.md index a93dd13fff..f670e9b843 100644 --- a/documentation/installer/install-advanced.md +++ b/documentation/installer/install-advanced.md @@ -77,29 +77,31 @@ If you use authentication: Note that the following domains must be reachable through the proxy: - cactus.de (only for downloading test data, not needed if run with "--skip-tags test") ubuntu.com canonical.com github.com + api.github.com githubusercontent.com docker.com cloudflare.docker.com docker.io + auth.docker.io hasura.io + releases.hasura.io postgresql.org microsoft.com nuget.org + api.nuget.org googlechromelabs.github.io storage.googleapis.com pypi.org - pythonhosted.org (and sub-domains) + pythonhosted.org + files.pythonhosted.org snapcraft.io + api.snapcraft.io snapcraftcontent.com (and sub-domains) - -NB: for vscode-debugging, you also need access to - - visualstudio.com - + visualstudio.com (for vscode-debugging only) + cactus.de (and sub-domains, only for downloading test data, not needed if run with "--skip-tags test") #### Pyhton proxy config From b14871031e4c4f0a870ff8ff3ee4a3db2c1ef49f Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Tue, 16 Dec 2025 08:56:18 +0100 Subject: [PATCH 08/10] adding vscode extension domains --- documentation/installer/install-advanced.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/documentation/installer/install-advanced.md b/documentation/installer/install-advanced.md index f670e9b843..04cbcf61a2 100644 --- a/documentation/installer/install-advanced.md +++ b/documentation/installer/install-advanced.md @@ -100,9 +100,17 @@ Note that the following domains must be reachable through the proxy: snapcraft.io api.snapcraft.io snapcraftcontent.com (and sub-domains) - visualstudio.com (for vscode-debugging only) cactus.de (and sub-domains, only for downloading test data, not needed if run with "--skip-tags test") +#### For vscode-debugging only - most are needed for downloading extensions + visualstudio.com + vsassets.io (and subdomains) + digicert.com (and subdomains) + dot.net (and subdomains) + windows.net (and subdomains) + applicationinsights.azure.com (and subdomains) + exp-tas.com (and subdomains) + #### Pyhton proxy config Remember if your server resides behind a proxy that you will have to set the proxy for pip as follows before installing ansible: From c8fba90580b2df5e2548ced30767bd7417559c07 Mon Sep 17 00:00:00 2001 From: Tim Purschke Date: Thu, 18 Dec 2025 15:15:35 +0100 Subject: [PATCH 09/10] fix mw env --- .pre-commit-config.yaml | 1 + .vscode/settings.json | 6 +++++- roles/middleware/templates/fworch-middleware.service.j2 | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..4e6a92c443 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1 @@ +repos: [] diff --git a/.vscode/settings.json b/.vscode/settings.json index 65ff848758..7071f75b3c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,5 +18,9 @@ "scripts/customizing/app_data_import", "-p", "test_*.py" - ] + ], + "sonarlint.connectedMode.project": { + "connectionId": "cactusesecurity", + "projectKey": "CactuseSecurity_firewall-orchestrator" + } } diff --git a/roles/middleware/templates/fworch-middleware.service.j2 b/roles/middleware/templates/fworch-middleware.service.j2 index e0853016fc..b64f6c5d8b 100644 --- a/roles/middleware/templates/fworch-middleware.service.j2 +++ b/roles/middleware/templates/fworch-middleware.service.j2 @@ -12,6 +12,6 @@ ExecStart={{ middleware_server_start_dir }}/bin/{{ dotnet_mode }}/net{{ dotnet_v Restart=on-failure SyslogIdentifier={{ middleware_server_syslog_id }} User={{ fworch_user }} -Environment= +Environment="PYTHONPATH={{ fworch_home }}" [Install] WantedBy=multi-user.target From edb61aa8d70d9224c8a5597967b6b5a3f858692a Mon Sep 17 00:00:00 2001 From: abarz722 Date: Fri, 19 Dec 2025 16:47:47 +0100 Subject: [PATCH 10/10] warning to debug logs --- roles/lib/files/FWO.Services/AppServerHelper.cs | 2 +- roles/middleware/files/FWO.Middleware.Server/LdapBasic.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/lib/files/FWO.Services/AppServerHelper.cs b/roles/lib/files/FWO.Services/AppServerHelper.cs index 8b9de7c2e4..95e614f7db 100644 --- a/roles/lib/files/FWO.Services/AppServerHelper.cs +++ b/roles/lib/files/FWO.Services/AppServerHelper.cs @@ -22,7 +22,7 @@ public static async Task ConstructAppServerNameFromDns(ModellingAppServe { if (logUnresolvable) { - Log.WriteWarning("Import App Server Data", $"Found empty (unresolvable) IP {appServer.Ip}"); + Log.WriteDebug("Import App Server Data", $"Found empty (unresolvable) IP {appServer.Ip}"); } } else diff --git a/roles/middleware/files/FWO.Middleware.Server/LdapBasic.cs b/roles/middleware/files/FWO.Middleware.Server/LdapBasic.cs index 6f8ebb7774..e7817d3903 100644 --- a/roles/middleware/files/FWO.Middleware.Server/LdapBasic.cs +++ b/roles/middleware/files/FWO.Middleware.Server/LdapBasic.cs @@ -594,7 +594,7 @@ private static bool IsFullyQualifiedDn(string name) /// true if user added public async Task AddUserToEntry(string userDn, string entry) { - Log.WriteInfo("Add User to Entry", $"Trying to add User: \"{userDn}\" to Entry: \"{entry}\""); + Log.WriteDebug("Add User to Entry", $"Trying to add User: \"{userDn}\" to Entry: \"{entry}\""); return await ModifyUserInEntry(userDn, entry, LdapModification.Add); }