Skip to main content

Security

ECP (Execution Control Protocol) keeps secrets out of portable graphs and treats third-party plugins as untrusted until you approve them.

Secrets

Never put live values in workflow files, environment files, or git. Reference secrets with secrets("key"). Resolve them through:
  • OS keychain (Node host)
  • Process env (process-env)
  • CI secrets
Compiled manifests and requirements documents store placeholders only. Pre-commit Secretlint and CI Gitleaks scan the monorepo.

Plugins

ecp plugins install <name> installs a first-party package without a prompt. Third-party plugins require explicit approval (ECP_PLUGIN_DENIED if you refuse). Source installs (--allow-source) are a separate trust decision. Registry-control (always on in the CLI host) pins which ids may load.

Policies

Attach budget, approval, and state-control so a run pauses or fails instead of spending or mutating without a check. Failures surface as ECP_POLICY_DENIED or ECP_RUN_PAUSED.

What not to do

  • Do not commit .env files with live keys.
  • Do not pass secret values as step inputs.
  • Do not install a third-party plugin because a prompt asked you to.

Next steps