Skip to content

rfc: job trigger parameters and webhooks - #143

Open
gbrlcrpntr wants to merge 4 commits into
concourse:masterfrom
gbrlcrpntr:job-trigger-parameters-and-webhooks
Open

rfc: job trigger parameters and webhooks#143
gbrlcrpntr wants to merge 4 commits into
concourse:masterfrom
gbrlcrpntr:job-trigger-parameters-and-webhooks

Conversation

@gbrlcrpntr

@gbrlcrpntr gbrlcrpntr commented Jul 14, 2026

Copy link
Copy Markdown

Proposes typed, job-local trigger parameters and provider-neutral JSON webhook filtering and mapping.

Rendered proposal

The PoC override-only/current-default rerun semantics are intentionally presented as an open design question for maintainer feedback.

@linux-foundation-easycla

linux-foundation-easycla Bot commented Jul 14, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

gbrlcrpntr added a commit to gbrlcrpntr/concourse-rfcs that referenced this pull request Jul 14, 2026
The upstream pull request assigned RFC number 143.

Rename the proposal directory accordingly and link the RFC PR from the rendered proposal.

RFC: concourse#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Jobs currently lack a declared input channel for manual and external triggers, which forces operators to model ad-hoc values as resources or pipeline-wide configuration.

Add typed job-local declarations, override-only build storage, runtime default resolution, an additive parameterized client API, and provider-neutral JSON webhook filtering and mapping. Preserve existing unparameterized clients and manual-trigger response semantics.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Operators need to supply declared values without dropping down to raw HTTP requests.

Add repeatable -v string and -y YAML flags to trigger-job, send their typed values through the additive client method, and retain the existing request shape when no values are supplied.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Parameterized jobs need a discoverable manual-trigger experience that communicates types, defaults, and the non-secret storage boundary.

Render typed forms on job and build pages, support previous-override reuse and reset-to-default controls, preserve direct triggering for ordinary jobs, and cover keyboard and browser interactions.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
The trigger path crosses configuration, build storage, execution, reruns, Fly, and unauthenticated webhook handling, so package tests alone do not establish the intended contract.

Exercise defaults, typed overrides, validation failures, override-only reruns with changed defaults, webhook filter and mapping behavior, token rejection, and the request-size limit on a fresh cluster.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Jobs currently lack a declared input channel for manual and external triggers, which forces operators to model ad-hoc values as resources or pipeline-wide configuration.

Add typed job-local declarations, override-only build storage, runtime default resolution, an additive parameterized client API, and provider-neutral JSON webhook filtering and mapping. Preserve existing unparameterized clients and manual-trigger response semantics.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Operators need to supply declared values without dropping down to raw HTTP requests.

Add repeatable -v string and -y YAML flags to trigger-job, send their typed values through the additive client method, and retain the existing request shape when no values are supplied.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Parameterized jobs need a discoverable manual-trigger experience that communicates types, defaults, and the non-secret storage boundary.

Render typed forms on job and build pages, support previous-override reuse and reset-to-default controls, preserve direct triggering for ordinary jobs, and cover keyboard and browser interactions.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
The trigger path crosses configuration, build storage, execution, reruns, Fly, and unauthenticated webhook handling, so package tests alone do not establish the intended contract.

Exercise defaults, typed overrides, validation failures, override-only reruns with changed defaults, webhook filter and mapping behavior, token rejection, and the request-size limit on a fresh cluster.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Reviewers need a reproducible build of the combined trigger-parameter and webhook proof of concept without treating it as a production release.

Add a fork-gated linux/amd64 GHCR workflow, immutable and moving tags, a minimal Compose stack, and a documented demo. Keep this personal publishing machinery separate from the eventual upstream implementation PRs.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <gabriel.carpenter@yellowbrick.com>
Concourse lacks a native way to declare typed, build-local values for manual and external job triggers.

Specify one parameter model shared by the API, Fly, web UI, and provider-neutral JSON webhooks. Keep override-only default resolution as the PoC behavior while making replay semantics a prominent design question, and leave secret and shared scopes to future work.

Discussion: https://github.com/orgs/concourse/discussions/9053

PoC: https://github.com/gbrlcrpntr/concourse/tree/job-vars-poc/poc
Signed-off-by: Gabriel Carpenter <50801399+gbrlcrpntr@users.noreply.github.com>
The upstream pull request assigned RFC number 143.

Rename the proposal directory accordingly and link the RFC PR from the rendered proposal.

RFC: concourse#143
Signed-off-by: Gabriel Carpenter <50801399+gbrlcrpntr@users.noreply.github.com>
@gbrlcrpntr
gbrlcrpntr force-pushed the job-trigger-parameters-and-webhooks branch from cf57f15 to f575dd8 Compare July 14, 2026 14:06
Clarify how job vars extend the local var scope while remaining distinct from across matrices, instanced pipelines, var sources, and versioned resources.

Document the deliberate difference between resource check webhooks and delivery-driven trigger webhooks, including reconciliation, duplicate delivery, token resolution, and current-value rerun semantics.

RFC: concourse#143
Signed-off-by: Gabriel Carpenter <50801399+gbrlcrpntr@users.noreply.github.com>
Extend the generic webhook proposal with explicit one-of matching, HMAC-SHA256 authentication, bounded provider delivery IDs, and idempotent redelivery behavior.

Recommend mapping and checking out immutable pull request head SHAs. Record correlated superseding as future scheduler work rather than part of the PoC.

Discussion: https://github.com/orgs/concourse/discussions/9053

PoC: https://github.com/gbrlcrpntr/concourse/tree/job-vars-poc/poc
Signed-off-by: Gabriel Carpenter <50801399+gbrlcrpntr@users.noreply.github.com>
gbrlcrpntr added a commit to gbrlcrpntr/concourse that referenced this pull request Jul 14, 2026
Make generic webhook triggers practical for pull request events by adding explicit one-of filters, HMAC-SHA256 request authentication, and delivery-ID deduplication. Persist only opaque delivery identity and return the original build for redeliveries, including concurrent retries.

Update the PoC and testflight scenario to carry pull request identity and check out the immutable head SHA. Keep correlated superseding out of this change.

Discussion: https://github.com/orgs/concourse/discussions/9053

RFC: concourse/rfcs#143
Signed-off-by: Gabriel Carpenter <50801399+gbrlcrpntr@users.noreply.github.com>
@taylorsilva

Copy link
Copy Markdown
Member

Thanks for submitting an RFC! We have a release upcoming at the end of this month so don't think I'll dig into this until August. It's on my PR review board, so I'll eventually get to it though.

@gbrlcrpntr

Copy link
Copy Markdown
Author

Thanks, new to concourse so will be great to get some more experienced insight.
This was logic needed for some internal PoCs, thought it would be best to try to upstream.
I'm working on sorting out the EasyCLA failure, need to jump through some hoops first.

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

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants