Secret managers solve one of the most common pain points in API development: keeping credentials out of collection files, rotating them without touching every developer's machine, and enforcing who gets access to what. Bruno v4 connects directly to HashiCorp Vault, AWS Secrets Manager, and Azure Key Vault. This guide walks through exactly how to set each one up.
Table of Contents
Every non-trivial API has credentials. Database passwords, API keys, OAuth client secrets, tokens. They are everywhere. The natural instinct is to paste them into environment variables or .env files and move on. That works for a single developer, but it breaks down quickly when teams grow and security requirements tighten.
The real challenges show up when you ask:
.env file over Slack or email means the credential has now escaped the vault before it ever reached Bruno.This is why engineering teams adopt dedicated secret managers like HashiCorp Vault, AWS Secrets Manager, and Azure Key Vault. They centralise credential storage, enforce access control, provide audit logs, and support automatic rotation. Secrets never touch a developer's file system.
Bruno v4 connects directly to all three, so your collections can pull live credentials at runtime without anyone ever copy-pasting a secret.
⚠ Breaking changes in v4. Please read before upgrading.
In the app:
secrets.json and into environment files under a new externalSecrets block.secrets.json triggers automatic migration. No manual step needed.secrets.json is marked read-only, migration will fail with no fallback. You will need to re-enter the configuration manually in the Environment UI. syntax is deprecated. New syntax: . Old syntax still resolves in v4. Removal planned for the next major release (at least 6 months away). One-click in-app migration tool ships in v4.2.0.In the CLI:
secrets.json without an externalSecrets block, it prints a warning and continues without secrets.--secrets-env-file <path> instead of --env-var.| Syntax | Status |
|---|---|
{{name.keyname}} |
New (recommended) |
{{$secrets.name.keyname}} |
Deprecated, works until next major release |
HashiCorp Vault is the most widely used open-source secret manager. Bruno supports both Vault Server (self-hosted or enterprise) and HCP Vault (HashiCorp Cloud Platform).
Open Bruno and go to Preferences → Secrets Manager. Click + Add Secret Manager.
Select HashiCorp Vault Server and choose an auth method:
Enter the Vault URL (e.g. http://localhost:8200) and credentials. Click Test Connection, then Add.
For HCP Vault, select HashiCorp Vault Cloud and provide your Client Credentials and project details.
Open your collection → Environments → select the target environment → open the External Secrets tab.
Select your Vault account. Enter a Name (the alias in requests, e.g. db) and a Path (e.g. secret/data/db).
Click Fetch Secrets. The secret keys and values populate automatically.
Use these in any URL, header, body, or auth field and Bruno resolves them at runtime:
{{db.password}}
{{db.username}}
Export credentials from Preferences → Secrets Manager → Export as .env, then run:
# Local CLI testing - Token auth
bru run collection/ --env Production --env-var authToken=your-vault-token
# AppRole auth
bru run collection/ --env Production \
--env-var roleId=your-role-id \
--env-var secretId=your-secret-id
# Bruno v4 env flag: --secrets-env-file
bru run collection/ --env Production --secrets-env-file hashicorp-secrets.env
AWS Secrets Manager is the native secret store for AWS workloads. It supports automatic rotation, fine-grained IAM policies, and is deeply integrated with RDS, Lambda, ECS, and other AWS services.
Preferences → Secrets Manager → + Add Secret Manager. Select AWS Secrets Manager.
Choose your auth mode:
aws configure or environment variables).Click Test Connection, then Save.
Open your collection → Environments → target environment → External Secrets tab.
Select your AWS account. Enter a Name (alias, e.g. apiCredentials) and the AWS Secret Name or ARN.
Click Fetch Secrets.
Key names match the JSON keys inside the AWS secret:
{{apiCredentials.api_key}}
{{apiCredentials.client_id}}
Export from Preferences → Export as .env, or create the dotenv file manually:
# Bruno exported .env file
BRUNO_AWS_ACCESS_KEY_ID=<your-secret>
BRUNO_AWS_SECRET_ACCESS_KEY=
BRUNO_AWS_SESSION_TOKEN=
BRUNO_AWS_REGION=
bru run collection/ --env Production --secrets-env-file ./secrets.env
Azure Key Vault is Microsoft's managed secret, key, and certificate store. It integrates with Azure Active Directory and supports both interactive (az login) and Service Principal authentication.
Preferences → Secrets Manager → + Add Secret Manager. Select Azure Key Vault.
Choose your auth method:
Click Test Connection, then Add.
Open your collection → Environments → target environment → External Secrets tab.
Select your Azure Key Vault account. Enter a Name (e.g. paymentSecrets) and the Vault Name (e.g. my-company-vault).
az login session. No credentials to enter.Click Fetch Secrets.
Key names match the secret names inside Azure Key Vault:
{{paymentSecrets.stripe-key}}
{{paymentSecrets.webhook-secret}}
Service Principal:
BRUNO_AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
BRUNO_AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
BRUNO_AZURE_CLIENT_SECRET=your-client-secret
Azure CLI (existing az login session):
BRUNO_AZURE_AUTH_METHOD=cli
bru run collection/ --env Production --secrets-env-file ./secrets.env
Keep secrets.env out of git
Add it to .gitignore. Store it in your CI/CD secret store (GitHub Actions secrets, GitLab CI variables, AWS Parameter Store, etc.) and write it to a temp file at runtime.
Use the Export as .env shortcut
In Preferences → Secrets Manager, hover any account and click Export as .env. The file is ready to pass to --secrets-env-file immediately — no manual transcription needed.
One environment per stage
Each environment (Dev, Staging, Production) has its own externalSecrets block. Developers without production IAM access cannot fetch prod secrets even if they have the collection.
Migrate $secrets syntax now
Search your collection for $secrets and update to . A one-click migration tool arrives in v4.2.0, but migrating early reduces editor noise.
Bruno v4 connects your collections directly to the secret managers your team already uses. HashiCorp Vault, AWS Secrets Manager, and Azure Key Vault are all first-class providers, both in the app and in the CLI. Configuration lives alongside your environments in version-controlled files, and credentials never touch your collection source.
Bruno is an open-source, native API client built for developers who want speed, privacy, and control. It's the fastest-growing API client in its space and v4 is the release where it stops being just a request tool and starts being the development platform your whole team can build on.
Explore the full documentation