@powersync/service-core 1.16.2 → 1.17.0
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 +27 -0
- package/dist/routes/configure-fastify.d.ts +5 -0
- package/dist/routes/endpoints/socket-route.js +7 -0
- package/dist/routes/endpoints/socket-route.js.map +1 -1
- package/dist/routes/endpoints/sync-stream.d.ts +10 -0
- package/dist/routes/endpoints/sync-stream.js +10 -1
- package/dist/routes/endpoints/sync-stream.js.map +1 -1
- package/dist/storage/ReportStorage.d.ts +5 -0
- package/dist/sync/sync.d.ts +2 -2
- package/dist/sync/sync.js +2 -2
- package/dist/sync/sync.js.map +1 -1
- package/dist/util/param-logging.d.ts +23 -0
- package/dist/util/param-logging.js +40 -0
- package/dist/util/param-logging.js.map +1 -0
- package/dist/util/protocol-types.d.ts +6 -2
- package/dist/util/protocol-types.js +4 -0
- package/dist/util/protocol-types.js.map +1 -1
- package/package.json +5 -5
- package/src/routes/endpoints/socket-route.ts +9 -0
- package/src/routes/endpoints/sync-stream.ts +13 -1
- package/src/storage/ReportStorage.ts +7 -0
- package/src/sync/sync.ts +4 -10
- package/src/util/param-logging.ts +60 -0
- package/src/util/protocol-types.ts +7 -2
- package/test/src/routes/stream.test.ts +94 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @powersync/service-core
|
|
2
2
|
|
|
3
|
+
## 1.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 6eee0b3: Added ability to specify app_metadata for sync/stream requests
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 57f7660: General client connections analytics added
|
|
12
|
+
- c050acd: [MongoDB] Optimize change stream filters to avoid PSYNC_S1345 timeouts
|
|
13
|
+
- Updated dependencies [57f7660]
|
|
14
|
+
- Updated dependencies [0156d10]
|
|
15
|
+
- @powersync/service-types@0.13.2
|
|
16
|
+
- @powersync/service-sync-rules@0.29.8
|
|
17
|
+
- @powersync/lib-services-framework@0.7.11
|
|
18
|
+
- @powersync/service-rsocket-router@0.2.8
|
|
19
|
+
|
|
20
|
+
## 1.16.3
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- fff0024: [Postgres] Fix custom type parsing on initial replication
|
|
25
|
+
- Updated dependencies [fff0024]
|
|
26
|
+
- @powersync/service-sync-rules@0.29.7
|
|
27
|
+
- @powersync/lib-services-framework@0.7.10
|
|
28
|
+
- @powersync/service-rsocket-router@0.2.7
|
|
29
|
+
|
|
3
30
|
## 1.16.2
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
@@ -683,6 +683,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
|
|
|
683
683
|
only?: string[] | undefined;
|
|
684
684
|
include_checksum?: boolean | undefined;
|
|
685
685
|
raw_data?: boolean | undefined;
|
|
686
|
+
app_metadata?: Record<string, string> | undefined;
|
|
686
687
|
client_id?: string | undefined;
|
|
687
688
|
streams?: {
|
|
688
689
|
subscriptions: {
|
|
@@ -701,6 +702,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
|
|
|
701
702
|
only?: string[] | undefined;
|
|
702
703
|
include_checksum?: boolean | undefined;
|
|
703
704
|
raw_data?: boolean | undefined;
|
|
705
|
+
app_metadata?: Record<string, string> | undefined;
|
|
704
706
|
client_id?: string | undefined;
|
|
705
707
|
streams?: {
|
|
706
708
|
subscriptions: {
|
|
@@ -719,6 +721,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
|
|
|
719
721
|
only?: string[] | undefined;
|
|
720
722
|
include_checksum?: boolean | undefined;
|
|
721
723
|
raw_data?: boolean | undefined;
|
|
724
|
+
app_metadata?: Record<string, string> | undefined;
|
|
722
725
|
client_id?: string | undefined;
|
|
723
726
|
streams?: {
|
|
724
727
|
subscriptions: {
|
|
@@ -741,6 +744,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
|
|
|
741
744
|
only?: string[] | undefined;
|
|
742
745
|
include_checksum?: boolean | undefined;
|
|
743
746
|
raw_data?: boolean | undefined;
|
|
747
|
+
app_metadata?: Record<string, string> | undefined;
|
|
744
748
|
client_id?: string | undefined;
|
|
745
749
|
streams?: {
|
|
746
750
|
subscriptions: {
|
|
@@ -760,6 +764,7 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
|
|
|
760
764
|
only?: string[] | undefined;
|
|
761
765
|
include_checksum?: boolean | undefined;
|
|
762
766
|
raw_data?: boolean | undefined;
|
|
767
|
+
app_metadata?: Record<string, string> | undefined;
|
|
763
768
|
client_id?: string | undefined;
|
|
764
769
|
streams?: {
|
|
765
770
|
subscriptions: {
|
|
@@ -3,6 +3,7 @@ import * as sync from '../../sync/sync-index.js';
|
|
|
3
3
|
import * as util from '../../util/util-index.js';
|
|
4
4
|
import { SyncRoutes } from './sync-stream.js';
|
|
5
5
|
import { APIMetric, event_types } from '@powersync/service-types';
|
|
6
|
+
import { limitParamsForLogging } from '../../util/param-logging.js';
|
|
6
7
|
export const syncStreamReactive = (router) => router.reactiveStream(SyncRoutes.STREAM, {
|
|
7
8
|
validator: schema.createTsCodecValidator(util.StreamingSyncRequest, { allowAdditional: true }),
|
|
8
9
|
handler: async ({ context, params, responder, observer, initialN, signal: upstreamSignal, connection }) => {
|
|
@@ -75,6 +76,11 @@ export const syncStreamReactive = (router) => router.reactiveStream(SyncRoutes.S
|
|
|
75
76
|
// Must be set before we start the stream
|
|
76
77
|
tracker.setCompressed(connection.tracker.encoding);
|
|
77
78
|
}
|
|
79
|
+
const formattedAppMetadata = params.app_metadata ? limitParamsForLogging(params.app_metadata) : undefined;
|
|
80
|
+
logger.info('Sync stream started', {
|
|
81
|
+
app_metadata: formattedAppMetadata,
|
|
82
|
+
client_params: params.parameters ? limitParamsForLogging(params.parameters) : undefined
|
|
83
|
+
});
|
|
78
84
|
try {
|
|
79
85
|
for await (const data of sync.streamResponse({
|
|
80
86
|
syncContext: syncContext,
|
|
@@ -157,6 +163,7 @@ export const syncStreamReactive = (router) => router.reactiveStream(SyncRoutes.S
|
|
|
157
163
|
}
|
|
158
164
|
logger.info(`Sync stream complete`, {
|
|
159
165
|
...tracker.getLogMeta(),
|
|
166
|
+
app_metadata: formattedAppMetadata,
|
|
160
167
|
stream_ms: Date.now() - streamStart,
|
|
161
168
|
close_reason: closeReason ?? 'unknown'
|
|
162
169
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-route.js","sourceRoot":"","sources":["../../../src/routes/endpoints/socket-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-route.js","sourceRoot":"","sources":["../../../src/routes/endpoints/socket-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export declare const syncStreamed: router.Endpoint<{
|
|
|
12
12
|
only?: string[] | undefined;
|
|
13
13
|
include_checksum?: boolean | undefined;
|
|
14
14
|
raw_data?: boolean | undefined;
|
|
15
|
+
app_metadata?: Record<string, string> | undefined;
|
|
15
16
|
client_id?: string | undefined;
|
|
16
17
|
streams?: {
|
|
17
18
|
subscriptions: {
|
|
@@ -30,6 +31,7 @@ export declare const syncStreamed: router.Endpoint<{
|
|
|
30
31
|
only?: string[] | undefined;
|
|
31
32
|
include_checksum?: boolean | undefined;
|
|
32
33
|
raw_data?: boolean | undefined;
|
|
34
|
+
app_metadata?: Record<string, string> | undefined;
|
|
33
35
|
client_id?: string | undefined;
|
|
34
36
|
streams?: {
|
|
35
37
|
subscriptions: {
|
|
@@ -48,6 +50,7 @@ export declare const syncStreamed: router.Endpoint<{
|
|
|
48
50
|
only?: string[] | undefined;
|
|
49
51
|
include_checksum?: boolean | undefined;
|
|
50
52
|
raw_data?: boolean | undefined;
|
|
53
|
+
app_metadata?: Record<string, string> | undefined;
|
|
51
54
|
client_id?: string | undefined;
|
|
52
55
|
streams?: {
|
|
53
56
|
subscriptions: {
|
|
@@ -70,6 +73,7 @@ export declare const syncStreamed: router.Endpoint<{
|
|
|
70
73
|
only?: string[] | undefined;
|
|
71
74
|
include_checksum?: boolean | undefined;
|
|
72
75
|
raw_data?: boolean | undefined;
|
|
76
|
+
app_metadata?: Record<string, string> | undefined;
|
|
73
77
|
client_id?: string | undefined;
|
|
74
78
|
streams?: {
|
|
75
79
|
subscriptions: {
|
|
@@ -89,6 +93,7 @@ export declare const syncStreamed: router.Endpoint<{
|
|
|
89
93
|
only?: string[] | undefined;
|
|
90
94
|
include_checksum?: boolean | undefined;
|
|
91
95
|
raw_data?: boolean | undefined;
|
|
96
|
+
app_metadata?: Record<string, string> | undefined;
|
|
92
97
|
client_id?: string | undefined;
|
|
93
98
|
streams?: {
|
|
94
99
|
subscriptions: {
|
|
@@ -109,6 +114,7 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
|
|
|
109
114
|
only?: string[] | undefined;
|
|
110
115
|
include_checksum?: boolean | undefined;
|
|
111
116
|
raw_data?: boolean | undefined;
|
|
117
|
+
app_metadata?: Record<string, string> | undefined;
|
|
112
118
|
client_id?: string | undefined;
|
|
113
119
|
streams?: {
|
|
114
120
|
subscriptions: {
|
|
@@ -127,6 +133,7 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
|
|
|
127
133
|
only?: string[] | undefined;
|
|
128
134
|
include_checksum?: boolean | undefined;
|
|
129
135
|
raw_data?: boolean | undefined;
|
|
136
|
+
app_metadata?: Record<string, string> | undefined;
|
|
130
137
|
client_id?: string | undefined;
|
|
131
138
|
streams?: {
|
|
132
139
|
subscriptions: {
|
|
@@ -145,6 +152,7 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
|
|
|
145
152
|
only?: string[] | undefined;
|
|
146
153
|
include_checksum?: boolean | undefined;
|
|
147
154
|
raw_data?: boolean | undefined;
|
|
155
|
+
app_metadata?: Record<string, string> | undefined;
|
|
148
156
|
client_id?: string | undefined;
|
|
149
157
|
streams?: {
|
|
150
158
|
subscriptions: {
|
|
@@ -167,6 +175,7 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
|
|
|
167
175
|
only?: string[] | undefined;
|
|
168
176
|
include_checksum?: boolean | undefined;
|
|
169
177
|
raw_data?: boolean | undefined;
|
|
178
|
+
app_metadata?: Record<string, string> | undefined;
|
|
170
179
|
client_id?: string | undefined;
|
|
171
180
|
streams?: {
|
|
172
181
|
subscriptions: {
|
|
@@ -186,6 +195,7 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
|
|
|
186
195
|
only?: string[] | undefined;
|
|
187
196
|
include_checksum?: boolean | undefined;
|
|
188
197
|
raw_data?: boolean | undefined;
|
|
198
|
+
app_metadata?: Record<string, string> | undefined;
|
|
189
199
|
client_id?: string | undefined;
|
|
190
200
|
streams?: {
|
|
191
201
|
subscriptions: {
|
|
@@ -3,9 +3,10 @@ import Negotiator from 'negotiator';
|
|
|
3
3
|
import { Readable } from 'stream';
|
|
4
4
|
import * as sync from '../../sync/sync-index.js';
|
|
5
5
|
import * as util from '../../util/util-index.js';
|
|
6
|
+
import { APIMetric, event_types } from '@powersync/service-types';
|
|
6
7
|
import { authUser } from '../auth.js';
|
|
7
8
|
import { routeDefinition } from '../router.js';
|
|
8
|
-
import {
|
|
9
|
+
import { limitParamsForLogging } from '../../util/param-logging.js';
|
|
9
10
|
import { maybeCompressResponseStream } from '../compression.js';
|
|
10
11
|
export var SyncRoutes;
|
|
11
12
|
(function (SyncRoutes) {
|
|
@@ -64,6 +65,13 @@ export const syncStreamed = routeDefinition({
|
|
|
64
65
|
const syncRules = bucketStorage.getParsedSyncRules(routerEngine.getAPI().getParseSyncRulesOptions());
|
|
65
66
|
const controller = new AbortController();
|
|
66
67
|
const tracker = new sync.RequestTracker(metricsEngine);
|
|
68
|
+
const formattedAppMetadata = payload.params.app_metadata
|
|
69
|
+
? limitParamsForLogging(payload.params.app_metadata)
|
|
70
|
+
: undefined;
|
|
71
|
+
logger.info('Sync stream started', {
|
|
72
|
+
app_metadata: formattedAppMetadata,
|
|
73
|
+
client_params: payload.params.parameters ? limitParamsForLogging(payload.params.parameters) : undefined
|
|
74
|
+
});
|
|
67
75
|
try {
|
|
68
76
|
metricsEngine.getUpDownCounter(APIMetric.CONCURRENT_CONNECTIONS).add(1);
|
|
69
77
|
service_context.eventsEngine.emit(event_types.EventsEngineEventType.SDK_CONNECT_EVENT, sdkData);
|
|
@@ -131,6 +139,7 @@ export const syncStreamed = routeDefinition({
|
|
|
131
139
|
});
|
|
132
140
|
logger.info(`Sync stream complete`, {
|
|
133
141
|
...tracker.getLogMeta(),
|
|
142
|
+
app_metadata: formattedAppMetadata,
|
|
134
143
|
stream_ms: Date.now() - streamStart,
|
|
135
144
|
close_reason: closeReason ?? 'unknown'
|
|
136
145
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-stream.js","sourceRoot":"","sources":["../../../src/routes/endpoints/sync-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-stream.js","sourceRoot":"","sources":["../../../src/routes/endpoints/sync-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,11 @@ export interface ReportStorage extends AsyncDisposable {
|
|
|
28
28
|
* as well as uniques currently connected clients.
|
|
29
29
|
*/
|
|
30
30
|
getClientConnectionReports(data: event_types.ClientConnectionReportRequest): Promise<event_types.ClientConnectionReportResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* Get a paginated list of client connection events
|
|
33
|
+
* This will return a paginated list of connections for a client/ user ID or all if neither is provided, within a date range if provided
|
|
34
|
+
*/
|
|
35
|
+
getGeneralClientConnectionAnalytics(data: event_types.ClientConnectionAnalyticsRequest): Promise<event_types.PaginatedResponse<event_types.ClientConnection>>;
|
|
31
36
|
/**
|
|
32
37
|
* Delete old connection data based on a specific date.
|
|
33
38
|
* This is used to clean up old connection data that is no longer needed.
|
package/dist/sync/sync.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ import * as storage from '../storage/storage-index.js';
|
|
|
3
3
|
import * as util from '../util/util-index.js';
|
|
4
4
|
import { Logger } from '@powersync/lib-services-framework';
|
|
5
5
|
import { VersionedSyncRules } from './BucketChecksumState.js';
|
|
6
|
-
import { TokenStreamOptions } from './util.js';
|
|
7
|
-
import { SyncContext } from './SyncContext.js';
|
|
8
6
|
import { RequestTracker } from './RequestTracker.js';
|
|
7
|
+
import { SyncContext } from './SyncContext.js';
|
|
8
|
+
import { TokenStreamOptions } from './util.js';
|
|
9
9
|
export interface SyncStreamParameters {
|
|
10
10
|
syncContext: SyncContext;
|
|
11
11
|
bucketStorage: storage.SyncRulesBucketStorage;
|
package/dist/sync/sync.js
CHANGED
|
@@ -2,10 +2,10 @@ import { JSONBig, JsonContainer } from '@powersync/service-jsonbig';
|
|
|
2
2
|
import { AbortError } from 'ix/aborterror.js';
|
|
3
3
|
import * as util from '../util/util-index.js';
|
|
4
4
|
import { logger as defaultLogger } from '@powersync/lib-services-framework';
|
|
5
|
-
import { BucketChecksumState } from './BucketChecksumState.js';
|
|
6
5
|
import { mergeAsyncIterables } from '../streams/streams-index.js';
|
|
7
|
-
import {
|
|
6
|
+
import { BucketChecksumState } from './BucketChecksumState.js';
|
|
8
7
|
import { statsForBatch } from './RequestTracker.js';
|
|
8
|
+
import { acquireSemaphoreAbortable, settledPromise, tokenStream } from './util.js';
|
|
9
9
|
export async function* streamResponse(options) {
|
|
10
10
|
const { syncContext, bucketStorage, syncRules, params, token, tokenStreamOptions, tracker, signal, isEncodingAsBson } = options;
|
|
11
11
|
const logger = options.logger ?? defaultLogger;
|
package/dist/sync/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for {@link limitParamsForLogging}.
|
|
3
|
+
*/
|
|
4
|
+
export type ParamLoggingFormatOptions = {
|
|
5
|
+
maxKeyCount: number;
|
|
6
|
+
maxStringLength: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Default options for {@link limitParamsForLogging}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS: ParamLoggingFormatOptions;
|
|
12
|
+
/**
|
|
13
|
+
* Formats potentially arbitrary parameters for logging.
|
|
14
|
+
* This limits the number of keys and strings to a maximum length.
|
|
15
|
+
* A warning key-value is added if the number of keys exceeds the maximum.
|
|
16
|
+
* String values exceeding the maximum length are truncated.
|
|
17
|
+
* Non-String values are stringified, the maximum length is then applied.
|
|
18
|
+
* @param params - The parameters to format.
|
|
19
|
+
* @param options - The options to use.
|
|
20
|
+
* @default DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS
|
|
21
|
+
* @returns The formatted parameters.
|
|
22
|
+
*/
|
|
23
|
+
export declare function limitParamsForLogging(params: Record<string, any>, options?: Partial<ParamLoggingFormatOptions>): any;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default options for {@link limitParamsForLogging}.
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS = {
|
|
5
|
+
maxKeyCount: 20,
|
|
6
|
+
maxStringLength: 100
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Formats potentially arbitrary parameters for logging.
|
|
10
|
+
* This limits the number of keys and strings to a maximum length.
|
|
11
|
+
* A warning key-value is added if the number of keys exceeds the maximum.
|
|
12
|
+
* String values exceeding the maximum length are truncated.
|
|
13
|
+
* Non-String values are stringified, the maximum length is then applied.
|
|
14
|
+
* @param params - The parameters to format.
|
|
15
|
+
* @param options - The options to use.
|
|
16
|
+
* @default DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS
|
|
17
|
+
* @returns The formatted parameters.
|
|
18
|
+
*/
|
|
19
|
+
export function limitParamsForLogging(params, options = DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS) {
|
|
20
|
+
const { maxStringLength = DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS.maxStringLength, maxKeyCount = DEFAULT_PARAM_LOGGING_FORMAT_OPTIONS.maxKeyCount } = options;
|
|
21
|
+
function trimString(value) {
|
|
22
|
+
if (value.length > maxStringLength) {
|
|
23
|
+
return value.slice(0, maxStringLength - 3) + '...';
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
return Object.fromEntries(Object.entries(params).map(([key, value], index) => {
|
|
28
|
+
if (index == maxKeyCount) {
|
|
29
|
+
return ['⚠️', 'Additional parameters omitted'];
|
|
30
|
+
}
|
|
31
|
+
if (index > maxKeyCount) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
if (typeof value == 'string') {
|
|
35
|
+
return [key, trimString(value)];
|
|
36
|
+
}
|
|
37
|
+
return [key, trimString(JSON.stringify(value))];
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=param-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"param-logging.js","sourceRoot":"","sources":["../../src/util/param-logging.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAA8B;IAC7E,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,UAA8C,oCAAoC;IAElF,MAAM,EACJ,eAAe,GAAG,oCAAoC,CAAC,eAAe,EACtE,WAAW,GAAG,oCAAoC,CAAC,WAAW,EAC/D,GAAG,OAAO,CAAC;IAEZ,SAAS,UAAU,CAAC,KAAa;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;QACjD,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,GAAG,WAAW,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as t from 'ts-codec';
|
|
2
|
-
import { BucketPriority, SqliteJsonRow } from '@powersync/service-sync-rules';
|
|
3
1
|
import { JsonContainer } from '@powersync/service-jsonbig';
|
|
2
|
+
import { BucketPriority, SqliteJsonRow } from '@powersync/service-sync-rules';
|
|
3
|
+
import * as t from 'ts-codec';
|
|
4
4
|
export declare const BucketRequest: t.ObjectCodec<{
|
|
5
5
|
name: t.IdentityCodec<t.CodecType.String>;
|
|
6
6
|
/**
|
|
@@ -89,6 +89,10 @@ export declare const StreamingSyncRequest: t.ObjectCodec<{
|
|
|
89
89
|
* Client parameters to be passed to the sync rules.
|
|
90
90
|
*/
|
|
91
91
|
parameters: t.OptionalCodec<t.Codec<Record<string, any>, Record<string, any>, string, t.CodecProps>>;
|
|
92
|
+
/**
|
|
93
|
+
* Application metadata to be used in logging.
|
|
94
|
+
*/
|
|
95
|
+
app_metadata: t.OptionalCodec<t.Codec<Record<string, string>, Record<string, string>, string, t.CodecProps>>;
|
|
92
96
|
/**
|
|
93
97
|
* Unique client id.
|
|
94
98
|
*/
|
|
@@ -62,6 +62,10 @@ export const StreamingSyncRequest = t.object({
|
|
|
62
62
|
* Client parameters to be passed to the sync rules.
|
|
63
63
|
*/
|
|
64
64
|
parameters: t.record(t.any).optional(),
|
|
65
|
+
/**
|
|
66
|
+
* Application metadata to be used in logging.
|
|
67
|
+
*/
|
|
68
|
+
app_metadata: t.record(t.string).optional(),
|
|
65
69
|
/**
|
|
66
70
|
* Unique client id.
|
|
67
71
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-types.js","sourceRoot":"","sources":["../../src/util/protocol-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol-types.js","sourceRoot":"","sources":["../../src/util/protocol-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM;IAEd;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM;CAChB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;CAC7C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IAE1C;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAElC;;OAEG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAE3C;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.17.0",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"license": "FSL-1.1-ALv2",
|
|
11
11
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"uuid": "^11.1.0",
|
|
34
34
|
"winston": "^3.13.0",
|
|
35
35
|
"yaml": "^2.3.2",
|
|
36
|
-
"@powersync/lib-services-framework": "0.7.
|
|
36
|
+
"@powersync/lib-services-framework": "0.7.11",
|
|
37
37
|
"@powersync/service-jsonbig": "0.17.12",
|
|
38
|
-
"@powersync/service-rsocket-router": "0.2.
|
|
39
|
-
"@powersync/service-sync-rules": "0.29.
|
|
40
|
-
"@powersync/service-types": "0.13.
|
|
38
|
+
"@powersync/service-rsocket-router": "0.2.8",
|
|
39
|
+
"@powersync/service-sync-rules": "0.29.8",
|
|
40
|
+
"@powersync/service-types": "0.13.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/async": "^3.2.24",
|
|
@@ -6,6 +6,7 @@ import { SocketRouteGenerator } from '../router-socket.js';
|
|
|
6
6
|
import { SyncRoutes } from './sync-stream.js';
|
|
7
7
|
|
|
8
8
|
import { APIMetric, event_types } from '@powersync/service-types';
|
|
9
|
+
import { limitParamsForLogging } from '../../util/param-logging.js';
|
|
9
10
|
|
|
10
11
|
export const syncStreamReactive: SocketRouteGenerator = (router) =>
|
|
11
12
|
router.reactiveStream<util.StreamingSyncRequest, any>(SyncRoutes.STREAM, {
|
|
@@ -97,6 +98,13 @@ export const syncStreamReactive: SocketRouteGenerator = (router) =>
|
|
|
97
98
|
// Must be set before we start the stream
|
|
98
99
|
tracker.setCompressed(connection.tracker.encoding);
|
|
99
100
|
}
|
|
101
|
+
|
|
102
|
+
const formattedAppMetadata = params.app_metadata ? limitParamsForLogging(params.app_metadata) : undefined;
|
|
103
|
+
logger.info('Sync stream started', {
|
|
104
|
+
app_metadata: formattedAppMetadata,
|
|
105
|
+
client_params: params.parameters ? limitParamsForLogging(params.parameters) : undefined
|
|
106
|
+
});
|
|
107
|
+
|
|
100
108
|
try {
|
|
101
109
|
for await (const data of sync.streamResponse({
|
|
102
110
|
syncContext: syncContext,
|
|
@@ -179,6 +187,7 @@ export const syncStreamReactive: SocketRouteGenerator = (router) =>
|
|
|
179
187
|
}
|
|
180
188
|
logger.info(`Sync stream complete`, {
|
|
181
189
|
...tracker.getLogMeta(),
|
|
190
|
+
app_metadata: formattedAppMetadata,
|
|
182
191
|
stream_ms: Date.now() - streamStart,
|
|
183
192
|
close_reason: closeReason ?? 'unknown'
|
|
184
193
|
});
|
|
@@ -5,10 +5,11 @@ import { Readable } from 'stream';
|
|
|
5
5
|
import * as sync from '../../sync/sync-index.js';
|
|
6
6
|
import * as util from '../../util/util-index.js';
|
|
7
7
|
|
|
8
|
+
import { APIMetric, event_types } from '@powersync/service-types';
|
|
8
9
|
import { authUser } from '../auth.js';
|
|
9
10
|
import { routeDefinition } from '../router.js';
|
|
10
|
-
import { APIMetric, event_types } from '@powersync/service-types';
|
|
11
11
|
|
|
12
|
+
import { limitParamsForLogging } from '../../util/param-logging.js';
|
|
12
13
|
import { maybeCompressResponseStream } from '../compression.js';
|
|
13
14
|
|
|
14
15
|
export enum SyncRoutes {
|
|
@@ -75,6 +76,16 @@ export const syncStreamed = routeDefinition({
|
|
|
75
76
|
|
|
76
77
|
const controller = new AbortController();
|
|
77
78
|
const tracker = new sync.RequestTracker(metricsEngine);
|
|
79
|
+
|
|
80
|
+
const formattedAppMetadata = payload.params.app_metadata
|
|
81
|
+
? limitParamsForLogging(payload.params.app_metadata)
|
|
82
|
+
: undefined;
|
|
83
|
+
|
|
84
|
+
logger.info('Sync stream started', {
|
|
85
|
+
app_metadata: formattedAppMetadata,
|
|
86
|
+
client_params: payload.params.parameters ? limitParamsForLogging(payload.params.parameters) : undefined
|
|
87
|
+
});
|
|
88
|
+
|
|
78
89
|
try {
|
|
79
90
|
metricsEngine.getUpDownCounter(APIMetric.CONCURRENT_CONNECTIONS).add(1);
|
|
80
91
|
service_context.eventsEngine.emit(event_types.EventsEngineEventType.SDK_CONNECT_EVENT, sdkData);
|
|
@@ -149,6 +160,7 @@ export const syncStreamed = routeDefinition({
|
|
|
149
160
|
});
|
|
150
161
|
logger.info(`Sync stream complete`, {
|
|
151
162
|
...tracker.getLogMeta(),
|
|
163
|
+
app_metadata: formattedAppMetadata,
|
|
152
164
|
stream_ms: Date.now() - streamStart,
|
|
153
165
|
close_reason: closeReason ?? 'unknown'
|
|
154
166
|
});
|
|
@@ -31,6 +31,13 @@ export interface ReportStorage extends AsyncDisposable {
|
|
|
31
31
|
getClientConnectionReports(
|
|
32
32
|
data: event_types.ClientConnectionReportRequest
|
|
33
33
|
): Promise<event_types.ClientConnectionReportResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* Get a paginated list of client connection events
|
|
36
|
+
* This will return a paginated list of connections for a client/ user ID or all if neither is provided, within a date range if provided
|
|
37
|
+
*/
|
|
38
|
+
getGeneralClientConnectionAnalytics(
|
|
39
|
+
data: event_types.ClientConnectionAnalyticsRequest
|
|
40
|
+
): Promise<event_types.PaginatedResponse<event_types.ClientConnection>>;
|
|
34
41
|
/**
|
|
35
42
|
* Delete old connection data based on a specific date.
|
|
36
43
|
* This is used to clean up old connection data that is no longer needed.
|
package/src/sync/sync.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { JSONBig, JsonContainer } from '@powersync/service-jsonbig';
|
|
2
|
-
import {
|
|
3
|
-
BucketDescription,
|
|
4
|
-
BucketPriority,
|
|
5
|
-
RequestJwtPayload,
|
|
6
|
-
RequestParameters,
|
|
7
|
-
SqlSyncRules
|
|
8
|
-
} from '@powersync/service-sync-rules';
|
|
2
|
+
import { BucketDescription, BucketPriority, RequestJwtPayload } from '@powersync/service-sync-rules';
|
|
9
3
|
|
|
10
4
|
import { AbortError } from 'ix/aborterror.js';
|
|
11
5
|
|
|
@@ -14,11 +8,11 @@ import * as storage from '../storage/storage-index.js';
|
|
|
14
8
|
import * as util from '../util/util-index.js';
|
|
15
9
|
|
|
16
10
|
import { Logger, logger as defaultLogger } from '@powersync/lib-services-framework';
|
|
17
|
-
import { BucketChecksumState, CheckpointLine, VersionedSyncRules } from './BucketChecksumState.js';
|
|
18
11
|
import { mergeAsyncIterables } from '../streams/streams-index.js';
|
|
19
|
-
import {
|
|
20
|
-
import { SyncContext } from './SyncContext.js';
|
|
12
|
+
import { BucketChecksumState, CheckpointLine, VersionedSyncRules } from './BucketChecksumState.js';
|
|
21
13
|
import { OperationsSentStats, RequestTracker, statsForBatch } from './RequestTracker.js';
|
|
14
|
+
import { SyncContext } from './SyncContext.js';
|
|
15
|
+
import { TokenStreamOptions, acquireSemaphoreAbortable, settledPromise, tokenStream } from './util.js';
|
|
22
16
|
|
|
23
17
|
export interface SyncStreamParameters {
|
|
24
18
|
syncContext: SyncContext;
|