Per A2-γ §3.2.3: the v0.4.x oauthSessionModule({ clientRepository }) factory
whose init(ctx) conditionally called ctx.grantRegistry.register("session", ...) is
replaced by a defineModule(...) factory whose contributes.grants.session entry
the boot planner registers automatically.
Caller surface: oauthSessionModule({ clientRepository }) → oauthSessionModule({ config }).
clientRepository and keyStore now flow through requires from the DI graph.
Per the secure-default opt-in discipline (matches oauthAuthorizationModule):
the session grant registers only when config.oauth.grants.session.enabled
is explicitly truthy (boolean true or string "true"). Absent keys and
other values are treated as not-enabled and the factory returns a no-op
module. A2-α §7.5 permits a module with no contributes map.
Declarative manifest for the session grant.
Per A2-γ §3.2.3: the v0.4.x
oauthSessionModule({ clientRepository })factory whoseinit(ctx)conditionally calledctx.grantRegistry.register("session", ...)is replaced by adefineModule(...)factory whosecontributes.grants.sessionentry the boot planner registers automatically.Caller surface:
oauthSessionModule({ clientRepository })→oauthSessionModule({ config }).clientRepositoryandkeyStorenow flow throughrequiresfrom the DI graph.Per the secure-default opt-in discipline (matches
oauthAuthorizationModule): the session grant registers only whenconfig.oauth.grants.session.enabledis explicitly truthy (booleantrueor string"true"). Absent keys and other values are treated as not-enabled and the factory returns a no-op module. A2-α §7.5 permits a module with nocontributesmap.