v2.8.0 2024-02-16
Commercial marker support, HTTPS support, and single-user authentication
Changelog
All changes: v2.7.1...v2.8.0
New
- Add the ability to manage ad/commercial markers (79e962f), and add some basic tests (fa997cf)
- Add the ability to require a username/password to access the app (af125ec), and integrate it into CLI-based setup (29b462c). See the commit message for more details on exactly what this entails.
- Add HTTPS support, with either PEM or PFX-based certificates (7e421c1).
- Add some basic rate limiting (dbf9abb).
- Add support for a
baseUrl
(224f6c8). This is helpful for e.g. reverse proxies that forwardhost:80/markerEdit
tohost:3232
. - Allow configurable host/port in Docker (currently untested) (f24eb37).
Fixed
- Switching between light and dark mode required a refresh to apply properly (af125ec).
- Database schema version wasn't properly recorded after upgrading from version 6 to 7 (af125ec).
- The server could crash if a
ServerError
was thrown with an invalid HTML error code (7e421c1). - AppData/DB path are hardcoded in Docker, so don't make them editable in client-side server settings dialog (486ffc9).
Tweaked
- Try to keep the server settings dialog's 'Apply' and 'Cancel' buttons in view, only scrolling the settings themselves.
- Use number inputs in the server settings dialog for inputs that are numbers.
- Don't
await
responses inserverMain
, as that was forcing the application to wait for one request to finish before processing another one. While this could be nice behavior for some operations to prevent race conditions, for the most part it just slows down the loading of resources (af125ec). - When using keyboard shortcuts to adjust marker offsets, if the change crosses between positive and negative offsets, always stop at '0' and '-0'. E.g. subtracting one second from "0.5" would first stop at 0,
then go to -0, then -1000 instead of immediately jumping to "-0.5. (55bdd75) - Bump static cache-bustable resources mas-age to 1 year (5058232).
Refactoring
- Refactor server config files (c8f6e7c).
- Change how tooltips are tracked (deaae37).
- Overhaul my homegrown element building system (deaae37).
Dev
- Refactor the build process to support multiple root files, as this is no longer a single-page site (index.html), it's now a two-page site (index.html and login.html).
- Nexe doesn't support ESM modules, so they must be copied into the external node_modules folder like sqlite3. This broke the 2.8.0-beta binaries (d4b664b).
Package Updates (5058232)
- Bump Express to 5.x and adjust for breaking changes
- Bump ESLint to 9.x, migrate .eslintrc.json to eslint.config.js
- Bump nexe to 4.0.0-rc.6 for Node 20 support
- Bump rollup to 4.x
- nexe does not work with Node 22 (new LTS). Lock in Node 20 (20.18.3 for pre-built binaries in this release)