|
@@ -512,11 +512,16 @@ void DatabaseService::setupComponents() {
|
|
|
switch (eventType) {
|
|
switch (eventType) {
|
|
|
case EventType::INSERT:
|
|
case EventType::INSERT:
|
|
|
entry.set_op(databasepb::OP_INSERT);
|
|
entry.set_op(databasepb::OP_INSERT);
|
|
|
- if (doc) entry.set_data(doc->data.dump());
|
|
|
|
|
|
|
+ // Send the full Document envelope (id, collection, data,
|
|
|
|
|
+ // version, timestamps, encryption state). The follower's
|
|
|
|
|
+ // applyReplicatedEntry uses Document::fromJson() which
|
|
|
|
|
+ // expects this envelope — sending only doc->data silently
|
|
|
|
|
+ // dropped every user field on the other side.
|
|
|
|
|
+ if (doc) entry.set_data(doc->toJson().dump());
|
|
|
break;
|
|
break;
|
|
|
case EventType::UPDATE:
|
|
case EventType::UPDATE:
|
|
|
entry.set_op(databasepb::OP_UPDATE);
|
|
entry.set_op(databasepb::OP_UPDATE);
|
|
|
- if (doc) entry.set_data(doc->data.dump());
|
|
|
|
|
|
|
+ if (doc) entry.set_data(doc->toJson().dump());
|
|
|
break;
|
|
break;
|
|
|
case EventType::DELETE:
|
|
case EventType::DELETE:
|
|
|
entry.set_op(databasepb::OP_DELETE);
|
|
entry.set_op(databasepb::OP_DELETE);
|