Skip to content

Connector credentials

This list is extracted from the connector manifests. Names have to match exactly. A key with a different name produces the same symptom as a missing key: the connector drops out of the served set silently, with a connector not served line in the boot log as the only signal.

No credential is needed for the runner to boot. Every connector is lazy: a missing key only makes those operations answer auth_error.

datadog and grafana are mutually exclusive. See Observability backend.

Key Required
DD_API_KEY yes
DD_APP_KEY yes
DD_SITE no. datadoghq.eu, us3, us5, ap1 depending on the org
Key Required
GRAFANA_CLOUD_TOKEN yes
GRAFANA_PROM_URL yes. Mimir is the backbone
GRAFANA_PROM_USER no. The instance’s numeric ID; without it the token is sent as Bearer
GRAFANA_LOKI_URL, GRAFANA_LOKI_USER no
GRAFANA_TEMPO_URL, GRAFANA_TEMPO_USER no
GRAFANA_STACK_URL no. Alerting API
GRAFANA_SYNTHETICS_URL no
GRAFANA_SERVICE_LABEL, GRAFANA_ENV_LABEL, GRAFANA_NAMESPACE_LABEL, GRAFANA_HOST_LABEL, GRAFANA_ROUTE_LABEL no, but adjust them if your labels don’t follow the convention

A synthetics specialist. When present, it takes the capability over from whichever general provider is configured.

Key Required
CHECKLY_API_KEY yes
CHECKLY_ACCOUNT_ID in practice, for a user token. Without it the API answers 401 without saying why. Unnecessary for an account or service token.
Key Required
AWS_ACCESS_KEY_ID yes, in static mode
AWS_SECRET_ACCESS_KEY yes, in static mode
AWS_SESSION_TOKEN no. Temporary STS credentials
AWS_REGION not by the manifest, but required for aws-sts attestation

With RUNNER_AWS_CRED_MODE=chain, no key is injected: the default chain resolves it. See Cloud credentials.

AWS-coupled: it reuses exactly the same AWS_* keys. There is no separate credential.

Additionally, EKS_CLUSTER, outside the manifest, read from the environment. Without it, the health check answers skipped: no cluster configured.

Key Required
GCP_SA_KEY yes in static mode. The service account JSON on one line. Unnecessary in chain.
GCP_PROJECT_ID no
GCP_REGION no
GCP_BILLING_EXPORT_TABLE no. Without it, the GCP cost operation fails explicitly
Key Required
GITHUB_TOKEN yes

Orthogonal to GitHub: it creates its own operations and doesn’t contend for ownership.

Key Required
VERCEL_TOKEN yes. Use a read-only token scoped to the team
VERCEL_TEAM_ID in practice, for a team token. Without it the API answers 403 without explaining. Absent on a personal account.
Key Required
SONARQUBE_HOST yes
SONARQUBE_TOKEN yes
Key Required
AMPLITUDE_API_KEY yes
AMPLITUDE_SECRET_KEY yes

Amplitude’s user and session-replay operations are the ones that go through the structural PII redaction layer. See PII redaction.

Key Required
MONGO_URI yes
Key Required
CLOUDFLARE_API_TOKEN yes
Key Required
AZION_TOKEN yes. Note: not AZION_API_TOKEN

The only connectors with write operations: five in total, all covered by human confirmation in two layers. See Security model.

Key Required
JIRA_HOST yes
JIRA_EMAIL yes
JIRA_API_TOKEN yes
Key Required
SLACK_BOT_TOKEN yes

The key has to go into two lists, or it will never reach the container:

  1. docker-compose.yml, in the environment: list (pass-through, bare name with no =).
  2. runner.secrets.env.example, for anyone using the file fallback.

The test apps/runner/tests/connectors/env-surface.test.ts fails if you forget either one.