Ctrl K
ComunidadGuías…

render.yaml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# ReviewRouter hosted beta Blueprint.
# Customer code review still runs inside customer GitHub Actions. These services
# are the control plane only: dashboard, webhooks, config/OIDC, health, jobs.
# Native builds attempt Prisma network isolation, then use a minimal child
# environment if unsupported. CI and self-hosted builds require isolation;
# the owner-approved native Render fallback still permits network access.

services:
  - type: web
    name: reviewrouter-release-control
    runtime: node
    plan: starter
    region: frankfurt
    branch: main
    buildCommand: npm install --prefix .render-tooling --no-package-lock --ignore-scripts --no-audit --no-fund pnpm@10.33.0 && export PATH="$PWD/.render-tooling/node_modules/.bin:$PATH" && test "$(pnpm --version)" = 10.33.0 && NODE_ENV=development node scripts/install-private-dependencies.mjs --frozen-lockfile && env -u SUBSCRIPTION_RUNTIME_DEPLOY_KEY_B64 -u GIT_SSH_COMMAND -u GIT_SSH_VARIANT node scripts/generate-prisma-offline.mjs && pnpm build
    startCommand: PATH="$PWD/.render-tooling/node_modules/.bin:$PATH" env -u SUBSCRIPTION_RUNTIME_DEPLOY_KEY_B64 HOST=0.0.0.0 pnpm release-control:start
    healthCheckPath: /health
    autoDeployTrigger: off
    envVars:
      - key: NODE_VERSION
        value: 26.11.1
      - key: PORT
        value: 10000
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_CONTROL_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_PROVIDER_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_RELEASE_CONTROL_TOKEN_SHA256
        sync: false
      - key: REVIEW_ROUTER_PROVIDER_AUTHORITY_TOKEN_SHA256
        sync: false
      - key: REVIEW_ROUTER_RELEASE_COMMIT_SHA
        sync: false
      - key: REVIEW_ROUTER_RELEASE_IMAGE_DIGEST
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_PERMIT_INSTALLER_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_RECEIPT_READER_DATABASE_URL
        sync: false
      # Independent database-generation and routine-body trust roots. These
      # values come from the signed rollout evidence, never from either URL.
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_SYSTEM_IDENTIFIER
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_SYSTEM_IDENTIFIER
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_DATABASE_OID
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_DATABASE_NAME
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_DATABASE_OID
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_DATABASE_NAME
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_MIGRATION_MANIFEST_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_NAMESPACE_FINGERPRINT
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_OWNER_ROLE
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_GUARD_ROLE
        value: reviewrouter_activation_receipt_guard
      - key: REVIEW_ROUTER_ACTIVATION_INSTALLER_BODY_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_READER_BODY_SHA256
        sync: false
      # Compact deployment authorization for the checked-in canonical artifact.
      - key: REVIEW_ROUTER_TARGET_PREACTIVATION_CATALOG_POLICY_SHA256
        sync: false
      - key: REVIEW_ROUTER_TARGET_ACTIVATED_CATALOG_POLICY_SHA256
        sync: false

  - type: web
    name: reviewrouter-release-witness
    runtime: node
    plan: starter
    region: frankfurt
    branch: main
    buildCommand: npm install --prefix .render-tooling --no-package-lock --ignore-scripts --no-audit --no-fund pnpm@10.33.0 && export PATH="$PWD/.render-tooling/node_modules/.bin:$PATH" && test "$(pnpm --version)" = 10.33.0 && NODE_ENV=development node scripts/install-private-dependencies.mjs --frozen-lockfile && env -u SUBSCRIPTION_RUNTIME_DEPLOY_KEY_B64 -u GIT_SSH_COMMAND -u GIT_SSH_VARIANT node scripts/generate-prisma-offline.mjs && pnpm build
    startCommand: PATH="$PWD/.render-tooling/node_modules/.bin:$PATH" env -u SUBSCRIPTION_RUNTIME_DEPLOY_KEY_B64 HOST=0.0.0.0 pnpm release-witness:start
    healthCheckPath: /health
    autoDeployTrigger: off
    envVars:
      - key: NODE_VERSION
        value: 26.11.1
      - key: PORT
        value: 10000
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_WITNESS_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_RELEASE_WITNESS_TOKEN_SHA256
        sync: false
      - key: REVIEW_ROUTER_RELEASE_WITNESS_RENDER_READ_TOKEN
        sync: false
      - key: REVIEW_ROUTER_RELEASE_COMMIT_SHA
        sync: false
      - key: REVIEW_ROUTER_RELEASE_IMAGE_DIGEST
        sync: false
      - key: REVIEW_ROUTER_TARGET_PREACTIVATION_CATALOG_POLICY_SHA256
        sync: false
      - key: REVIEW_ROUTER_TARGET_ACTIVATED_CATALOG_POLICY_SHA256
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_SYSTEM_IDENTIFIER
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_DATABASE_OID
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_DATABASE_NAME
        sync: false
      - key: REVIEW_ROUTER_SOURCE_RELEASE_WITNESS_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_RECEIPT_READER_DATABASE_URL
        sync: false
      - key: REVIEW_ROUTER_RELEASE_WITNESS_GITHUB_READ_TOKEN
        sync: false
      - key: REVIEW_ROUTER_RELEASE_WITNESS_SIGNING_KEY_ID
        sync: false
      - key: REVIEW_ROUTER_RELEASE_WITNESS_SIGNING_PRIVATE_KEY_PEM
        sync: false
      - key: REVIEW_ROUTER_RELEASE_CONTROL_REPOSITORY
        sync: false
      - key: REVIEW_ROUTER_RELEASE_CONTROL_WORKFLOW_PATH
        value: .github/workflows/private-network-pg17-rollout.yml
      - key: REVIEW_ROUTER_SOURCE_RENDER_DATABASE_ID
        sync: false
      - key: REVIEW_ROUTER_SOURCE_DATABASE_SYSTEM_IDENTIFIER
        sync: false
      - key: REVIEW_ROUTER_SOURCE_DATABASE_OID
        sync: false
      - key: REVIEW_ROUTER_SOURCE_DATABASE_NAME
        sync: false
      - key: REVIEW_ROUTER_SOURCE_RECOVERY_WITNESS_SHA256
        sync: false
      - key: REVIEW_ROUTER_TARGET_RENDER_DATABASE_ID
        sync: false
      - key: REVIEW_ROUTER_TARGET_RECOVERY_WITNESS_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_SYSTEM_IDENTIFIER
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_DATABASE_OID
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_TARGET_DATABASE_NAME
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_CATALOG_FINGERPRINT
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_CATALOG_VERIFIER
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_MIGRATION_MANIFEST_IDENTITY
        sync: false
      - key: REVIEW_ROUTER_RELEASE_AUTHORITY_OWNER_ROLE
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_GUARD_ROLE
        value: reviewrouter_activation_receipt_guard
      - key: REVIEW_ROUTER_ACTIVATION_MIGRATION_MANIFEST_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_NAMESPACE_FINGERPRINT
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_INSTALLER_BODY_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTIVATION_READER_BODY_SHA256
        sync: false

  - type: web
    name: reviewrouter-web
    runtime: image
    plan: starter
    region: frankfurt
    image:
      # Release tooling replaces this example with an exact @sha256 digest.
      # Mutable tags are forbidden for production runtime deployment.
      url: ghcr.io/777genius/review-router-saas-runtime@sha256:0000000000000000000000000000000000000000000000000000000000000000
    healthCheckPath: /
    # Runtime deploys are explicit and follow the exclusive migration evidence gate.
    autoDeployTrigger: off
    maxShutdownDelaySeconds: 60
    envVars:
      - fromGroup: reviewrouter-hosted-beta
      - key: NODE_VERSION
        value: 26.11.1
      - key: PORT
        value: 10000
      - key: REVIEW_ROUTER_RUNTIME_ROLE
        value: web
      - key: DATABASE_URL
        # Provision reviewrouter_web as a non-owner runtime role, then enter
        # its private URL during Blueprint sync. Never use the database owner.
        sync: false
      - key: REVIEW_ROUTER_CODEX_EFFECT_AUTHORITY_DATABASE_URL
        # Isolated signer login; it has EXECUTE only on the authority signer.
        sync: false

  - type: web
    name: reviewrouter-api
    runtime: image
    plan: starter
    region: frankfurt
    image:
      url: ghcr.io/777genius/review-router-saas-runtime@sha256:0000000000000000000000000000000000000000000000000000000000000000
    healthCheckPath: /ready
    # Runtime deploys are explicit and follow the exclusive migration evidence gate.
    autoDeployTrigger: off
    maxShutdownDelaySeconds: 60
    envVars:
      - fromGroup: reviewrouter-hosted-beta
      - key: NODE_VERSION
        value: 26.11.1
      - key: PORT
        value: 10000
      - key: REVIEW_ROUTER_RUNTIME_ROLE
        value: api
      - key: DATABASE_URL
        # Provision reviewrouter_api as a non-owner runtime role.
        sync: false
      - key: REVIEW_ROUTER_CODEX_EFFECT_AUTHORITY_DATABASE_URL
        # Isolated signer login; it has no direct rotating-table privileges.
        sync: false
      # GitLab integration is API-only. Runtime/model credentials still stay in
      # the user's GitLab CI/CD variables.
      - key: REVIEW_ROUTER_GITLAB_API_TOKEN
        sync: false
      - key: REVIEW_ROUTER_GITLAB_API_BASE_URL
        sync: false
      - key: REVIEW_ROUTER_GITLAB_INSTALLER_TOKEN
        sync: false
      - key: REVIEW_ROUTER_GITLAB_INSTALLER_ADMIN_TOKEN
        sync: false
      - key: REVIEW_ROUTER_GITLAB_STATIC_REPOSITORIES_JSON
        sync: false
      - key: REVIEW_ROUTER_GITLAB_OIDC_ISSUER
        sync: false
      - key: REVIEW_ROUTER_GITLAB_OIDC_JWKS_URL
        sync: false
      - key: REVIEW_ROUTER_GITLAB_OIDC_AUDIENCE
        value: reviewrouter
      - key: REVIEW_ROUTER_GITLAB_RUNTIME_IMAGE
        value: ghcr.io/777genius/review-router-gitlab-runtime:v1

  - type: worker
    name: reviewrouter-worker
    runtime: image
    plan: starter
    region: frankfurt
    image:
      url: ghcr.io/777genius/review-router-saas-runtime@sha256:0000000000000000000000000000000000000000000000000000000000000000
    # Runtime deploys are explicit and follow the exclusive migration evidence gate.
    autoDeployTrigger: off
    maxShutdownDelaySeconds: 120
    envVars:
      - fromGroup: reviewrouter-hosted-beta
      - key: REVIEW_ROUTER_RUNTIME_ROLE
        value: worker
      - key: NODE_VERSION
        value: 26.11.1
      - key: DATABASE_URL
        # Provision reviewrouter_worker as a non-owner runtime role.
        sync: false

