Meili.Token (Meili v0.1.3)

Copy Markdown View Source

Generates signed tenant tokens for multi-tenant search filtering.

Summary

Functions

generate(api_key_uid, search_rules, secret \\ nil, opts \\ [])

@spec generate(String.t() | nil, map() | nil, String.t() | nil, Keyword.t()) ::
  {:ok, String.t()}
  | {:error, :missing_secret | :invalid_uid | :missing_search_rules}

Generates a signed Meilisearch Tenant Token using the HS256 signing algorithm.

Parameters

  • api_key_uid: The UUID v4 of the API key.
  • search_rules: The search rules map or list of rules.
  • secret: The API key value itself used for signing (or defaults to the default client's key).
  • opts: Options:
    • :expires_at: The expiration time as a DateTime struct or integer UNIX timestamp.

Examples

rules = %{"movies" => %{"filter" => "genre = 'Sci-Fi'"}}
{:ok, token} = Meili.Token.generate("e5b72186-dc3c-4cf2-835b-d0df3f08985c", rules, "my-master-key")

generate!(api_key_uid, search_rules, secret \\ nil, opts \\ [])

@spec generate!(String.t() | nil, map() | nil, String.t() | nil, Keyword.t()) ::
  String.t() | no_return()