Skip to content

[Fix] Provider environment variables are omitted from deployed services - #2592

Open
roomote-roomote[bot] wants to merge 4 commits into
developfrom
chore/provider-env-forwarding-08c619cvky6wh
Open

[Fix] Provider environment variables are omitted from deployed services#2592
roomote-roomote[bot] wants to merge 4 commits into
developfrom
chore/provider-env-forwarding-08c619cvky6wh

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. Follow up by mentioning @roomote-roomote, in the web UI, or in Telegram.

What changed

  • Forward the missing canonical Requesty, Azure OpenAI, Azure AI Foundry, xAI, OpenAI-compatible, LiteLLM, Ollama, and vLLM environment variables through the production Compose and PM2 templates.
  • Keep the production controller on the least-privilege base environment while preserving its dedicated sandbox launcher credential.
  • Add catalog-derived regression coverage that keeps deployment templates aligned while excluding settings-only variables and preserving controller isolation.

Why this change was made

The runtime resolver already supports these provider variables, but the deployment templates omitted them before application processes started. The controller does not consume control-plane inference credentials, so giving it the shared inference environment would unnecessarily broaden secret access and violates the production Compose security contract.

Impact

Environment-based provider configuration reaches the model-aware web, API, and BullMQ production services and local PM2 processes without exposing provider credentials to the production controller. Provider model behavior, credential precedence, and compatibility handling are unchanged.

Validation

  • Production Compose security-contract validator passed.
  • Focused PM2/Compose forwarding regression passed (10 tests).
  • @roomote/dev typecheck, targeted oxlint and oxfmt checks, and git diff --check passed.
  • Pre-push oxlint, residual lint, fast monorepo typechecks, and Knip passed.

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 12, 2026 06:44
@roomote-community

roomote-community Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

  • Controller isolation drops deployment model configuration from spawned workers. (deploy/compose/docker-compose.prod.yml:228)

Reviewed 526bbeb

);
}
expect(compose).toContain(
'x-roomote-controller-env: &roomote-controller-env\n <<: *roomote-base-env',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assertion codifies a functional regression: the controller's worker launchers call buildBaseWorkerEnv, which reads R_MODEL and R_MODEL_ENV_KEYS from the controller process to pass the deployment's default model configuration (and non-gateway custom provider values) to sandboxes. The bare base anchor removes those values, so deployed jobs no longer inherit the operator's env-configured model setup. Preserve a launcher-safe inference subset instead of requiring *roomote-base-env here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracing the controller launcher environment contract and preparing the smallest least-privilege fix on the existing PR branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant