Template variables
One query,every environment.
Define variables once, globally, per workspace, per environment, or per table, and reference them anywhere a value goes. Dynomatic resolves them against the active environment at run time, so one saved query follows you from Development to Production.
Type ${[ and everything in scope suggests itself. Every variable you can reach shows up in the autocomplete, labeled with the scope it comes from: Global Variables, Workspace, or Production. Pick one and a tooltip previews the exact value it resolves to before you run.
Environments live in one dialog. Right-click a workspace to add Production, Staging, or Development, then manage every scope in a single tree: global variables shared everywhere, workspace variables per connection, environment variables that flip with the picker.
One variable, every surface. Query Builder key conditions, PartiQL statements, and Schema Aware Query keys all take the same token. Define userId once and every surface resolves it the same way.
Switch environments, repoint the query. The ENV pill in the status bar shows which environment resolves your variables. Flip it and the same saved query runs against new data, no editing required.
The variables, up close
Global variables shared everywhere, workspace variables per connection, environment variables that flip with one picker, and table variables scoped to a single table.
Right-click a workspace to add Production, Staging, or Development, then manage every scope in a single tree.
Type ${[ anywhere a value goes and every variable in scope suggests itself, labeled with its source.
See exactly what a variable resolves to before you run, including the composed key an ElectroDB entity will query.
keychain, secure, and uuid helpers plus casing, date, and random namespaces generate values at run time, so secrets stay out of saved queries.
Query Builder pills, PartiQL statements, and Schema Aware Query keys all take the same token: one variable, three surfaces.