• bvandeusen released this 2026-05-22 22:37:27 -04:00 | 766 commits to dev since this release

    First patch release of FabledCurator. Two follow-ups caught during the v26.05.22.0 production migration cut. Both unblock realistic-size migrations.

    Fixes

    pg_dump + zstd now present in the runtime image

    The FC-5 backup + rollback migrators shell out to pg_dump (DB snapshot) and tar --zstd (image-tree archive). The v26.05.22.0 image only had libpq5 (psycopg's client library) — neither pg_dump nor zstd was installed. Result: backup ran for ~10 minutes then surfaced [Errno 2] No such file or directory: 'pg_dump'. Patched the Dockerfile to install postgresql-client and zstd alongside the existing image deps.

    Quart request body cap lifted to 1 GiB

    Werkzeug's default form-memory cap (MAX_FORM_MEMORY_SIZE = 500 KB) was rejecting realistic IR exports — 281k image_tag associations from a real-world library produces a ~61 MB JSON export — with 413 Request Entity Too Large before the request reached the ir_ingest handler. MAX_CONTENT_LENGTH + MAX_FORM_MEMORY_SIZE now both set to 1 GiB in the app factory.

    Operator notes (post-pull)

    After your stack pulls :latest (force-update each service or redeploy the stack):

    1. Backup endpoint works. You can drop --skip-backup from ./FC-migrate.sh and the pre-migration snapshot will land in /images/_backups/.
    2. IR ingest accepts large exports. Re-run the migration — GS rows from your earlier ingest are preserved (idempotent on slug), so the GS step will skip and IR will go through.

    If you already started the migration on v26.05.22.0 and skipped the backup: just update services + re-run. The migrators are idempotent on natural keys.

    Downloads