ADK.Auth.CredentialStore behaviour (ADK v0.0.1-alpha.1)

Copy Markdown View Source

Behaviour for pluggable credential storage backends.

Mirrors Python ADK's BaseCredentialService. Implementations store and retrieve credentials keyed by a credential name (typically the tool or service name).

Implementing a Custom Store

defmodule MyApp.VaultStore do
  @behaviour ADK.Auth.CredentialStore

  @impl true
  def get(name, _opts), do: Vault.read(name)

  @impl true
  def put(name, credential, _opts), do: Vault.write(name, credential)

  @impl true
  def delete(name, _opts), do: Vault.delete(name)
end

Summary

Callbacks

Delete a credential by name.

Retrieve a credential by name.

Store a credential under a name.

Types

name()

@type name() :: String.t()

Callbacks

delete(name, keyword)

@callback delete(
  name(),
  keyword()
) :: :ok | {:error, term()}

Delete a credential by name.

get(name, keyword)

@callback get(
  name(),
  keyword()
) :: {:ok, ADK.Auth.Credential.t()} | :not_found | {:error, term()}

Retrieve a credential by name.

put(name, t, keyword)

@callback put(name(), ADK.Auth.Credential.t(), keyword()) :: :ok | {:error, term()}

Store a credential under a name.