This page explains how config environment overrides are stored, merged, and resolved at run time.Documentation Index
Fetch the complete documentation index at: https://docs.qa.tech/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Config environment overrides let you assign different payloads for the same config slug based on the selected environment. The system supports two override layers:- Environment-scoped overrides via
configsByEnvironment. - Plan-wide overrides via
configs.
Add config overrides in the UI
In the SaaS app, you can configure environment-scoped overrides directly on a config:- Go to your project’s Configs page.
- Open an existing config and click Edit.
- In Environment Overrides, select the application for this config.
- Under Add Environment Override, choose the environment you want to override and click Add.
- Update the override fields for that environment.
- Click Save on the config form.
configs.environment_overrides for that environment ID.
Where overrides are stored
Config rows inpublic.configs include:
data: base config payload.environment_overrides(jsonb):environment UUID -> config payload.application_id(uuid | null): optional application scope used by the SaaS Config editor to limit selectable environments.
environment_overrides is persisted directly on each config row, not in a separate table.
How project defaults are built
Project-level defaults are constructed from:- Application default environments (
applications.default_environment_id). - Config row
environment_overrides, aggregated into a singleconfigsByEnvironmentmap keyed by environment ID, then by config slug.
Merge order across project, test plan, and run request
Before execution, parameters are merged in this order, with later values overriding earlier values:- Project parameters.
- Test plan parameters.
- Runtime request parameters (
triggerData.parameters).
Effective config resolution order
For a given test and config slug, resolved value precedence is:- Base payload from
configs.data. parameters.configsByEnvironment[environmentId][configSlug](if the test has an environment ID and a matching override exists).parameters.configs[configSlug].
configs always overrides configsByEnvironment for the same slug.
Runtime API shape
POST /v1/run accepts config overrides under parameters:
cfg-login_abc123 is the configs entry because it has higher precedence.
Key format and normalization notes
configsandconfigsByEnvironmentpreserve raw map keys as provided.- Config identifiers are treated as string keys (typically config short IDs or slugs).
- Environment-specific overrides are only considered when execution has a concrete
environmentId.