Skip to main content

Configuration substitution

You can use {{ env.VAR_NAME }} placeholders in any string value across your configuration files. The runtime resolves these at startup.

Supported locations

Config locationExample
Adapter connection_string"postgresql://{{ env.DB_USER }}:{{ env.DB_PASS }}@{{ env.DB_HOST }}:5432/{{ env.DB_NAME }}"
Adapter options valuessslmode: "{{ env.DB_SSL_MODE }}"
Tool statement"SELECT * FROM {{ env.TABLE_PREFIX }}_users WHERE id = {{ inputs.user_id }}"
Tool auth.policy valuesvalue: "{{ env.API_KEY }}"
Root config server.portport: "{{ env.PORT }}"

Resolution behavior

  • Placeholders resolve at the point of use: connector initialization, statement execution, or auth check.
  • Missing variables cause a hard failure with an error identifying the unresolved variable.
  • Placeholders are not recursive — a variable whose value contains {{ env.OTHER }} is not expanded further.
  • The .env file in the working directory is loaded before command execution.

Runtime variables

PORT
integer
default:"8080"
Fallback port when not set via CLI flag or config.Precedence: --port flag → server.port config → PORT env → 8080
HYPERTERSE_API_KEY
string
Fallback API key for the api_key auth plugin when auth.policy.value is not set on a tool.Precedence: auth.policy.value config → HYPERTERSE_API_KEY env
HYPERTERSE_LOG_TAGS
string
Comma-separated log tag filter. Limits which subsystem tags appear in output.Precedence: --log-tags flag → HYPERTERSE_LOG_TAGS env

.env file

The CLI loads .env from the current working directory when present. Standard KEY=VALUE format. Blank lines and #-prefixed lines are ignored.
.env
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
API_KEY=sk-secret-key-value
PORT=9090
Shell-set environment variables take precedence over .env values. The file provides defaults, not overrides.

Security guidance

Do not commit .env to version control. Add it to .gitignore.
  • Use {{ env.VAR }} for all credentials. Connection strings, API keys, and tokens must reference environment variables — never hardcode secrets in .terse files.
  • Rotation requires restart. Environment variables resolve at startup. For zero-downtime rotation, use a secrets manager that updates the environment and signals a restart.
  • Set production log level. Debug logs may include substituted statement text. Use log level 2 (warn) or 3 (info) in production.