Secrets
We manage secrets in our repo using agenix
.
These secrets are keyed to specific developers via SSH public keys.
Some are used for deployments, and some can be used for development.
You can read more about agenix and how secrets are used in our deployment HERE
What secrets do we store?
# this file contains secrets that we can store encrypted in this repo.
# they can be decrypted by the specified ssh public keys using `agenix`.
let
keys = import ./nix/keys.nix;
in
{
## Local Development
# a shared devnet wallet
"secrets/devnet/wallet.age".publicKeys = keys.allDevKeys;
# RPC url for devnet
"secrets/devnet/rpc.age".publicKeys = keys.allDevKeys;
# RPC url for mainnet
"secrets/mainnet/rpc.age".publicKeys = keys.allDevKeys;
## Deployments
# all RPC urls for our devnet indexer
"secrets/devnet/backend.age".publicKeys = keys.allKeys;
# all RPC urls for our mainnet indexer
"secrets/mainnet/backend.age".publicKeys = keys.allKeys;
}
Editing a secret
you must have your pubkey listed in secrets.nix
for a secret if you want to modify the existing one!
ask someone whose key is in secrets.nix
to be added.
To edit the secret whatever.age
, run
agenix -e secrets/whatever.age