|
The shard-side stages of a change stream are:
$_internalOplogMatch, $_internalChangeStreamTransform, $_internalCheckInvalidate, $_internalCheckResumability
In addition to adding serialization, all these stages except for $_internalChangeStreamTransform should have the
Privilege(ResourcePattern::forClusterResource(), ActionType::internal) in their requiredPrivileges. The requiredPrivileges for $_internalChangeStreamTransform should be the same as those provided by DocumentSourceChangeStream.
Note that all these must be added in one patch, so that the shard side of a decomposed $changeStream can be completely serialized and deserialized together.
|