Skip to content

v0.3.0

Choose a tag to compare

@gmpassos gmpassos released this 11 Jul 23:07
35ee093

Migration-readiness features so omnydrive and omnyshell can adopt OmnyHub for HUB/Node/transport. Fully backward-compatible; 213 tests.

Path-parameter routing

  • PathPattern (<endpoint>, wildcard tail <path|.*>) + RouterService — intra-service routing with captured params and method dispatch (405/404).
  • ShelfService — host an existing shelf.Handler / shelf_router.Router verbatim.
  • HostPatternRule(RegExp, {part}) — regexp routing over host / domain / subdomain, combinable with a PathRule via &.

Layered authentication framework

  • AuthCoordinator → sealed AuthDecision: Authenticated / Anonymous (bypass) / Delegate (to per-service) / Blocked (pre-check).
  • Per-service authenticator/authorizer on registerService/route; new TooManyRequestsException (429). DefaultAuthCoordinator keeps the no-config path identical to before.
  • ConnectionAuthenticator + a HandshakeConnection buffered wrapper for in-band WebSocket handshakes (single-subscription-safe hand-off to the service).

Conveniences

  • ReloadableFileTls — hot-reload certificate/key files on change (cert-manager/certbot friendly).
  • mapErrors middleware + successEnvelope/errorEnvelope helpers.
  • NodeRegistry extras: activeSessions, connectionId, byConnectionId, updateActiveSessions.

New examples: path_params_example.dart, layered_auth_example.dart.

See the CHANGELOG for the full list.