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
listen
settings 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-dev
when 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¶
SwindonLattice
protocol:- 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
active
user 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
SwindonLattice
protocol: - uses
/swindon/authorize_connection
and/swindon/session_inactive
API routes instead of ones prefixed by/tangle/
previously - deprecated handler type
SwindonChat
is removed, also droppedallow-empty-subprotocol
setting (the behavior can still be restored by usingcompatibility
) - added
compatibility
setting - The lattices
swindon.*
are reserved, and can’t be subscribed to and updated using normal backend lattice API (oneswindon.user
is already used as desribed above) - The
Authorization
header has now prefix ofSwindon+json
rather thanTangle
- Responses to
authorize_connection
and method calls must containContent-Type: application/json
header, 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
authorization
section any more. You can add authorizer by adding@authorizer-name
in the normal routing table. - [breaking] there is now
default
handler implicitly defined. You can override it and it will work everywhere where plain 404 were previosly returned - [breaking] there is now
default
authorizer. You can override it and it will apply for every route whenever not overridden by other authorizer - Added
AllowAll
authorizer (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!SingleFile
handler) - Directory indexes are now rendered (format of the directory index will probably change in future)
- VersionedStatic now sets cache control headers
content-type
is not required for!SingleFile
anymore,- it’s guessed by extension as for
!Static
- [breaking]
text-charset
is nowutf-8
by default - [breaking]
charset=
is now added toapplication/javascript
too (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
serde
crate, this should not change anything user-visible, except some tweaks of error messages in configs. But can also have some edge cases.
Upgrading:
- Replace
SwindonChat
toSwindonLattice
- Set
compatibility
field 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
.