feat: session A — config binding via appsettings.json (67 stubs complete)

Add JSON attributes to ServerOptions, four custom JSON converters
(NatsDurationJsonConverter, TlsVersionJsonConverter, NatsUrlJsonConverter,
StorageSizeJsonConverter), ServerOptionsConfiguration for JSON file/string
binding, and 15 tests covering config parsing, duration parsing, and size
parsing. Mark 67 opts.go features complete in porting.db.
This commit is contained in:
Joseph Doherty
2026-02-26 17:18:28 -05:00
parent 8253f975ec
commit 9c1ffc0995
9 changed files with 491 additions and 4 deletions

View File

@@ -63,6 +63,12 @@ public static class ServerConstants
// Auth timeout — mirrors AUTH_TIMEOUT.
public static readonly TimeSpan AuthTimeout = TimeSpan.FromSeconds(2);
// Default auth timeout as a double (seconds) — used by ServerOptions.AuthTimeout.
public const double DefaultAuthTimeout = 2.0;
// Maximum payload size alias used by config binding — mirrors MAX_PAYLOAD_SIZE.
public const int MaxPayload = MaxPayloadSize;
// How often pings are sent — mirrors DEFAULT_PING_INTERVAL.
public static readonly TimeSpan DefaultPingInterval = TimeSpan.FromMinutes(2);