Skip to content

[DR-520] docs: flat release-job validation config reference#10469

Open
avalcepina wants to merge 2 commits into
mainfrom
DR-520_flat_validation_config
Open

[DR-520] docs: flat release-job validation config reference#10469
avalcepina wants to merge 2 commits into
mainfrom
DR-520_flat_validation_config

Conversation

@avalcepina

Copy link
Copy Markdown
Contributor

Summary

Document the flat release-job validation config under type: release:

  • validation.enabled
  • webhooks[] (name, type: datadog or custom)
  • agents[] (name, prompt, optional tools and frequency)

Includes a full YAML example. Replaces the nested validation_policy documentation approach.

Companion to release-tracker PR: https://github.com/circleci/release-tracker/pull/2114

Linear: https://linear.app/circleci/issue/DR-520

Test plan

  • Preview configuration reference page renders correctly

Document validation.enabled, webhooks, and agents under type: release
jobs, replacing the nested validation_policy shape.

Co-authored-by: Cursor <cursoragent@cursor.com>
@avalcepina avalcepina requested review from a team as code owners June 11, 2026 06:23
@linear-code

linear-code Bot commented Jun 11, 2026

Copy link
Copy Markdown

DR-520

=== *<``job_name``>*

Each job consists of the job's name as a key and a map as a value. A name must be unique and case-insensitive within the `jobs` list. The value map has the following attributes:
Each job consists of the job's name as a key and a map as a value. A name must be case insensitive unique within a current `jobs` list. The value map has the following attributes:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds a bit awkward, maybe...

Suggested change
Each job consists of the job's name as a key and a map as a value. A name must be case insensitive unique within a current `jobs` list. The value map has the following attributes:
Each job consists of the job's name as a key and a map as a value. A name must be unique within a current `jobs` list. Job names are case insensitive. The value map has the following attributes:

Release jobs can optionally enable the deploy validation engine with a flat configuration (no nested `validation_policy` block).

* `validation.enabled` — when `true` and no `webhooks` or `agents` are listed, creates a default Datadog webhook validation named `default`.
* `webhooks` — optional list of webhook checks. Each entry requires `name` and `type` (`datadog` or `custom`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `webhooks` — optional list of webhook checks. Each entry requires `name` and `type` (`datadog` or `custom`).
* `webhooks`: Optional list of webhook checks. Each entry requires `name` and `type`. The `type` can be one of either `datadog` or `custom`.

The `no-op` type is used to configure a job that performs no actions and consumes no credits. `no-op` is commonly used to organize the order of operations within a workflow and make it easier to maintain. Only the `type` is required for a `no-op` type job, no further job configuration is required. For some examples of using `no-op` jobs, see the xref:guides:orchestrate:orchestration-cookbook.adoc#use-no-op-jobs-to-create-a-cleaner-workflow-graph[Orchestration Cookbook].
Release jobs can optionally enable the deploy validation engine with a flat configuration (no nested `validation_policy` block).

* `validation.enabled` — when `true` and no `webhooks` or `agents` are listed, creates a default Datadog webhook validation named `default`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `validation.enabled` — when `true` and no `webhooks` or `agents` are listed, creates a default Datadog webhook validation named `default`.
* `validation.enabled`: When `true` and no `webhooks` or `agents` are listed, creates a default Datadog webhook validation named `default`.


* `validation.enabled` — when `true` and no `webhooks` or `agents` are listed, creates a default Datadog webhook validation named `default`.
* `webhooks` — optional list of webhook checks. Each entry requires `name` and `type` (`datadog` or `custom`).
* `agents` — optional list of agentic checks. Each entry requires `name` and `prompt`; `tools` (default `datadog`) and `frequency` (default `5m`) are optional.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `agents` — optional list of agentic checks. Each entry requires `name` and `prompt`; `tools` (default `datadog`) and `frequency` (default `5m`) are optional.
* `agents`: Optional list of agentic checks. Each entry requires `name` and `prompt`; `tools` (default `datadog`) and `frequency` (default `5m`) are optional.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might put these in a table actually

* `webhooks` — optional list of webhook checks. Each entry requires `name` and `type` (`datadog` or `custom`).
* `agents` — optional list of agentic checks. Each entry requires `name` and `prompt`; `tools` (default `datadog`) and `frequency` (default `5m`) are optional.

Validation runs when any of `validation.enabled`, a non-empty `webhooks` list, or a non-empty `agents` list is set.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Validation runs when any of `validation.enabled`, a non-empty `webhooks` list, or a non-empty `agents` list is set.
Validation runs when any of the following are set:
* `validation.enabled` is true.
* A non-empty `webhooks` list.
* A non-empty `agents` list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants