Crosswake. Manifest. Types. RouteEntry
(crosswake v0.2.0)
View Source
Typed route definition passed as the first argument to route_gated?/2.
Companions receive this struct to inspect route metadata when evaluating
gate policy. Read-only from the companion's perspective — never construct
or modify a RouteEntry in companion code.
Only RouteEntry.t() is part of the companion contract surface. All other
nested modules in Crosswake.Manifest.Types (Crosswake.Manifest.Types.Root,
Crosswake.Manifest.Types.Host, Crosswake.Manifest.Types.Compatibility, etc.)
are @moduledoc false and internal to Crosswake core.
Stability
Public stable — part of the Crosswake companion contract surface. Semver-protected
under crosswake >= 0.1.0: no breaking changes to this module's struct fields,
types, or callbacks without a major version bump. Companion packages
(crosswake_rulestead, crosswake_rindle, etc.) may safely alias and
pattern-match on this type.
Summary
Types
@type t() :: %Crosswake.Manifest.Types.RouteEntry{ allowlisted_origins: [String.t()], auth_min_level: atom() | nil, auth_posture: Crosswake.Policy.Schema.auth_posture() | nil, auth_return: Crosswake.Manifest.Types.RouteAuthReturn.t() | nil, cache_contract: Crosswake.Manifest.Types.CacheContract.t() | nil, capabilities: [String.t()], commerce: Crosswake.Manifest.Types.RouteCommerce.t() | nil, entry: Crosswake.Policy.Schema.entry(), gated_by: atom() | nil, id: String.t(), island_contract: Crosswake.Manifest.Types.IslandContract.t() | nil, notification_open: Crosswake.Policy.Schema.notification_open_declaration() | nil, offline: Crosswake.Policy.Schema.offline(), on_unavailable: :deny | {:fallback_phoenix, atom()} | nil, packs: [String.t()], path: String.t(), requires_recent_auth: pos_integer() | nil, runtime: Crosswake.Policy.Schema.runtime(), security: Crosswake.Policy.Schema.security() | nil, sync: [String.t()], transfers: [Crosswake.Manifest.Types.TransferSeam.t()] }
Route definition struct passed to companion gate callbacks.