DBDelve
DBDelve는 Rust 기반 빠른 다중 엔진 데이터베이스 클라이언트, 무료 오픈소스, 텔레메트리 없음
envhaul generates the .env files for every part of your project from one config file.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗envhaul (pronounced E-N-V-haul) generates the .env files for every
part of your project from one reviewable config file. Plain values live in the config next to references
to your secret stores (AWS SSM Parameter Store and Secrets Manager,
HashiCorp Vault and OpenBao, 1Password, Google Cloud Secret Manager and
Azure Key Vault), which envhaul resolves with the sign-ins you already
have, such as your named AWS profiles across as many accounts as you need.
# envhaul.yaml
name: dev
aws_profile: acme-dev
aws_region: us-east-1
ssm_prefix: /acme/dev
components:
api:
env_file: services/api/.env
vars:
APP_ENV: development # inline, committed
STRIPE_SECRET_KEY: "{{ssm:api/STRIPE_SECRET_KEY}}" # /acme/dev/api/STRIPE_SECRET_KEY
OPENAI_API_KEY: "{{ssm:api/OPENAI_API_KEY@acme-shared}}" # another account
DATABASE_URL: "postgresql://{{secret:acme/dev/db#username}}:{{secret:acme/dev/db#password|urlencode}}@localhost/acme"
SIGNING_KEY: "{{vault:payments/keys#signing}}" # HashiCorp Vault
GITHUB_TOKEN: "{{op:Engineering/GitHub/token}}" # 1Password
web:
env_file: web/.env
vars:
VITE_API_BASE_URL: "http://localhost:8000"
VITE_SENTRY_DSN: "{{ssm:api/SENTRY_DSN@acme-shared|default:}}"
$ envhaul sync
wrote services/api/.env (6 vars)
wrote web/.env (2 vars)
.env, in variable order, from one file you can review.0600, and values never appear in
logs.credential_process), vault login, the op CLI, gcloud and az login
work as they are. @profile reaches other accounts, namespaces, projects
and tenants.urlencode, trim, base64, default: and more.validate checks the config offline with
file:line:col errors, diff previews changes with values masked, and
exec runs a command without writing secrets to disk.brew install davidtucker/tap/envhaul
scoop bucket add davidtucker https://github.com/davidtucker/scoop-bucket
scoop install envhaul
Download the package for your distribution and architecture from the latest release, then:
sudo dpkg -i envhaul_*_amd64.deb # Debian, Ubuntu
sudo rpm -i envhaul-*.x86_64.rpm # Fedora, RHEL
sudo apk add --allow-untrusted envhaul_*_x86_64.apk # Alpine
curl -fsSL https://raw.githubusercontent.com/davidtucker/envhaul/main/install.sh | sh
Installs the latest release to /usr/local/bin (or ~/.local/bin) after
verifying its checksum, and its signature too if
cosign is
installed.
go install github.com/davidtucker/envhaul/cmd/envhaul@latest
Requires Go 1.26 or newer.
docker run --rm -v "$PWD:/work" -w /work \
-v "$HOME/.aws:/home/nonroot/.aws:ro" \
ghcr.io/davidtucker/envhaul sync
Archives for every platform are on the releases page. Every release is signed and has build provenance; see verifying releases.
envhaul init # write a starter envhaul.yaml and git-ignore .env
envhaul validate # check it offline
envhaul list # show where every value comes from
envhaul diff # preview changes (values masked)
envhaul sync # write the .env files
| Command | What it does |
|---|---|
sync [component...] | Resolve values and write env files (--strict fails on missing values) |
diff [component...] | Show what would change; --show-values, --exit-code |
get <component> <VAR> | Print one resolved value |
exec <component> -- cmd | Run a command with the values in its environment, without writing a file |
list [component...] | Show each variable's source (offline, --json) |
validate | Check the config (offline) |
init | Create a starter config |
| Scheme | Source | Example |
|---|---|---|
ssm | AWS SSM Parameter Store | {{ssm:api/KEY}} |
secret | AWS Secrets Manager | {{secret:acme/dev/db#password}} |
vault | HashiCorp Vault and OpenBao (KV v1 and v2) | {{vault:app/db#password}} |
op | 1Password (through the op CLI) | {{op:Engineering/Stripe/credential}} |
gcp | Google Cloud Secret Manager | {{gcp:db-password:3}} |
azkv | Azure Key Vault | {{azkv:dev-kv/db-password}} |
Each source page in the documentation covers sign-in, profiles, settings and required permissions.
{{ scheme:path [#key] [@profile] [| fn[:arg]]... }}
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