@ipulsehq/pulseenv-cli
CLI om lokale .env-bestanden te syncen met PulseEnv (env.ipulse.one). Inloggen via iPulse OAuth (Authorization Code + PKCE, loopback redirect). Config-driven en runtime-agnostisch (Node 18+ en Bun). Admin-only.
Installeren
npm i -D @ipulsehq/pulseenv-cli # of: bun add -d @ipulsehq/pulseenv-cli
Voeg een script toe (optioneel):
{ "scripts": { "pulseenv": "pulseenv" } }
Configureren
Plaats pulseenv.config.json in de root van je repo:
{
"project": "PulseGuard",
"apps": {
"api": { "environment": "local - api", "file": "apps/api/.env", "overlay": true },
"app": { "environment": "local - app", "file": "apps/app/.env" }
},
"overlayKeys": ["DATABASE_URL", "REDIS_DB"],
"users": { "<jouw-email@bedrijf.nl>": "jouwnaam" }
}
| Veld | Omschrijving |
|---|---|
project |
PulseEnv-projectnaam |
apps |
Map van app-key → { environment, file, overlay? } |
apps[].environment |
PulseEnv environment-naam (bv. local - api) |
apps[].file |
Doelbestand relatief aan de repo-root |
apps[].overlay |
true = pas de per-user overlay toe (DB-keys e.d.) |
overlayKeys |
Keys die per user verschillen (default DATABASE_URL, REDIS_DB) |
users |
Optioneel: iPulse-email → overlay-naam |
apiUrl / issuer / clientId / port |
Overrides (defaults: env.ipulse.one / ipulse.one / pulseenv-cli / 47654) |
Gebruik
pulseenv login # browser-login via iPulse
pulseenv whoami
pulseenv pull # alle apps, jouw user-overlay
pulseenv pull --app api
pulseenv push --app api # gedeelde base terug naar PulseEnv
pulseenv push --user # jouw overlay-keys -> user - <naam>
pulseenv status --app api
Base + overlay
Per app staat er een gedeelde base in PulseEnv. Voor keys die per ontwikkelaar verschillen (overlayKeys) is er een overlay user - <naam>. Bij pull mergt de CLI base + overlay (overlay wint). De ingelogde email bepaalt standaard de overlay. Tokens staan in ~/.pulseenv/<issuer-host>.json (auto-refresh).
Headless/CI-gebruik
Deze CLI is bedoeld voor mensen (interactieve browser-login). Een headless
proces (GitHub Actions, een cron-job) kan niet inloggen via de browser — daarvoor
bestaat een apart, read-only API-token-mechanisme in PulseEnv zelf (zie de
hoofd-README.md, sectie "API-tokens"), niet deze CLI. Zo'n proces roept
GET /api/cli/env?project=...&environment=... direct aan met
Authorization: Bearer pek_... in plaats van deze CLI te gebruiken.