Manage and access your Doppler secrets without leaving Elixir
Add :ex_doppler
to your list of deps in mix.exs
:
{:ex_doppler, "~> 1.0"}
Then run mix deps.get
to install ExDoppler and its dependencies.
- Create a Doppler Token
- Put your token in your environment (NEVER put the token anywhere in your code)
export HISTIGNORE='export DOPPLER_TOKEN*'
export DOPPLER_TOKEN='dp.st.prd.xxxx'
- Use ExDoppler to access your secrets
secret_value = ExDoppler.get_secret_raw!("example-project", "dev_personal", "DB_URL")
- You're good to go. I really recommend you have a look at the docs
Realm | Actions Implemented | ExDoppler Module | Notes |
---|---|---|---|
Activity Logs | List, Retrieve | ExDoppler.ActivityLogs |
|
Auths | Me, ODIC, Revoke | ExDoppler.Auths |
|
Config Logs | List, Retrieve, Rollback | ExDoppler.ConfigLogs |
|
Configs | List, Retrieve, Create, Rename, Clone, Lock, Unlock, Delete | ExDoppler.Configs |
|
Environments | List, Retrieve, Create, Update, Delete | ExDoppler.Environments |
|
Integrations | List, Retrieve, Create, Update, Get Options, Delete | ExDoppler.Integrations |
|
Invites | List | ExDoppler.Invites |
|
Project Members | List, Retrieve | ExDoppler.ProjectMembers |
|
Project Roles | List, Retrieve, Create | ExDoppler.ProjectRoles |
|
Projects | List, Retrieve, Create, Update, Delete, List Project Permissions | ExDoppler.Projects |
|
Secret Syncs | Retrieve, Create, Delete | ExDoppler.SecretSyncs |
|
Secrets | List, Retrieve, Download, List Names, Create, Update, Update Note, Delete | ExDoppler or ExDoppler.Secrets |
|
Service Accounts | List | ExDoppler.ServiceAccounts |
|
Service Tokens | List, Create, Delete | ExDoppler.ServiceTokens |
|
Shares | Plain Text | ExDoppler.Shares |
|
Webhooks | List, Retrieve, Enable, Disable, Create, Delete | ExDoppler.Webhooks |
|
Workplace Roles | List, Retrieve | ExDoppler.WorkplaceRoles |
|
Workplace Users | List, Retrieve, Update | ExDoppler.WorkplaceUsers |
|
Workplace | Retrieve, Update | ExDoppler.Workplaces |
Realm : Action | Implemented | Notes |
---|---|---|
Project Roles : Create | Requires a Team tier | |
Project Roles : Update | Requires a Team tier | |
Project Members : Add | Requires a Team tier | |
Project Members : Update | Requires a Team tier | |
Project Members : Delete | Requires a Team tier | |
Project Roles : Delete | Requires a Team tier | |
Trusted IPs : List | Requires a Team tier | |
Trusted IPs : Add | Requires a Team tier | |
Trusted IPs : Delete | Requires a Team tier | |
Groups : List | Requires a Team tier | |
Groups : Create | Requires a Team tier | |
Groups : Retrieve | Requires a Team tier | |
Groups : Update | Requires a Team tier | |
Groups : Delete | Requires a Team tier | |
Groups : Add Member | Requires a Team tier | |
Groups : Delete Memeber | Requires a Team tier | |
Groups : Retrieve Memeber | Requires a Team tier | |
Service Accounts : List | Requires a Team tier | |
Service Accounts : Create | Requires a Team tier | |
Service Accounts : Retrieve | Requires a Team tier | |
Service Accounts : Update | Requires a Team tier | |
Service Accounts : Delete | Requires a Team tier | |
Service Account Tokens : List | Requires a Team tier | |
Service Account Tokens : Create | Requires a Team tier | |
Service Account Tokens : Retrieve | Requires a Team tier | |
Service Account Tokens : Delete | Requires a Team tier | |
Webhooks : Update | It's...complex | |
Workplace Roles : Create | Requires a Team tier | |
Workplace Roles : Update | Requires a Team tier | |
Workplace Roles : Delete | Requires a Team tier | |
Configs : Inheritable | Requires a Team tier | |
Configs : Inherits | Requires a Team tier | |
Change Request Policies : Create | Requires a Team tier | |
Change Request Policies : Retrieve | Requires a Team tier | |
Change Request Policies : Update | Requires a Team tier | |
Change Request Policies : Delete | Requires a Team tier | |
Dynamic Secrets : Issue Lease | Requires a Team tier | |
Dynamic Secrets : Revoke | Requires a Team tier | |
Share : E2E Encrypted | Spent hours trying to get the link to actually decrypt |