Skip to content

fix(deploy): replace archived MinIO with SeaweedFS in compose and e2e - #180

Open
cubeorgdev[bot] wants to merge 2 commits into
mainfrom
fix/replace-minio
Open

cubeorgdev[bot] wants to merge 2 commits into
mainfrom
fix/replace-minio

Conversation

@cubeorgdev

@cubeorgdev cubeorgdev Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #179

The MinIO images on quay.io/minio/* now return 401 to anonymous pulls, which breaks nightly End-to-end on main. The same images are also used by e2e-slim, the native overlay, and the local Compose stack.

What changed

  • Server: chrislusf/seaweedfs:4.53 running weed mini (Apache-2.0), with S3 on :9000.
  • Init: amazon/aws-cli:2.39.6 replaces mc. It runs mb only if head-bucket fails, so reruns don't fail. For the native overlay it also does cp and put-bucket-policy. Both images are pinned by digest.
  • Services are renamed minio/minio-init → s3/s3-init, and the credentials become neutral blue-local values.
  • deploy/docker-compose.yml: the credentials are now BLUE_S3_ACCESS_KEY / BLUE_S3_SECRET_KEY (the defaults still work, so .env stays optional), the data volume is s3-data, and the admin UI is on :9001 behind a login with the same credentials.
  • e2e-slim: E2E_SLIM_MINIO_URL → E2E_SLIM_S3_URL. The fixtures now point at http://s3:9000. Docs for next are updated; the versioned docs are untouched.

Spike
I ran weed 4.53 locally with the same aws-sdk-s3 versions as blob.rs:

  • presigned PUT through a different public host, with signed x-amz-meta-sha256: works, and tampered metadata gets 403
  • HeadObject returns the metadata; presigned GET and HeadBucket work
  • the anonymous GetObject policy on health.txt only (other keys get 403) works and survives a restart
  • the init scripts are idempotent across reruns

I couldn't boot the stacks with Docker locally; I only checked them with docker compose config. The e2e workflows still need dispatching on this branch.

Security gates (second commit)
New advisories fail Security gates on main as well, so they're fixed here to unblock this PR:

  • Cargo lock bumps for rustls, rustls-webpki, webpki-roots, ctutils, and tokio. cargo deny advisories pass locally.
  • Dashboard: next 16.4.5, sharp, source-map-js, shadcn 4.23, plus in-range transitive updates. tsc, next build, and the 36 unit tests pass.
  • better-auth is held at 1.7.2. 1.7.7+ removes the issuer-scoped account model that our account.issuer NOT NULL schema depends on, so it needs a separate migration PR. Its three advisories need Magic Link, OAuth Proxy, or the Drizzle adapter, none of which we use, so they have exceptions that expire on 2026-12-05.

Follow-ups: the better-auth 1.7.x upgrade and account-schema migration; the Helm minio.deployStandalone evaluation store (it needs a values-API rename).

🤖 Generated with Claude Code

MinIO CE is archived and quay.io/minio/* now rejects anonymous pulls,
which breaks every stack that boots it. Run SeaweedFS (`weed mini`) as
the local S3 store and use the AWS CLI image to create buckets, seed
native fixtures, and apply the package bucket policy. Both images are
pinned by digest.

Services are renamed to s3/s3-init, credentials become neutral
blue-local values, deploy/docker-compose.yml reads BLUE_S3_ACCESS_KEY /
BLUE_S3_SECRET_KEY, and the e2e-slim harness uses E2E_SLIM_S3_URL.
The Helm evaluation store is left for a follow-up.

Fixes #179

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cubeorgdev

cubeorgdev Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

This pull request was created from a Blocks session.

View in dashboard | View on desktop

Created as a draft. To change this setting visit Git Settings.

@cubeorgdev

cubeorgdev Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Test from the pr-update-automation automation.

New advisories fail Security gates on main and on every PR.

- Cargo: rustls 0.23.46, rustls-webpki 0.103.16, webpki-roots 1.0.11,
  ctutils 0.4.8, tokio 1.54.1 (RUSTSEC-2026-0346..0349, 0381, 0382,
  0385, 0386).
- Dashboard: next 16.4.5, sharp 0.35.5, source-map-js 1.2.2 (trivy),
  and shadcn 4.23 plus in-range transitive updates (npm audit).
- better-auth stays on 1.7.2. 1.7.7+ drops the issuer-scoped account
  model the dashboard schema relies on, so that upgrade needs its own
  migration. Its three advisories need the Magic Link plugin, the OAuth
  Proxy plugin, or the Drizzle adapter, none of which Blue uses, so they
  get time-boxed exceptions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cubeorgdev

cubeorgdev Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Test from the pr-update-automation automation.

@tomi-stipancik
tomi-stipancik marked this pull request as ready for review November 9, 2026 21:11
@tomi-stipancik
tomi-stipancik requested a review from a team as a code owner November 9, 2026 21:11
@cubeorgdev

cubeorgdev Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Test from the pr-update-automation automation.

This branch has not been deployed

No deployments
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.

Compose and e2e stacks can't pull archived MinIO images (quay.io 401)

1 participant