Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
None
-
Security Level: Public
-
None
-
CBG Sprint 37, CBG Sprint 38, CBG Sprint 39, CBG Sprint 40, CBG Sprint 62, CBG Sprint 63
-
5
Description
Normally _removed:true is calculated post-retrieval from the revision cache, depending on whether the user is authenticated for the revision. The exception is revision cache placeholder entries where Sync Gateway no longer has the document body, but knows from the document's channel set that the revision represented a channel removal.
This approach has two problems:
1. For documents in multiple channels, it's not necessarily the case that a given revision in this scenario is a removal from a channel the requesting user has access to.
2. Storing _removed:true in the body diverges from the Mercury design approach of not storing special properties in the document in the revision cache.