BaileysEx.Auth.NativeFilePersistence (baileys_ex v0.1.0-alpha.7)

Copy Markdown View Source

Recommended durable auth persistence for Elixir-first deployments.

This backend stores credentials and Signal keys as ETF on disk with crash-safe writes. Use BaileysEx.Auth.FilePersistence when you need the Baileys-compatible JSON multi-file helper instead.

Switching an existing linked device from the compatibility JSON backend to this backend is explicit. Use BaileysEx.Auth.PersistenceMigration to preserve the current session, or re-pair on a fresh native directory.

The built-in file lock here is :global.trans, which coordinates file access inside one BEAM cluster. Treat one auth directory as owned by one runtime at a time; this module is not a distributed storage protocol.

Summary

Functions

Deletes a Signal key record by type and ID from the default directory.

Deletes a Signal key record by type and ID from the specified directory.

Loads the core credentials state from the default configured directory.

Loads the core credentials state from the given path.

Loads a Signal key record by type and ID from the default directory.

Loads a Signal key record by type and ID from the given directory.

Saves the core credentials state into the default directory.

Saves the core credentials state into the given directory path.

Saves a Signal key record by type and ID into the default directory.

Saves a Signal key record by type and ID into the specified directory.

Loads the auth state and returns the runtime options for the built-in file-backed Signal store using the durable native backend.

Functions

delete_keys(type, id)

@spec delete_keys(atom(), term()) :: :ok | {:error, term()}

Deletes a Signal key record by type and ID from the default directory.

delete_keys(path, type, id)

@spec delete_keys(Path.t(), atom(), term()) :: :ok | {:error, term()}

Deletes a Signal key record by type and ID from the specified directory.

load_credentials()

@spec load_credentials() :: {:ok, BaileysEx.Auth.State.t()} | {:error, term()}

Loads the core credentials state from the default configured directory.

load_credentials(path)

@spec load_credentials(Path.t()) :: {:ok, BaileysEx.Auth.State.t()} | {:error, term()}

Loads the core credentials state from the given path.

load_keys(type, id)

@spec load_keys(atom(), term()) :: {:ok, term()} | {:error, term()}

Loads a Signal key record by type and ID from the default directory.

load_keys(path, type, id)

@spec load_keys(Path.t(), atom(), term()) :: {:ok, term()} | {:error, term()}

Loads a Signal key record by type and ID from the given directory.

save_credentials(state)

@spec save_credentials(BaileysEx.Auth.State.t()) :: :ok | {:error, term()}

Saves the core credentials state into the default directory.

save_credentials(path, state)

@spec save_credentials(Path.t(), BaileysEx.Auth.State.t()) :: :ok | {:error, term()}

Saves the core credentials state into the given directory path.

save_keys(type, id, data)

@spec save_keys(atom(), term(), term()) :: :ok | {:error, term()}

Saves a Signal key record by type and ID into the default directory.

save_keys(path, type, id, data)

@spec save_keys(Path.t(), atom(), term(), term()) :: :ok | {:error, term()}

Saves a Signal key record by type and ID into the specified directory.

use_native_file_auth_state(path \\ default_path())

@spec use_native_file_auth_state(Path.t()) ::
  {:ok, BaileysEx.Auth.Persistence.auth_state_helper()} | {:error, term()}

Loads the auth state and returns the runtime options for the built-in file-backed Signal store using the durable native backend.