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