Skip to main content
Define one or more environments to run tests against. Each provides a baseUrl and a set of variables available to tests as env.*.
momentic.config.yaml
For details on how Momentic resolves variables at runtime, see Environment variables.

Environment isolation

By default, Momentic shares cache entries across environments in the same project. This keeps repeat runs fast when dev, staging, and production render the same UI. If environments have different DOM structures, mobile screens, feature flags, or environment-specific IDs, enable advanced.isolateCachesByEnvironment. When enabled, Momentic stores separate step cache entries for each selected environment, so a cache learned in staging will not replay in production.
momentic.config.yaml

Per-environment options

environments[].name
string
Name of the environment. Selected at runtime via --env <name> and exposed to tests as env.ENV_NAME.
momentic.config.yaml
environments[].baseUrl
string
Starting URL for tests in this environment. Exposed as env.BASE_URL.
momentic.config.yaml
environments[].envVariables
Record<string, string | { fromFile: string; json?: boolean }>
Key-value pairs available to tests as env.VARIABLE_NAME. Values may reference shell variables via dotenvx interpolation, but cannot reference other variables defined in the same envVariables block.
momentic.config.yaml
Use the fromFile form to load values from a JSON file:
momentic.config.yaml
environments[].inheritFromShell
boolean
Include every variable from the enclosing shell at runtime. Default: false.
momentic.config.yaml
environments[].envFile
string
Path to a .env-format file to load. Each line is a KEY=VALUE pair; values become env.VARIABLE_NAME.
momentic.config.yaml
environments[].browser.proxy
{ server: string; username?: string; password?: string }
HTTP proxy configuration scoped to this environment. server must include the protocol (http:// or https://), host, and port.
momentic.config.yaml

Secrets

Keep passwords, API tokens, and other secrets out of momentic.config.yaml and out of version control. Provide them at runtime through one of these - the resolved values are still read in tests as env.*:
Point an environment at a .env-format file with envFile and keep that file out of git (.gitignore). Each KEY=VALUE line becomes env.KEY.
momentic.config.yaml
.secrets.env
Your Momentic API key is a secret too. Export it as MOMENTIC_API_KEY rather than committing it - see API keys.
For 2FA/TOTP secrets specifically, see Log in with OTPAuth.