Lockspire.Diagnostics.RemoteJwks (lockspire v1.2.0)

Copy Markdown

Shared remote-JWKS incident classification for support-facing diagnostics.

Summary

Types

Stable operator-facing incident classes for remote jwks_uri failures.

t()

Types

consumer()

@type consumer() :: :private_key_jwt | :jarm

incident_class()

@type incident_class() ::
  :remote_jwks_fetch_failed
  | :remote_jwks_invalid
  | :remote_jwks_key_unavailable
  | :remote_jwks_signature_invalid

Stable operator-facing incident classes for remote jwks_uri failures.

summary()

@type summary() :: %{
  applicable?: boolean(),
  status: summary_status() | :not_applicable,
  client_id: String.t() | nil,
  mode: :remote_jwks_uri | :not_configured,
  incident: t() | nil,
  headline: String.t(),
  detail: String.t(),
  next_step: String.t(),
  ownership: String.t(),
  command_hint: String.t() | nil
}

summary_status()

@type summary_status() :: :supported | :incident

t()

@type t() :: %Lockspire.Diagnostics.RemoteJwks{
  bounded_reactive?: true,
  cached_entry_present?: boolean() | nil,
  class: incident_class(),
  consumer: consumer(),
  current_request_fails_closed?: true,
  fetch_status: integer() | nil,
  forced_refresh_attempted?: boolean(),
  jwks_source: :jwks_uri,
  preserves_last_known_good_cache?: boolean(),
  proactive_readiness?: false,
  remediation: String.t(),
  requested_kid_present_in_cached_set?: boolean() | nil,
  stage: atom(),
  subreason: atom() | nil,
  target_safety_reason: atom() | nil
}

Functions

classify_fetch_error(consumer, error, opts \\ [])

@spec classify_fetch_error(consumer(), {:jwks_fetch_failed, term()}, keyword()) :: t()

doctor_command(client_id)

@spec doctor_command(String.t()) :: String.t()

install_boundary_note()

@spec install_boundary_note() :: String.t()

key_unavailable(consumer, opts \\ [])

@spec key_unavailable(
  consumer(),
  keyword()
) :: t()

metadata(incident)

@spec metadata(t()) :: map()

ownership_note()

@spec ownership_note() :: String.t()

signature_invalid(consumer, opts \\ [])

@spec signature_invalid(
  consumer(),
  keyword()
) :: t()

snapshot(incident)

@spec snapshot(t()) :: map()

summarize_client(client)

@spec summarize_client(Lockspire.Domain.Client.t()) :: summary()