Credenciales por connector
Esta lista se extrae de los manifests de los connectors. Los nombres tienen que coincidir exactamente.
Una clave con un nombre distinto produce el mismo síntoma que una clave ausente: el connector sale del
served set en silencio, con una línea connector not served en el log de boot como única señal.
No se necesita ninguna credencial para que el runner arranque. Cada connector es lazy: una clave
ausente solo hace que esas operaciones respondan auth_error.
Observabilidad
Sección titulada «Observabilidad»datadog, grafana y signoz son mutuamente excluyentes. Consulta Backend de
observabilidad.
datadog
Sección titulada «datadog»| Clave | Obligatoria |
|---|---|
DD_API_KEY |
sí |
DD_APP_KEY |
sí |
DD_SITE |
no. datadoghq.eu, us3, us5, ap1 según la organización |
grafana
Sección titulada «grafana»| Clave | Obligatoria |
|---|---|
GRAFANA_CLOUD_TOKEN |
sí |
GRAFANA_PROM_URL |
sí. Mimir es la columna vertebral |
GRAFANA_PROM_USER |
no. El ID numérico de la instancia; sin él, el token se envía como Bearer |
GRAFANA_LOKI_URL, GRAFANA_LOKI_USER |
no |
GRAFANA_TEMPO_URL, GRAFANA_TEMPO_USER |
no |
GRAFANA_STACK_URL |
no. API de Alerting |
GRAFANA_SYNTHETICS_URL |
no |
GRAFANA_SERVICE_LABEL, GRAFANA_ENV_LABEL, GRAFANA_NAMESPACE_LABEL, GRAFANA_HOST_LABEL, GRAFANA_ROUTE_LABEL |
no, pero ajústalas si tus labels no siguen la convención |
Autoalojado: el endpoint suele ser interno, alcanzable porque el runner corre dentro de tu red.
Requiere la API query_range v5. Sirve metrics, logs, traces, topology y monitors, pero
no sirve rum ni synthetics.
| Clave | Obligatoria |
|---|---|
SIGNOZ_ENDPOINT |
sí. Ej.: http://signoz.observability.svc.cluster.local:8080 |
SIGNOZ_API_KEY |
sí. Service account, header SIGNOZ-API-KEY |
SIGNOZ_SERVICE_FIELD, SIGNOZ_ENV_FIELD, SIGNOZ_NAMESPACE_FIELD, SIGNOZ_HOST_FIELD, SIGNOZ_ROUTE_FIELD |
no. Valores por defecto de la semconv de OTel; ajústalos si tu instrumentación difiere |
checkly
Sección titulada «checkly»Especialista en synthetics. Cuando está presente, toma la capability del provider general que esté
configurado.
| Clave | Obligatoria |
|---|---|
CHECKLY_API_KEY |
sí |
CHECKLY_ACCOUNT_ID |
en la práctica, para un token de usuario. Sin él, la API responde 401 sin decir por qué. Innecesario para un token de cuenta o de servicio. |
| Clave | Obligatoria |
|---|---|
AWS_ACCESS_KEY_ID |
sí, en modo static |
AWS_SECRET_ACCESS_KEY |
sí, en modo static |
AWS_SESSION_TOKEN |
no. Credenciales temporales de STS |
AWS_REGION |
no según el manifest, pero obligatoria para la atestación aws-sts |
Con RUNNER_AWS_CRED_MODE=chain no se inyecta ninguna clave: la cadena por defecto la resuelve. Consulta
Credenciales de nube.
kubernetes
Sección titulada «kubernetes»Acoplado a AWS: reutiliza exactamente las mismas claves AWS_*. No hay una credencial separada.
Además está EKS_CLUSTER, fuera del manifest, que se lee del entorno. Sin ella, el health check responde
skipped: no cluster configured.
| Clave | Obligatoria |
|---|---|
GCP_SA_KEY |
sí, en modo static. El JSON de la service account en una sola línea. Innecesaria en chain. |
GCP_PROJECT_ID |
no |
GCP_REGION |
no |
GCP_BILLING_EXPORT_TABLE |
no. Sin ella, la operación de costos de GCP falla de forma explícita |
Código y deploy
Sección titulada «Código y deploy»| Clave | Obligatoria |
|---|---|
GITHUB_TOKEN |
sí. La lectura alcanza; el alcance de escritura es opcional (ver abajo) |
GitHub es el único connector de código con una operación de escritura: create_github_issue, que abre un
issue en tu repositorio. Es opcional, y la que decide es la credencial: un token de solo lectura hace
que la operación falle dentro de tu infraestructura, y la tool desaparece de la superficie del agente. No
hay flag porque no hace falta: el alcance del token ya es el interruptor. No existe ninguna otra escritura
en GitHub: ni pull request, ni branch, ni workflow, ni secret. Consulta Lo que escribe el
agente.
Ortogonal a GitHub: crea sus propias operaciones y no le disputa la propiedad de ninguna.
| Clave | Obligatoria |
|---|---|
VERCEL_TOKEN |
sí. Usa un token de solo lectura limitado al equipo |
VERCEL_TEAM_ID |
en la práctica, para un token de equipo. Sin él, la API responde 403 sin explicar. Ausente en una cuenta personal. |
Ortogonal tanto a GitHub como a Vercel: crea sus propias operaciones y no le disputa la propiedad de ninguna a ninguno de los dos. El servidor suele ser interno a tu clúster, y WhyStack lo alcanza porque corre ahí dentro.
| Clave | Obligatoria |
|---|---|
ARGOCD_SERVER_URL |
sí. Ej.: https://argocd-server.argocd.svc.cluster.local |
ARGOCD_TOKEN |
sí. Cuenta local con RBAC de solo lectura, vía argocd account generate-token |
WhyStack lee los rollbacks, nunca los dispara: ni sync, ni rollback, ni terminate, ni delete.
Tampoco pide nunca refresh, que es un parámetro de lectura de la API de Argo CD con efecto de escritura:
fuerza la reconciliación en tu clúster. Un token con RBAC de solo lectura es el interruptor que lo
garantiza desde tu lado; consulta Alcances y permisos.
sonarqube
Sección titulada «sonarqube»| Clave | Obligatoria |
|---|---|
SONARQUBE_HOST |
sí |
SONARQUBE_TOKEN |
sí |
Datos y producto
Sección titulada «Datos y producto»amplitude
Sección titulada «amplitude»| Clave | Obligatoria |
|---|---|
AMPLITUDE_API_KEY |
sí |
AMPLITUDE_SECRET_KEY |
sí |
AMPLITUDE_TZ_OFFSET_MINUTES |
no |
AMPLITUDE_TZ_OFFSET_MINUTES es el desfase de la zona horaria del proyecto de Amplitude respecto de
UTC, en minutos (BRT = -180). La API lee las fechas de la ventana como YYYYMMDD en la zona horaria
del proyecto, y no expone cuál es. Sin el desfase, en un proyecto en BRT toda lectura entre las 21:00 y
las 00:00 hora local cae en el día siguiente: el número vuelve correcto para la pregunta equivocada.
Ausente = UTC.
Las operaciones de usuario y de session replay de Amplitude son las que pasan por la capa estructural de redacción de PII. Consulta Redacción de PII.
mixpanel
Sección titulada «mixpanel»Una alternativa a Amplitude, no un complemento: las dos sirven las mismas operaciones, así que la que
decide es RUNNER_ANALYTICS=amplitude|mixpanel (por defecto, amplitude). Consulta Backend de
observabilidad.
| Clave | Obligatoria |
|---|---|
MIXPANEL_SERVICE_ACCOUNT |
sí. Service account del proyecto, con la forma <name>.<id>.mp-service-account |
MIXPANEL_SERVICE_SECRET |
sí |
MIXPANEL_PROJECT_ID |
sí. Con service account no es opcional |
MIXPANEL_REGION |
no. eu o in para residencia de datos. Cambia el host |
MIXPANEL_ACTIVE_USER_EVENT |
no, pero sin ella “usuarios activos” no tiene respuesta (ver abajo) |
Mixpanel sirve 8 de las 16 operaciones de analytics. Las demás no están pendientes: no existe una API de Boards, e Insights solo responde por bookmark de reporte guardado. Las tools correspondientes desaparecen de la superficie del agente en lugar de responder vacío.
Tres operaciones usan endpoints que Mixpanel declara en modo de mantenimiento (segmentación, embudos y el stream de actividad). Se siguen sirviendo, y la respuesta lo dice. La alternativa que recomienda la propia Mixpanel, Insights, solo responde por reporte guardado y por eso no cubre consultas ad hoc.
La Query API tiene un tope de 60 consultas por hora y 5 concurrentes, por proyecto.
| Clave | Obligatoria |
|---|---|
MONGO_URI |
sí |
cloudflare
Sección titulada «cloudflare»| Clave | Obligatoria |
|---|---|
CLOUDFLARE_API_TOKEN |
sí |
| Clave | Obligatoria |
|---|---|
AZION_TOKEN |
sí. Atención: no es AZION_API_TOKEN |
Tickets y chat
Sección titulada «Tickets y chat»Los únicos connectors con operaciones de escritura: seis en total, todas cubiertas por confirmación humana en dos capas. Consulta Modelo de seguridad.
| Clave | Obligatoria |
|---|---|
JIRA_HOST |
sí |
JIRA_EMAIL |
sí |
JIRA_API_TOKEN |
sí |
| Clave | Obligatoria |
|---|---|
SLACK_BOT_TOKEN |
sí |
Al agregar un connector
Sección titulada «Al agregar un connector»La clave tiene que entrar en dos listas, o nunca llegará al contenedor:
docker-compose.yml, en la listaenvironment:(pass-through, nombre a secas sin=).runner.secrets.env.example, para quien usa el fallback por archivo.
La prueba apps/runner/tests/connectors/env-surface.test.ts falla si olvidas cualquiera de las dos.