From c5bd5418adbb17f66088919f4b790cd27eab7868 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Sun, 24 May 2026 03:58:07 -0400 Subject: [PATCH] feat(transport): add TransportOptions --- src/ScadaLink.Transport/ScadaLink.Transport.csproj | 4 ++++ .../ServiceCollectionExtensions.cs | 4 +++- src/ScadaLink.Transport/TransportOptions.cs | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/ScadaLink.Transport/TransportOptions.cs diff --git a/src/ScadaLink.Transport/ScadaLink.Transport.csproj b/src/ScadaLink.Transport/ScadaLink.Transport.csproj index 2aa3116..a1ac6db 100644 --- a/src/ScadaLink.Transport/ScadaLink.Transport.csproj +++ b/src/ScadaLink.Transport/ScadaLink.Transport.csproj @@ -7,6 +7,10 @@ true + + + + diff --git a/src/ScadaLink.Transport/ServiceCollectionExtensions.cs b/src/ScadaLink.Transport/ServiceCollectionExtensions.cs index 8497f48..ba819c3 100644 --- a/src/ScadaLink.Transport/ServiceCollectionExtensions.cs +++ b/src/ScadaLink.Transport/ServiceCollectionExtensions.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; namespace ScadaLink.Transport; @@ -9,7 +10,8 @@ public static class ServiceCollectionExtensions public static IServiceCollection AddTransport(this IServiceCollection services) { ArgumentNullException.ThrowIfNull(services); - // Concrete services and options binding added in later tasks. + services.AddOptions().BindConfiguration(OptionsSection); + // Concrete services added in later tasks. return services; } } diff --git a/src/ScadaLink.Transport/TransportOptions.cs b/src/ScadaLink.Transport/TransportOptions.cs new file mode 100644 index 0000000..b91ff9a --- /dev/null +++ b/src/ScadaLink.Transport/TransportOptions.cs @@ -0,0 +1,11 @@ +namespace ScadaLink.Transport; + +public sealed class TransportOptions +{ + public int BundleSessionTtlMinutes { get; set; } = 30; + public int MaxBundleSizeMb { get; set; } = 100; + public int MaxUnlockAttemptsPerSession { get; set; } = 3; + public int MaxUnlockAttemptsPerIpPerHour { get; set; } = 10; + public int Pbkdf2Iterations { get; set; } = 600_000; + public int SchemaVersionMajor { get; set; } = 1; +}