Skip to content

Manifest fields

A manifest is the input for one release gate run. YAML and JSON are supported by the runtime. Keep one manifest focused on one release question.

Main fields

Field Required Meaning
release_id Yes Stable name for this run.
baseline_agent or baseline block Yes Version that already works.
candidate_agent or candidate block Yes Version under review.
dataset Yes Approved source and expected identity.
changed_context Yes DataHub or prompt context that changed.
requested_by Yes Person or service that requested the check.
replay_cases Yes The behavior checks to execute.
oracle Yes Independent expected-result calculation.
agent Optional External SQL proposal service.

Safe agent block

An agent block names a local transport. It does not contain a provider key.

agent:
  required: true
  baseline:
    transport: datahub_analytics_agent
    endpoint: http://127.0.0.1:8100
    engine_name: themis_nyc_taxi
    timeout_seconds: 120
  candidate:
    transport: datahub_analytics_agent
    endpoint: http://127.0.0.1:8100
    engine_name: themis_nyc_taxi
    timeout_seconds: 120

The provider process owns its credential. Themis validates the returned SQL, recomputes the digest, executes the read-only query, and compares the result with the oracle.

SQL safety

Agent SQL must be read-only. The boundary rejects writes, multiple statements, unsafe functions, and malformed artifacts. Do not weaken this check to make a scenario pass.

Example release question

release_id: example-release
changed_context: urn:li:dataset:(urn:li:dataPlatform:duckdb,nyc_taxi,PROD)
requested_by: operator@example.invalid
replay_cases:
  - row_count
  - total_fare
oracle:
  type: deterministic_sql

The exact fields vary by project version. Use the checked-in manifests as the source of truth for the current schema.