Swindon Changes By Version¶
v0.7.8¶
- Log format is changed again (we don’t consider it stable though)
- Bugfix: another issue with Content-Range fixed
- Bugfix: fix occasional crash in name resolution code
v0.7.7¶
- Changed log format according to a new env_logger
- Bugfix: Content-Range generated on static was invalid previously
v0.7.6¶
- Add more detailed metrics for connection pools (
http-destination) - Separate metrics for each
http-destination - Internals: Swindon now rewrites cantal metrics on config reload
- Internals: We reread config in a separate thread (so config reload makes smaller or no latency spike and do not hold server when disk is slow)
v0.7.5¶
- All
listensettings are now updatable, i.e. swindon will rebind if the name resolves to different addresses or when config changes. - When swindon fails to listen on some address it will retry every second instead of waiting for configuration change
- Fixes broken
swindon-devwhen proxying is used
v0.7.4¶
- Bugfix: due to a bug in abstract-ns domain names with numbers were not resolved properly (in client protocols: replication, http destination…)
- Added a log message on start (to find restarts in log easier)
v0.7.3¶
- Bugfix: TTL on private lattice data introduced in v0.7.2 were sometimes not handled properly on auth, effectively leaving users unsubscribed right after authorization
- Bugfix: while we started to sync users activity properly in v0.7.2, the information from a replica wasn’t properly propagated to clients
v0.7.2¶
SwindonLatticeprotocol:- Added expires_in experimental API
- Private lattice data is now cleaned in 1 minute if unused, this removes a memory leak, but may be a problem if connection authorization works for longer that a minute
activeuser online status is now replicated better
- Previously when swindon couldn’t resolve name on startup it could crash connectin pool (http-destination) and never fix it again. Now it will retry name resolution indefinitely
v0.7.0¶
- [breaking] changes to
SwindonLatticeprotocol: - uses
/swindon/authorize_connectionand/swindon/session_inactiveAPI routes instead of ones prefixed by/tangle/previously - deprecated handler type
SwindonChatis removed, also droppedallow-empty-subprotocolsetting (the behavior can still be restored by usingcompatibility) - added
compatibilitysetting - The lattices
swindon.*are reserved, and can’t be subscribed to and updated using normal backend lattice API (oneswindon.useris already used as desribed above) - The
Authorizationheader has now prefix ofSwindon+jsonrather thanTangle - Responses to
authorize_connectionand method calls must containContent-Type: application/jsonheader, as well as requests to backend API endpoints that contain JSON data.
- uses
- [breaking] changes to
- Added register CRDT type (basically last-write-wins)
- User online status tracking is implemented in Swindon-lattice Protocol
- Added Mixins support
- [breaking] no
authorizationsection any more. You can add authorizer by adding@authorizer-namein the normal routing table. - [breaking] there is now
defaulthandler implicitly defined. You can override it and it will work everywhere where plain 404 were previosly returned - [breaking] there is now
defaultauthorizer. You can override it and it will apply for every route whenever not overridden by other authorizer - Added
AllowAllauthorizer (just to be explicit) - [bugfix] Updating only public part of lattice now delivers the changes to users
- Swindon now compiles correctly on Windows
- Many enhancements into file serving, in particular:
- Range requests are supported
- If-Modified-Since requests are supported
- If-None-Match requests are supported
- Only GET (and HEAD) requests serve file now, other methods are rejected
- Gzip (
.gz) and Brotli (.br) files are now served by default if file exists and user agent supports the encoding (including for!SingleFilehandler) - Directory indexes are now rendered (format of the directory index will probably change in future)
- VersionedStatic now sets cache control headers
content-typeis not required for!SingleFileanymore,- it’s guessed by extension as for
!Static
- [breaking]
text-charsetis nowutf-8by default - [breaking]
charset=is now added toapplication/javascripttoo (in addition to alltext/*as before) - Serving devices (special files like
/dev/null) returns 403, while previously might work
- The dot
.character is allowed inuser_id - Upgraded quire configuration library to the one based on the
serdecrate, this should not change anything user-visible, except some tweaks of error messages in configs. But can also have some edge cases.
Upgrading:
- Replace
SwindonChattoSwindonLattice - Set
compatibilityfield to desired level - Upgrade application to support both versions of APIs (there are no things that conflict with each other)
- Bump
compatibility - Remove support of the old API
Note: /swindon/ prefix was reserved (so you couldn’t call such methods
from frontend) in swindon since 0.6.0.