View Source nitro_secret
A secrets management library for Erlang
(originally built for the Nitrogen Web Framework)
Build
make
Add as dependency
Modify your rebar.config to add nitro_secret to your deps section:
{deps, [
nitro_secret
]}And add nitro_secret to your application's .app or .app.src file in the
applications section:
{application, your_app, [
...
{applications,[
kernel,
stdlib,
...
nitro_secret
]},
...
]}Build your secrets file
Place your secrets in an Erlang config file (a file that can be loaded with
file:consult/1).
Here is a sample secrets file.
Specify the location of the secrets file
In your app.config (or etc/nitro_secret.config, if you're using a Nitrogen
release), add the following rule:
[
{nitro_secret, [
{secrets_filename, "/path/to/your/secrets.config"}
]}
].Here is a sample nitro_secret.config
Alternatively, you don't have to specify a secrets_filename if you want to
save your secrets to the default location.
The default location is: $(HOME)/.nitrogen/SHORT_NODE_NAME.secrets.config
SHORT_NODE_NAME is the portion of the return value of node() before the
@. For example is your node name is named my_app@127.0.0.1, then
SHORT_NODE_NAME will be my_app.
Usage
With all this done, you can then lookup secrets with:
nitro_secret:get(Key, Default).nitro_secret:get(Key). (a shortcut fornitro_secret:get(Key, undefined)).
TODO
- Add encrypted file
- Generalize interface to allow handling remote services
Author
Copyright 2025 Jesse Gumm Apache 2.0 License