diff options
author | vnugent <public@vaughnnugent.com> | 2024-09-14 16:09:23 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-09-14 16:09:23 -0400 |
commit | 11fa713e33a1a5cc6f2262c25f1ab69567aa6530 (patch) | |
tree | 8e052c9a77733aa08abc00045f6ee7db3ab6114c /lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer | |
parent | 641bdbe75cb0128c09e27f1b92709c86574026ac (diff) |
commit 181f499c92ac7b772307e40d48d2a26ea45e156b
Author: vnugent <public@vaughnnugent.com>
Date: Sat Sep 14 16:01:28 2024 -0400
taskfile prettier
commit 0d47b4d25cf61d29c44a17ae491d775cf84938ab
Author: vnugent <public@vaughnnugent.com>
Date: Wed Sep 11 16:43:36 2024 -0400
Managed library & package updates
commit 940f151f2f4e708282deb5569cffe5b0935f5c3b
Author: vnugent <public@vaughnnugent.com>
Date: Mon Sep 2 13:54:16 2024 -0400
expand config extensions, and update some sql provider usage
commit b269019103acce18e0df8debd9f7bfdf203083b8
Merge: 87887c0 641bdbe
Author: vnugent <public@vaughnnugent.com>
Date: Sun Jul 28 18:53:41 2024 -0400
Merge branch 'master' into develop
Diffstat (limited to 'lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer')
2 files changed, 32 insertions, 31 deletions
diff --git a/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/SqlServerExport.cs b/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/SqlServerExport.cs index 89769f5..8374c29 100644 --- a/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/SqlServerExport.cs +++ b/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/SqlServerExport.cs @@ -47,17 +47,19 @@ namespace VNLib.Plugins.Extensions.Sql { private async Task<string> BuildConnStringAsync() { + IOnDemandSecret pwd = plugin.Secrets().GetOnDemandSecret("db_password"); + SqlConnectionStringBuilder sb; //See if the user suggested a raw connection string - if (config.TryGetProperty("connection_string", ps => ps.GetString(), out string? conString)) + if (config.TryGetProperty("connection_string", out string? conString)) { sb = new(conString); //If the user did not provide a password, try to get it from secret storage if (string.IsNullOrWhiteSpace(sb.Password)) { - using ISecretResult? password = await plugin.TryGetSecretAsync("db_password"); + using ISecretResult? password = await pwd.FetchSecretAsync(); sb.Password = password?.Result.ToString(); } } @@ -74,41 +76,40 @@ namespace VNLib.Plugins.Extensions.Sql sb = value.Deserialize<SqlConnectionStringBuilder>(opt)!; //Get the password from the secret manager - using ISecretResult? secret = await plugin.TryGetSecretAsync("db_password"); + using ISecretResult? secret = await pwd.FetchSecretAsync(); sb.Password = secret?.Result.ToString(); } else { - //Get the password from the secret manager - using ISecretResult? secret = await plugin.TryGetSecretAsync("db_password"); + using ISecretResult? secret = await pwd.FetchSecretAsync(); // Build connection string sb = new() { - DataSource = config["hostname"].GetString(), - InitialCatalog = config["catalog"].GetString(), - UserID = config["username"].GetString(), - Pooling = true, - - - ApplicationName = config.GetValueOrDefault("application_name", p => p.GetString(), string.Empty), - HostNameInCertificate = config.GetValueOrDefault("hostname_in_certificate", p => p.GetString(), string.Empty), - PacketSize = config.GetValueOrDefault("packet_size", p => p.GetInt32(), 8000), - Encrypt = config.GetValueOrDefault("encrypted", p => p.GetBoolean(), false), - IntegratedSecurity = config.GetValueOrDefault("integrated_security", p => p.GetBoolean(), false), - MultipleActiveResultSets = config.GetValueOrDefault("multiple_active_result_sets", p => p.GetBoolean(), false), - ConnectTimeout = config.GetValueOrDefault("connect_timeout", p => p.GetInt32(), 15), - LoadBalanceTimeout = config.GetValueOrDefault("load_balance_timeout", p => p.GetInt32(), 0), - MaxPoolSize = config.GetValueOrDefault("max_pool_size", p => p.GetInt32(), 100), - MinPoolSize = config.GetValueOrDefault("min_pool_size", p => p.GetInt32(), 0), - TransactionBinding = config.GetValueOrDefault("transaction_binding", p => p.GetString(), "Implicit Unbind"), - TypeSystemVersion = config.GetValueOrDefault("type_system_version", p => p.GetString(), "Latest"), - WorkstationID = config.GetValueOrDefault("workstation_id", p => p.GetString(), string.Empty), - CurrentLanguage = config.GetValueOrDefault("current_language", p => p.GetString(), "us_english"), - PersistSecurityInfo = config.GetValueOrDefault("persist_security_info", p => p.GetBoolean(), false), - Replication = config.GetValueOrDefault("replication", p => p.GetBoolean(), false), - TrustServerCertificate = config.GetValueOrDefault("trust_server_certificate", p => p.GetBoolean(), false), - UserInstance = config.GetValueOrDefault("user_instance", p => p.GetBoolean(), false), + DataSource = config.GetRequiredProperty<string>("hostname"), + InitialCatalog = config.GetRequiredProperty<string>("catalog"), + UserID = config.GetRequiredProperty<string>("username"), + + //Pooling should be enabled unless the users explictly disables it + Pooling = config.GetValueOrDefault("pooling", true), + ApplicationName = config.GetValueOrDefault("application_name", string.Empty), + HostNameInCertificate = config.GetValueOrDefault("hostname_in_certificate", string.Empty), + PacketSize = config.GetValueOrDefault("packet_size", 8000), + Encrypt = config.GetValueOrDefault("encrypted", false), + IntegratedSecurity = config.GetValueOrDefault("integrated_security", false), + MultipleActiveResultSets = config.GetValueOrDefault("multiple_active_result_sets", false), + ConnectTimeout = config.GetValueOrDefault("connect_timeout", 15), + LoadBalanceTimeout = config.GetValueOrDefault("load_balance_timeout", 0), + MaxPoolSize = config.GetValueOrDefault("max_pool_size", 100), + MinPoolSize = config.GetValueOrDefault("min_pool_size", 0), + TransactionBinding = config.GetValueOrDefault("transaction_binding", "Implicit Unbind"), + TypeSystemVersion = config.GetValueOrDefault("type_system_version", "Latest"), + WorkstationID = config.GetValueOrDefault("workstation_id", string.Empty), + CurrentLanguage = config.GetValueOrDefault("current_language", "us_english"), + PersistSecurityInfo = config.GetValueOrDefault("persist_security_info", false), + Replication = config.GetValueOrDefault("replication", false), + TrustServerCertificate = config.GetValueOrDefault("trust_server_certificate", false), + UserInstance = config.GetValueOrDefault("user_instance", false), Password = secret?.Result.ToString(), }; @@ -136,7 +137,7 @@ namespace VNLib.Plugins.Extensions.Sql b.UseSqlServer(connString); //Write debug loggin to the debug log if the user has it enabled or the plugin is in debug mode - if (config.GetValueOrDefault("debug", p => p.GetBoolean(), false) || plugin.IsDebug()) + if (config.GetValueOrDefault("debug", false) || plugin.IsDebug()) { //Write the SQL to the debug log b.LogTo((v) => plugin.Log.Debug("SqlServer: {v}", v)); diff --git a/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/VNLib.Plugins.Extensions.Loading.Sql.SQLServer.csproj b/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/VNLib.Plugins.Extensions.Loading.Sql.SQLServer.csproj index 7015b8c..d99249b 100644 --- a/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/VNLib.Plugins.Extensions.Loading.Sql.SQLServer.csproj +++ b/lib/sql-providers/sqlserver/VNLib.Plugins.Extensions.Loading.Sql.SQLServer/src/VNLib.Plugins.Extensions.Loading.Sql.SQLServer.csproj @@ -49,7 +49,7 @@ <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.7" /> + <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" /> </ItemGroup> |