- GHSA-gj85-q77q-5mw4 — Poll projected queries with their projection's fields
- Fixes an issue where resubscribing to a query on a projection polled the database without the projection's fields, so a client could read hidden fields through the query's
extra - Adapters now get the projection's fields as
options.fieldsinqueryPoll(), and anyfieldsa client sends is ignored. sharedb-mongo checks them from 6.0.3 (GHSA-xjv7-3vh2-xff5), so upgrade both
- Fixes an issue where resubscribing to a query on a projection polled the database without the projection's fields, so a client could read hidden fields through the query's
- GHSA-4j7j-cw4p-wgv2 — Wait for an in-flight
_unsubscribe()before resubscribing- Fixes an issue where a client unsubscribing and immediately resubscribing to a doc could leave the server's pub/sub channel unsubscribed, so other clients on that server stopped getting the doc's ops
- #751 — Destroy every stream an
Agentholds when it closes- Also stops presence outliving a client that disconnects while it's still in flight, or without subscribing to the channel.
receivePresencemiddleware sees these leaves asp: null
- Also stops presence outliving a client that disconnects while it's still in flight, or without subscribing to the channel.
- #752 — Only accept presence for the doc on its channel
- Fixes an issue where a client could send presence to subscribers of a doc it can't read, by giving it a readable doc's
candd - The server check only holds once every instance is upgraded, and the client filter only protects upgraded clients
- Fixes an issue where a client could send presence to subscribers of a doc it can't read, by giving it a readable doc's
- #760 — Only read known query results after
'query'middleware- Fixes an issue where a query resubscribe that
'query'middleware rejects still sent the known results' ops to the client - Adds an Access control docs page: ops go through
'op'middleware, not'readSnapshots'
- Fixes an issue where a query resubscribe that
- #761 — Add
retrymiddleware action- Triggered before a submit that lost a race to another op is retried, so middleware can reset state it set on the request
- Thanks to @dawidreedsy!