Lockspire.Domain.CibaAuthorization (lockspire v1.0.0)

Copy Markdown

Core domain model for OpenID Connect Client-Initiated Backchannel Authentication (CIBA).

Summary

Types

delivery_mode()

@type delivery_mode() :: :poll | :ping | :push

status()

@type status() :: :pending | :approved | :denied | :consumed | :expired

t()

@type t() :: %Lockspire.Domain.CibaAuthorization{
  approved_at: DateTime.t() | nil,
  auth_req_id: String.t() | nil,
  auth_req_id_encrypted: binary() | nil,
  auth_req_id_hash: String.t(),
  binding_message: String.t() | nil,
  client_id: String.t(),
  client_notification_endpoint: String.t() | nil,
  client_notification_token_encrypted: binary() | nil,
  consumed_at: DateTime.t() | nil,
  delivery_mode: delivery_mode(),
  denied_at: DateTime.t() | nil,
  effective_poll_interval_seconds: pos_integer(),
  expired_at: DateTime.t() | nil,
  expires_at: DateTime.t(),
  id: integer() | nil,
  next_poll_allowed_at: DateTime.t(),
  scopes: [String.t()],
  status: status(),
  subject_id: String.t() | nil
}

Functions

default_poll_interval_seconds()

@spec default_poll_interval_seconds() :: pos_integer()

initial_next_poll_allowed_at(issued_at)

@spec initial_next_poll_allowed_at(DateTime.t()) :: DateTime.t()

issue(attrs, opts \\ [])

Issues a new CIBA Authorization struct.

statuses()

@spec statuses() :: [status(), ...]