Skip to main content

Contract assurance

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: contract-assurance · 23 operations

POST /v1/tenants/{tenant_slug}/contracts/{version_ref}/run​

Execute a contract suite against a verification target

Compile the version's deterministic contract suite (ECA-1.1), resolve the named verification target (ECA-1.2), execute every case under the target's policy (timeouts, concurrency, transport-only retries, mutating-method gate), validate status codes and response schemas, and always persist the result as immutable verification evidence (ECA-1.3).

Retries never mask a contract failure. A status or schema mismatch ends the case immediately; only transport failures (connect/timeout/network) honour policy.retry_attempts.

A suite carries no credentials. Auth comes from the target's secret-free reference (env or stored); evidence snapshots the target identity only.

A version that cannot yield executable cases answers 200 with ok: false and a stable taxonomy error. Addressing faults are HTTP errors (400/404/422). Target resolution faults are 400/404. Evidence submission faults are 400.

Operation id: run_contract_suite_for_version_v1_tenants__tenant_slug__contracts__version_ref__run_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
version_refpathstringyesPath parameter identifying the version ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for execute a contract suite against a verification target.

Responses

StatusDescriptionBody
200Successful response for execute a contract suite against a verification target.application/json ContractRunResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/contracts/{version_ref}/suite​

Compile a deterministic contract suite from a version

Compile a published version into an executable contract suite (ECA-1.1): one case per declared example, per schema-valid generated body, and per required negative case, with the operation, the source, and the expected outcome on every one of them.

Addressing is the schema-reference grammar without a type segment — project/{project_slug}/{version} for a Project revision or catalog/{item}/{version} for a Catalog revision — so a suite is compiled from the same coordinate a payload is validated against.

Compilation is deterministic. The same version and the same options produce a byte-identical manifest and therefore the same digest, which is what lets a CI gate assert that a deployment was verified against a specific contract.

Declared examples come first. A request body the author wrote is compiled ahead of anything generated, and is the only kind of case marked synthetic: false. An example that does not satisfy its own schema is reported and left out rather than compiled into a test a correct implementation would fail.

Nothing is skipped silently. A streaming operation, a non-HTTP paradigm, an XML-only body, a structured parameter, an undeclared status code — each appears in findings with a stable code, so partial coverage can never read as full coverage.

A suite carries no target and no credentials. Paths are relative and security requirements are reported for the runner to satisfy; targets are configured separately.

Nothing is persisted. A version that yields no suite is not an HTTP error: the response is a 200 with ok: false and a stable intake-taxonomy error code plus remediation. Only addressing faults are HTTP errors — 400 for a malformed or type-qualified reference, 404 for one that names nothing visible, 422 for one that resolves to material no canonical model can be rebuilt from.

Operation id: compile_contract_suite_for_version_v1_tenants__tenant_slug__contracts__version_ref__suite_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
version_refpathstringyesPath parameter identifying the version ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for compile a deterministic contract suite from a version.

Responses

StatusDescriptionBody
200Successful response for compile a deterministic contract suite from a version.application/json ContractSuiteResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/contracts/{version_ref}/verify-provider​

Verify a live deployment against a published contract

Compile the version's deterministic contract suite (ECA-1.1), resolve the named verification target (ECA-1.2), execute the cases this run is allowed to send, validate every response against the contract's own schema, and return a conformance report: per-operation verdicts, each schema violation located by its JSON Pointer into the response body, and coverage measured against every operation in the specification.

Safe by default. Only GET/HEAD/OPTIONS are executed unless the request both sets verification.allow_mutating and supplies a fixture naming the operation — opting in is a permission, not a payload. Neither can widen the verification target's own allow_mutating_methods policy, and a fixture may not carry credentials.

Coverage is honest. The denominator is every operation the specification declares, including those the suite compiler could not compile; what was not exercised is named with its reason rather than left out.

The run is always recorded as immutable ECA-1.3 evidence and the report is persisted beside it. A version that cannot yield executable cases answers 200 with ok: false and a stable taxonomy error. Addressing faults are HTTP errors (400/404/422); target resolution faults are 400/404; evidence faults are 400.

Operation id: verify_provider_for_version_v1_tenants__tenant_slug__contracts__version_ref__verify_provider_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
version_refpathstringyesPath parameter identifying the version ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for verify a live deployment against a published contract.

Responses

StatusDescriptionBody
200Successful response for verify a live deployment against a published contract.application/json ProviderVerificationResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/provider-verifications​

List provider verification reports

A tenant's conformance reports, newest first, without their per-operation detail. Every field is a stored column, so a deploy gate can ask did the newest report for this version pass, and how much did it cover? without opening a report body.

Filter by version_ref for one version's history, target_id for one deployment, or outcome for what is currently drifting.

Operation id: list_provider_verifications_v1_tenants__tenant_slug__provider_verifications_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
version_refquerystring or nullnoRestrict to one version reference.
target_idquerystring or nullnoRestrict to one verification target.
outcomequerystring or nullnoRestrict to one verdict: passed, failed, or errored.
limitqueryintegernoMaximum reports to return.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list provider verification reports.application/json array of ConformanceReportSummary
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/provider-verifications/{report_id}​

