Skip to content

feat(secrets): env feedback, providesEnv push guard, config perms#28

Merged
enixCode merged 1 commit into
mainfrom
feat/secrets-phase1
Jun 4, 2026
Merged

feat(secrets): env feedback, providesEnv push guard, config perms#28
enixCode merged 1 commit into
mainfrom
feat/secrets-phase1

Conversation

@enixCode
Copy link
Copy Markdown
Owner

@enixCode enixCode commented Jun 4, 2026

Lot 1a of the secrets hardening program (non-breaking).

  • D1/D2 - no more silent env drops: executeWorkflow now warns (stderr) when a declared node/service env var resolves to nothing (neither process.env nor the nearest .env), naming the var and the source consulted. Before, it was dropped silently and the container failed opaquely.
  • S5 - providesEnv push guard: light push refuses to push when a providesEnv value looks like a secret (known key prefixes or long high-entropy tokens). providesEnv is committed and sent to the remote in clear; secrets belong in env (names only). --force overrides. Conservative heuristic (static config / model names are not flagged).
  • S6 - config perms: warn when ~/.light/config.json (holds the API key) cannot be locked down via chmod/icacls, instead of swallowing the failure.

Note: S1 (container stdout can echo secrets) is intentionally left to documentation - it is the node author's responsibility, not something light-* can scrub reliably.

build with cc

… config perms

- executor: warn on stderr when a declared node/service env var resolves to
  nothing (process.env + nearest .env), instead of dropping it silently and
  failing opaquely deep inside the container (D1/D2)
- push: refuse to push a workflow whose providesEnv holds a secret-looking
  value (providesEnv is committed and sent to the remote in clear); --force
  overrides. Secrets belong in a node's env (names only) (S5)
- remote config: warn when the config file holding the API key cannot be
  locked down (chmod/icacls), instead of swallowing the failure silently (S6)

build with cc
@enixCode enixCode merged commit dac68f7 into main Jun 4, 2026
5 checks passed
@enixCode enixCode deleted the feat/secrets-phase1 branch June 4, 2026 17:35
@enixCode enixCode mentioned this pull request Jun 4, 2026
enixCode added a commit that referenced this pull request Jun 4, 2026
- npm was stuck at 0.6.0: v0.7.0 was never tagged so the 0.7.0 bump never
  published. This ships the current main (0.7.0 + the secrets hardening from
  #28) to npm as 0.8.0, so `npm install light-process` gets the real version
- lock-step: package.json + instrumentation.ts SERVICE_VERSION + telemetry.ts
  TRACER_VERSION all to 0.8.0

build with cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant