Joseph Doherty
|
0df93c23b0
|
feat: port session 09 — Server Core Init & Config
Port server/server.go account management and initialization (~1950 LOC):
- NatsServer.cs: full server struct fields (atomic counters, locks, maps,
stubs for gateway/websocket/mqtt/ocsp/leafnode)
- NatsServer.Init.cs: factory methods (New/NewServer/NewServerFromConfig),
compression helpers (ValidateAndNormalizeCompressionOption,
SelectCompressionMode, SelectS2AutoModeBasedOnRtt, CompressOptsEqual),
cluster-name management, validation (ValidateCluster, ValidatePinnedCerts,
ValidateOptions), trusted-key processing, CLI helpers, running-state checks,
and Start() stub
- NatsServer.Accounts.cs: account management (ConfigureAccounts,
LookupOrRegisterAccount, RegisterAccount, SetSystemAccount,
SetDefaultSystemAccount, SetSystemAccountInternal, CreateInternalClient*,
ShouldTrackSubscriptions, RegisterAccountNoLock, SetAccountSublist,
SetRouteInfo, LookupAccount, LookupOrFetchAccount, UpdateAccount,
UpdateAccountWithClaimJwt, FetchRawAccountClaims, FetchAccountClaims,
VerifyAccountClaims, FetchAccountFromResolver, GlobalAccountOnly,
StandAloneMode, ConfiguredRoutes, ActivePeers, ComputeRoutePoolIdx)
- NatsServerTypes.cs: ServerInfo, ServerStats, NodeInfo, ServerProtocol,
CompressionMode constants, AccountClaims stub, InternalState stub, and
cross-session stubs for JetStream/gateway/websocket/mqtt/ocsp
- AuthTypes.cs: extend Account stub with Issuer, ClaimJwt, RoutePoolIdx,
Incomplete, Updated, Sublist, Server fields, and IsExpired()
- ServerOptions.cs: add Accounts property (List<Account>)
- ServerTests.cs: 38 standalone tests (IDs 2866, 2882, plus compression
and validation helpers); server-dependent tests marked n/a
Features: 77 complete (IDs 2974–3050)
Tests: 2 complete (2866, 2882); 18 n/a (server-dependent)
All tests: 545 unit + 1 integration pass
|
2026-02-26 14:18:18 -05:00 |
|
Joseph Doherty
|
0a54d342ba
|
feat: port session 06 — Authentication & JWT types, validators, cipher suites
Port independently-testable auth functions from auth.go, ciphersuites.go,
and jwt.go. Server-dependent methods (configureAuthorization, checkAuthentication,
auth callout, etc.) are stubbed for later sessions.
- AuthTypes: User, NkeyUser, SubjectPermission, ResponsePermission, Permissions,
RoutePermissions, Account — all with deep Clone() methods
- AuthHandler: IsBcrypt, ComparePasswords, ValidateResponsePermissions,
ValidateAllowedConnectionTypes, ValidateNoAuthUser, ValidateAuth,
DnsAltNameLabels, DnsAltNameMatches, WipeSlice, ConnectionTypes constants
- CipherSuites: CipherMap, CipherMapById, DefaultCipherSuites,
CurvePreferenceMap, DefaultCurvePreferences
- JwtProcessor: JwtPrefix, WipeSlice, ValidateSrc (CIDR matching),
ValidateTimes (time-of-day ranges), TimeRange type
- ServerOptions: added Users, Nkeys, TrustedOperators properties
- 67 new unit tests (all 328 tests pass)
- DB: 18 features complete, 25 stubbed; 6 Go tests complete, 125 stubbed
|
2026-02-26 12:27:33 -05:00 |
|
Joseph Doherty
|
f08fc5d6a7
|
feat: port session 03 — Configuration & Options types, Clone, MergeOptions, SetBaseline
- ServerOptionTypes.cs: all supporting types — ClusterOpts, GatewayOpts, LeafNodeOpts,
WebsocketOpts, MqttOpts, RemoteLeafOpts, RemoteGatewayOpts, CompressionOpts,
TlsConfigOpts, JsLimitOpts, JsTpmOpts, AuthCalloutOpts, ProxiesConfig,
IAuthentication, IAccountResolver, enums (WriteTimeoutPolicy, StoreCipher, OcspMode)
- ServerOptions.cs: full Options struct with ~100 properties across 10 subsystems
(general, logging, networking, TLS, cluster, gateway, leafnode, websocket, MQTT, JetStream)
- ServerOptions.Methods.cs: Clone (deep copy), MergeOptions, SetBaselineOptions,
RoutesFromStr, NormalizeBasePath, OverrideTls, OverrideCluster, ExpandPath,
HomeDir, MaybeReadPidFile, GetDefaultAuthTimeout, ConfigFlags.NoErrOnUnknownFields
- 17 tests covering defaults, random port, merge, clone, expand path, auth timeout,
routes parsing, normalize path, cluster override, config flags
- Config file parsing (processConfigFileLine 765-line function) deferred to follow-up
- All 130 tests pass (129 unit + 1 integration)
- DB: features 344/3673 complete, tests 148/3257 complete (9.1% overall)
|
2026-02-26 11:51:01 -05:00 |
|