Reference

Config reference

Everything you can put in hephaestus.defaults or a per-request override. All 43 keys, typed, straight from the shipped schema.

Connection

baseUrlstring

API base address; protocol is prepended from defaultProtocol if omitted. Exposed as {{baseUrl}}.

defaultProtocolstring

Protocol prepended to baseUrl when none is given (default: https).

"https"

Validation

expectedStatusinteger | array

Expected HTTP status code(s). A number or a list; response passes if its code is included. Drives negative testing. Default: [200, 201, 202].

contentTypestring

Expected response content type; asserted as a substring of the response Content-Type, so 'json' or a full MIME like 'application/json' both work.

"json"
expectEmptyboolean

Set true for requests that return an empty body (e.g. 204). Inverts the body-not-empty assertion.

maxResponseTimenumber

Maximum allowed response time in milliseconds; fails the test if slower.

maxBytesnumber

Response size budget in bytes. Values <= 0 disable the check.

Assertions

keysToFindarray

Assert fields exist (and optionally match a value) at the given JSONPath-lite paths.

varsToSaveobject

Extract-and-save: alias -> spec. Saves the value at path into a Postman variable.

keysToCountobject

Count entries: alias -> spec. Asserts the number of array/object entries at path.

assertionsobject

Shorthand assertion map: field path -> operators. All operators combine.

assertEachobject

Validate every element of an array against a set of per-field rules.

assertShapeobject

One-line structural type checks: field path -> expected type.

assertOrderobject

Assert an array is sorted by a field.

assertUniqueobject

Assert all array elements are unique (by value, or by a field).

assertHeadersarray

Assert response headers exist / match / are absent.

Auth

authobject

Authentication plugin. Disabled unless enabled:true.

GraphQL

graphqlboolean | object

GraphQL contract checks. GraphQL answers 200 even when the body carries errors[], so status alone proves nothing. true is shorthand for { noErrors: true }.

Snapshot & schema

snapshotobject

Response snapshot regression. Disabled unless enabled:true (or record:true).

snapshotRecordboolean

Top-level alias for snapshot.record: force-overwrite the snapshot baseline on the next run.

schemaobject

JSON Schema validation of the parsed response via tv4 (draft-04/07). Disabled unless enabled:true.

Security

securityAuditobject

Passive response security audit. Disabled unless enabled:true. Providing a list replaces the corresponding built-in default.

Resilience

retryOnStatusobject

Auto-retry the request while its status is in the list (setNextRequest). Skips the rest of the pipeline on intermediate attempts.

Dates & data

dateFormatstring

Format for the built-in date variables and dates expressions (tokens: yyyy MM dd hh mm ss nnn tt00). Default: yyyy-MM-dd.

datesobject

Custom date variables: variable name -> expression (today, yesterday, tomorrow, startOfMonth, endOfMonth, startOfNextMonth, endOfNextMonth, startOfPrevMonth, endOfPrevMonth, startOfYear, endOfYear, today+7d / today-1m / today+1y ...).

randomDataobject

Generate pm.variables before the request: variable name -> generator (random.uuid, random.email, random.bool, random.str, random.str:N, random.int:min:max, random.float:min:max:dec, random.date) or a literal string.

Environment & CI

envRequiredarray

Environment variables that must be set (non-empty) before the request is sent.

ciboolean

Emit a structured [HEPHAESTUS_CI] JSON line per request, regardless of logLevel.

localestring

Engine output language. Default: ru.

logLevelstring

Console verbosity. Default: normal.

softFailboolean

Global soft mode: functional assertion failures are logged as warnings instead of failing the run.

secretsarray

Key-name fragments whose values are masked in logs (substring, case-insensitive).

Config safety

strictModeboolean

Fail the run when an override contains a key the engine does not know. Off by default: unknown keys only warn.

extraKeysarray

Key names to treat as known even under strictMode. This is how a third-party plugin allowlists its own config, e.g. the gallery plugins in gallery/plugins/.

Shipped-plugin config

slackUrlstring

Incoming-webhook URL for docs/plugins/slack-notifier.js. Read off ctx.config by that plugin, not by the engine.

slackOnlyFailuresboolean

slack-notifier: notify only when something failed (default true).

teamsUrlstring

Incoming-webhook URL for docs/plugins/teams-notifier.js.

teamsOnlyFailuresboolean

teams-notifier: notify only when something failed (default true).

slaMsLimitnumber

Latency ceiling asserted by docs/plugins/custom-assertions.js (default 3000).

checkCorsboolean

custom-assertions: assert an Access-Control-Allow-Origin header is present.

assertJsonApiboolean

custom-assertions: assert the body follows the JSON:API envelope.

Meta

$schemastring

Editor-only JSON Schema association (e.g. ../docs/override.schema.json). Ignored by the engine and stripped from the shipped collection at build time.

_commentstring

Non-engine annotation used in the shipped setup/defaults.json template. Delete before copying into collectionVariables['hephaestus.defaults'].