npm.io
0.1.5 • Published 3d agoCLI

@ipulsehq/pulseenv-cli

Licence
UNLICENSED
Version
0.1.5
Deps
0
Size
28 kB
Vulns
0
Weekly
0

@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.