Skip to content

Publish hardened Postgres runtime (#9) - #13

Merged
AntoineToussaint merged 7 commits into
mainfrom
issue-9-postgres-image-has-high-critical-os-package-cves
Jul 28, 2026
Merged

Publish hardened Postgres runtime (#9)#13
AntoineToussaint merged 7 commits into
mainfrom
issue-9-postgres-image-has-high-critical-os-package-cves

Conversation

@AntoineToussaint

@AntoineToussaint AntoineToussaint commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Closes #9.

Summary

  • Replace the vulnerable pgvector base with a reproducible PostgreSQL 17 Alpine runtime while preserving pgvector and the stock entrypoint contract.
  • Lock agent, CI, and releases to one immutable AMD64/ARM64 manifest so the tested and scanned bytes are the bytes consumers run.
  • Restrict package-write permissions to image publication and pin every reusable workflow/action involved in release handling.

Test plan

  • go test ./... -count=1 against the exact locked digest through a local registry
  • go vet ./...
  • actionlint .github/workflows/ci.yml .github/workflows/releaser.yml
  • Produce the same registry digest in two uncached builds using the pinned BuildKit image
  • Start the exact image as root and UID 70, create pgvector 0.8.5, and execute a vector-distance query
  • Scan Linux/AMD64 and Linux/ARM64 with Trivy at HIGH/CRITICAL severity (0 findings on both)
  • Push the locked multi-architecture digest in CI and verify the CI-built digest matches the lock
  • Make the existing GHCR package public in Package settings, then rerun CI so its anonymous pull/scan/tag gate completes

Making the existing GHCR package public is an irreversible repository-owner setting change. The package is currently private, and CI therefore stops at the anonymous-consumer check without publishing the human-readable runtime tag.

@AntoineToussaint
AntoineToussaint merged commit 5127de4 into main Jul 28, 2026
1 of 2 checks passed
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.

postgres image has HIGH/CRITICAL OS-package CVEs (fails codefly ci audit; blocks module-saas-starter#7)

1 participant