@powersync/service-module-mongodb 0.22.1 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/LICENSE +201 -67
- package/dist/module/MongoModule.js +3 -4
- package/dist/module/MongoModule.js.map +1 -1
- package/dist/replication/ChangeStream.js +9 -3
- package/dist/replication/ChangeStream.js.map +1 -1
- package/dist/replication/ChangeStreamReplicationJob.js +1 -1
- package/dist/replication/ChangeStreamReplicationJob.js.map +1 -1
- package/dist/replication/ChangeStreamReplicator.d.ts +0 -1
- package/dist/replication/ChangeStreamReplicator.js +0 -3
- package/dist/replication/ChangeStreamReplicator.js.map +1 -1
- package/dist/test-utils/ChangeStreamTestContext.js +2 -2
- package/dist/test-utils/ChangeStreamTestContext.js.map +1 -1
- package/package.json +11 -11
- package/src/module/MongoModule.ts +3 -11
- package/src/replication/ChangeStream.ts +12 -5
- package/src/replication/ChangeStreamReplicationJob.ts +1 -1
- package/src/replication/ChangeStreamReplicator.ts +0 -4
- package/src/test-utils/ChangeStreamTestContext.ts +2 -2
- package/test/src/change_stream.test.ts +87 -21
- package/test/src/checkpoint_retry.test.ts +3 -1
- package/test/src/mongo_test.test.ts +4 -4
- package/test/src/query_provider_availability.test.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeStreamTestContext.js","sourceRoot":"","sources":["../../src/test-utils/ChangeStreamTestContext.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChangeStreamTestContext.js","sourceRoot":"","sources":["../../src/test-utils/ChangeStreamTestContext.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/service-module-mongodb",
|
|
3
3
|
"repository": "https://github.com/powersync-ja/powersync-service",
|
|
4
|
-
"version": "0.22.
|
|
5
|
-
"license": "
|
|
4
|
+
"version": "0.22.2",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
"bson": "^6.10.4",
|
|
16
16
|
"ts-codec": "^1.3.0",
|
|
17
17
|
"uuid": "^14.0.0",
|
|
18
|
-
"@powersync/lib-service-mongodb": "0.6.
|
|
19
|
-
"@powersync/lib-services-framework": "0.10.
|
|
20
|
-
"@powersync/service-core": "1.
|
|
21
|
-
"@powersync/service-jsonbig": "0.17.
|
|
22
|
-
"@powersync/service-sync-rules": "0.
|
|
23
|
-
"@powersync/service-types": "0.
|
|
18
|
+
"@powersync/lib-service-mongodb": "0.6.35",
|
|
19
|
+
"@powersync/lib-services-framework": "0.10.5",
|
|
20
|
+
"@powersync/service-core": "1.28.0",
|
|
21
|
+
"@powersync/service-jsonbig": "0.17.14",
|
|
22
|
+
"@powersync/service-sync-rules": "0.45.0",
|
|
23
|
+
"@powersync/service-types": "0.21.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@powersync/service-core-tests": "0.18.
|
|
27
|
-
"@powersync/service-module-mongodb-storage": "0.
|
|
28
|
-
"@powersync/service-module-postgres-storage": "0.19.
|
|
26
|
+
"@powersync/service-core-tests": "0.18.5",
|
|
27
|
+
"@powersync/service-module-mongodb-storage": "0.24.0",
|
|
28
|
+
"@powersync/service-module-postgres-storage": "0.19.5"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "tsc -b",
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import * as lib_mongo from '@powersync/lib-service-mongodb';
|
|
2
|
-
import {
|
|
3
|
-
api,
|
|
4
|
-
ConfigurationFileSyncRulesProvider,
|
|
5
|
-
ConnectionTestResult,
|
|
6
|
-
replication,
|
|
7
|
-
system,
|
|
8
|
-
TearDownOptions
|
|
9
|
-
} from '@powersync/service-core';
|
|
2
|
+
import { api, ConnectionTestResult, replication, system, TearDownOptions } from '@powersync/service-core';
|
|
10
3
|
import { MongoRouteAPIAdapter } from '../api/MongoRouteAPIAdapter.js';
|
|
11
4
|
import { ChangeStreamReplicator } from '../replication/ChangeStreamReplicator.js';
|
|
12
5
|
import { ConnectionManagerFactory } from '../replication/ConnectionManagerFactory.js';
|
|
@@ -30,14 +23,13 @@ export class MongoModule extends replication.ReplicationModule<types.MongoConnec
|
|
|
30
23
|
|
|
31
24
|
protected createReplicator(context: system.ServiceContext): replication.AbstractReplicator {
|
|
32
25
|
const normalisedConfig = this.resolveConfig(this.decodedConfig!);
|
|
33
|
-
const syncRuleProvider = new ConfigurationFileSyncRulesProvider(context.configuration.sync_rules);
|
|
34
26
|
const connectionFactory = new ConnectionManagerFactory(normalisedConfig);
|
|
35
27
|
|
|
36
28
|
return new ChangeStreamReplicator({
|
|
37
29
|
id: this.getDefaultId(normalisedConfig.database ?? ''),
|
|
38
|
-
syncRuleProvider: syncRuleProvider,
|
|
39
|
-
storageEngine: context.storageEngine,
|
|
40
30
|
configuration: context.configuration,
|
|
31
|
+
syncConfigEngine: context.syncConfigEngine,
|
|
32
|
+
storageEngine: context.storageEngine,
|
|
41
33
|
metricsEngine: context.metricsEngine,
|
|
42
34
|
connectionFactory: connectionFactory,
|
|
43
35
|
rateLimiter: new MongoErrorRateLimiter(),
|
|
@@ -373,12 +373,19 @@ export class ChangeStream {
|
|
|
373
373
|
});
|
|
374
374
|
this.relationCache.updateAll(descriptor, result.tables);
|
|
375
375
|
|
|
376
|
-
// Drop conflicting collections.
|
|
377
|
-
// This is generally not expected for MongoDB source dbs, so we log an error.
|
|
378
376
|
if (result.dropTables.length > 0) {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
377
|
+
if (result.tables.length == 0) {
|
|
378
|
+
// The collection isn't used by the sync config. Dropping old mappings here is expected,
|
|
379
|
+
// for example when a previously-synced collection is renamed out of scope.
|
|
380
|
+
this.logger.info(
|
|
381
|
+
`${JSON.stringify(descriptor)} is not used by the sync config. Removing previously replicated data: ${result.dropTables.map((t) => t.id).join(', ')}`
|
|
382
|
+
);
|
|
383
|
+
} else {
|
|
384
|
+
// Conflicting collections are generally not expected for MongoDB source dbs, so we log an error.
|
|
385
|
+
this.logger.error(
|
|
386
|
+
`Conflicting collections found for ${JSON.stringify(descriptor)}. Dropping: ${result.dropTables.map((t) => t.id).join(', ')}`
|
|
387
|
+
);
|
|
388
|
+
}
|
|
382
389
|
await batch.drop(result.dropTables);
|
|
383
390
|
}
|
|
384
391
|
|
|
@@ -35,7 +35,7 @@ export class ChangeStreamReplicationJob extends replication.AbstractReplicationJ
|
|
|
35
35
|
try {
|
|
36
36
|
await this.replicateOnce();
|
|
37
37
|
} catch (e) {
|
|
38
|
-
if (
|
|
38
|
+
if (this.shouldReportReplicationError(e)) {
|
|
39
39
|
container.reporter.captureException(e, {
|
|
40
40
|
metadata: {}
|
|
41
41
|
});
|
|
@@ -19,10 +19,6 @@ export class ChangeStreamReplicator extends replication.AbstractReplicator<Chang
|
|
|
19
19
|
this.createReplicationQueryProvider = options.createReplicationQueryProvider;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
protected get defaultSchema(): string {
|
|
23
|
-
return this.connectionFactory.dbConnectionConfig.database;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
22
|
createJob(options: replication.CreateJobOptions): ChangeStreamReplicationJob {
|
|
27
23
|
return new ChangeStreamReplicationJob({
|
|
28
24
|
id: this.createJobId(options.storage.replicationStreamId),
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
updateSyncRulesFromConfig,
|
|
20
20
|
utils
|
|
21
21
|
} from '@powersync/service-core';
|
|
22
|
-
import {
|
|
22
|
+
import { parseSyncConfig } from '@powersync/service-sync-rules';
|
|
23
23
|
import { setTimeout } from 'node:timers/promises';
|
|
24
24
|
|
|
25
25
|
import { SentinelLSN } from '../common/SentinelLSN.js';
|
|
@@ -194,7 +194,7 @@ export class ChangeStreamTestContext implements AsyncDisposable {
|
|
|
194
194
|
async updateSyncRules(content: string) {
|
|
195
195
|
const replicationStream = await this.factory.updateSyncRules(
|
|
196
196
|
updateSyncRulesFromConfig(
|
|
197
|
-
|
|
197
|
+
parseSyncConfig(content, {
|
|
198
198
|
defaultSchema: this.db.databaseName,
|
|
199
199
|
throwOnError: true
|
|
200
200
|
}),
|
|
@@ -7,6 +7,7 @@ import { createWriteCheckpoint, storage, WriteCheckpointBatcher } from '@powersy
|
|
|
7
7
|
import { test_utils } from '@powersync/service-core-tests';
|
|
8
8
|
|
|
9
9
|
import { MongoRouteAPIAdapter } from '@module/api/MongoRouteAPIAdapter.js';
|
|
10
|
+
import { ChunkedSnapshotQuery } from '@module/replication/MongoSnapshotQuery.js';
|
|
10
11
|
import { PostImagesOption } from '@module/types/types.js';
|
|
11
12
|
import { openChangeStreamTestContext } from './change_stream_test_setup.js';
|
|
12
13
|
import { DATABASE_TYPE, DatabaseType } from './DatabaseType.js';
|
|
@@ -67,6 +68,63 @@ bucket_definitions:
|
|
|
67
68
|
]);
|
|
68
69
|
});
|
|
69
70
|
|
|
71
|
+
test('continues active source updates after cancelling a pending deployment', async () => {
|
|
72
|
+
const activeConfig = /* yaml */ `
|
|
73
|
+
# Active sync config fixture.
|
|
74
|
+
config:
|
|
75
|
+
edition: 3
|
|
76
|
+
streams:
|
|
77
|
+
global:
|
|
78
|
+
auto_subscribe: true
|
|
79
|
+
query: SELECT _id AS id, description FROM test_data
|
|
80
|
+
`;
|
|
81
|
+
let id: mongo.ObjectId;
|
|
82
|
+
{
|
|
83
|
+
await using context = await openContext();
|
|
84
|
+
await context.updateSyncRules(activeConfig);
|
|
85
|
+
id = (await context.db.collection('test_data').insertOne({ description: 'before' })).insertedId;
|
|
86
|
+
await context.replicateSnapshot();
|
|
87
|
+
context.startStreaming();
|
|
88
|
+
await context.getCheckpoint();
|
|
89
|
+
}
|
|
90
|
+
// Resume the persisted active config in a new worker before submitting pending replacement work.
|
|
91
|
+
await using context = await openContext({ doNotClear: true });
|
|
92
|
+
await context.updateSyncRules(/* yaml */ `
|
|
93
|
+
# Pending replacement sync config fixture.
|
|
94
|
+
config:
|
|
95
|
+
edition: 3
|
|
96
|
+
streams:
|
|
97
|
+
global:
|
|
98
|
+
auto_subscribe: true
|
|
99
|
+
query: SELECT _id AS id, description FROM test_data
|
|
100
|
+
pending:
|
|
101
|
+
query: SELECT _id AS id FROM pending_data
|
|
102
|
+
`);
|
|
103
|
+
const pending = (await context.factory.getDeployingSyncConfig())!;
|
|
104
|
+
// Rejected startup admission uses this same cancellation path while retaining the active config.
|
|
105
|
+
const oldJobId = pending.replicationStream.replicationJobId;
|
|
106
|
+
await context.factory.stopProcessingSyncConfigs();
|
|
107
|
+
expect(await context.factory.getDeployingSyncConfig()).toBeNull();
|
|
108
|
+
const active = (await context.factory.getActiveSyncConfig())!;
|
|
109
|
+
expect(active.content.sync_rules_content).toBe(activeConfig);
|
|
110
|
+
// Shared-stream cancellation changes job identity so the old A/B worker cannot keep writing.
|
|
111
|
+
if (storageVersion >= 3) {
|
|
112
|
+
expect(active.replicationStream.replicationJobId).not.toBe(oldJobId);
|
|
113
|
+
}
|
|
114
|
+
await context.loadActiveSyncRules();
|
|
115
|
+
await context.replicateSnapshot();
|
|
116
|
+
context.startStreaming();
|
|
117
|
+
// A source change must still reach client buckets after the replacement was cancelled.
|
|
118
|
+
await context.db.collection('test_data').updateOne({ _id: id }, { $set: { description: 'after' } });
|
|
119
|
+
const data = await context.getBucketData('global|0[]');
|
|
120
|
+
expect(data).toEqual(
|
|
121
|
+
expect.arrayContaining([
|
|
122
|
+
expect.objectContaining(test_utils.putOp('test_data', { id: id.toHexString(), description: 'after' }))
|
|
123
|
+
])
|
|
124
|
+
);
|
|
125
|
+
expect((await context.factory.getActiveSyncConfig())?.content.sync_rules_content).toBe(activeConfig);
|
|
126
|
+
});
|
|
127
|
+
|
|
70
128
|
test('replicating wildcard', async () => {
|
|
71
129
|
await using context = await openContext();
|
|
72
130
|
const { db } = context;
|
|
@@ -110,14 +168,40 @@ bucket_definitions:
|
|
|
110
168
|
// 4. Streaming sees the delete, writes the delete.
|
|
111
169
|
// 5. Snapshot still sees row A and writes it.
|
|
112
170
|
// The streaming delete should win, using skipExistingRows. For that to work, we rely on soft deletes.
|
|
113
|
-
//
|
|
171
|
+
// Trigger and process the delete after reading the snapshot chunk, before
|
|
172
|
+
// handing it to storage. beforeBatchFlush runs inside the lease's writer
|
|
173
|
+
// mutex, so waiting there for another writer would deadlock. Pausing the
|
|
174
|
+
// source read instead preserves the stale snapshot row without holding that
|
|
175
|
+
// mutex, and streaming can durably write its tombstone before the snapshot.
|
|
114
176
|
|
|
115
177
|
let collection!: mongo.Collection;
|
|
116
178
|
let testId!: mongo.ObjectId;
|
|
117
|
-
let
|
|
179
|
+
let interceptedSnapshotRead = false;
|
|
118
180
|
let sourceDeleteWritten = false;
|
|
119
181
|
let sourceDeleteFlushBatch: storage.BucketStorageBatch | undefined;
|
|
120
182
|
const streamDeleteFlushed = Promise.withResolvers<void>();
|
|
183
|
+
const nextChunk = ChunkedSnapshotQuery.prototype.nextChunk;
|
|
184
|
+
using _snapshotRead = vi.spyOn(ChunkedSnapshotQuery.prototype, 'nextChunk').mockImplementation(async function (
|
|
185
|
+
this: ChunkedSnapshotQuery,
|
|
186
|
+
...args
|
|
187
|
+
) {
|
|
188
|
+
const chunk = await nextChunk.apply(this, args);
|
|
189
|
+
if (chunk.docs.length === 0 || interceptedSnapshotRead) {
|
|
190
|
+
return chunk;
|
|
191
|
+
}
|
|
192
|
+
interceptedSnapshotRead = true;
|
|
193
|
+
await collection.deleteOne({ _id: testId });
|
|
194
|
+
sourceDeleteWritten = true;
|
|
195
|
+
if (supportsConcurrentSnapshots) {
|
|
196
|
+
await Promise.race([
|
|
197
|
+
streamDeleteFlushed.promise,
|
|
198
|
+
setTimeout(10_000).then(() => {
|
|
199
|
+
throw new Error('Timed out waiting for streamed delete to flush');
|
|
200
|
+
})
|
|
201
|
+
]);
|
|
202
|
+
}
|
|
203
|
+
return chunk;
|
|
204
|
+
});
|
|
121
205
|
|
|
122
206
|
await using context = await openContext({
|
|
123
207
|
streamOptions: {
|
|
@@ -127,24 +211,6 @@ bucket_definitions:
|
|
|
127
211
|
if (!batch.skipExistingRows && sourceDeleteWritten && sourceDeleteFlushBatch == null) {
|
|
128
212
|
sourceDeleteFlushBatch = batch;
|
|
129
213
|
}
|
|
130
|
-
|
|
131
|
-
// skipExistingRows means we're busy with snapshotting.
|
|
132
|
-
if (!batch.skipExistingRows || interceptedSnapshotFlush) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
interceptedSnapshotFlush = true;
|
|
137
|
-
await collection.deleteOne({ _id: testId });
|
|
138
|
-
sourceDeleteWritten = true;
|
|
139
|
-
if (!supportsConcurrentSnapshots) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
await Promise.race([
|
|
143
|
-
streamDeleteFlushed.promise,
|
|
144
|
-
setTimeout(10_000).then(() => {
|
|
145
|
-
throw new Error('Timed out waiting for streamed delete to flush');
|
|
146
|
-
})
|
|
147
|
-
]);
|
|
148
214
|
},
|
|
149
215
|
afterBatchFlush: async (batch) => {
|
|
150
216
|
if (batch == sourceDeleteFlushBatch) {
|
|
@@ -166,7 +232,7 @@ bucket_definitions:
|
|
|
166
232
|
|
|
167
233
|
await context.replicateSnapshot();
|
|
168
234
|
|
|
169
|
-
expect(
|
|
235
|
+
expect(interceptedSnapshotRead).toBe(true);
|
|
170
236
|
await context.getCheckpoint();
|
|
171
237
|
|
|
172
238
|
const data = await context.getBucketData('global[]');
|
|
@@ -10,7 +10,9 @@ import { clearTestDb, connectMongoData, requireFailCommand } from './util.js';
|
|
|
10
10
|
// This suite uses configureFailPoint to force retry timing. Azure DocumentDB
|
|
11
11
|
// does not support configureFailPoint.
|
|
12
12
|
describe.skipIf(DATABASE_TYPE == DatabaseType.DOCUMENTDB)('checkpoint retryable writes', () => {
|
|
13
|
-
|
|
13
|
+
// Socket-timeout injection is timing-sensitive on CI. Retry the whole case,
|
|
14
|
+
// including fresh clients and failpoint setup, while retaining real driver retries.
|
|
15
|
+
test('returns the persisted checkpoint clusterTime after a retryable write', { retry: 2 }, async (ctx) => {
|
|
14
16
|
// This test relies on very specific timing:
|
|
15
17
|
//
|
|
16
18
|
// 1. _powersync_checkpoints findAndModify command starts and is sent to the server
|
|
@@ -2,7 +2,7 @@ import { mongo } from '@powersync/lib-service-mongodb';
|
|
|
2
2
|
import {
|
|
3
3
|
CompatibilityContext,
|
|
4
4
|
CompatibilityEdition,
|
|
5
|
-
|
|
5
|
+
parseSyncConfig,
|
|
6
6
|
TimeValuePrecision
|
|
7
7
|
} from '@powersync/service-sync-rules';
|
|
8
8
|
import { describe, expect, test } from 'vitest';
|
|
@@ -406,7 +406,7 @@ describe('mongo data types', () => {
|
|
|
406
406
|
await setupTable(db);
|
|
407
407
|
await insert(collection);
|
|
408
408
|
|
|
409
|
-
const { config: rules } =
|
|
409
|
+
const { config: rules } = parseSyncConfig(
|
|
410
410
|
`
|
|
411
411
|
bucket_definitions:
|
|
412
412
|
global:
|
|
@@ -453,7 +453,7 @@ bucket_definitions:
|
|
|
453
453
|
await setupTable(db);
|
|
454
454
|
await insert(collection);
|
|
455
455
|
|
|
456
|
-
const { config: rules } =
|
|
456
|
+
const { config: rules } = parseSyncConfig(
|
|
457
457
|
`
|
|
458
458
|
bucket_definitions:
|
|
459
459
|
global:
|
|
@@ -501,7 +501,7 @@ bucket_definitions:
|
|
|
501
501
|
await setupTable(db);
|
|
502
502
|
await insert(collection);
|
|
503
503
|
|
|
504
|
-
const { config: rules } =
|
|
504
|
+
const { config: rules } = parseSyncConfig(
|
|
505
505
|
`
|
|
506
506
|
bucket_definitions:
|
|
507
507
|
global:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ErrorCode, logger, ServiceError } from '@powersync/lib-services-framework';
|
|
2
2
|
import { MetricsEngine, storage } from '@powersync/service-core';
|
|
3
|
-
import { DEFAULT_HYDRATION_STATE, nodeSqlite,
|
|
3
|
+
import { DEFAULT_HYDRATION_STATE, nodeSqlite, parseSyncConfig } from '@powersync/service-sync-rules';
|
|
4
4
|
import * as sqlite from 'node:sqlite';
|
|
5
5
|
import { afterEach, expect, test, vi } from 'vitest';
|
|
6
6
|
import { ChangeStream } from '../../src/replication/ChangeStream.js';
|
|
@@ -32,7 +32,7 @@ test.each([
|
|
|
32
32
|
{ filtered: false, factory: false, blocked: false }
|
|
33
33
|
])('checks provider availability: %j', async ({ filtered, factory, blocked }) => {
|
|
34
34
|
const yaml = filtered ? CONFIG : CONFIG.replace("{ $eq: ['$$doc.active', true] }", 'disabled');
|
|
35
|
-
const parsed =
|
|
35
|
+
const parsed = parseSyncConfig(yaml, { defaultSchema: 'app' });
|
|
36
36
|
const hydrated = parsed.config.hydrate({ hydrationState: DEFAULT_HYDRATION_STATE, sqlite: nodeSqlite(sqlite) });
|
|
37
37
|
const reportError = vi.fn(async (_error: unknown) => {});
|
|
38
38
|
// Stop allowed cases at the first snapshot check, without connecting to a database.
|