# ex_secrets v0.4.0 - Table of Contents

> Provider secrets to your app from .env, Azure KeyVault, Azure Managed Identity, Google Secret Manager.

## Pages

- [ExSecrets](readme.md)
- [GUIDES](guides.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [ExSecrets](ExSecrets.md): This module functions to access secrets in an Elixir application.

- [ExSecrets.Application](ExSecrets.Application.md): Application for adding providers and cache to the supervision tree.
All are besically GenServers that do a bunch of API calls and file access like .env reader

- [ExSecrets.Cache](ExSecrets.Cache.md): Cache module provides helper functions for caching secrets.

- [ExSecrets.HTTPAdapterBehavior](ExSecrets.HTTPAdapterBehavior.md): Behaviour for HTTP adapters.

- [ExSecrets.Providers.AwsSecretsManager](ExSecrets.Providers.AwsSecretsManager.md): This module provides a provider for AWS Secrets Manager - https://aws.amazon.com/secrets-manager/
Code for authenticating with AWS has been has been forked from ex_aws See https://github.com/ex-aws/ex_aws
- [ExSecrets.Providers.AzureKeyVault](ExSecrets.Providers.AzureKeyVault.md): Azure Key Vault provider provides secrets from an [Azure Key Vault](https://learn.microsoft.com/en-us/azure/key-vault/general/overview) through a rest API.
- [ExSecrets.Providers.AzureManagedIdentity](ExSecrets.Providers.AzureManagedIdentity.md): Azure Key Vault provider provides secrets from an Azure Key Vault through a rest API.
- [ExSecrets.Providers.Base](ExSecrets.Providers.Base.md): Base provider provides the basic functions to be implemented by a provider.
This macro is used to implement the basic functions of a provider.

- [ExSecrets.Providers.Behaviour](ExSecrets.Providers.Behaviour.md): Behaviour for providers.

- [ExSecrets.Providers.DotEnv](ExSecrets.Providers.DotEnv.md): DotEnv provider provides secrets from a .env file.

- [ExSecrets.Providers.GoogleSecretManager](ExSecrets.Providers.GoogleSecretManager.md): Google Secret Manager provider provides secrets from an Google Secret Manager through a rest API.
- [ExSecrets.Providers.SystemEnv](ExSecrets.Providers.SystemEnv.md): SystemEnv provider provides secrets from the system environment.

- [ExSecrets.Utils.Config](ExSecrets.Utils.Config.md): Config module provides helper functions for getting configuration values.

- [ExSecrets.Utils.Resolver](ExSecrets.Utils.Resolver.md): Resolver module resolves the provider name to the actual provider module.

- [ExSecrets.Utils.SecretFetchLimiter](ExSecrets.Utils.SecretFetchLimiter.md): Secret fetch limiter module limits the number of secret fetches in a given time.

- Exceptions
  - [ExSecrets.Exceptions.InvalidConfiguration](ExSecrets.Exceptions.InvalidConfiguration.md)
  - [ExSecrets.Exceptions.UnknowProvider](ExSecrets.Exceptions.UnknowProvider.md)

