From eeaedee23a71a84b3568cada4c72ccfc199d19d8 Mon Sep 17 00:00:00 2001 From: Stephen Vakil Date: Fri, 1 Nov 2024 11:21:06 -0500 Subject: [PATCH 1/2] Switch to using Microsoft.Data.SqlClient --- Dockerfile | 2 +- charts/opserver/templates/deployment.yaml | 4 ++-- src/Opserver.Core/Data/SQL/SQLAzureServer.cs | 2 +- src/Opserver.Core/Data/SQL/SQLInstance.cs | 2 +- src/Opserver.Core/Helpers/Connection.cs | 2 +- src/Opserver.Core/Opserver.Core.csproj | 2 +- src/Opserver.Web/Controllers/HomeController.cs | 14 ++++++++++++++ src/Opserver.Web/Opserver.Web.csproj | 3 ++- src/Opserver.Web/opserverSettings.json | 15 +++++++++------ 9 files changed, 32 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 89f38af8c..4cf76866c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ WORKDIR /app/src/Opserver.Web RUN dotnet publish -c Release -o publish # Build runtime image -FROM cr.stackoverflow.software/so-aspnet:6.0-jammy-chiseled AS base +FROM cr.stackoverflow.software/so-aspnet:6.0-jammy-chiseled-extra AS base USER $APP_UID diff --git a/charts/opserver/templates/deployment.yaml b/charts/opserver/templates/deployment.yaml index 452978787..237ed01db 100644 --- a/charts/opserver/templates/deployment.yaml +++ b/charts/opserver/templates/deployment.yaml @@ -155,7 +155,7 @@ spec: {{- if hasKey .Values.opserverSettings "sql" }} - name: Modules__Sql__defaultConnectionString - value: "Server=$(SQL_EXCEPTIONAL_SERVERNAME);Database=master;User ID=$(SQL_USERNAME);Password=$(SQL_PASSWORD);" + value: "Server=$(SQL_EXCEPTIONAL_SERVERNAME);Database=master;User ID=$(SQL_USERNAME);Password=$(SQL_PASSWORD);TrustServerCertificate=True" {{- range $i, $instance := .Values.opserverSettings.sql }} - name: Modules__Sql__instances__{{ $i }}__name value: "{{ $instance.name }}" @@ -165,7 +165,7 @@ spec: {{- if hasKey .Values.opserverSettings "exceptions" }} {{- range $i, $instance := .Values.opserverSettings.exceptions }} - name: Modules__Exceptions__stores__{{ $i }}__connectionString - value: "Server={{ $instance.serverName}};Database={{ $instance.database}};User ID=$(SQL_USERNAME);Password=$(SQL_PASSWORD);" + value: "Server={{ $instance.serverName}};Database={{ $instance.database}};User ID=$(SQL_USERNAME);Password=$(SQL_PASSWORD);TrustServerCertificate=True" {{- end }} {{- end }} diff --git a/src/Opserver.Core/Data/SQL/SQLAzureServer.cs b/src/Opserver.Core/Data/SQL/SQLAzureServer.cs index a29403190..0a00d3410 100644 --- a/src/Opserver.Core/Data/SQL/SQLAzureServer.cs +++ b/src/Opserver.Core/Data/SQL/SQLAzureServer.cs @@ -1,6 +1,6 @@ using System.Collections.Concurrent; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; namespace Opserver.Data.SQL { diff --git a/src/Opserver.Core/Data/SQL/SQLInstance.cs b/src/Opserver.Core/Data/SQL/SQLInstance.cs index 7a3e7f0d7..9b0d456d7 100644 --- a/src/Opserver.Core/Data/SQL/SQLInstance.cs +++ b/src/Opserver.Core/Data/SQL/SQLInstance.cs @@ -2,7 +2,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Data.Common; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Runtime.CompilerServices; using System.Threading.Tasks; using Opserver.Helpers; diff --git a/src/Opserver.Core/Helpers/Connection.cs b/src/Opserver.Core/Helpers/Connection.cs index 452724c93..f69cfddb9 100644 --- a/src/Opserver.Core/Helpers/Connection.cs +++ b/src/Opserver.Core/Helpers/Connection.cs @@ -1,7 +1,7 @@ using System; using System.Data; using System.Data.Common; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Threading; using System.Threading.Tasks; using StackExchange.Profiling; diff --git a/src/Opserver.Core/Opserver.Core.csproj b/src/Opserver.Core/Opserver.Core.csproj index 46eaaaff7..36d621c2c 100644 --- a/src/Opserver.Core/Opserver.Core.csproj +++ b/src/Opserver.Core/Opserver.Core.csproj @@ -10,6 +10,7 @@ + @@ -20,7 +21,6 @@ - diff --git a/src/Opserver.Web/Controllers/HomeController.cs b/src/Opserver.Web/Controllers/HomeController.cs index c456aacd3..b045e7641 100644 --- a/src/Opserver.Web/Controllers/HomeController.cs +++ b/src/Opserver.Web/Controllers/HomeController.cs @@ -14,6 +14,7 @@ using Opserver.Data.Elastic; using Opserver.Data.HAProxy; using System.Collections.Generic; +using System.Reflection; namespace Opserver.Controllers { @@ -152,5 +153,18 @@ public ActionResult ErrorTestPage() throw new NotImplementedException("I AM IMPLEMENTED, I WAS BORN TO THROW ERRORS!"); #pragma warning restore RCS1079 // Throwing of new NotImplementedException. } + + [Route("assemblies")] + public ActionResult Assemblies() + { + Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); + var result = new System.Text.StringBuilder(); + foreach (Assembly assembly in assemblies) + { + result.AppendLine($"{assembly.FullName} - v{assembly.GetName().Version}"); + } + + return Content(result.ToString()); + } } } diff --git a/src/Opserver.Web/Opserver.Web.csproj b/src/Opserver.Web/Opserver.Web.csproj index a4c506322..4527022de 100644 --- a/src/Opserver.Web/Opserver.Web.csproj +++ b/src/Opserver.Web/Opserver.Web.csproj @@ -6,11 +6,12 @@ + - + diff --git a/src/Opserver.Web/opserverSettings.json b/src/Opserver.Web/opserverSettings.json index 3efc89baf..82cf7950b 100644 --- a/src/Opserver.Web/opserverSettings.json +++ b/src/Opserver.Web/opserverSettings.json @@ -1,17 +1,20 @@ { "ForwardedHeaders": { - "KnownNetworks": ["10.0.0.0/16"], + "KnownNetworks": [ "10.0.0.0/16" ], "KnownProxies": [], "ForwardedHeaders": "All" }, + "Security": { + "Provider": "EveryonesAnAdmin" + }, "Modules": { /* Configuration for the SQL Server dashboard */ "Sql": { - //"defaultConnectionString": "Data Source=$ServerName$;Initial Catalog=master;Integrated Security=SSPI;", - //"refreshIntervalSeconds": 30, - //"instances": [ - // { "name": "localhost" } - //] + "defaultConnectionString": "Data Source=$ServerName$;Initial Catalog=master;Integrated Security=SSPI;TrustServerCertificate=True", + "refreshIntervalSeconds": 30, + "instances": [ + { "name": "localhost" } + ] }, /* Configuration for the Redis dashboard */ "Redis": { From 5c687d981b78e7fc66620a7a541317de32d322ff Mon Sep 17 00:00:00 2001 From: Stephen Vakil Date: Fri, 1 Nov 2024 11:29:08 -0500 Subject: [PATCH 2/2] Revert some changes that were only for testing --- src/Opserver.Web/Controllers/HomeController.cs | 14 -------------- src/Opserver.Web/opserverSettings.json | 15 ++++++--------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/Opserver.Web/Controllers/HomeController.cs b/src/Opserver.Web/Controllers/HomeController.cs index b045e7641..c456aacd3 100644 --- a/src/Opserver.Web/Controllers/HomeController.cs +++ b/src/Opserver.Web/Controllers/HomeController.cs @@ -14,7 +14,6 @@ using Opserver.Data.Elastic; using Opserver.Data.HAProxy; using System.Collections.Generic; -using System.Reflection; namespace Opserver.Controllers { @@ -153,18 +152,5 @@ public ActionResult ErrorTestPage() throw new NotImplementedException("I AM IMPLEMENTED, I WAS BORN TO THROW ERRORS!"); #pragma warning restore RCS1079 // Throwing of new NotImplementedException. } - - [Route("assemblies")] - public ActionResult Assemblies() - { - Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); - var result = new System.Text.StringBuilder(); - foreach (Assembly assembly in assemblies) - { - result.AppendLine($"{assembly.FullName} - v{assembly.GetName().Version}"); - } - - return Content(result.ToString()); - } } } diff --git a/src/Opserver.Web/opserverSettings.json b/src/Opserver.Web/opserverSettings.json index 82cf7950b..3efc89baf 100644 --- a/src/Opserver.Web/opserverSettings.json +++ b/src/Opserver.Web/opserverSettings.json @@ -1,20 +1,17 @@ { "ForwardedHeaders": { - "KnownNetworks": [ "10.0.0.0/16" ], + "KnownNetworks": ["10.0.0.0/16"], "KnownProxies": [], "ForwardedHeaders": "All" }, - "Security": { - "Provider": "EveryonesAnAdmin" - }, "Modules": { /* Configuration for the SQL Server dashboard */ "Sql": { - "defaultConnectionString": "Data Source=$ServerName$;Initial Catalog=master;Integrated Security=SSPI;TrustServerCertificate=True", - "refreshIntervalSeconds": 30, - "instances": [ - { "name": "localhost" } - ] + //"defaultConnectionString": "Data Source=$ServerName$;Initial Catalog=master;Integrated Security=SSPI;", + //"refreshIntervalSeconds": 30, + //"instances": [ + // { "name": "localhost" } + //] }, /* Configuration for the Redis dashboard */ "Redis": {