Usher.Config (Usher v0.3.0)
View SourceConfiguration management for Usher.
Handles loading and validating configuration from the application environment.
Summary
Functions
Returns all Usher configuration as a keyword list.
Returns the configured default expiration duration.
Returns whether the name field is required for invitations.
Returns the configured Ecto repository.
Returns the configured token length.
Returns the configured valid actions for invitation usage tracking.
Returns the configured valid entity types for invitation usage tracking.
Returns validation configuration for all schemas.
Functions
Returns all Usher configuration as a keyword list.
Useful for debugging or displaying current configuration.
Examples
iex> Usher.Config.all()
[
repo: MyApp.Repo,
token_length: 16,
default_expires_in: {7, :day},
validations: %{
invitation: %{name_required: true}
invitation_usage: %{
valid_usage_entity_types: [:user, :company],
valid_usage_actions: [:visited, :registered]
}
}
]
Returns the configured default expiration duration.
Accepts a Duration.unit_pair(), such as {30, :minute}.
See the docs for Duration.
Defaults to 7 days if not configured.
Returns whether the name field is required for invitations.
This is a convenience function that extracts the name_required value from the validations configuration.
Examples
# Default
iex> Usher.Config.name_required?()
true
# Configured via validations
config :usher, validations: %{
invitation: %{name_required: false}
}
iex> Usher.Config.name_required?()
false
Returns the configured Ecto repository.
This is required for Usher to function and must be set in your application config:
config :usher, repo: MyApp.RepoRaises if not configured.
Returns the configured token length.
Defaults to 16 characters if not configured.
Returns the configured valid actions for invitation usage tracking.
This is required for usage tracking to function and must be set in your application config:
config :usher,
validations: %{
invitation_usage: %{
valid_usage_actions: [:visited, :registered, :activated]
}
}Raises if not configured.
Returns the configured valid entity types for invitation usage tracking.
This is required for usage tracking to function and must be set in your application config:
config :usher,
validations: %{
invitation_usage: %{
valid_usage_entity_types: [:user, :company, :device]
}
}Raises if not configured.
Returns validation configuration for all schemas.
Defaults to %{invitation: %{name_required: true}} if not configured.
Examples
# Default
iex> Usher.Config.validations()
%{invitation: %{name_required: true}}
# Configured
config :usher, validations: %{
invitation: %{name_required: false}
}
iex> Usher.Config.validations()
%{invitation: %{name_required: false}}