ex_azure_key_vault v0.0.1 ExAzureKeyVault.Client View Source

Client for creating or getting Azure Key Vault.

Link to this section Summary

Link to this section Types

Link to this type t() View Source
t() :: %ExAzureKeyVault.Client{
  api_version: String.t(),
  bearer_token: String.t(),
  vault_name: String.t()
}

Link to this section Functions

Link to this function connect(vault_name \\ nil, tenant_id \\ nil, client_id \\ nil, client_secret \\ nil) View Source
connect(String.t() | nil, String.t() | nil, String.t() | nil, String.t() | nil) ::
  ExAzureKeyVault.Client.t() | {:error, any()}

Connects to Azure Key Vault.

Examples

When defining environment variables and/or adding to configuration.

$ export AZURE_CLIENT_ID="14e79d90-9abf..."
$ export AZURE_CLIENT_SECRET="14e7a11e-9abf..."
$ export AZURE_TENANT_ID="14e7a376-9abf..."
$ export AZURE_VAULT_NAME="my-vault"

# Config.exs
config :ex_azure_key_vault,
  azure_client_id: {:system, "AZURE_CLIENT_ID"},
  azure_client_secret: {:system, "AZURE_CLIENT_SECRET"},
  azure_tenant_id: {:system, "AZURE_TENANT_ID"},
  azure_vault_name: {:system, "AZURE_VAULT_NAME"}

iex> ExAzureKeyVault.Client.connect()
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}

Passing custom parameters.

iex> ExAzureKeyVault.Client.connect("my-vault", "14e7a376-9abf...", "14e79d90-9abf...", "14e7a11e-9abf...")
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}
Link to this function create_secret(params, secret_name, secret_value) View Source
create_secret(ExAzureKeyVault.Client.t(), String.t(), String.t()) ::
  :ok | {:error, any()}

Creates a new secret.

Examples

iex> ExAzureKeyVault.Client.create_secret(
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}, "my-new-secret", "my-new-value")
:ok
Link to this function get_secret(params, secret_name, secret_version \\ nil) View Source
get_secret(ExAzureKeyVault.Client.t(), String.t(), String.t() | nil) ::
  {:ok, String.t()} | {:error, any()}

Returns secret value.

Examples

Ignoring secret version.

iex> ExAzureKeyVault.Client.get_secret(
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}, "my-secret")
{:ok, "my-value"}

Passing secret version.

iex> ExAzureKeyVault.Client.get_secret(
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault",
}, "my-secret", "03b424a49ac3...")
{:ok, "my-other-value"}
Link to this function new(bearer_token, vault_name, api_version \\ nil) View Source

Creates %ExAzureKeyVault.Client{} struct with connection information.

Examples

Using default API version.

iex> ExAzureKeyVault.Client.new("Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "my-vault")
%ExAzureKeyVault.Client{
  api_version: "2016-10-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}

Passing custom API version.

iex> ExAzureKeyVault.Client.new("Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "my-vault", "2015-06-01")
%ExAzureKeyVault.Client{
  api_version: "2015-06-01",
  bearer_token: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  vault_name: "my-vault"
}