Read one provider verification report

The full conformance report: per-operation verdicts, every drift located by its JSON Pointer into the response body, the operations the run does not vouch for and why, and the id of the immutable evidence run the report was read from.

Operation id: read_provider_verification_v1_tenants__tenant_slug__provider_verifications__report_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
report_idpathstringyesPath parameter identifying the report id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read one provider verification report.application/json ConformanceReportRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-runs​

List verification runs

Recorded runs, newest first, without per-case detail.

The filters are the questions a gate asks: the newest evidence for this compiled suite (suite_digest), everything that ran against this target (target_id), or only the failures (outcome).

Requires verification_evidence:view.

Operation id: list_verification_runs_v1_tenants__tenant_slug__verification_runs_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_idquerystring or nullnoRestrict to one target.
suite_digestquerystring or nullnoRestrict to one compiled suite digest (sha256:<hex>).
outcomequerystring or nullnoRestrict to one verdict: passed, failed, errored, cancelled.
limitqueryintegernoMaximum runs to return.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list verification runs.application/json VerificationRunListResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/verification-runs​

Record verification evidence for a finished run

Record one finished contract run as immutable evidence: the executed suite digest, the target identity, timing, per-case outcomes, per-assertion detail, and references to redacted artifacts.

The verdict is derived, not accepted. Case counts and the run outcome are computed from the submitted case records; a declared outcome that disagrees is refused. Only cancelled — which no set of records can imply — is taken on the runner's word.

A failure must say why. A case recorded as failed or errored needs a failure_code, and a failed assertion needs a code; an outcome with no stated reason cannot be compared across runs or gated on.

Artifacts are linked, never embedded. An artifact reference carries a URI, a size, and a content hash — a data: URI is refused, as is one embedding user:pass@ credentials — and every free-text field is scrubbed for credentials before storage.

Recording is idempotent. Repeating the request with the same idempotency_key returns the originally stored run with 200 rather than creating a duplicate.

Requires verification_evidence:create.

Operation id: create_verification_run_v1_tenants__tenant_slug__verification_runs_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for record verification evidence for a finished run.

Responses

StatusDescriptionBody
201Successful response for record verification evidence for a finished run.application/json VerificationRunRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-runs/{run_id}​

Read one verification run

One run in full: every case record, its assertions, and the references to its redacted artifacts.

The target identity is the snapshot taken at run time, not a live read of the target — a target that has since been renamed, repointed, or retired cannot rewrite what this run says it did.

Requires verification_evidence:view.

Operation id: read_verification_run_v1_tenants__tenant_slug__verification_runs__run_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
run_idpathstringyesPath parameter identifying the run id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read one verification run.application/json VerificationRunRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-runs/{run_id}/export​

Export one verification run as JSON or JUnit

Export the stored evidence.

  • json — the whole record (application/json), keys sorted so two exports of the same run are byte-identical and can be diffed without a semantic differ.
  • junit — JUnit XML (application/xml), which GitHub Actions, GitLab, Jenkins, and Buildkite render natively. One <testcase> per stored case in stored order; a contract violation becomes <failure> and an unexecutable case becomes <error>, because that is the distinction contract verification needs. The suite digest and target identity travel as <properties>.

Neither exporter recomputes a verdict: the counters come from the stored counts, so an export can never disagree with the run it exports.

Requires verification_evidence:view.

Operation id: export_verification_run_v1_tenants__tenant_slug__verification_runs__run_id__export_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
run_idpathstringyesPath parameter identifying the run id segment.
formatquerystringnoExport format: json, junit.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200The exported evidence.application/json any; application/xml any
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-runs/{run_id}/mock-attestation​

Read a run's mock attestation as a signed in-toto statement

Render the run's release-proof mock attestation (PMR-3.2) as an in-toto Statement v1 inside a DSSE envelope, so a release pipeline can prove offline which mock backed a verification.

The statement's subject is the mock bundle itself, digested with a plain sha256 over the bundle's manifestDigest value — so a holder of the bundle file ties it to this statement without any Apiome-specific knowledge. The predicate carries the bundle coordinates, the runtime version and image, the conformance corpus identity and result, every fixture-pack digest, and the verification run it belongs to. Identities and verdicts only: never spec text, fixture bodies, or credentials.

A missing or failed verification is still attested. A run whose mock says missing or failed returns a statement saying exactly that, signed — silence is never the answer. 404 is returned only when the run recorded no mock at all.

The envelope is HMAC-SHA256 signed with the shared attestation secret and names the same key id as a lint gate attestation, so a verifier that already holds that secret needs no new configuration. Without a configured secret the envelope is well-formed but its signatures list is empty.

Requires verification_evidence:view.

Operation id: read_verification_run_mock_attestation_v1_tenants__tenant_slug__verification_runs__run_id__mock_attestation_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
run_idpathstringyesPath parameter identifying the run id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a run's mock attestation as a signed in-toto statement.application/json object
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-schedules​

List scheduled verifications

Every live verification schedule in the tenant, newest first, each carrying its freshness: last_success_at and freshness_seconds — the seconds since this deployment last verified clean.

