@ipulsehq/pulseenv-cli
v0.1.4
Published
CLI om lokale .env-bestanden te syncen met PulseEnv via iPulse OAuth (loopback PKCE). Config-driven, werkt in elke repo.
Readme
@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-cliVoeg 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": { "<[email protected]>": "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 apiBase + 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).
