Feature Gates
The CI server supports feature gates that let you control which pipeline capabilities are available. By default, all features are enabled.
Available Features
| Feature | What it controls |
|---|---|
webhooks | Webhook trigger routes, http.request()/http.respond() API |
secrets | secret: env var resolution and secret injection |
notifications | The notify system (Slack, Teams, HTTP) |
fetch | The global fetch() function for outbound HTTP requests |
Configuration
CLI Flag
bash
pocketci server --allowed-features "webhooks,secrets"Environment Variable
bash
export CI_ALLOWED_FEATURES="webhooks,secrets"
pocketci serverWildcard (default)
Use * to enable all features (this is the default):
bash
pocketci server --allowed-features "*"Behavior
Webhooks disabled
POST /api/pipelinesrejects requests that include awebhook_secretANY /api/webhooks/:idreturns403 Forbidden- Pipeline execution does not receive webhook data or response channels
Secrets disabled
secret:prefixed env vars are not resolved during execution- The secrets manager is not passed to the pipeline runtime
Notifications disabled
- Calling
notify.send()in a pipeline returns an error:"notifications feature is not enabled"
Fetch disabled
- Calling
fetch()in a pipeline returns an error:"fetch feature is not enabled" - Outbound HTTP requests from pipelines are blocked
Discovery
Query the enabled features at runtime:
bash
curl http://localhost:8080/api/features
# {"features":["webhooks","secrets","notifications","fetch"]}Error on unknown features
If you specify an unknown feature name, the server will refuse to start:
could not parse allowed features: unknown feature "bogus"; known features: webhooks, secrets, notifications, fetch