docker-compose.e2e.oauth.yml
Rama main · réplica de lectura del repositorio original.
#
# OAuth2-refresh e2e overlay (OPT-IN, app-tier) — layered on top of
# docker-compose.yml + docker-compose.e2e.yml by run_gate.sh's dc_main() ONLY
# when E2E_INCLUDE_OAUTH=1. Normal PR/nightly gate runs (flag unset) never load
# this file, so their rendered app stack is byte-identical to before.
#
# Purpose: give the service-to-service OAuth token-refresh path a shared,
# non-empty INTERNAL_SERVICE_SECRET so the executor's refresh_client
# (temporal-adapter/orchestrator) can POST the api-gateway internal refresh
# endpoint (/api/v1/internal/oauth/tokens/:id/refresh) without a 401. The value
# is a throwaway CI constant — it only needs to MATCH across the three services.
# GITHUB_CLIENT_ID/SECRET + GITHUB_TOKEN_URL/API_BASE_URL (→ mock-github) already
# live in docker-compose.e2e.yml; API_GATEWAY_URL is already set in the base file.
#
# Consumed by e2e/test_github_rest_oauth_refresh.py (see its docstring).
#
services:
api-gateway:
environment:
- INTERNAL_SERVICE_SECRET=e2e-oauth-internal-secret
# The SSRF guard (internal/safehttp) blocks Docker-internal/private targets.
# This e2e points GITHUB_TOKEN_URL/API_BASE_URL at mock-github (a private
# IP), so allowlist that one host here. Prod leaves SAFEHTTP_ALLOW_HOSTS unset.
- SAFEHTTP_ALLOW_HOSTS=mock-github
orchestrator:
environment:
- INTERNAL_SERVICE_SECRET=e2e-oauth-internal-secret
temporal-adapter:
environment:
- INTERNAL_SERVICE_SECRET=e2e-oauth-internal-secret