Skip to main content

Environments

A mobile flow often has to run against more than one backend — dev, staging, prod. The taps are identical; only the API base URL and the login credentials change. Environments let you record the flow once and swap those values at run time, with no re-recording. It's the exact same feature as on web — one shared model across both engines.

Author with {{env.KEY}}​

Anywhere a step takes a value — a typed field, an assertion, an API request — reference an environment variable as {{env.KEY}}. A login flow becomes backend-independent:

1. launch <app>
2. tap usernameInput
3. type usernameInput = {{env.username}}
4. tap PROCEED
5. type passwordInput = {{env.password}}
6. tap LOGIN
7. assert text contains "Welcome"

Nothing names a specific account — the values come from whichever environment is active.

Mobile base URL

Native apps usually read their backend URL from a build config or a first-run setting rather than a typed URL bar. So on mobile, {{env.baseUrl}} is most useful in API-request steps and in text you type into the app; the app's own environment switch (if it has one) is driven by the value you enter.

Pick the active environment​

The Env control sits in the device toolbar, next to the emulator picker and the Play button. Click it to switch between dev / staging / prod (or No environment) — the next Play/Resume/Debug uses that environment's values. The selection is remembered per project and is shared with the web view.

Manage environments​

Manage environments… opens the editor — a rail of environments on the left, a key/value table for the selected one on the right (identical to web):

The Environments editor — rail of environments plus a key/value table with secret masking

  • Add environments and give each its own baseUrl, username, password, apiKey, or any keys you need.
  • Tick Secret to mask a value in the UI.
  • Environments live in one project file, .trq-environments, next to your .trq flows — versioned and shareable.
Secrets — for now

Secret values are currently stored in .trq-environments in plaintext (the same as recorded passwords today). A local, git-ignored secret store is coming. Until then, don't commit real production secrets — keep those environments local, or use throwaway test accounts.

Run from the CLI​

Environments drop straight into CI — pick one with --env:

trq play login --env staging

Without --env, the run uses the project's currently-active environment (the one you picked in the toolbar), so the CLI and the Studio agree.

How resolution works​

{{env.KEY}} reads from the active environment (a missing key resolves to empty). It's a separate namespace from captured variables ({{var.NAME}}) and generators ({{uuid}}, …), so they never collide — see Variables & templates. Mobile and web resolve {{env.*}} through the same engine, so a flow behaves identically on either.