Skip to content

Releases: thordin9/apotheke

v3.11.0

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 01 Nov 01:30

Note: groundwork for restoring a backup in chunks, for hosts that cap the size of a request. Chunked uploads will wait in the new folder DATA_DIR/uploads/restore (created on first use; give it as much free disk as your largest backup). Two new settings, RESTORE_CHUNK_KB (default 8192) and RESTORE_MAX_MB (default 520), set the chunk size and the largest backup. An upload without a request for an hour is removed; php spark apotheke:restore-sweep removes them from cron too. Nothing changes for the restore page or bin/restore.php.

Added

  • backup: add the chunked restore upload store (#205)

Maintenance

  • deploy: ci: scope the edge deploy token and tighten the storage merge (#208)

Full changelog: v3.10.0...v3.11.0

v3.10.0

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 01 Nov 00:10

Added

  • frontend: count page views on getapotheke.com with Counterscale, cookieless and only after Accept; a Cookie settings button in the footer withdraws consent in one click, and the privacy page describes what is recorded (#200)

Maintenance

  • adr: docs: add the P4 edge storage design (#203)
  • deploy: prepare P4 edge storage for apotheke-api, off by default: D1 DB and R2 STORAGE in the EU jurisdiction and the INSTALLATION Durable Object, merged in only behind EDGE_STORAGE_READY with host-only cookies, a validated fragment, a bounded smoke check and a flip checklist that requires the ADR-002 gate criteria (#204)

Full changelog: v3.9.2...v3.10.0

v3.9.2

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 22:40

Fixed

  • deploy: forward CORS_ALLOWED_ORIGINS to the apotheke-api container (#202)

Full changelog: v3.9.1...v3.9.2

v3.9.1

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 20:16

Fixed

  • frontend: tighten asset caching and release checks (#201)

Full changelog: v3.9.0...v3.9.1

v3.9.0

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 18:38

Added

  • frontend: a polished, modern look across the site and the app (#199)

Full changelog: v3.8.0...v3.9.0

v3.8.0

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 16:29

Added

  • frontend: one product across the landing page and the app (#198)

Maintenance

  • docs: add self-hosting on your own Cloudflare account (#197)

Full changelog: v3.7.2...v3.8.0

v3.7.2

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 15:06

Fixed

  • frontend: fill the privacy page operator from the footer (#196)

Full changelog: v3.7.1...v3.7.2

v3.7.1

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 13:30

Note: in the web UI an import is now shown only to the user who uploaded it and to admins. Other users see only their own imports in Recent imports, and opening someone else's import answers as a missing one would (404), as the API already does. Admins still see every import. Guests (visitors who are not signed in) can no longer upload a CSV import, on the page or through the API, even when the Guest role has Import: imports need a signed-in account.

Fixed

  • import: scope the import pages to their uploader or an admin (#195)

Maintenance

  • ci: accept Dependabot checkout bumps in deploy workflow test (#191)
  • ci: bump the github-actions group and disable deploy setup-node cache (#192)
  • ci: disable setup-node cache and checkout credentials in frontend jobs (#193)
  • frontend: chore: cookie consent banner (#194)

Full changelog: v3.7.0...v3.7.1

v3.7.0

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 03:30

Upgrade note: both Docker images now run the background jobs worker (php spark jobs:work) next to the web server, as www-data. Set APOTHEKE_JOBS_WORKER=0 to turn it off, for example when another container runs the worker. If you use the compose postgres profile, this release also stops the app from changing the owner of ./data/postgres on start (see Fixed).

Added

  • docker: run the background jobs worker in both images: apotheke-jobs-worker keeps php spark jobs:work running as www-data, restarts it after a failure with a 1–60 s backoff without stopping the web server, and stops cleanly on docker stop; APOTHEKE_JOBS_WORKER=0 turns it off (#190)
  • edge: set COOKIE_DOMAIN=getapotheke.com for apotheke-api (a non-secret var in edge/wrangler.jsonc, the hosted setting from the 3.6.1 upgrade note; it applies to the consent cookie only and never to the __Host- session cookie, which may not carry a Domain attribute); self-hosting keeps the host-only default. apotheke-api sets APOTHEKE_JOBS_WORKER=0: on Cloudflare, jobs will run through a Cron Trigger or Queues (#190)

Maintenance

  • ci: bump typescript from 5.9.3 to 7.0.2 in /edge in the edge group (#189)

Fixed

  • docker: the container no longer changes the owner of ./data/postgres to www-data on start. With the compose postgres profile that directory holds PostgreSQL's files inside the app's /data, so starting the app next to a new database could break its initialisation, and a later start took over the database's files. This bug is already in released versions (#190)

Full changelog: v3.6.1...v3.7.0

v3.6.1

Choose a tag to compare

@apotheke-releaser apotheke-releaser released this 31 Oct 01:46

Upgrade note: the consent cookie's domain is now the COOKIE_DOMAIN setting (empty by default: host-only) instead of a built-in getapotheke.com. Hosted installs must set COOKIE_DOMAIN=getapotheke.com (DevOps adds it to the hosted config), or the consent cookie no longer reaches the other getapotheke.com hosts. Self-hosted installs need no change. The session cookie never gets a Domain. See Cookie consent.

Fixed

  • consent: configurable consent cookie domain (#188)

Full changelog: v3.6.0...v3.6.1