Patch release addressing #123: the client-certificate dashboard was unusable from the GUI.
This is the first tagged release since v2.3.7 — it folds in everything from v2.3.8, v2.3.9, and v2.4.0 (which were bumped in code but never tagged) plus the #123 fixes.
Bug fixes (v2.4.1)
- #123 405 Method Not Allowed creating a client certificate — the create form posted to
/api/client-certs, but that route is the list resource (GET only); the create endpoint lives at/api/client-certs/create. Repointed the fetch to the documented Swagger path (also matches the/createconvention used elsewhere in the API:/api/certificates/create,/api/backups/create). - Batch CSV upload was a dead button —
#submitBatchBtnrendered after CSV preview but had no click handler. Wired up a handler that POSTs{headers, rows}from the parsed CSV to/api/client-certs/batch, surfaces asuccessful/totaltoast (warning when any row failed), clears the preview, and reloads stats + list. CSRF still covered by the existing Origin/Referer check.
Notes for users hitting the issue
If the GUI is failing for you, also make sure the data volume is owned by 1000:1000 on the host — that's the UID/GID the container runs as.
For the rolled-up changes from v2.3.8 → v2.4.0 (concurrent-admin race fix, CSRF, hashed bearer token, DELETE cert, SSE, per-cert auto-renew, manual deploy hook trigger, and several issue fixes), see RELEASE_NOTES.md on main.
Full diff: v2.3.7...v2.4.1