Selecto.Capabilities.Resolver behaviour
(Selecto v0.4.6)
Copy Markdown
Behaviour for host-owned capability policy resolvers.
Selecto owns the request and decision data shapes, but host applications own
authorization truth. A resolver may implement only decide/2; callers can
still use the shared batch helper, which falls back to calling decide/2
for each request. Resolvers that can answer more efficiently may also
implement decide_many/2.
Summary
Types
@type context() :: map()
@type decision_result() :: Selecto.Capabilities.Decision.t() | {:ok, Selecto.Capabilities.Decision.t()} | {:error, term()}
Callbacks
@callback decide(Selecto.Capabilities.Request.t(), context()) :: decision_result()
@callback decide_many([Selecto.Capabilities.Request.t()], context()) :: [Selecto.Capabilities.Decision.t()] | {:ok, [Selecto.Capabilities.Decision.t()]} | {:error, term()}