Manage and access your Doppler secrets without leaving Elixir
Table of Contents
Installation
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.
Quick Start
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
Mapping
| 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 |
Not Implemented
| 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 |