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

context()

@type context() :: map()

decision_result()

@type decision_result() ::
  Selecto.Capabilities.Decision.t()
  | {:ok, Selecto.Capabilities.Decision.t()}
  | {:error, term()}

Callbacks

decide(t, context)

decide_many(list, context)

(optional)
@callback decide_many([Selecto.Capabilities.Request.t()], context()) ::
  [Selecto.Capabilities.Decision.t()]
  | {:ok, [Selecto.Capabilities.Decision.t()]}
  | {:error, term()}