# Per-recipe harness config for lasuite-docs (recipe #5 — multi-service + object-storage/S3).
# Stack: app(frontend) + backend(Django/impress) + celery + y-provider + docspec + db(postgres) +
# redis + minio(S3) + web(nginx). OIDC settings are config-only (validated by `manage.py check`, not
# fetched at boot), so the stack starts healthy with placeholder OIDC; login isn't exercised in CI.
# Many services -> generous timeouts.
HEALTH_PATH = "/"
HEALTH_OK = (200, 301, 302)
DEPLOY_TIMEOUT = 900
HTTP_TIMEOUT = 600

# Phase 2 Q2.3 deps: lasuite-docs's recipe-maintainer corpus declares `requires = ["keycloak"]`.
# Declaring it here makes the orchestrator deploy a per-run keycloak BEFORE lasuite-docs so the
# OIDC-flow custom test (`custom/test_oidc_with_keycloak.py`) can run against a real
# provider in the same run. The dep is undeployed AFTER the parent in the orchestrator's `finally`.
DEPS = ["keycloak"]


def EXTRA_ENV(ctx):
    # abra's internal per-deploy convergence timeout (the recipe's TIMEOUT env, default 300s) is too
    # short for this 9-service stack on a COLD image cache (~9 large images: impress frontend/backend,
    # minio, postgres18, redis, docspec, y-provider). Cold pulls exceed 300s -> "deploy timed out 🟠".
    # Bump it so the harness deploy waits long enough; verified the stack converges 9/9 once pulled.
    return {"TIMEOUT": "900"}


# canon §2.B: enroll as a DATA-WARM canonical (all recipes enrolled — operator 2026-06-17).
# The weekly sweep promotes this recipe's canonical to its latest green RELEASE TAG.
WARM_CANONICAL = True
