WorkOS.Vault (WorkOS SDK for Elixir v3.0.1)

Copy Markdown View Source

Operations for the Vault API.

Summary

Functions

create_data_key(client, params \\ %{}, opts \\ [])

@spec create_data_key(WorkOS.Client.t(), map(), keyword()) ::
  {:ok, WorkOS.CreateDataKeyResponse.t()} | {:error, WorkOS.Error.error()}

Create a data key

Generate an isolated encryption key for local encryption operations.

Parameters

create_decrypt(client, params \\ %{}, opts \\ [])

@spec create_decrypt(WorkOS.Client.t(), map(), keyword()) ::
  {:ok, WorkOS.DecryptResponse.t()} | {:error, WorkOS.Error.error()}

Decrypt a data key

Decrypt a previously encrypted data key from WorkOS Vault.

Parameters

create_kv(client, params \\ %{}, opts \\ [])

@spec create_kv(WorkOS.Client.t(), map(), keyword()) ::
  {:ok, WorkOS.ObjectMetadata.t()} | {:error, WorkOS.Error.error()}

Create an object

Encrypt and store a new key-value object.

Parameters

create_rekey(client, params \\ %{}, opts \\ [])

@spec create_rekey(WorkOS.Client.t(), map(), keyword()) ::
  {:ok, WorkOS.CreateDataKeyResponse.t()} | {:error, WorkOS.Error.error()}

Re-encrypt a data key

Decrypt an existing data key and re-encrypt it under a new key context.

Parameters

delete_kv(client, id, params \\ %{}, opts \\ [])

@spec delete_kv(WorkOS.Client.t(), String.t(), map(), keyword()) ::
  {:ok, WorkOS.DeleteObjectResponse.t()} | {:error, WorkOS.Error.error()}

Delete an object

Delete an encrypted object.

Parameters

  • id — Unique identifier of the object.
  • params — query parameters: :version_check
  • opts — per-request options (see WorkOS.Client.request/5)

get_kv(client, id, opts \\ [])

@spec get_kv(WorkOS.Client.t(), String.t(), keyword()) ::
  {:ok, WorkOS.VaultObject.t()} | {:error, WorkOS.Error.error()}

Read an object by ID

Fetch and decrypt an object by its unique identifier.

Parameters

get_name(client, name, opts \\ [])

@spec get_name(WorkOS.Client.t(), String.t(), keyword()) ::
  {:ok, WorkOS.VaultObject.t()} | {:error, WorkOS.Error.error()}

Read an object by name

Fetch and decrypt an object by its unique name.

Parameters

list_kv(client, params \\ %{}, opts \\ [])

@spec list_kv(WorkOS.Client.t(), map(), keyword()) ::
  {:ok, WorkOS.Page.t(WorkOS.ObjectSummary.t())}
  | {:error, WorkOS.Error.error()}

List objects

List all encrypted objects with cursor-based pagination.

Parameters

  • params — query parameters: :limit, :before, :after_, :order, :search, :updated_after
  • opts — per-request options (see WorkOS.Client.request/5)

list_kv_metadata(client, id, opts \\ [])

@spec list_kv_metadata(WorkOS.Client.t(), String.t(), keyword()) ::
  {:ok, WorkOS.ObjectWithoutValue.t()} | {:error, WorkOS.Error.error()}

Describe an object

Fetch metadata for an object without decrypting it.

Parameters

list_kv_versions(client, id, opts \\ [])

@spec list_kv_versions(WorkOS.Client.t(), String.t(), keyword()) ::
  {:ok, WorkOS.VersionListResponse.t()} | {:error, WorkOS.Error.error()}

List object versions

Retrieve all versions for a specific object.

Parameters

update_kv(client, id, params \\ %{}, opts \\ [])

@spec update_kv(WorkOS.Client.t(), String.t(), map(), keyword()) ::
  {:ok, WorkOS.ObjectWithoutValue.t()} | {:error, WorkOS.Error.error()}

Update an object

Update the value of an existing encrypted object.

Parameters

  • id — Unique identifier of the object.
  • params — request body map
  • opts — per-request options (see WorkOS.Client.request/5)