Added data protection persistance

This commit is contained in:
henrik
2024-11-13 23:07:53 +01:00
parent 6e73fc4a6e
commit 780b215fa6
2 changed files with 14 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
using Elastic.Extensions.Logging; using Elastic.Extensions.Logging;
using Elastic.Extensions.Logging.Options; using Elastic.Extensions.Logging.Options;
using Elastic.Transport; using Elastic.Transport;
using Microsoft.AspNetCore.DataProtection;
using Pushy.Components; using Pushy.Components;
using StackExchange.Redis; using StackExchange.Redis;
using LinkGenerator = Pushy.LinkGenerator; using LinkGenerator = Pushy.LinkGenerator;
@@ -12,18 +13,27 @@ builder.UseOrleans(silo =>
silo.UseLocalhostClustering(); silo.UseLocalhostClustering();
silo.UseRedisReminderService(conf => silo.UseRedisReminderService(conf =>
{ {
conf.ConfigurationOptions = ConfigurationOptions.Parse(builder.Configuration.GetConnectionString("Valkey")!); ConfigurationOptions configurationOptions =
ConfigurationOptions.Parse(builder.Configuration.GetConnectionString("Valkey")!);
configurationOptions.DefaultDatabase = 0;
conf.ConfigurationOptions = configurationOptions;
}); });
silo.AddRedisGrainStorageAsDefault(options => silo.AddRedisGrainStorageAsDefault(options =>
{ {
options.ConfigurationOptions = ConfigurationOptions configurationOptions = ConfigurationOptions.Parse(builder.Configuration.GetConnectionString("Valkey")!);
ConfigurationOptions.Parse(builder.Configuration.GetConnectionString("Valkey")!); configurationOptions.DefaultDatabase = 1;
options.ConfigurationOptions = configurationOptions;
}); });
silo.AddActivityPropagation(); silo.AddActivityPropagation();
}); });
IConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(builder.Configuration.GetConnectionString("Valkey")!);
builder.Services.AddDataProtection()
.PersistKeysToStackExchangeRedis(multiplexer);
var transport = new TransportConfiguration(new StaticNodePool([new Uri("https://elastic-node-1.home.local:9200")])) var transport = new TransportConfiguration(new StaticNodePool([new Uri("https://elastic-node-1.home.local:9200")]))
.Authentication(new ApiKey(builder.Configuration["Elasticsearch:ApiKey"]!)) .Authentication(new ApiKey(builder.Configuration["Elasticsearch:ApiKey"]!))
.ServerCertificateValidationCallback((o, certificate, arg3, arg4) => true); .ServerCertificateValidationCallback((o, certificate, arg3, arg4) => true);

View File

@@ -12,6 +12,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Elastic.Apm.NetCoreAll" Version="1.30.0" /> <PackageReference Include="Elastic.Apm.NetCoreAll" Version="1.30.0" />
<PackageReference Include="Elastic.Extensions.Logging" Version="8.12.2" /> <PackageReference Include="Elastic.Extensions.Logging" Version="8.12.2" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.0" /> <PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.0" />
<PackageReference Include="Microsoft.Orleans.Persistence.Redis" Version="8.2.0" /> <PackageReference Include="Microsoft.Orleans.Persistence.Redis" Version="8.2.0" />
<PackageReference Include="Microsoft.Orleans.Reminders.Redis" Version="8.2.0" /> <PackageReference Include="Microsoft.Orleans.Reminders.Redis" Version="8.2.0" />