mirror of
https://gitlab.com/glitchtip/glitchtip-backend.git
synced 2026-11-05 19:42:33 -05:00
MinIO's open-source server and client are archived upstream: the Docker
Hub repositories no longer resolve and dl.min.io returns 410, so
test-latest fails during container setup and compose.minio.yml breaks on
a fresh pull. Garage replaces it in both CI and local development.
Garage needs a config file -- it has no configless mode, even with
--single-node -- and GitLab CI services cannot mount files while the
upstream image is `scratch` with no shell to write one. garage/Dockerfile
bakes the config in, which is the only way to run it as a CI service.
`--single-node --default-bucket` then provisions the cluster layout,
access key and bucket at startup, so nothing has to be bootstrapped.
One bucket now serves both file uploads and cold storage, which is a
layout a self-hoster may well run: the two live under disjoint prefixes
(uploads/ and cold_storage/), so they share a bucket without colliding.
Adds the integration coverage that was missing entirely. Every existing
cold-storage test patches the backend to a local FileSystemStorage, so
nothing exercised enumeration over ListObjectsV2 or DuckDB reading back
over s3://. The new tests run against whatever AWS_S3_ENDPOINT_URL points
at and skip when unset.
They caught a real bug on the first run: DuckDB was never told which
region to sign with, so it built an empty credential scope
("<date>//s3/aws4_request"). MinIO ignored it; stricter servers reject it
as AuthorizationHeaderMalformed, which would have broken cold storage
against them. get_duckdb_connection now sets s3_region from the storage
backend.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>