-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generalize Fulcio OIDs, clarify guidance for providers #1182
Comments
cc @trevrosen @feelepxyz @laurentsimon who might also be interested |
@marshall007 thanks for writing this up!
This was not my intention when writing the initial proposal on these extensions and we should look to clarify this in the docs! I agree that we should primarily reference the "pipeline"/workflow-level/ invocations and their source config. I'm keen to see if we can make this work with the current extensions and/or new ones without changing existing extensions to reducing any breaking changes and churn. Checking your list:
|
Ahh I see this was changed here for GitLab: https://github.com/sigstore/fulcio/pull/1183/files It sounds like |
@marshall007 if using a external pipeline config in gitlab, e.g. |
@feelepxyz I agree with your suggestions on the claims we (GitLab) should use to populate the OIDs. I think I am primarily hung up on the naming of things. For example, as I understand it, I found the If all top-level execution is referred to as I don't have super strong opinions here, this is just my anecdotal feedback. I always have to go back and cross-reference with the OID mapping table to remember what the intent is/was. I felt like more descriptive/consistent naming might help with that. |
Assigns new `pipeline_ref/sha` claims to `Build Config` and `Build Signer` related OIDs. Depends on https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121597 Related to sigstore#1182
Assigns new `pipeline_ref/sha` claims to `Build Config` and `Build Signer` related OIDs. Depends on https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121597 Related to sigstore#1182 Signed-off-by: marshall007 <[email protected]>
* Update GitLab claim mappings for build configs Assigns new `pipeline_ref/sha` claims to `Build Config` and `Build Signer` related OIDs. Depends on https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121597 Related to #1182 Signed-off-by: marshall007 <[email protected]> * update docs to reflect GitLab claim mappings Signed-off-by: marshall007 <[email protected]> * updates to match new claim names Signed-off-by: marshall007 <[email protected]> * fix issuer test Signed-off-by: marshall007 <[email protected]> * address PR feedback Signed-off-by: marshall007 <[email protected]> * fix failing grpc server tests Signed-off-by: marshall007 <[email protected]> * fix lint error Signed-off-by: marshall007 <[email protected]> --------- Signed-off-by: marshall007 <[email protected]>
Description
All build systems have some concept of a "pipeline", which is typically composed of multiple "jobs". Some providers support reusable/identifiable "job" definitions or even composing reusable "steps" together to form "jobs", but this is a less common/consistent abstraction.
Most (probably all) build systems can easily generate URI references to "pipeline"-level invocations and their source config, but "job"-level metadata is highly dependent on how "pipeline" configuration is defined. This is challenging to do if pipeline configurations can be composed dynamically at runtime, for example.
Fulcio OIDs are loosely based on the assumption that providers can reliably produce immutable references to "job"-level configuration. When that is not possible, the guidance is not very clear. I think we should consider standardizing OIDs that map more cleanly to both "pipeline" and "job" abstractions to:
I propose something along the lines of:
Run Invocation URI
(required): uniquely identifies pipeline/workflow execution (typically a human-readable summary page)Run Config URI/Digest
(required): actual workflow/pipeline configuration refRun Trigger
: workflow/pipeline trigger/dispatch eventBuild Invocation URI
: uniquely identifies job execution (typically a human-readable summary page)Build Config URI/Digest
: actual build/job configuration ref: no longer necessary. the same asBuild Signer URI/Digest
Run/Build Config
.Build
is preferred, butRun
is acceptable if that's all the provider can supportNote the current intent behind
Run Invocation URI
is to uniquely identify the run, in practice it is typically represented by a "summary page" for human users to view directly. I think we should embrace thisInvocation URI
terminology and definition as this ends up being quite useful for UI implementations (like "view build summary" links in the npm registry UI)./cc @wlynch
The text was updated successfully, but these errors were encountered: