rfc: job trigger parameters and webhooks - #143
Open
gbrlcrpntr wants to merge 4 commits into
Open
Conversation
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
force-pushed
the
job-trigger-parameters-and-webhooks
branch
from
July 14, 2026 14:06
cf57f15 to
f575dd8
Compare
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>
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. |
Author
|
Thanks, new to concourse so will be great to get some more experienced insight. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.