@twin.org/synchronised-storage-service 0.0.1-next.2 → 0.0.1-next.4
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/dist/cjs/index.cjs +962 -314
- package/dist/esm/index.mjs +963 -316
- package/dist/types/entities/syncSnapshotEntry.d.ts +4 -5
- package/dist/types/helpers/blobStorageHelper.d.ts +33 -0
- package/dist/types/helpers/changeSetHelper.d.ts +20 -7
- package/dist/types/helpers/localSyncStateHelper.d.ts +13 -28
- package/dist/types/helpers/remoteSyncStateHelper.d.ts +26 -21
- package/dist/types/helpers/versions.d.ts +3 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/models/ISyncPointerStore.d.ts +15 -0
- package/dist/types/models/ISyncSnapshot.d.ts +5 -1
- package/dist/types/models/ISyncState.d.ts +4 -0
- package/dist/types/models/ISynchronisedStorageServiceConfig.d.ts +17 -11
- package/dist/types/models/ISynchronisedStorageServiceConstructorOptions.d.ts +11 -2
- package/dist/types/synchronisedStorageRoutes.d.ts +9 -1
- package/dist/types/synchronisedStorageService.d.ts +13 -4
- package/docs/architecture.md +125 -0
- package/docs/changelog.md +29 -0
- package/docs/open-api/spec.json +244 -18
- package/docs/reference/classes/SyncSnapshotEntry.md +5 -5
- package/docs/reference/classes/SynchronisedStorageService.md +38 -5
- package/docs/reference/functions/synchronisedStorageGetDecryptionKeyRequest.md +31 -0
- package/docs/reference/index.md +4 -1
- package/docs/reference/interfaces/ISyncPointerStore.md +23 -0
- package/docs/reference/interfaces/ISyncSnapshot.md +43 -0
- package/docs/reference/interfaces/ISyncState.md +19 -0
- package/docs/reference/interfaces/ISynchronisedStorageServiceConfig.md +37 -17
- package/docs/reference/interfaces/ISynchronisedStorageServiceConstructorOptions.md +25 -3
- package/locales/en.json +62 -14
- package/package.json +4 -2
- package/dist/types/models/ISyncChange.d.ts +0 -18
- package/dist/types/models/ISyncChangeSet.d.ts +0 -36
- package/dist/types/models/ISyncPointer.d.ts +0 -9
- package/docs/reference/interfaces/ISyncChange.md +0 -33
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.1-next.4](https://github.com/twinfoundation/synchronised-storage/compare/synchronised-storage-service-v0.0.1-next.3...synchronised-storage-service-v0.0.1-next.4) (2025-08-08)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add payload versioning ([3bbbce0](https://github.com/twinfoundation/synchronised-storage/commit/3bbbce0bdf24bbe67c1a265704538d505d7feb91))
|
|
9
|
+
* blob storage connector instead of component ([#7](https://github.com/twinfoundation/synchronised-storage/issues/7)) ([ea27241](https://github.com/twinfoundation/synchronised-storage/commit/ea27241cf0810b52ab7a6be7346809d127b7109a))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Dependencies
|
|
13
|
+
|
|
14
|
+
* The following workspace dependencies were updated
|
|
15
|
+
* dependencies
|
|
16
|
+
* @twin.org/synchronised-storage-models bumped from 0.0.1-next.3 to 0.0.1-next.4
|
|
17
|
+
|
|
18
|
+
## [0.0.1-next.3](https://github.com/twinfoundation/synchronised-storage/compare/synchronised-storage-service-v0.0.1-next.2...synchronised-storage-service-v0.0.1-next.3) (2025-07-25)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* sync testing ([#5](https://github.com/twinfoundation/synchronised-storage/issues/5)) ([f78d5ac](https://github.com/twinfoundation/synchronised-storage/commit/f78d5ac661b891f9912e0a81d028453f909a64b4))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Dependencies
|
|
27
|
+
|
|
28
|
+
* The following workspace dependencies were updated
|
|
29
|
+
* dependencies
|
|
30
|
+
* @twin.org/synchronised-storage-models bumped from 0.0.1-next.2 to 0.0.1-next.3
|
|
31
|
+
|
|
3
32
|
## [0.0.1-next.2](https://github.com/twinfoundation/synchronised-storage/compare/synchronised-storage-service-v0.0.1-next.1...synchronised-storage-service-v0.0.1-next.2) (2025-07-22)
|
|
4
33
|
|
|
5
34
|
|
package/docs/open-api/spec.json
CHANGED
|
@@ -21,30 +21,52 @@
|
|
|
21
21
|
}
|
|
22
22
|
],
|
|
23
23
|
"paths": {
|
|
24
|
-
"/synchronised-storage": {
|
|
25
|
-
"
|
|
24
|
+
"/synchronised-storage/sync-changeset": {
|
|
25
|
+
"post": {
|
|
26
26
|
"operationId": "synchronisedStorageSyncChangeSetRequest",
|
|
27
27
|
"summary": "Request that the node perform a sync request for a changeset.",
|
|
28
28
|
"tags": [
|
|
29
29
|
"Synchronised Storage"
|
|
30
30
|
],
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
"requestBody": {
|
|
32
|
+
"description": "Request a trusted node to perform a sync request for a changeset.",
|
|
33
|
+
"required": true,
|
|
34
|
+
"content": {
|
|
35
|
+
"application/json": {
|
|
36
|
+
"schema": {
|
|
37
|
+
"$ref": "#/components/schemas/SyncChangeSet"
|
|
38
|
+
},
|
|
39
|
+
"examples": {
|
|
40
|
+
"synchronisedStorageSyncChangeSetRequestExample": {
|
|
41
|
+
"value": {
|
|
42
|
+
"id": "0909090909090909090909090909090909090909090909090909090909090909",
|
|
43
|
+
"dateCreated": "2025-05-29T01:00:00.000Z",
|
|
44
|
+
"nodeIdentity": "did:entity-storage:0xd2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2",
|
|
45
|
+
"changes": [
|
|
46
|
+
{
|
|
47
|
+
"entity": {
|
|
48
|
+
"dateModified": "2025-01-01T00:00:00.000Z"
|
|
49
|
+
},
|
|
50
|
+
"id": "test-id-1",
|
|
51
|
+
"operation": "set"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"proof": {
|
|
55
|
+
"@context": "https://www.w3.org/ns/credentials/v2",
|
|
56
|
+
"created": "2025-05-29T01:00:00.000Z",
|
|
57
|
+
"cryptosuite": "eddsa-jcs-2022",
|
|
58
|
+
"proofPurpose": "assertionMethod",
|
|
59
|
+
"proofValue": "z5efBErQs3YBLZoH7jgKMQaRc9YjAxA5XSYKmW3FmTBDw9WionT2NS2x1SMvcRyBvw53cSSoaCT1xQH9tkWngGCX3",
|
|
60
|
+
"type": "DataIntegrityProof",
|
|
61
|
+
"verificationMethod": "did:entity-storage:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0#synchronised-storage-assertion"
|
|
62
|
+
},
|
|
63
|
+
"storageKey": "test-type"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
46
68
|
}
|
|
47
|
-
|
|
69
|
+
},
|
|
48
70
|
"responses": {
|
|
49
71
|
"204": {
|
|
50
72
|
"description": "The rest request ended in success with no data."
|
|
@@ -70,6 +92,100 @@
|
|
|
70
92
|
}
|
|
71
93
|
}
|
|
72
94
|
},
|
|
95
|
+
"500": {
|
|
96
|
+
"description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
|
|
97
|
+
"content": {
|
|
98
|
+
"application/json": {
|
|
99
|
+
"schema": {
|
|
100
|
+
"$ref": "#/components/schemas/Error"
|
|
101
|
+
},
|
|
102
|
+
"examples": {
|
|
103
|
+
"exampleResponse": {
|
|
104
|
+
"value": {
|
|
105
|
+
"name": "InternalServerError",
|
|
106
|
+
"message": "component.error"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"/synchronised-storage/decryption-key": {
|
|
117
|
+
"post": {
|
|
118
|
+
"operationId": "synchronisedStorageGetDecryptionKeyRequest",
|
|
119
|
+
"summary": "Request the decryption key.",
|
|
120
|
+
"tags": [
|
|
121
|
+
"Synchronised Storage"
|
|
122
|
+
],
|
|
123
|
+
"requestBody": {
|
|
124
|
+
"description": "Request a trusted node to perform a sync request for a changeset.",
|
|
125
|
+
"required": true,
|
|
126
|
+
"content": {
|
|
127
|
+
"application/json": {
|
|
128
|
+
"schema": {
|
|
129
|
+
"$ref": "#/components/schemas/SyncChangeSet"
|
|
130
|
+
},
|
|
131
|
+
"examples": {
|
|
132
|
+
"synchronisedStorageSyncGetDecryptionKeyRequestExample": {
|
|
133
|
+
"value": {
|
|
134
|
+
"nodeIdentity": "did:entity-storage:0xd2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2",
|
|
135
|
+
"proof": {
|
|
136
|
+
"@context": "https://www.w3.org/ns/credentials/v2",
|
|
137
|
+
"created": "2025-05-29T01:00:00.000Z",
|
|
138
|
+
"cryptosuite": "eddsa-jcs-2022",
|
|
139
|
+
"proofPurpose": "assertionMethod",
|
|
140
|
+
"proofValue": "z5efBErQs3YBLZoH7jgKMQaRc9YjAxA5XSYKmW3FmTBDw9WionT2NS2x1SMvcRyBvw53cSSoaCT1xQH9tkWngGCX3",
|
|
141
|
+
"type": "DataIntegrityProof",
|
|
142
|
+
"verificationMethod": "did:entity-storage:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0#synchronised-storage-assertion"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"responses": {
|
|
151
|
+
"200": {
|
|
152
|
+
"description": "Response to a request for the decryption key for the synchronised storage.",
|
|
153
|
+
"content": {
|
|
154
|
+
"application/json": {
|
|
155
|
+
"schema": {
|
|
156
|
+
"$ref": "#/components/schemas/SyncDecryptionKeyResponse"
|
|
157
|
+
},
|
|
158
|
+
"examples": {
|
|
159
|
+
"synchronisedStorageSyncGetDecryptionKeyResponseExample": {
|
|
160
|
+
"value": {
|
|
161
|
+
"decryptionKey": "z5efBErQs3YBLZoH7jgKMQaRc9YjAxA5XSYKmW3FmTBDw9WionT2NS2x1SMvcRyBvw53cSSoaCT1xQH9tkWngGCX3"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"400": {
|
|
169
|
+
"description": "The server cannot process the request, see the content for more details.",
|
|
170
|
+
"content": {
|
|
171
|
+
"application/json": {
|
|
172
|
+
"schema": {
|
|
173
|
+
"$ref": "#/components/schemas/Error"
|
|
174
|
+
},
|
|
175
|
+
"examples": {
|
|
176
|
+
"exampleResponse": {
|
|
177
|
+
"value": {
|
|
178
|
+
"name": "GeneralError",
|
|
179
|
+
"message": "component.error",
|
|
180
|
+
"properties": {
|
|
181
|
+
"foo": "bar"
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
73
189
|
"401": {
|
|
74
190
|
"description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
|
|
75
191
|
"content": {
|
|
@@ -146,6 +262,116 @@
|
|
|
146
262
|
],
|
|
147
263
|
"additionalProperties": false,
|
|
148
264
|
"description": "Model to describe serialized error."
|
|
265
|
+
},
|
|
266
|
+
"SyncChange<SynchronisedEntity>": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"operation": {
|
|
270
|
+
"$ref": "#/components/schemas/SyncChangeOperation"
|
|
271
|
+
},
|
|
272
|
+
"id": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"description": "The item id."
|
|
275
|
+
},
|
|
276
|
+
"entity": {
|
|
277
|
+
"$ref": "#/components/schemas/SynchronisedEntity"
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"required": [
|
|
281
|
+
"operation",
|
|
282
|
+
"id"
|
|
283
|
+
],
|
|
284
|
+
"additionalProperties": false,
|
|
285
|
+
"description": "The object definition for a sync change."
|
|
286
|
+
},
|
|
287
|
+
"SyncChangeOperation": {
|
|
288
|
+
"anyOf": [
|
|
289
|
+
{
|
|
290
|
+
"type": "string",
|
|
291
|
+
"const": "set",
|
|
292
|
+
"description": "An item was set in the storage."
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"type": "string",
|
|
296
|
+
"const": "delete",
|
|
297
|
+
"description": "An item was deleted from the storage."
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
"description": "The operations for a change. The operations for a change"
|
|
301
|
+
},
|
|
302
|
+
"SyncChangeSet": {
|
|
303
|
+
"type": "object",
|
|
304
|
+
"properties": {
|
|
305
|
+
"id": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"description": "The id of the change set."
|
|
308
|
+
},
|
|
309
|
+
"dateCreated": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"description": "The date the change set was created."
|
|
312
|
+
},
|
|
313
|
+
"storageKey": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"description": "The storage key of the change set. This is used to identify the entities being synchronised."
|
|
316
|
+
},
|
|
317
|
+
"dateModified": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"description": "The date the change set was last modified."
|
|
320
|
+
},
|
|
321
|
+
"changes": {
|
|
322
|
+
"type": "array",
|
|
323
|
+
"items": false,
|
|
324
|
+
"description": "The changes to apply after a snapshot.",
|
|
325
|
+
"prefixItems": [
|
|
326
|
+
{
|
|
327
|
+
"$ref": "#/components/schemas/SyncChange<SynchronisedEntity>"
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"nodeIdentity": {
|
|
332
|
+
"type": "string",
|
|
333
|
+
"description": "The identity of the node that created the change set."
|
|
334
|
+
},
|
|
335
|
+
"proof": {
|
|
336
|
+
"$ref": "https://schema.twindev.org/w3c-did/Proof"
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"required": [
|
|
340
|
+
"id",
|
|
341
|
+
"dateCreated",
|
|
342
|
+
"storageKey",
|
|
343
|
+
"changes",
|
|
344
|
+
"nodeIdentity"
|
|
345
|
+
],
|
|
346
|
+
"additionalProperties": false,
|
|
347
|
+
"description": "The object definition for a sync change set."
|
|
348
|
+
},
|
|
349
|
+
"SyncDecryptionKeyResponse": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": {
|
|
352
|
+
"decryptionKey": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"description": "The decryption key for the synchronised storage as base64."
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"required": [
|
|
358
|
+
"decryptionKey"
|
|
359
|
+
],
|
|
360
|
+
"additionalProperties": false,
|
|
361
|
+
"description": "The body of the response."
|
|
362
|
+
},
|
|
363
|
+
"SynchronisedEntity": {
|
|
364
|
+
"type": "object",
|
|
365
|
+
"properties": {
|
|
366
|
+
"dateModified": {
|
|
367
|
+
"type": "string",
|
|
368
|
+
"description": "The date the entry was modified"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"required": [
|
|
372
|
+
"dateModified"
|
|
373
|
+
],
|
|
374
|
+
"additionalProperties": false
|
|
149
375
|
}
|
|
150
376
|
},
|
|
151
377
|
"securitySchemes": {
|
|
@@ -28,11 +28,11 @@ The id for the snapshot.
|
|
|
28
28
|
|
|
29
29
|
***
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### storageKey
|
|
32
32
|
|
|
33
|
-
> **
|
|
33
|
+
> **storageKey**: `string`
|
|
34
34
|
|
|
35
|
-
The
|
|
35
|
+
The storage key for the snapshot i.e. which entity is being synchronized.
|
|
36
36
|
|
|
37
37
|
***
|
|
38
38
|
|
|
@@ -68,8 +68,8 @@ The ids of the storage for the change sets in the snapshot, if this is not a loc
|
|
|
68
68
|
|
|
69
69
|
***
|
|
70
70
|
|
|
71
|
-
###
|
|
71
|
+
### changes?
|
|
72
72
|
|
|
73
|
-
> `optional` **
|
|
73
|
+
> `optional` **changes**: `ISyncChange`\<`T`\>[]
|
|
74
74
|
|
|
75
75
|
The changes that were made in this snapshot, if this is a local snapshot.
|
|
@@ -118,19 +118,52 @@ Nothing.
|
|
|
118
118
|
|
|
119
119
|
***
|
|
120
120
|
|
|
121
|
-
###
|
|
121
|
+
### getDecryptionKey()
|
|
122
122
|
|
|
123
|
-
> **
|
|
123
|
+
> **getDecryptionKey**(`nodeIdentity`, `proof`): `Promise`\<`string`\>
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
Get the decryption key for the synchronised storage.
|
|
126
|
+
This is used to decrypt the data stored in the synchronised storage.
|
|
126
127
|
|
|
127
128
|
#### Parameters
|
|
128
129
|
|
|
129
|
-
#####
|
|
130
|
+
##### nodeIdentity
|
|
130
131
|
|
|
131
132
|
`string`
|
|
132
133
|
|
|
133
|
-
The
|
|
134
|
+
The identity of the node requesting the decryption key.
|
|
135
|
+
|
|
136
|
+
##### proof
|
|
137
|
+
|
|
138
|
+
`IProof`
|
|
139
|
+
|
|
140
|
+
The proof of the request so we know the request is from the specified node.
|
|
141
|
+
|
|
142
|
+
#### Returns
|
|
143
|
+
|
|
144
|
+
`Promise`\<`string`\>
|
|
145
|
+
|
|
146
|
+
The decryption key.
|
|
147
|
+
|
|
148
|
+
#### Implementation of
|
|
149
|
+
|
|
150
|
+
`ISynchronisedStorageComponent.getDecryptionKey`
|
|
151
|
+
|
|
152
|
+
***
|
|
153
|
+
|
|
154
|
+
### syncChangeSet()
|
|
155
|
+
|
|
156
|
+
> **syncChangeSet**(`syncChangeSet`): `Promise`\<`void`\>
|
|
157
|
+
|
|
158
|
+
Synchronise a set of changes from an untrusted node, assumes this is a trusted node.
|
|
159
|
+
|
|
160
|
+
#### Parameters
|
|
161
|
+
|
|
162
|
+
##### syncChangeSet
|
|
163
|
+
|
|
164
|
+
`ISyncChangeSet`\<`T`\>
|
|
165
|
+
|
|
166
|
+
The change set to synchronise.
|
|
134
167
|
|
|
135
168
|
#### Returns
|
|
136
169
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Function: synchronisedStorageGetDecryptionKeyRequest()
|
|
2
|
+
|
|
3
|
+
> **synchronisedStorageGetDecryptionKeyRequest**(`httpRequestContext`, `componentName`, `request`): `Promise`\<`ISyncDecryptionKeyResponse`\>
|
|
4
|
+
|
|
5
|
+
Request the decryption key.
|
|
6
|
+
|
|
7
|
+
## Parameters
|
|
8
|
+
|
|
9
|
+
### httpRequestContext
|
|
10
|
+
|
|
11
|
+
`IHttpRequestContext`
|
|
12
|
+
|
|
13
|
+
The request context for the API.
|
|
14
|
+
|
|
15
|
+
### componentName
|
|
16
|
+
|
|
17
|
+
`string`
|
|
18
|
+
|
|
19
|
+
The name of the component to use in the routes.
|
|
20
|
+
|
|
21
|
+
### request
|
|
22
|
+
|
|
23
|
+
`ISyncDecryptionKeyRequest`
|
|
24
|
+
|
|
25
|
+
The request.
|
|
26
|
+
|
|
27
|
+
## Returns
|
|
28
|
+
|
|
29
|
+
`Promise`\<`ISyncDecryptionKeyResponse`\>
|
|
30
|
+
|
|
31
|
+
The response object with additional http response properties.
|
package/docs/reference/index.md
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
## Interfaces
|
|
9
9
|
|
|
10
|
-
- [
|
|
10
|
+
- [ISyncPointerStore](interfaces/ISyncPointerStore.md)
|
|
11
|
+
- [ISyncSnapshot](interfaces/ISyncSnapshot.md)
|
|
12
|
+
- [ISyncState](interfaces/ISyncState.md)
|
|
11
13
|
- [ISynchronisedStorageServiceConfig](interfaces/ISynchronisedStorageServiceConfig.md)
|
|
12
14
|
- [ISynchronisedStorageServiceConstructorOptions](interfaces/ISynchronisedStorageServiceConstructorOptions.md)
|
|
13
15
|
|
|
@@ -21,3 +23,4 @@
|
|
|
21
23
|
- [initSchema](functions/initSchema.md)
|
|
22
24
|
- [generateRestRoutesSynchronisedStorage](functions/generateRestRoutesSynchronisedStorage.md)
|
|
23
25
|
- [synchronisedStorageSyncChangeSetRequest](functions/synchronisedStorageSyncChangeSetRequest.md)
|
|
26
|
+
- [synchronisedStorageGetDecryptionKeyRequest](functions/synchronisedStorageGetDecryptionKeyRequest.md)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Interface: ISyncPointerStore
|
|
2
|
+
|
|
3
|
+
The object definition for the sync pointer store.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
### version
|
|
8
|
+
|
|
9
|
+
> **version**: `string`
|
|
10
|
+
|
|
11
|
+
The version of the sync pointer store.
|
|
12
|
+
|
|
13
|
+
***
|
|
14
|
+
|
|
15
|
+
### syncPointers
|
|
16
|
+
|
|
17
|
+
> **syncPointers**: `object`
|
|
18
|
+
|
|
19
|
+
The mapping from storage keys to sync pointers.
|
|
20
|
+
|
|
21
|
+
#### Index Signature
|
|
22
|
+
|
|
23
|
+
\[`key`: `string`\]: `string`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Interface: ISyncSnapshot
|
|
2
|
+
|
|
3
|
+
The object definition for a sync snapshot.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
### version
|
|
8
|
+
|
|
9
|
+
> **version**: `string`
|
|
10
|
+
|
|
11
|
+
The version of the sync state.
|
|
12
|
+
|
|
13
|
+
***
|
|
14
|
+
|
|
15
|
+
### id
|
|
16
|
+
|
|
17
|
+
> **id**: `string`
|
|
18
|
+
|
|
19
|
+
The id of the snapshot.
|
|
20
|
+
|
|
21
|
+
***
|
|
22
|
+
|
|
23
|
+
### dateCreated
|
|
24
|
+
|
|
25
|
+
> **dateCreated**: `string`
|
|
26
|
+
|
|
27
|
+
The date the snapshot was created.
|
|
28
|
+
|
|
29
|
+
***
|
|
30
|
+
|
|
31
|
+
### dateModified
|
|
32
|
+
|
|
33
|
+
> **dateModified**: `string`
|
|
34
|
+
|
|
35
|
+
The date the snapshot was last modified.
|
|
36
|
+
|
|
37
|
+
***
|
|
38
|
+
|
|
39
|
+
### changeSetStorageIds
|
|
40
|
+
|
|
41
|
+
> **changeSetStorageIds**: `string`[]
|
|
42
|
+
|
|
43
|
+
The ids of the storage for the change sets in the snapshot.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Interface: ISyncState
|
|
2
|
+
|
|
3
|
+
The object definition for a sync state.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
### version
|
|
8
|
+
|
|
9
|
+
> **version**: `string`
|
|
10
|
+
|
|
11
|
+
The version of the sync state.
|
|
12
|
+
|
|
13
|
+
***
|
|
14
|
+
|
|
15
|
+
### snapshots
|
|
16
|
+
|
|
17
|
+
> **snapshots**: [`ISyncSnapshot`](ISyncSnapshot.md)[]
|
|
18
|
+
|
|
19
|
+
The snapshots.
|
|
@@ -4,20 +4,11 @@ Configuration for the Synchronised Storage Service.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
### synchronisedStorageKey
|
|
8
|
-
|
|
9
|
-
> **synchronisedStorageKey**: `string`
|
|
10
|
-
|
|
11
|
-
The key to use for the remote synchronised storage, the initial item will have been
|
|
12
|
-
generated by a trusted node.
|
|
13
|
-
|
|
14
|
-
***
|
|
15
|
-
|
|
16
7
|
### synchronisedStorageMethodId?
|
|
17
8
|
|
|
18
9
|
> `optional` **synchronisedStorageMethodId**: `string`
|
|
19
10
|
|
|
20
|
-
The id of the identity method to use when signing/verifying changesets.
|
|
11
|
+
The id of the identity method to use when signing/verifying requests and changesets.
|
|
21
12
|
|
|
22
13
|
#### Default
|
|
23
14
|
|
|
@@ -27,16 +18,16 @@ synchronised-storage-assertion
|
|
|
27
18
|
|
|
28
19
|
***
|
|
29
20
|
|
|
30
|
-
###
|
|
21
|
+
### entityUpdateIntervalMinutes?
|
|
31
22
|
|
|
32
|
-
> `optional` **
|
|
23
|
+
> `optional` **entityUpdateIntervalMinutes**: `number`
|
|
33
24
|
|
|
34
|
-
How often to check for entity updates in
|
|
25
|
+
How often to check for entity updates in minutes.
|
|
35
26
|
|
|
36
27
|
#### Default
|
|
37
28
|
|
|
38
29
|
```ts
|
|
39
|
-
|
|
30
|
+
5
|
|
40
31
|
```
|
|
41
32
|
|
|
42
33
|
***
|
|
@@ -55,16 +46,16 @@ false
|
|
|
55
46
|
|
|
56
47
|
***
|
|
57
48
|
|
|
58
|
-
###
|
|
49
|
+
### consolidationIntervalMinutes?
|
|
59
50
|
|
|
60
|
-
> `optional` **
|
|
51
|
+
> `optional` **consolidationIntervalMinutes**: `number`
|
|
61
52
|
|
|
62
53
|
Interval to perform consolidation of changesets, only used if isTrustedNode is set.
|
|
63
54
|
|
|
64
55
|
#### Default
|
|
65
56
|
|
|
66
57
|
```ts
|
|
67
|
-
|
|
58
|
+
60
|
|
68
59
|
```
|
|
69
60
|
|
|
70
61
|
***
|
|
@@ -80,3 +71,32 @@ The number of entities to process in a single consolidation batch.
|
|
|
80
71
|
```ts
|
|
81
72
|
1000
|
|
82
73
|
```
|
|
74
|
+
|
|
75
|
+
***
|
|
76
|
+
|
|
77
|
+
### blobStorageEncryptionKeyId?
|
|
78
|
+
|
|
79
|
+
> `optional` **blobStorageEncryptionKeyId**: `string`
|
|
80
|
+
|
|
81
|
+
The encryption key id from the vault to use for blob storage, only required for trusted nodes, untrusted nodes will request the key.
|
|
82
|
+
|
|
83
|
+
#### Default
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
synchronised-storage-blob-encryption-key
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
***
|
|
90
|
+
|
|
91
|
+
### verifiableStorageKeyId
|
|
92
|
+
|
|
93
|
+
> **verifiableStorageKeyId**: `string`
|
|
94
|
+
|
|
95
|
+
The verifiable storage key to use, already expected to be created.
|
|
96
|
+
if the key is not found in the keys.json it is considered to be a custom verifiable storage id.
|
|
97
|
+
|
|
98
|
+
#### Default
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
local
|
|
102
|
+
```
|
|
@@ -20,6 +20,14 @@ The event bus component type.
|
|
|
20
20
|
|
|
21
21
|
***
|
|
22
22
|
|
|
23
|
+
### vaultConnectorType?
|
|
24
|
+
|
|
25
|
+
> `optional` **vaultConnectorType**: `string`
|
|
26
|
+
|
|
27
|
+
The vault connector type.
|
|
28
|
+
|
|
29
|
+
***
|
|
30
|
+
|
|
23
31
|
### syncSnapshotStorageConnectorType?
|
|
24
32
|
|
|
25
33
|
> `optional` **syncSnapshotStorageConnectorType**: `string`
|
|
@@ -34,11 +42,11 @@ sync-snapshot-entry
|
|
|
34
42
|
|
|
35
43
|
***
|
|
36
44
|
|
|
37
|
-
###
|
|
45
|
+
### blobStorageConnectorType?
|
|
38
46
|
|
|
39
|
-
> `optional` **
|
|
47
|
+
> `optional` **blobStorageConnectorType**: `string`
|
|
40
48
|
|
|
41
|
-
The blob storage
|
|
49
|
+
The blob storage connector used for remote sync state.
|
|
42
50
|
|
|
43
51
|
#### Default
|
|
44
52
|
|
|
@@ -76,6 +84,20 @@ identity
|
|
|
76
84
|
|
|
77
85
|
***
|
|
78
86
|
|
|
87
|
+
### taskSchedulerComponentType?
|
|
88
|
+
|
|
89
|
+
> `optional` **taskSchedulerComponentType**: `string`
|
|
90
|
+
|
|
91
|
+
The task scheduler component.
|
|
92
|
+
|
|
93
|
+
#### Default
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
task-scheduler
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
***
|
|
100
|
+
|
|
79
101
|
### trustedSynchronisedStorageComponentType?
|
|
80
102
|
|
|
81
103
|
> `optional` **trustedSynchronisedStorageComponentType**: `string`
|