Lockspire.Storage.KeyStore behaviour
(lockspire v1.0.0)
Copy Markdown
Domain-level persistence contract for signing keys.
Summary
Types
@type store_error() :: term()
Callbacks
@callback activate_signing_key(integer(), DateTime.t()) :: {:ok, %{ activated_key: Lockspire.Domain.SigningKey.t(), retiring_key: Lockspire.Domain.SigningKey.t() | nil }} | {:error, store_error()}
@callback fetch_active_signing_key(keyword()) :: {:ok, Lockspire.Domain.SigningKey.t() | nil} | {:error, store_error()}
@callback fetch_signing_key_by_id(integer()) :: {:ok, Lockspire.Domain.SigningKey.t() | nil} | {:error, store_error()}
@callback list_active_keys() :: {:ok, [Lockspire.Domain.SigningKey.t()]} | {:error, store_error()}
@callback list_decryption_keys() :: {:ok, [Lockspire.Domain.SigningKey.t()]} | {:error, store_error()}
@callback list_publishable_keys(keyword()) :: {:ok, [Lockspire.Domain.SigningKey.t()]} | {:error, store_error()}
@callback list_signing_keys(keyword()) :: {:ok, [Lockspire.Domain.SigningKey.t()]} | {:error, store_error()}
@callback publish_key(Lockspire.Domain.SigningKey.t()) :: {:ok, Lockspire.Domain.SigningKey.t()} | {:error, store_error()}
@callback publish_signing_key(integer(), DateTime.t()) :: {:ok, Lockspire.Domain.SigningKey.t()} | {:error, store_error()}
@callback retire_signing_key(integer(), DateTime.t()) :: {:ok, Lockspire.Domain.SigningKey.t()} | {:error, store_error()}