https://github.com/secretvault-elixir/secret_vault
All-included solution for managing secrets in mix projects
https://github.com/secretvault-elixir/secret_vault
elixir secret-management spawnfest
Last synced: 8 months ago
JSON representation
All-included solution for managing secrets in mix projects
- Host: GitHub
- URL: https://github.com/secretvault-elixir/secret_vault
- Owner: SecretVault-elixir
- License: bsd-2-clause
- Created: 2022-12-12T20:10:35.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-28T20:56:57.000Z (over 1 year ago)
- Last Synced: 2025-04-07T10:19:40.908Z (about 1 year ago)
- Topics: elixir, secret-management, spawnfest
- Language: Elixir
- Homepage: https://hexdocs.pm/secret_vault
- Size: 111 KB
- Stars: 37
- Watchers: 1
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# SecretVault 🔒
All-in-one solution for storing your Elixir application secrets inside the repository.
## Features
* **Standalone**. No dependencies on external binaries.
* **Secure**. Uses [aes256gcm](https://en.wikipedia.org/wiki/Galois/Counter_Mode) cipher by default. Detects weak and similar passwords with `mix scr.audit` task.
* **Developer friendly**. You can use `mix scr.*` tasks to create or
edit secrets in your favourit editor. Or you can use simple
coreutils like `mv`, `rm`, `cp`.
* **Easy to use**. Documatation is rich, errors are descriptive and
tutorials take no more than 5 minutes to read.
* **Git friendly**. `SecretVault` stores secrets in separate files,
thus it is really easy to track in Git or any other VCS.
* **Mix friendly**. `SecretVault` enforces separation of secrets for
different environments.
* **Extensible**. You can connect your own ciphers, vaults or key
derivation functions.
* **OTP Compatible**. Uses modern OTP 24 key derivation functions, or
fallbacks to elixir implementation on lower OTP versions.
## Usage
Check out this 5 minutes [usage tutorial](usage.md) for basics and useful links.
## Installation
Just add it to the list of dependencies like
```elixir
def deps do
[
{:secret_vault, "~> 1.0"}
]
end
```
## Hacking
If you want to contribute to the project or just want to test it
localy (not as a dependency), you'll need to create `config/config.exs`
file with following content.
```elixir
config :secret_vault, :secret_vault,
default: [password: "Some super secret"]
```
---
### Thanks
@benonymus -- for battle testing the project and giving the idea for `runtime_secret` macro