You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Protected develop@622e5e6c3d534f230c390f10e3832efadfc01825 has CI, dependency review, SBOM and security workflows, but a fresh repository search found no dedicated release/provenance workflow, no artifact-attestation path, and no existing mightyETL issue owning reproducible release artifacts or provenance verification. The commercial loop's release policy is therefore stronger than the executable repository release evidence currently visible.
Status: planned.
This is a supply-chain/release-product gap, not permission to publish an artifact immediately. Current blockers such as #151 licensing, #121 source-identity controls, #162/#164 non-vacuous coverage, required security/review evidence, and protected-head integration remain independent prerequisites and must not be bypassed.
Product decision
A release is an explicit protected-head operation. mightyETL must not treat a green pull-request synthetic merge, an arbitrary workflow run, a locally built binary, or an SBOM by itself as releasable provenance.
No release workflow should be opened merely to manufacture attestation while the product cannot yet pass its protected release prerequisites.
Current GitHub-native feasibility
GitHub's current official artifact-attestation documentation provides a supported implementation path rather than requiring an invented signing service:
actions/attest@v4 can create artifact attestations for build outputs and container images;
attestation jobs require explicit least privilege such as id-token: write, contents: read, and attestations: write for the documented GitHub-native path;
SBOM attestations are supported;
consumers can verify provenance with gh attestation verify;
attestation statements bind build evidence such as repository/workflow/commit identity and must be verified rather than treated as proof merely because an attestation exists.
Use the current supported GitHub mechanism or a separately justified equivalent at implementation time; reverify versions and semantics before writing the workflow. Never copy an example action/version unpinned into protected release authority.
Required RCA before implementation
Inventory the actual distributable surface and establish one authoritative release contract:
Which outputs are commercially supported: Maven artifacts, runnable JARs, container images, compose bundle, migration files, API/event contracts, or another package?
Which artifact is the canonical installable unit for standalone operation and which artifacts compose the modular MSA profile?
How are versions synchronized across the root reactor, service artifacts, containers, machine-readable contracts, database migrations and CHANGELOG?
Can two clean builds from the same exact protected source produce byte-identical artifacts? If not, identify every nondeterministic input and decide whether reproducibility means byte identity or a rigorously bounded reproducible-build contract with normalized metadata.
Which database migrations and rollback/forward-recovery procedures must be included and rehearsed for a version?
Which compatibility matrix applies to Java, PostgreSQL, Kafka/Debezium, connector/runtime dependencies and supported deployment profiles?
What rollback means after an irreversible database or external-side-effect boundary?
Which workflow/ref is authorized to publish: protected branch/tag only, never an arbitrary PR ref or synthetic merge.
How tag/version publication is made race-safe so the attested digest, release tag and released bytes cannot refer to different source heads.
Bounded remediation options
Preferred architecture
After prerequisites are integrated, create one protected release workflow whose source is an exact immutable integrated ref and whose jobs are separated by authority:
build/test authority — read-only source checkout bound to the release SHA; execute the same full CI/security/coverage/package/migration/compatibility acceptance required by repository policy or consume immutable accepted evidence only when identity equivalence is provable;
package authority — produce canonical artifacts with deterministic metadata and explicit digests;
SBOM/license authority — create/validate SBOM and required LICENSE/NOTICE/provenance inventory without fabricating legal rights;
attestation authority — obtain only the minimal GitHub/OIDC permissions needed to attest the already-built immutable digest; no source mutation;
publication authority — publish only an already-validated/attested digest from the exact expected source/tag; fail closed if the protected ref or release identity changes;
verification authority — independently verify the published artifact digest and attestation after publication.
Acceptable alternative
Use another maintained provenance/signing system only if it provides equivalent or stronger source/workflow/artifact identity, secret handling, verification, revocation/incident handling and acquisition evidence, and its operational dependency is explicitly accepted by ADR.
Reject
publishing from pull_request synthetic merge revisions;
signing/attesting a mutable filename without digest binding;
producing provenance before tests/security/coverage and then replacing the artifact;
reusing an SBOM from another head/base;
letting a model-executing job hold release credentials merely for convenience;
long-lived static signing secrets when supported OIDC/ephemeral identity can meet the requirement;
latest-only container publication as release identity;
changing branch protection or required gates to make a release workflow pass;
claiming reproducibility because one build succeeded;
Before production release automation, add fail-first workflow/package contracts proving the protected repository currently lacks the required boundary. Final acceptance must prove at minimum:
workflow can run only from the intended protected immutable release identity and records the exact source SHA;
PR synthetic merge/event ref cannot enter the publication path;
package/container manifests and application version agree with the release version;
clean supported-environment builds produce the declared reproducibility result, with nondeterministic inputs either eliminated or explicitly normalized and tested;
generated artifact digest is captured before attestation and publication;
SBOM corresponds to that exact artifact/source and includes available license metadata;
database migrations are ordered, upgrade-rehearsed and accompanied by an explicit rollback or forward-recovery boundary;
provenance/attestation is generated for the immutable digest with minimal permissions and no model/reviewer credential reuse;
gh attestation verify or an equivalent independent verifier succeeds against the published artifact and expected repository identity;
tampered bytes, wrong repository/workflow identity, wrong source SHA and wrong release version fail verification;
publication is expected-head/digest safe and cannot silently release another actor's newer branch/tag state;
post-publication verification fetches the actual released artifact/container digest rather than trusting the upload response;
failure before publication leaves no partial release; failure after publication has a documented incident/yank/revoke/supersede procedure appropriate to the package channel;
CHANGELOG/release notes contain only behavior integrated on the exact protected source and never active_pr claims;
qualifying independent non-author review and release approval satisfy live governance without self-approval or synthesized identities.
Reproducibility evidence
Do not reduce reproducibility to one checksum assertion. The test plan should identify and control, where applicable:
compiler/JDK and Maven versions;
dependency and plugin resolution;
timestamps, archive ordering and file modes;
generated manifests/build metadata;
container base-image digests and build context;
architecture/platform variance;
generated API/event/schema artifacts;
migration file contents/order;
environment-dependent configuration that must remain outside artifacts.
Record the exact reproducibility model and any residual nondeterminism in canonical release/provenance documentation.
Documentation / traceability
Issue #159 already requires a discoverable release/provenance authority. The integrated release slice must update or explicitly index:
PRD/TRD release requirements;
Architecture deployment/release authority;
Security/Threat Model for supply-chain compromise and credential boundaries;
Test Strategy for reproducibility/verification;
Operability runbook including rollback/yank/incident response;
traceability from requirement → workflow → test → artifact → attestation → release.
Sequencing
Do not open the release workflow implementation while an exact release cannot satisfy its prerequisites. Re-evaluate after #121 source-identity controls, #162/#164 non-vacuous coverage, #151 licensing posture, machine-readable contract integration as applicable, and the relevant product/security stack have stabilized on protected history. A waiting release issue never blocks unrelated product/security work.
Buyer / acquisition gap
Protected
develop@622e5e6c3d534f230c390f10e3832efadfc01825has CI, dependency review, SBOM and security workflows, but a fresh repository search found no dedicated release/provenance workflow, no artifact-attestation path, and no existing mightyETL issue owning reproducible release artifacts or provenance verification. The commercial loop's release policy is therefore stronger than the executable repository release evidence currently visible.Status:
planned.This is a supply-chain/release-product gap, not permission to publish an artifact immediately. Current blockers such as #151 licensing, #121 source-identity controls, #162/#164 non-vacuous coverage, required security/review evidence, and protected-head integration remain independent prerequisites and must not be bypassed.
Product decision
A release is an explicit protected-head operation. mightyETL must not treat a green pull-request synthetic merge, an arbitrary workflow run, a locally built binary, or an SBOM by itself as releasable provenance.
The target release boundary is:
No release workflow should be opened merely to manufacture attestation while the product cannot yet pass its protected release prerequisites.
Current GitHub-native feasibility
GitHub's current official artifact-attestation documentation provides a supported implementation path rather than requiring an invented signing service:
actions/attest@v4can create artifact attestations for build outputs and container images;id-token: write,contents: read, andattestations: writefor the documented GitHub-native path;gh attestation verify;Primary documentation:
Use the current supported GitHub mechanism or a separately justified equivalent at implementation time; reverify versions and semantics before writing the workflow. Never copy an example action/version unpinned into protected release authority.
Required RCA before implementation
Inventory the actual distributable surface and establish one authoritative release contract:
Bounded remediation options
Preferred architecture
After prerequisites are integrated, create one protected release workflow whose source is an exact immutable integrated ref and whose jobs are separated by authority:
Acceptable alternative
Use another maintained provenance/signing system only if it provides equivalent or stronger source/workflow/artifact identity, secret handling, verification, revocation/incident handling and acquisition evidence, and its operational dependency is explicitly accepted by ADR.
Reject
pull_requestsynthetic merge revisions;latest-only container publication as release identity;TDD / release acceptance
Before production release automation, add fail-first workflow/package contracts proving the protected repository currently lacks the required boundary. Final acceptance must prove at minimum:
gh attestation verifyor an equivalent independent verifier succeeds against the published artifact and expected repository identity;active_prclaims;Reproducibility evidence
Do not reduce reproducibility to one checksum assertion. The test plan should identify and control, where applicable:
Record the exact reproducibility model and any residual nondeterminism in canonical release/provenance documentation.
Documentation / traceability
Issue #159 already requires a discoverable release/provenance authority. The integrated release slice must update or explicitly index:
Sequencing
Do not open the release workflow implementation while an exact release cannot satisfy its prerequisites. Re-evaluate after #121 source-identity controls, #162/#164 non-vacuous coverage, #151 licensing posture, machine-readable contract integration as applicable, and the relevant product/security stack have stabilized on protected history. A waiting release issue never blocks unrelated product/security work.