databases:
  - name: reviewrouter-db
    postgresMajorVersion: "17"
    databaseName: review_router
    # This CREATEROLE owner credential is used only to converge cluster roles.
    # Migrations connect separately as the NOCREATEROLE release role.
    user: reviewrouter_role_bootstrap
    region: frankfurt
    plan: basic-256mb
    ipAllowList: []

envVarGroups:
  - name: reviewrouter-hosted-beta
    envVars:
      - key: NODE_ENV
        value: production
      - key: AUTH_TRUST_HOST
        value: "true"
      - key: AUTH_SECRET
        generateValue: true
      - key: REVIEW_ROUTER_ACTION_SESSION_SECRET
        generateValue: true
      - key: REVIEW_ROUTER_ENABLE_DASHBOARD_MUTATIONS
        value: "1"
      - key: REVIEW_ROUTER_ENABLE_WORKFLOW_PROVISIONING
        value: "1"
      - key: REVIEW_ROUTER_DISABLE_WORKFLOW_PROVISIONING
        value: "0"
      - key: REVIEW_ROUTER_DISABLE_ACTION_CONTROL_PLANE
        value: "0"
      - key: REVIEW_ROUTER_ACTION_REF
        sync: false
      # Rotating workflows are durably attested to an immutable Action release.
      # Keep the primary and bounded A -> B overlap separate from the mutable
      # general workflow channel above.
      - key: REVIEW_ROUTER_CODEX_ROTATING_ACTION_REF
        sync: false
      - key: REVIEW_ROUTER_CODEX_ROTATING_ALLOWED_ACTION_REFS
        sync: false
      # Copy this exact, inseparable tuple from the digest-verified installer
      # descriptor attached to the immutable release. Never use a branch URL.
      - key: REVIEW_ROUTER_CODEX_ROTATING_INSTALLER_URL
        sync: false
      - key: REVIEW_ROUTER_CODEX_ROTATING_INSTALLER_VERSION
        sync: false
      - key: REVIEW_ROUTER_CODEX_ROTATING_INSTALLER_SHA256
        sync: false
      # Stable secret-manager value; Blueprint sync must never rotate it.
      - key: REVIEW_ROUTER_TOKEN_ENCRYPTION_KEY
        sync: false
      # One operator-managed value is shared by every database writer. It is
      # fingerprinted at runtime and must never be emitted to logs.
      - key: REVIEW_ROUTER_DATABASE_RECOVERY_WITNESS
        sync: false
      # Staged together with the witness during a generation cutover. Every
      # runtime role verifies this fingerprint and records a DB-bound proof
      # before its process starts. Neither value may be logged.
      - key: REVIEW_ROUTER_EXPECTED_RECOVERY_WITNESS_SHA256
        sync: false
      - key: REVIEW_ROUTER_RUNTIME_ROLLOUT_ID
        sync: false
      - key: REVIEW_ROUTER_RUNTIME_RELEASE_COMMIT_SHA
        sync: false
      - key: REVIEW_ROUTER_RUNTIME_ROLLOUT_STARTED_AT
        sync: false
      - key: REVIEW_ROUTER_LIVE_CANARY_TOKEN_SHA256
        sync: false
      - key: REVIEW_ROUTER_ACTION_OIDC_AUDIENCE
        value: reviewrouter
      - key: REVIEW_ROUTER_ENABLE_CODEX_ROTATING_OAUTH
        value: "0"
      - key: REVIEW_ROUTER_CODEX_ROTATING_NEW_WORK_ADMISSION_ENABLED
        value: "0"
      - key: REVIEW_ROUTER_CODEX_ROTATING_SETUP_ISSUANCE_ENABLED
        value: "0"
      # Revision-aware review v2 deploys additively. Writer capabilities are
      # enabled only after release attestation and an explicit cohort cutover.
      - key: REVIEW_ROUTER_REVIEW_V2_RUN_CONTROL_ENABLED
        value: "0"
      - key: REVIEW_ROUTER_REVIEW_V2_WORKER_ENABLED
        value: "0"
      - key: REVIEW_ROUTER_PROGRESS_PROJECTION_CAPTURE
        value: "0"
      - key: REVIEW_ROUTER_PROGRESS_FILE_COVERAGE
        value: "0"
      - key: REVIEW_ROUTER_HOSTED_PROGRESS_COMMENT_WRITES
        value: "0"
      - key: REVIEW_ROUTER_PROGRESS_REPOSITORIES
        value: ""
      - key: REVIEW_ROUTER_REVIEW_V2_CAPABILITY_ACTIVE_KEY_ID
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_CAPABILITY_KEYS_JSON
        sync: false
      - key: REVIEW_ROUTER_REVIEW_RUN_AUTHORIZATION_ACTIVE_KEY_ID
        sync: false
      - key: REVIEW_ROUTER_REVIEW_RUN_AUTHORIZATION_KEYS_JSON
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_PRODUCER_RELEASE_ATTESTATIONS_JSON
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_PROVIDER_VOTE_LANES_JSON
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_PROJECTION_POLICY_VERSION
        value: "review-projection-policy.v5-t0"
      # Cross-revision context reuse is fail-closed. Session and replay keys are
      # API-only; gateway identity is bound to each immutable producer release.
      - key: REVIEW_ROUTER_REVIEW_V2_CONTEXT_SESSION_SECRET_BASE64
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_CONTEXT_REPLAY_ACTIVE_KEY_ID
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_CONTEXT_REPLAY_KEYS_JSON
        sync: false
      - key: REVIEW_ROUTER_REVIEW_V2_OPERATOR_CREDENTIAL_SHA256
        sync: false
      - key: REVIEW_ROUTER_REVIEW_CONFIG_OPERATOR_CREDENTIAL_SHA256
        sync: false
      - key: REVIEW_ROUTER_DEFAULT_MODEL
        value: gpt-5.6-sol
      - key: REVIEW_ROUTER_DEFAULT_EFFORT
        value: xhigh
      - key: REVIEW_ROUTER_OUTBOX_BATCH_SIZE
        value: "25"
      - key: REVIEW_ROUTER_OUTBOX_PROCESSING_STALE_MS
        value: "900000"
      - key: REVIEW_ROUTER_WORKER_IDLE_MS
        value: "5000"
      - key: REVIEW_ROUTER_WORKER_BUSY_MS
        value: "250"
      - key: REVIEW_ROUTER_WORKER_ERROR_MS
        value: "5000"
      - key: REVIEW_ROUTER_MAX_REPOSITORIES_PER_SYNC
        value: "250"
      - key: REVIEW_ROUTER_WEB_URL
        value: https://reviewrouter.org
      - key: REVIEW_ROUTER_API_URL
        value: https://api.reviewrouter.org
      - key: REVIEW_ROUTER_PUBLIC_API_URL
        value: https://api.reviewrouter.org
      - key: REVIEW_ROUTER_PUBLIC_WEB_URL
        value: https://reviewrouter.org
      - key: REVIEW_ROUTER_HOSTED_WEB_URL
        value: https://reviewrouter.org
      - key: REVIEW_ROUTER_HOSTED_API_URL
        value: https://api.reviewrouter.org
      - key: NEXTAUTH_URL
        value: https://reviewrouter.org
      # GitHub App OAuth/client/webhook credentials. Do not commit real values.
      - key: GITHUB_APP_ID
        sync: false
      - key: GITHUB_APP_CLIENT_ID
        sync: false
      - key: GITHUB_APP_CLIENT_SECRET
        sync: false
      - key: GITHUB_APP_SLUG
        sync: false
      - key: GITHUB_APP_PRIVATE_KEY
        sync: false
      - key: GITHUB_WEBHOOK_SECRET
        sync: false
      # Compatibility aliases kept for hosted readiness checks and future split
      # GitHub OAuth support.
      - key: GITHUB_CLIENT_ID
        sync: false
      - key: GITHUB_CLIENT_SECRET
        sync: false