Skip to content

build: drop Gradle dependency verification (repairs main)#34

Merged
wolpert merged 1 commit into
mainfrom
fix/drop-gradle-dependency-verification
Jun 6, 2026
Merged

build: drop Gradle dependency verification (repairs main)#34
wolpert merged 1 commit into
mainfrom
fix/drop-gradle-dependency-verification

Conversation

@wolpert
Copy link
Copy Markdown
Contributor

@wolpert wolpert commented Jun 6, 2026

Why

main is currently broken. PR #33 (auto-merged Dependabot gradle group) bumped aws-sdk2.46.5 and flyway12.8.1 in the version catalog, but Dependabot cannot regenerate the verification-metadata.xml added in #30. So the catalog and the pinned checksums drifted, and dependency verification now fails for ~50 artifacts on every PR built from main — including the npm-only #32, whose build check fails on Gradle verification it never touched.

Decision: drop Gradle dependency verification

With Dependabot auto-merging patch/minor Gradle bumps, keeping verification would require auto-regenerating the checksums from whatever was just downloaded and approving it unattended. That notarizes the artifact rather than vetting it — no protection against a malicious dependency release (the real threat) — while breaking the build on every bump. The value of checksum pinning comes from a human reviewing the pin; automated approval removes that tripwire.

The threat it was meant to address is better served by what we keep.

Changes

  • Remove gradle/verification-metadata.xml.
  • Update docs/threat-model.md "Supply chain" section with the rationale and revised residual-risk note.

Kept from #30 (the low-maintenance, on-threat controls)

  • SHA-pinned GitHub Actions
  • Wrapper distributionSha256Sum + wrapper-validation (pins the Gradle distribution itself — no Dependabot conflict)
  • dependency-review-action (advisory-DB gate — answers "is this update known-bad?")
  • Scoped Dependabot auto-merge (patch/minor only, no Actions)
  • Signed, maintainer-gated releases

Validation

./gradlew testClasses --refresh-dependenciesBUILD SUCCESSFUL, zero verification failures; aws-sdk 2.46.5 / flyway 12.8.1 resolve cleanly.

Follow-ups (repo settings — not in this PR)

🤖 Generated with Claude Code

Removes gradle/verification-metadata.xml (added in #30). With Dependabot
auto-merging patch/minor Gradle bumps, the checksum metadata would have to be
regenerated automatically from whatever was just downloaded and then approved
unattended — which notarizes the artifact rather than vetting it. That provides
no protection against a malicious dependency *release* (the actual threat, which
dependency-review-action covers via the advisory DB) while breaking the build on
every bump: a bump updates the version catalog but cannot update the checksum
file, so verification fails.

This also repairs main: an auto-merged gradle bump (#33: aws-sdk 2.46.5, flyway
12.8.1) had drifted from the pinned 2.46.4/12.8.0 checksums, failing verification
for ~50 artifacts on every PR (including the npm-only #32).

Kept: SHA-pinned Actions, wrapper distributionSha256Sum + wrapper-validation
(pins the Gradle distribution itself, no Dependabot conflict), dependency-review,
scoped auto-merge, signed releases. Threat model updated to record the rationale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@wolpert wolpert merged commit 3db8c50 into main Jun 6, 2026
3 checks passed
@wolpert wolpert deleted the fix/drop-gradle-dependency-verification branch June 6, 2026 15:31
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.

1 participant