freshness_seconds is null when the schedule has never verified clean. A gate must read that as unknown, never as fresh.

Filter by version_ref to ask "is this version's deployment being watched, and how recently?", by target_id for one deployment, or by enabled to find what is paused.

Requires verification_targets:view.

Operation id: list_verification_schedules_v1_tenants__tenant_slug__verification_schedules_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
version_refquerystring or nullnoRestrict to one version reference.
target_idquerystring or nullnoRestrict to one verification target.
enabledqueryboolean or nullnoRestrict to enabled (true) or paused (false) schedules.
limitqueryintegernoMaximum schedules to return.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list scheduled verifications.application/json array of VerificationScheduleRecord
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/verification-schedules​

Schedule recurring verification of a deployment

Define a standing instruction: verify one published version against one registered deployment on a cadence, and notify when it drifts.

Each tick is a CTG-4.3 run, unchanged. The same suite is compiled, the same requests are sent, the same mutation rules apply (safe methods only unless the target policy, the schedule's verification.allow_mutating, and a fixture naming the operation all agree), and the same immutable evidence and conformance report are written. A scheduled check that behaved differently from a manual one would be worthless as a gate input.

Cadence is a number of seconds or one of 5m, 15m, 30m, hourly, 6h, 12h, daily, weekly. The floor is five minutes: anything shorter against a live deployment is load, not monitoring.

Alerting is quiet by design. A pass→fail transition notifies exactly once; a repeat of the same failure is silent; a failure whose set of violations changed notifies again, because new drift hiding behind old drift is how a second regression is missed. Recovery notifies unless alert_on_recovery is false.

One live schedule per handle, and one per (version, deployment) pair — a second schedule for the same pair would double the traffic and double every alert.

Requires verification_targets:create.

Operation id: create_verification_schedule_v1_tenants__tenant_slug__verification_schedules_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for schedule recurring verification of a deployment.

Responses

StatusDescriptionBody
201Successful response for schedule recurring verification of a deployment.application/json VerificationScheduleRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-schedules/{schedule_ref}​

Read one scheduled verification

Read a schedule by its handle or its id, with its current freshness and alert state.

alert_state is alerting while drift is outstanding — that is the state which makes a repeated failure quiet, and it clears when the deployment verifies clean again.

Requires verification_targets:view.

Operation id: read_verification_schedule_v1_tenants__tenant_slug__verification_schedules__schedule_ref__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
schedule_refpathstringyesPath parameter identifying the schedule ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read one scheduled verification.application/json VerificationScheduleRecord
422Validation Errorapplication/json HTTPValidationError

PATCH /v1/tenants/{tenant_slug}/verification-schedules/{schedule_ref}​

Retune or pause a scheduled verification

Change the cadence, the name, the run options, or whether the schedule ticks. A paused schedule (enabled: false) keeps its history and its freshness anchor.

The scheduling state is not settable here. last_success_at, alert_state, and the failure counters are the sweep's record of what actually happened; a monitor whose freshness could be edited would not be a monitor.

Cadence accepts seconds or one of 5m, 15m, 30m, hourly, 6h, 12h, daily, weekly.

Requires verification_targets:edit.

Operation id: update_verification_schedule_v1_tenants__tenant_slug__verification_schedules__schedule_ref__patch

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
schedule_refpathstringyesPath parameter identifying the schedule ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for retune or pause a scheduled verification.

Responses

StatusDescriptionBody
200Successful response for retune or pause a scheduled verification.application/json VerificationScheduleRecord
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/tenants/{tenant_slug}/verification-schedules/{schedule_ref}​

Retire a scheduled verification

Stop the schedule ticking. The retirement is a soft delete: the run history stays, because "when did this version last verify clean?" outlives the instruction that answered it.

To stop checks temporarily, PATCH enabled: false instead — a paused schedule can be resumed, a retired one cannot.

Requires verification_targets:delete.

Operation id: remove_verification_schedule_v1_tenants__tenant_slug__verification_schedules__schedule_ref__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
schedule_refpathstringyesPath parameter identifying the schedule ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
204Successful response for retire a scheduled verification.—
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-schedules/{schedule_ref}/runs​

Read a schedule's verification history

The write-once history of what each tick found, newest first: the verdict, the coverage it measured, how much drift it saw, and — for every tick, not only the noisy ones — whether it notified and why. "Why was I not paged?" is answerable from the history rather than from a worker's log.

status is passed, failed (the deployment contradicted the contract), or errored (no verdict to trust — the deployment never answered, or the run could not be executed at all; the latter carries an error_code).

drift_fingerprint is the digest of the violation set: two failing ticks with the same fingerprint found the same thing, which is exactly when the second one stays silent.

Requires verification_evidence:view — a verification history is evidence.

Operation id: list_verification_schedule_runs_v1_tenants__tenant_slug__verification_schedules__schedule_ref__runs_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
schedule_refpathstringyesPath parameter identifying the schedule ref segment.
statusquerystring or nullnoRestrict to passed, failed, or errored.
limitqueryintegernoMaximum ticks to return.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a schedule's verification history.application/json array of VerificationScheduleRunRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-targets​

List the tenant's verification targets

Every live verification target defined in the tenant, newest first.

A target is secret-free by construction: it carries a credential reference (an environment-variable name, or an id in the encrypted credential vault), never a credential, so this response needs no redacted variant.

Requires verification_targets:view — the same permission a run needs to resolve one.

Operation id: list_verification_targets_v1_tenants__tenant_slug__verification_targets_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list the tenant's verification targets.application/json VerificationTargetListResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/verification-targets​

Define a verification target

Define where a compiled contract suite may be executed.

The URL is vetted before anything is stored. http/https only, no user:pass@ authority, and — for the default public network class — every address the host resolves to must be globally routable. A target that must reach an internal address declares network_class: private, which requires an approval_reason; the authenticated caller is recorded as its approver.

The credential is a reference, never a value. auth.kind: env stores an environment-variable NAME the runner reads from its own environment; auth.kind: stored stores the id of a row in the encrypted credential vault. Both shapes are validated here and constrained again in the database, so a pasted token is rejected rather than stored.

Requires verification_targets:create.

Operation id: create_verification_target_v1_tenants__tenant_slug__verification_targets_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for define a verification target.

Responses

StatusDescriptionBody
201Successful response for define a verification target.application/json VerificationTargetRecord
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-targets-audit​

Read the verification-target audit ledger

The append-only record of every target definition change and every target selection, including denials, newest first.

Entries carry the actor and whether they were an interactive user or a CI runner (actor_kind: api_key). The detail block holds non-secret context only — an update records which field names changed, never their values, and a resolve records the credential reference kind but never the reference itself.

Requires verification_targets:view.

Operation id: read_verification_target_audit_v1_tenants__tenant_slug__verification_targets_audit_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_idquerystring or nullnoRestrict the ledger to one target's history.
limitqueryintegernoMaximum entries to return.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read the verification-target audit ledger.application/json TargetAuditResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/verification-targets/{target_ref}​

Read one verification target

Read a target by its slug or its id. Accepting both is what lets CI name a stable handle (staging) while an evidence record names an immutable id.

Requires verification_targets:view.

Operation id: get_verification_target_v1_tenants__tenant_slug__verification_targets__target_ref__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_refpathstringyesPath parameter identifying the target ref segment.
include_deletedquerybooleannoResolve retired targets too. Evidence records name a target id, and that reference has to keep resolving after the target is retired.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read one verification target.application/json VerificationTargetRecord
422Validation Errorapplication/json HTTPValidationError

PATCH /v1/tenants/{tenant_slug}/verification-targets/{target_ref}​

Update a verification target

Apply a partial update. Omitted fields are left alone; auth and policy are replaced wholesale when present, because a half-applied credential reference is exactly the state that puts a value in the wrong column.

The result is validated as a whole: supplying network_class: private and its approval_reason together is one coherent change, and moving a target back to public re-runs the address check its URL previously skipped.

Requires verification_targets:edit.

Operation id: update_verification_target_v1_tenants__tenant_slug__verification_targets__target_ref__patch

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_refpathstringyesPath parameter identifying the target ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for update a verification target.

Responses

StatusDescriptionBody
200Successful response for update a verification target.application/json VerificationTargetRecord
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/tenants/{tenant_slug}/verification-targets/{target_ref}​

Retire a verification target

Soft-delete a target. The definition stays readable by id (?include_deleted=true) so an evidence record that names it keeps resolving, and the slug is freed for reuse.

Requires verification_targets:delete.

Operation id: delete_verification_target_v1_tenants__tenant_slug__verification_targets__target_ref__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_refpathstringyesPath parameter identifying the target ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
204Successful response for retire a verification target.—
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/verification-targets/{target_ref}/resolve​

Resolve a verification target for a run

Select a target for a verification run — the audited moment a definition becomes traffic.

Everything a read tolerates is refused here: a retired target, a disabled one, and a URL that no longer satisfies its network class. That last check is re-run at resolve time on purpose: DNS moves, so a hostname that resolved publicly when the target was defined can point at an internal address today while the definition looks unchanged.

Success and refusal are written to the audit ledger, with the acting user or CI runner, so "which target did this run use" and "what was turned away" are answered from the same place.

The response carries the target identity, the base URL, the policy the runner must honour, and the credential reference — never a credential.

Requires verification_targets:view.

Operation id: resolve_verification_target_v1_tenants__tenant_slug__verification_targets__target_ref__resolve_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
target_refpathstringyesPath parameter identifying the target ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (optional)

Request body for resolve a verification target for a run.

Responses

StatusDescriptionBody
200Successful response for resolve a verification target for a run.application/json ResolvedTarget
422Validation Errorapplication/json HTTPValidationError

Schemas used​

ConformanceReportRecord​

A report with its detail — per-operation verdicts, drift, and uncovered operations.

PropertyTypeRequiredDescription
idstringyesReport id.
tenant_idstringyesTenant that owns it.
run_idstringyesThe ECA-1.3 evidence run this report summarises.
version_refstringyesVersion reference that was verified.
artifact_kindstring or nullnoproject or catalog.
artifact_idstring or nullnoArtifact id.
artifact_slugstring or nullnoArtifact slug.
version_labelstring or nullnoResolved version label.
suite_digeststringyesDigest of the executed suite.
target_idstring or nullnoTarget, when it still exists.
target_slugstringyesTarget handle at run time.
target_environmentstringyesEnvironment class at run time.
target_network_classstringnopublic or private.
target_base_urlstringyesBase URL at run time.
outcomestringyespassed, failed, or errored.
operations_totalintegeryesOperations in the specification, compiled or not.
operations_exercisedintegeryesOperations that received a request.
operations_passedintegeryesExercised operations with no drift.
operations_failedintegeryesExercised operations that drifted.
operations_erroredintegeryesExercised operations that never answered.
operations_skippedintegeryesCompiled operations nothing was sent for.
operations_uncompiledintegeryesOperations the compiler could not compile.
coverage_percentnumberyesExercised over total, as a percentage.
cases_totalintegeryesCases accounted for.
cases_passedintegeryesCases that passed.
cases_failedintegeryesCases that drifted.
cases_erroredintegeryesCases that never answered.
cases_skippedintegeryesCases deliberately not sent.
drift_countintegeryesDisagreements observed.
mutating_allowedbooleanyesWhether the run opted in to mutating methods.
fixture_countintegeryesFixtures the caller supplied.
created_atstring (date-time) or nullnoWhen it was written.
created_bystring or nullnoUser who ran it.
actor_labelstring or nullnoActor label at the time.
actor_kindstringnouser, api_key, or system.
reportConformanceReportyesThe stored conformance report.

ConformanceReportSummary​

A report without its detail — what a list read returns.

Every field here is a stored column rather than a JSON lookup, which is what lets CTG-4.4 and CTG-4.5 ask "did the newest report for this version pass, and how much did it cover?" without opening a single report body.

PropertyTypeRequiredDescription
idstringyesReport id.
tenant_idstringyesTenant that owns it.
run_idstringyesThe ECA-1.3 evidence run this report summarises.
version_refstringyesVersion reference that was verified.
artifact_kindstring or nullnoproject or catalog.
artifact_idstring or nullnoArtifact id.
artifact_slugstring or nullnoArtifact slug.
version_labelstring or nullnoResolved version label.
suite_digeststringyesDigest of the executed suite.
target_idstring or nullnoTarget, when it still exists.
target_slugstringyesTarget handle at run time.
target_environmentstringyesEnvironment class at run time.
target_network_classstringnopublic or private.
target_base_urlstringyesBase URL at run time.
outcomestringyespassed, failed, or errored.
operations_totalintegeryesOperations in the specification, compiled or not.
operations_exercisedintegeryesOperations that received a request.
operations_passedintegeryesExercised operations with no drift.
operations_failedintegeryesExercised operations that drifted.
operations_erroredintegeryesExercised operations that never answered.
operations_skippedintegeryesCompiled operations nothing was sent for.
operations_uncompiledintegeryesOperations the compiler could not compile.
coverage_percentnumberyesExercised over total, as a percentage.
cases_totalintegeryesCases accounted for.
cases_passedintegeryesCases that passed.
cases_failedintegeryesCases that drifted.
cases_erroredintegeryesCases that never answered.
cases_skippedintegeryesCases deliberately not sent.
drift_countintegeryesDisagreements observed.
mutating_allowedbooleanyesWhether the run opted in to mutating methods.
fixture_countintegeryesFixtures the caller supplied.
created_atstring (date-time) or nullnoWhen it was written.
created_bystring or nullnoUser who ran it.
actor_labelstring or nullnoActor label at the time.
actor_kindstringnouser, api_key, or system.

ContractRunRequest​

What to execute against which target.

Compiler options are optional and default to the same defaults as suite compilation, so a digest recorded in evidence matches POST …/suite with the same options.

PropertyTypeRequiredDescription
target_refstringyesVerification target slug or id (ECA-1.2).
optionsContractSuiteOptionsnoCompiler options; hashed into the suite digest recorded on the run.
idempotency_keystring or nullnoEvidence upload retry key; forwarded to the verification-runs store.
contextobjectnoNon-secret CI context (commit, branch, workflow URL).

ContractRunResponse​

The outcome of one contract run attempt.

PropertyTypeRequiredDescription
okbooleanyesWhether the suite executed and evidence was recorded.
version_refstringyesThe version reference exactly as requested.
suite_digeststring or nullnoDigest of the suite that was executed, when compiled.
runVerificationRunRecord or nullnoImmutable evidence record when ok is true.
createdboolean or nullnoTrue when evidence was newly written; False on idempotent replay.
errorSpecImportJobError or nullnoPopulated when ok is false: stable taxonomy code plus remediation.

ContractSuiteCompileRequest​

What to compile for the version named in the URL.

The options are wrapped rather than inlined so the request can grow a sibling field without changing the meaning of an existing body. An empty body compiles everything under the default options.

PropertyTypeRequiredDescription
optionsContractSuiteOptionsnoCompiler options. They are echoed on the manifest and hashed into its digest, so the same version compiled with the same options always yields the same suite.

ContractSuiteResponse​

The compiled suite for one version.

PropertyTypeRequiredDescription
okbooleanyesWhether a suite could be compiled at all.
version_refstringyesThe reference exactly as it was requested.
manifestContractSuiteManifest or nullnoThe compiled suite. Present whenever ok is true — including when it contains no cases, which is a real answer about a version that declares no operations.
errorSpecImportJobError or nullnoPopulated when ok is false: stable taxonomy code plus remediation.

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

ProviderVerificationRequest​

What to verify, against which deployment, and how much of it may be touched.

PropertyTypeRequiredDescription
target_refstringyesVerification target slug or id (ECA-1.2) naming the deployment to check.
optionsContractSuiteOptionsnoSuite compiler options; hashed into the suite digest the report and the evidence both record, so two reports with the same digest checked the same requests.
verificationProviderVerificationOptionsnoWhat this run may send. Safe methods only by default; mutating operations require both allow_mutating and a fixture naming the operation.
idempotency_keystring or nullnoEvidence retry key; forwarded to the verification-runs store.
contextobjectnoNon-secret CI context (commit, branch, workflow URL). Never credentials.

ProviderVerificationResponse​

The outcome of one provider verification attempt.

PropertyTypeRequiredDescription
okbooleanyesWhether the suite executed and a report was produced.
version_refstringyesThe version reference exactly as requested.
suite_digeststring or nullnoDigest of the suite that was executed, when compiled.
reportConformanceReport or nullnoThe conformance report when ok is true.
storedConformanceReportRecord or nullnoThe persisted report, when it was written. Null — with report still populated — when persistence was not possible, so a caller is never handed a report id that does not exist.
runVerificationRunRecord or nullnoThe immutable ECA-1.3 evidence behind the report.
createdboolean or nullnoTrue when evidence was newly written; False on idempotent replay.
errorSpecImportJobError or nullnoPopulated when ok is false: stable taxonomy code plus remediation.

ResolveTargetRequest​

What a runner says when it selects a target.

PropertyTypeRequiredDescription
suite_digeststring or nullnoThe ECA-1.1 suite digest this run will execute. Recorded on the audit entry so a target selection can be tied to the exact contract it was selected for.

ResolvedTarget​

A target selected for a run: identity, endpoint, policy, and a credential reference.

This is the object an ECA-2.1 runner executes against and the one ECA-1.3 records the identity of. It is deliberately the same secret-free shape as the stored record plus the resolution's own facts — because "what the run used" and "what is configured" should never be two different truths.

PropertyTypeRequiredDescription
target_idstringyesThe resolved target's id — the run's target identity.
slugstringyesThe handle that was resolved.
namestringyesDisplay name at resolution time.
environmentstringyesEnvironment class.
network_classstringyespublic or private.
base_urlstringyesNormalized base URL to join relative paths onto.
policyVerificationPolicyyesThe policy the runner must honour.
authTargetAuthReferenceyesWhere the runner obtains the credential. No credential material is returned by this API — an env reference is read from the runner's own environment, and a stored one is unsealed only at request time by the runner service.
resolved_atstring (date-time)yesWhen the target was resolved.

TargetAuditResponse​

The audit ledger read.

PropertyTypeRequiredDescription
entriesarray of TargetAuditEntrynoLedger entries, newest first.
countintegeryesHow many entries were returned.

VerificationRunInput​

A complete run, as a runner submits it once execution has finished.

Evidence is recorded in one shot rather than opened, appended to, and closed: that is what makes immutability enforceable rather than aspirational (V212 rejects every UPDATE), and it means a half-written run can never be mistaken for a finished one.

PropertyTypeRequiredDescription
target_refstringyesThe verification target this run executed against — its slug or its id. Recorded as an identity snapshot, so a later rename or retirement cannot rewrite the evidence.
suite_digeststringyesThe ECA-1.1 manifest digest that was executed (sha256:<hex>).
suite_schema_versioninteger or nullnoManifest envelope version of the executed suite.
suite_compiler_versioninteger or nullnoCompiler rules version of the executed suite.
suite_case_countinteger or nullnoHow many cases the manifest declared. Recorded so a run that executed fewer is visibly partial rather than silently so.
runner_namestringyesWhich runner produced the evidence.
runner_versionstring or nullnoRunner version, so a behaviour change is attributable.
started_atstring (date-time)yesWhen the run began.
finished_atstring (date-time)yesWhen the run ended.
outcomestring or nullnoOptional declared verdict. It is checked against the outcome derived from the operation records and refused when it disagrees; only cancelled — which no record can imply — is taken on the runner's word.
sourceobjectnoProvenance of the compiled suite (artifact kind, reference, revision, version label), as the manifest reports it.
contextobjectnoNon-secret CI context (commit, branch, workflow URL). Never credentials.
idempotency_keystring or nullnoRetry key. A runner that uploads evidence and loses the response can repeat the request with the same key and get the original run back instead of a duplicate.
operationsarray of OperationResultInputnoOne record per executed case.
artifactsarray of ArtifactReferenceInputnoRun-level artifact references (the runner log, a summary report).
mockMockAttestationInput or nullnoRelease-proof mock attestation (PMR-3.2): the immutable bundle digest the run was served from, the runtime version, the conformance corpus and result, and every fixture-pack digest. Attach it verbatim from apiome-mock attest. A run against a mock environment that omits it is recorded as an explicitly missing mock verification rather than as silence.

VerificationRunListResponse​

A page of run summaries.

PropertyTypeRequiredDescription
runsarray of VerificationRunSummarynoMatching runs, newest first.
countintegeryesHow many runs were returned.

VerificationRunRecord​

A run with its full detail — what a read of one run, and both exporters, work from.

PropertyTypeRequiredDescription
idstringyesRun id — what a gate decision cites as its evidence.
tenant_idstringyesTenant that owns the evidence.
suite_digeststringyesThe executed ECA-1.1 manifest digest.
suite_schema_versioninteger or nullnoManifest envelope version.
suite_compiler_versioninteger or nullnoCompiler rules version.
suite_case_countinteger or nullnoCases the manifest declared.
target_idstring or nullnoTarget used, when it still exists.
target_slugstringyesTarget handle at run time.
target_environmentstringyesEnvironment class at run time.
target_network_classstringyespublic or private, at run time.
target_base_urlstringyesBase URL at run time.
runner_namestringyesWhich runner produced the evidence.
runner_versionstring or nullnoRunner version.
recorded_bystring or nullnoUser who recorded the evidence.
actor_labelstring or nullnoActor email/name at the time.
actor_kindstringnouser, api_key, or system.
started_atstring (date-time) or nullnoWhen the run began.
finished_atstring (date-time) or nullnoWhen the run ended.
duration_msintegernoWall-clock duration in milliseconds.
outcomestringyespassed, failed, errored, or cancelled.
countsmap of integernototal, passed, failed, errored, skipped — always summing to total.
sourceobjectnoProvenance of the compiled suite.
contextobjectnoNon-secret CI context.
idempotency_keystring or nullnoCaller-supplied retry key.
created_atstring (date-time) or nullnoWhen the evidence was recorded (server clock).
operationsarray of OperationRecordnoCase records, in stored order.
artifactsarray of ArtifactRecordnoRun-level artifact references.
mockMockAttestationRecord or nullnoThe run's mock attestation (PMR-3.2). Present whenever the run named a mock — carrying status: missing with a reason when nothing was attested — and null for a run that had nothing to do with a mock.

VerificationScheduleInput​

A complete schedule definition, as a caller supplies it on create.

PropertyTypeRequiredDescription
slugstringyesStable handle CI and the UI address the schedule by.
namestringyesHuman-readable display name.
descriptionstring or nullnoOperator note: what this schedule is watching, and why.
version_refstringyesproject/{slug}/{version} or catalog/{item}/{version} to verify.
target_refstringyesVerification target slug or id (ECA-1.2) naming the deployment to check.
cadenceanynoHow often to run: a number of seconds, or one of 5m, 15m, 30m, hourly, 6h, 12h, daily, weekly.
enabledbooleannoWhether the schedule ticks. A paused schedule keeps its history.
alert_on_recoverybooleannoNotify when a drifting deployment verifies clean again.
optionsContractSuiteOptionsnoECA-1.1 compiler options, hashed into the suite digest each run records.
verificationProviderVerificationOptionsnoWhat each run may send. Safe methods only by default; mutating operations require both allow_mutating and a fixture naming the operation, and a fixture carrying a credential header is refused before it is stored.

VerificationSchedulePatch​

A partial update. Every field is optional; only what is set is changed.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
descriptionstring or nullnoFree-text description.
cadenceany or nullnoNew cadence (seconds or preset).
enabledboolean or nullnoPause or resume the schedule.
alert_on_recoveryboolean or nullnoAlert On Recovery.
optionsContractSuiteOptions or nullnoOptions.
verificationProviderVerificationOptions or nullnoVerification.

VerificationScheduleRecord​

A stored schedule, as every reader sees it.

There is no redacted variant: a schedule holds a reference to a target, and the target holds a reference to a credential, so nothing here can be a secret.

PropertyTypeRequiredDescription
idstringyesSchedule id.
tenant_idstringyesTenant that owns it.
slugstringyesStable handle.
namestringyesDisplay name.
descriptionstring or nullnoOperator note.
version_refstringyesVersion reference verified on each tick.
target_idstringyesThe verification target's id.
target_slugstringyesThe target's handle at definition time.
cadence_secondsintegeryesInterval between ticks, in seconds.
enabledbooleanyesWhether the schedule ticks.
alert_on_recoverybooleanyesWhether recovery notifies.
optionsContractSuiteOptionsnoCompiler options each run uses.
verificationProviderVerificationOptionsnoRun options each tick uses.
last_run_atstring (date-time) or nullnoWhen the schedule last ticked, whatever the outcome.
last_statusstring or nullnopassed, failed, or errored; null before the first tick.
last_success_atstring (date-time) or nullnoWhen it last verified clean — the freshness anchor.
last_report_idstring or nullnoThe newest conformance report this schedule produced.
consecutive_failuresintegernoUnhealthy ticks since the last clean one.
run_countintegernoTicks recorded for this schedule.
alert_statestringnook, or alerting while drift is outstanding.
alert_fingerprintstring or nullnoDigest of the violation set last alerted on.
last_alert_atstring (date-time) or nullnoWhen an alert was last sent.
freshness_secondsinteger or nullnoSeconds since the last clean verification, computed at read time. Null when this schedule has never verified clean — which a gate must read as 'unknown', never as 'fresh'.
created_atstring (date-time) or nullnoWhen it was defined.
updated_atstring (date-time) or nullnoWhen it last changed.
created_bystring or nullnoUser who defined it.
updated_bystring or nullnoUser who last changed it.

VerificationScheduleRunRecord​

One recorded tick — the write-once history row, as a reader sees it.

PropertyTypeRequiredDescription
idstringyesRun-history row id.
tenant_idstringyesTenant that owns it.
schedule_idstringyesThe schedule that ticked.
report_idstring or nullnoThe conformance report, when one was produced and stored.
run_idstring or nullnoThe ECA-1.3 evidence run behind the report.
statusstringyespassed, failed, or errored.
error_codestring or nullnoSet only when the run could not be executed at all (the version stopped compiling, the target was withdrawn). A deployment that answered wrongly is failed with no error code; one that never answered is errored with none either.
error_messagestring or nullnoRemediation text, when refused.
operations_totalintegernoOperations the specification declares.
operations_exercisedintegernoOperations that received a request.
operations_failedintegernoExercised operations that drifted.
coverage_percentnumbernoExercised over total, as a percent.
drift_countintegernoLocated disagreements observed.
drift_fingerprintstring or nullnoDigest of the violation set; null for a clean tick.
alertedbooleannoWhether this tick notified.
alert_reasonstring or nullnotransition, new-violations, or recovered.
alert_deliveriesintegernoWebhook deliveries enqueued for this tick's alert.
started_atstring (date-time) or nullnoWhen the tick began.
finished_atstring (date-time) or nullnoWhen it ended.
duration_msintegernoWall-clock duration in milliseconds.
created_atstring (date-time) or nullnoWhen it was recorded.

VerificationTargetInput​

A complete target definition, as a caller supplies it on create.

PropertyTypeRequiredDescription
slugstringyesStable handle used from the CLI and CI (--target staging).
namestringyesHuman-readable display name.
descriptionstring or nullnoOptional note about what this target is.
environmentstringnomock, development, test, staging, or production.
base_urlstringyesBase URL the suite's relative paths are joined onto.
network_classstringnopublic (must resolve to a globally routable address) or private (an internal target, which requires approval_reason).
approval_reasonstring or nullnoWhy a private-network target is justified. Required when network_class is private; the approver is the authenticated caller.
authTargetAuthReferencenoThe credential reference — never a credential.
policyVerificationPolicynoExecution and failure policy.
enabledbooleannoA disabled target stays defined but cannot be resolved.

VerificationTargetListResponse​

Every live target defined in the tenant.

PropertyTypeRequiredDescription
targetsarray of VerificationTargetRecordnoThe tenant's live targets, newest first.
countintegeryesHow many targets were returned.

VerificationTargetPatch​

A partial update. Every field is optional; omitted fields are left as they are.

auth and policy are replaced wholesale when present, because a half-applied credential reference (a new ref against an old kind) is exactly the kind of state that stores a secret in the wrong column.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
descriptionstring or nullnoFree-text description.
environmentstring or nullnoEnvironment.
base_urlstring or nullnoBase URL.
network_classstring or nullnoNetwork Class.
approval_reasonstring or nullnoApproval Reason.
authTargetAuthReference or nullnoAuth.
policyVerificationPolicy or nullnoPolicy.
enabledboolean or nullnoWhether the resource is active.

VerificationTargetRecord​

A stored target, as every reader sees it.

There is no redacted variant of this model because there is nothing to redact: the schema cannot hold credential material, so the full record is always safe to return.

PropertyTypeRequiredDescription
idstringyesTarget id — the identity an evidence row records.
tenant_idstringyesTenant that owns the target.
slugstringyesStable handle used from the CLI and CI.
namestringyesHuman-readable display name.
descriptionstring or nullnoOperator note.
environmentstringyesEnvironment class.
base_urlstringyesBase URL, normalized (no trailing slash).
network_classstringyespublic or private.
approved_bystring or nullnoUser who approved a private-network target.
approved_atstring (date-time) or nullnoWhen the private-network exception was approved.
approval_reasonstring or nullnoWhy a private-network target is justified.
authTargetAuthReferenceyesThe credential reference — never a credential.
policyVerificationPolicyyesExecution and failure policy.
enabledbooleanyesWhether the target may be resolved for a run.
created_bystring or nullnoUser who created the target.
updated_bystring or nullnoUser who last modified it.
created_atstring (date-time) or nullnoWhen it was defined.
updated_atstring (date-time) or nullnoWhen it last changed.
deleted_atstring (date-time) or nullnoSoft-delete timestamp; a retired target is still resolvable by id for the evidence rows that name it.