Zendesk is a multi-tenant OAuth connector keyed by the customer subdomain. The customer enters it at connect time; it rides the signed state to the callback, is re-validated, and is stored on the connector settings to build the API host. List staff (agents and admins) via GET /api/v2/users.json with cursor pagination, mapping role, active/suspended, and 2FA status; end-users are excluded. The subdomain is validated as a single DNS label at every trust boundary to close the SSRF vector, and the data client keeps the SSRF-protected transport. Zendesk OAuth across customer subdomains requires a Zendesk-approved global OAuth client; the connector goes live once those credentials are supplied via bootstrap. Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
139 lines
6.1 KiB
Plaintext
139 lines
6.1 KiB
Plaintext
# Dev overrides for `make dev-config`.
|
|
#
|
|
# Copy this file to .env and uncomment any variable you want to
|
|
# override. .env is gitignored; this .env.example is the canonical
|
|
# list of overridable knobs.
|
|
#
|
|
# This is NOT a Docker-compose `.env` file. The Makefile sources it as
|
|
# a POSIX shell snippet (`. ./.env`), so:
|
|
# - `KEY=value` works and is auto-exported.
|
|
# - Quote values containing spaces: `KEY="foo bar"`.
|
|
# - `#` starts a comment, `export KEY=value` is accepted.
|
|
# - Malformed assignments (e.g. unquoted spaces) abort `make dev-config`.
|
|
#
|
|
# See pkg/bootstrap/builder.go for the full env-var surface; the values
|
|
# set below in the Makefile's `cfg/dev.yaml` recipe are the dev defaults
|
|
# that this file can override.
|
|
|
|
# ── Base URL & ports ──────────────────────────────────────────────────
|
|
# PROBOD_BASE_URL=http://localhost:8080
|
|
# API_ADDR=:8080
|
|
# API_CORS_ALLOWED_ORIGINS=http://localhost:8080,http://localhost:5173,http://localhost:5174
|
|
# TRUST_CENTER_HTTP_ADDR=:80
|
|
# TRUST_CENTER_HTTPS_ADDR=:443
|
|
|
|
# ── Observability ─────────────────────────────────────────────────────
|
|
# METRICS_ADDR=localhost:8081
|
|
# TRACING_ADDR=localhost:4317
|
|
|
|
# ── Secrets (rotate before prod) ──────────────────────────────────────
|
|
# PROBOD_ENCRYPTION_KEY=thisisnotasecretAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
# AUTH_COOKIE_SECRET=this-is-a-secure-secret-for-cookie-signing-at-least-32-bytes
|
|
# AUTH_PASSWORD_PEPPER=this-is-a-secure-pepper-for-password-hashing-at-least-32-bytes
|
|
|
|
# ── Cookie ────────────────────────────────────────────────────────────
|
|
# AUTH_COOKIE_DOMAIN=localhost
|
|
# AUTH_COOKIE_SECURE=false
|
|
# AUTH_COOKIE_DURATION=24
|
|
|
|
# ── Postgres ──────────────────────────────────────────────────────────
|
|
# PG_ADDR=localhost:5432
|
|
# PG_USERNAME=postgres
|
|
# PG_PASSWORD=postgres
|
|
# PG_DATABASE=probod
|
|
# PG_POOL_SIZE=100
|
|
# PG_MIN_POOL_SIZE=10
|
|
# PG_MAX_CONN_IDLE_TIME_SECONDS=1800
|
|
# PG_MAX_CONN_LIFETIME_SECONDS=3600
|
|
# PG_DEBUG=false
|
|
|
|
# ── Object storage (SeaweedFS via compose) ────────────────────────────
|
|
# AWS_REGION=us-east-1
|
|
# AWS_BUCKET=probod
|
|
# AWS_ACCESS_KEY_ID=probod
|
|
# AWS_SECRET_ACCESS_KEY=thisisnotasecret
|
|
# AWS_ENDPOINT=http://127.0.0.1:8333
|
|
|
|
# ── Mailer (Mailpit via compose) ──────────────────────────────────────
|
|
# SMTP_ADDR=localhost:1025
|
|
# SMTP_USER=
|
|
# SMTP_PASSWORD=
|
|
# SMTP_TLS_REQUIRED=false
|
|
# MAILER_SENDER_EMAIL=no-reply@notification.getprobo.com
|
|
# MAILER_SENDER_NAME=Probo
|
|
|
|
# ── LLM providers ─────────────────────────────────────────────────────
|
|
# OPENAI_API_KEY=sk-...
|
|
# ANTHROPIC_API_KEY=sk-ant-...
|
|
# LLM_DEFAULT_PROVIDER=openai
|
|
# LLM_DEFAULT_MODEL_NAME=gpt-4o
|
|
|
|
# ── LLM-backed workers (inherit from LLM defaults when unset) ─────────
|
|
# PROBO_AGENT_PROVIDER=anthropic
|
|
# PROBO_AGENT_MODEL_NAME=claude-sonnet-4-6
|
|
# EVIDENCE_DESCRIBER_PROVIDER=openai
|
|
# EVIDENCE_DESCRIBER_MODEL_NAME=gpt-4o-mini
|
|
# AGENT_THIRD_PARTY_VETTER_PROVIDER=openai # inherits AGENT_DEFAULT_PROVIDER when unset
|
|
# AGENT_THIRD_PARTY_VETTER_MODEL_NAME=gpt-4o # inherits AGENT_DEFAULT_MODEL_NAME when unset
|
|
# THIRD_PARTY_VETTING_INTERVAL=10
|
|
# THIRD_PARTY_VETTING_STALE_AFTER=1500
|
|
# THIRD_PARTY_VETTING_MAX_CONCURRENCY=1
|
|
|
|
# ── OIDC sign-in providers ────────────────────────────────────────────
|
|
# AUTH_GOOGLE_CLIENT_ID=
|
|
# AUTH_GOOGLE_CLIENT_SECRET=
|
|
# AUTH_MICROSOFT_CLIENT_ID=
|
|
# AUTH_MICROSOFT_CLIENT_SECRET=
|
|
|
|
# ── Connectors (set _CLIENT_ID to enable; _CLIENT_SECRET is required) ─
|
|
# CONNECTOR_SLACK_CLIENT_ID=
|
|
# CONNECTOR_SLACK_CLIENT_SECRET=
|
|
# CONNECTOR_SLACK_SIGNING_SECRET=
|
|
# CONNECTOR_HUBSPOT_CLIENT_ID=
|
|
# CONNECTOR_HUBSPOT_CLIENT_SECRET=
|
|
# CONNECTOR_GITHUB_CLIENT_ID=
|
|
# CONNECTOR_GITHUB_CLIENT_SECRET=
|
|
# CONNECTOR_NOTION_CLIENT_ID=
|
|
# CONNECTOR_NOTION_CLIENT_SECRET=
|
|
# CONNECTOR_SENTRY_CLIENT_ID=
|
|
# CONNECTOR_SENTRY_CLIENT_SECRET=
|
|
# CONNECTOR_INTERCOM_CLIENT_ID=
|
|
# CONNECTOR_INTERCOM_CLIENT_SECRET=
|
|
# CONNECTOR_DOCUSIGN_CLIENT_ID=
|
|
# CONNECTOR_DOCUSIGN_CLIENT_SECRET=
|
|
# CONNECTOR_BREX_CLIENT_ID=
|
|
# CONNECTOR_BREX_CLIENT_SECRET=
|
|
# CONNECTOR_GITLAB_CLIENT_ID=
|
|
# CONNECTOR_GITLAB_CLIENT_SECRET=
|
|
# CONNECTOR_BITBUCKET_CLIENT_ID=
|
|
# CONNECTOR_BITBUCKET_CLIENT_SECRET=
|
|
# CONNECTOR_HEROKU_CLIENT_ID=
|
|
# CONNECTOR_HEROKU_CLIENT_SECRET=
|
|
# CONNECTOR_PAGERDUTY_CLIENT_ID=
|
|
# CONNECTOR_PAGERDUTY_CLIENT_SECRET=
|
|
# CONNECTOR_ASANA_CLIENT_ID=
|
|
# CONNECTOR_ASANA_CLIENT_SECRET=
|
|
# CONNECTOR_NETLIFY_CLIENT_ID=
|
|
# CONNECTOR_NETLIFY_CLIENT_SECRET=
|
|
# CONNECTOR_CLICKUP_CLIENT_ID=
|
|
# CONNECTOR_CLICKUP_CLIENT_SECRET=
|
|
# CONNECTOR_VERCEL_CLIENT_ID=
|
|
# CONNECTOR_VERCEL_CLIENT_SECRET=
|
|
# CONNECTOR_VERCEL_INTEGRATION_SLUG=
|
|
# CONNECTOR_MONDAY_CLIENT_ID=
|
|
# CONNECTOR_MONDAY_CLIENT_SECRET=
|
|
# CONNECTOR_DATADOG_CLIENT_ID=
|
|
# CONNECTOR_DATADOG_CLIENT_SECRET=
|
|
# Zendesk OAuth requires a Zendesk-approved global OAuth client (Marketplace).
|
|
# CONNECTOR_ZENDESK_CLIENT_ID=
|
|
# CONNECTOR_ZENDESK_CLIENT_SECRET=
|
|
# PostHog Cloud (US + EU) OAuth needs NO config: it uses the CIMD public-client
|
|
# flow (no app registration, no client_secret), auto-enabled when this
|
|
# deployment is publicly reachable at PROBOD_BASE_URL. Self-hosted PostHog uses
|
|
# the API-key path with an instance URL. No CONNECTOR_POSTHOG_* vars required.
|
|
|
|
# ── Custom domains (Pebble ACME via compose) ──────────────────────────
|
|
# CUSTOM_DOMAINS_CNAME_TARGET=custom.getprobo.com
|
|
# ACME_DIRECTORY=https://localhost:14000/dir
|
|
# ACME_EMAIL=admin@getprobo.com
|