@twin.org/federated-catalogue-service 0.0.3-next.2 → 0.0.3-next.21
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/README.md +1 -1
- package/dist/es/entities/dataset.js +12 -4
- package/dist/es/entities/dataset.js.map +1 -1
- package/dist/es/federatedCatalogueRoutes.js +241 -53
- package/dist/es/federatedCatalogueRoutes.js.map +1 -1
- package/dist/es/index.js +2 -0
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/IFederatedCatalogueServiceConfig.js +4 -0
- package/dist/es/models/IFederatedCatalogueServiceConfig.js.map +1 -0
- package/dist/es/models/IFederatedCatalogueServiceConstructorOptions.js.map +1 -1
- package/dist/es/services/federatedCatalogueService.js +344 -131
- package/dist/es/services/federatedCatalogueService.js.map +1 -1
- package/dist/es/utils/catalogErrorUtils.js +49 -0
- package/dist/es/utils/catalogErrorUtils.js.map +1 -0
- package/dist/es/utils/datasetConverters.js +23 -10
- package/dist/es/utils/datasetConverters.js.map +1 -1
- package/dist/types/entities/dataset.d.ts +37 -33
- package/dist/types/index.d.ts +2 -0
- package/dist/types/models/IFederatedCatalogueServiceConfig.d.ts +5 -0
- package/dist/types/models/IFederatedCatalogueServiceConstructorOptions.d.ts +14 -4
- package/dist/types/services/federatedCatalogueService.d.ts +37 -21
- package/dist/types/utils/catalogErrorUtils.d.ts +15 -0
- package/dist/types/utils/datasetConverters.d.ts +10 -10
- package/docs/changelog.md +271 -3
- package/docs/examples.md +126 -1
- package/docs/open-api/spec.json +256 -2513
- package/docs/reference/classes/Dataset.md +70 -62
- package/docs/reference/classes/FederatedCatalogueService.md +77 -40
- package/docs/reference/functions/datasetEntityToModel.md +7 -7
- package/docs/reference/functions/datasetModelToEntity.md +11 -6
- package/docs/reference/functions/transformErrorToStatusCode.md +19 -0
- package/docs/reference/functions/transformToCatalogError.md +20 -0
- package/docs/reference/index.md +3 -0
- package/docs/reference/interfaces/IFederatedCatalogueServiceConfig.md +3 -0
- package/docs/reference/interfaces/IFederatedCatalogueServiceConstructorOptions.md +33 -5
- package/locales/en.json +12 -6
- package/package.json +10 -5
package/docs/changelog.md
CHANGED
|
@@ -1,11 +1,279 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.0.3-next.
|
|
3
|
+
## [0.0.3-next.21](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.20...federated-catalogue-service-v0.0.3-next.21) (2026-06-12)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* bake organization id into object-form accessService endpoint URLs ([#88](https://github.com/iotaledger/twin-federated-catalogue/issues/88)) ([155d86d](https://github.com/iotaledger/twin-federated-catalogue/commit/155d86de7c416abf3c17a38fc3ac5969fd36449c))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.20 to 0.0.3-next.21
|
|
16
|
+
|
|
17
|
+
## [0.0.3-next.20](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.19...federated-catalogue-service-v0.0.3-next.20) (2026-06-11)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* organization identifiers ([#84](https://github.com/iotaledger/twin-federated-catalogue/issues/84)) ([1e02971](https://github.com/iotaledger/twin-federated-catalogue/commit/1e02971a12e40bd20a0034ee1de0988a689d3dc8))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Dependencies
|
|
26
|
+
|
|
27
|
+
* The following workspace dependencies were updated
|
|
28
|
+
* dependencies
|
|
29
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.19 to 0.0.3-next.20
|
|
30
|
+
|
|
31
|
+
## [0.0.3-next.19](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.18...federated-catalogue-service-v0.0.3-next.19) (2026-06-08)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* replace sync storage with shared DB and trust-token auth ([#79](https://github.com/iotaledger/twin-federated-catalogue/issues/79)) ([3a07f02](https://github.com/iotaledger/twin-federated-catalogue/commit/3a07f02aba8d6f3540a23e5c2cebc7b0e579ef30))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Dependencies
|
|
40
|
+
|
|
41
|
+
* The following workspace dependencies were updated
|
|
42
|
+
* dependencies
|
|
43
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.18 to 0.0.3-next.19
|
|
44
|
+
|
|
45
|
+
## [0.0.3-next.18](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.17...federated-catalogue-service-v0.0.3-next.18) (2026-06-01)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* allow CatalogRequestMessage without filter ([#72](https://github.com/iotaledger/twin-federated-catalogue/issues/72)) ([477343d](https://github.com/iotaledger/twin-federated-catalogue/commit/477343dd590150626c417a16705d5fa8bb96838f))
|
|
51
|
+
* stop double-converting filter results in query, preserving dataset [@id](https://github.com/id) ([#75](https://github.com/iotaledger/twin-federated-catalogue/issues/75)) ([f071eda](https://github.com/iotaledger/twin-federated-catalogue/commit/f071eda0f5fc35270570cac7bd106b2bdf02e6e2))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Dependencies
|
|
55
|
+
|
|
56
|
+
* The following workspace dependencies were updated
|
|
57
|
+
* dependencies
|
|
58
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.17 to 0.0.3-next.18
|
|
59
|
+
|
|
60
|
+
## [0.0.3-next.17](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.16...federated-catalogue-service-v0.0.3-next.17) (2026-05-20)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### Features
|
|
64
|
+
|
|
65
|
+
* update dependencies ([9534767](https://github.com/iotaledger/twin-federated-catalogue/commit/9534767b6aa85468ab5094512886246814edce9a))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Dependencies
|
|
69
|
+
|
|
70
|
+
* The following workspace dependencies were updated
|
|
71
|
+
* dependencies
|
|
72
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.16 to 0.0.3-next.17
|
|
73
|
+
|
|
74
|
+
## [0.0.3-next.16](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.15...federated-catalogue-service-v0.0.3-next.16) (2026-05-12)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### Features
|
|
78
|
+
|
|
79
|
+
* typescript 6 update ([ead042d](https://github.com/iotaledger/twin-federated-catalogue/commit/ead042d09f4e6b03a2db46ace2ea95d197f0f4b0))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
### Dependencies
|
|
83
|
+
|
|
84
|
+
* The following workspace dependencies were updated
|
|
85
|
+
* dependencies
|
|
86
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.15 to 0.0.3-next.16
|
|
87
|
+
|
|
88
|
+
## [0.0.3-next.15](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.14...federated-catalogue-service-v0.0.3-next.15) (2026-05-08)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Features
|
|
92
|
+
|
|
93
|
+
* publish encrypted `twin:tenantToken` per dataset ([#64](https://github.com/iotaledger/twin-federated-catalogue/issues/64)) ([77e4517](https://github.com/iotaledger/twin-federated-catalogue/commit/77e451782ad8b227b91b4cc8a97bdd6eb90881b6))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Dependencies
|
|
97
|
+
|
|
98
|
+
* The following workspace dependencies were updated
|
|
99
|
+
* dependencies
|
|
100
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.14 to 0.0.3-next.15
|
|
101
|
+
|
|
102
|
+
## [0.0.3-next.14](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.13...federated-catalogue-service-v0.0.3-next.14) (2026-03-20)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Features
|
|
106
|
+
|
|
107
|
+
* update to use new schemas ([41dae8d](https://github.com/iotaledger/twin-federated-catalogue/commit/41dae8d401dcea830b435aa35590e9c90a11eb1f))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
### Dependencies
|
|
111
|
+
|
|
112
|
+
* The following workspace dependencies were updated
|
|
113
|
+
* dependencies
|
|
114
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.13 to 0.0.3-next.14
|
|
115
|
+
|
|
116
|
+
## [0.0.3-next.13](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.12...federated-catalogue-service-v0.0.3-next.13) (2026-03-12)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* update DataspaceProtocolHelper.validate usage ([49eda69](https://github.com/iotaledger/twin-federated-catalogue/commit/49eda69073d0ef4cd88c0e01f5eee8a78e4195e4))
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### Dependencies
|
|
125
|
+
|
|
126
|
+
* The following workspace dependencies were updated
|
|
127
|
+
* dependencies
|
|
128
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.12 to 0.0.3-next.13
|
|
129
|
+
|
|
130
|
+
## [0.0.3-next.12](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.11...federated-catalogue-service-v0.0.3-next.12) (2026-03-06)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### Features
|
|
134
|
+
|
|
135
|
+
* add [@id](https://github.com/id) to policy example in federated catalogue route definition ([#58](https://github.com/iotaledger/twin-federated-catalogue/issues/58)) ([c854f16](https://github.com/iotaledger/twin-federated-catalogue/commit/c854f16eac91d23468134bb46e8a2c7a74e854af))
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
### Dependencies
|
|
139
|
+
|
|
140
|
+
* The following workspace dependencies were updated
|
|
141
|
+
* dependencies
|
|
142
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.11 to 0.0.3-next.12
|
|
143
|
+
|
|
144
|
+
## [0.0.3-next.11](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.10...federated-catalogue-service-v0.0.3-next.11) (2026-03-05)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
### Bug Fixes
|
|
148
|
+
|
|
149
|
+
* consistent naming of entity storage component in config ([1c1cb27](https://github.com/iotaledger/twin-federated-catalogue/commit/1c1cb274c5bca8cbe5f1da71b3dd4ddf52487001))
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
### Dependencies
|
|
153
|
+
|
|
154
|
+
* The following workspace dependencies were updated
|
|
155
|
+
* dependencies
|
|
156
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.10 to 0.0.3-next.11
|
|
157
|
+
|
|
158
|
+
## [0.0.3-next.10](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.9...federated-catalogue-service-v0.0.3-next.10) (2026-02-25)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
### Features
|
|
162
|
+
|
|
163
|
+
* update json-ld patterns ([172aff0](https://github.com/iotaledger/twin-federated-catalogue/commit/172aff07d0f0b780f72d1be3a4896bbf12f6173a))
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
### Dependencies
|
|
167
|
+
|
|
168
|
+
* The following workspace dependencies were updated
|
|
169
|
+
* dependencies
|
|
170
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.9 to 0.0.3-next.10
|
|
171
|
+
|
|
172
|
+
## [0.0.3-next.9](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.8...federated-catalogue-service-v0.0.3-next.9) (2026-02-12)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
### Features
|
|
176
|
+
|
|
177
|
+
* integrate synchronised storage with federated catalogue ([#53](https://github.com/iotaledger/twin-federated-catalogue/issues/53)) ([d1cdf06](https://github.com/iotaledger/twin-federated-catalogue/commit/d1cdf066adff8fb2266ccaaebcf57da391e03d3f))
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
### Dependencies
|
|
181
|
+
|
|
182
|
+
* The following workspace dependencies were updated
|
|
183
|
+
* dependencies
|
|
184
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.8 to 0.0.3-next.9
|
|
185
|
+
|
|
186
|
+
## [0.0.3-next.8](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.7...federated-catalogue-service-v0.0.3-next.8) (2026-01-26)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
### Features
|
|
190
|
+
|
|
191
|
+
* use new hosting url for cursor links ([e42c934](https://github.com/iotaledger/twin-federated-catalogue/commit/e42c934b9c8748ec5bdd4803c1cdc05c82ccace8))
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
### Dependencies
|
|
195
|
+
|
|
196
|
+
* The following workspace dependencies were updated
|
|
197
|
+
* dependencies
|
|
198
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.7 to 0.0.3-next.8
|
|
199
|
+
|
|
200
|
+
## [0.0.3-next.7](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.6...federated-catalogue-service-v0.0.3-next.7) (2026-01-22)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
### Bug Fixes
|
|
204
|
+
|
|
205
|
+
* context usage ([cd51790](https://github.com/iotaledger/twin-federated-catalogue/commit/cd51790ef97e14d21e89ef668b98477c163856bb))
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
### Dependencies
|
|
209
|
+
|
|
210
|
+
* The following workspace dependencies were updated
|
|
211
|
+
* dependencies
|
|
212
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.6 to 0.0.3-next.7
|
|
213
|
+
|
|
214
|
+
## [0.0.3-next.6](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.5...federated-catalogue-service-v0.0.3-next.6) (2026-01-20)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
### Bug Fixes
|
|
218
|
+
|
|
219
|
+
* transform GuardError to CatalogError for DS Protocol compliance ([#49](https://github.com/iotaledger/twin-federated-catalogue/issues/49)) ([d0f1090](https://github.com/iotaledger/twin-federated-catalogue/commit/d0f10900c251b9abc18e58c90562c393c3265727))
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
### Dependencies
|
|
223
|
+
|
|
224
|
+
* The following workspace dependencies were updated
|
|
225
|
+
* dependencies
|
|
226
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.5 to 0.0.3-next.6
|
|
227
|
+
|
|
228
|
+
## [0.0.3-next.5](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.4...federated-catalogue-service-v0.0.3-next.5) (2026-01-15)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
### Bug Fixes
|
|
232
|
+
|
|
233
|
+
* linting ([df034b1](https://github.com/iotaledger/twin-federated-catalogue/commit/df034b11e78fed68f64dfe9406809d2365acdfb8))
|
|
234
|
+
* pagination and ld context ([#45](https://github.com/iotaledger/twin-federated-catalogue/issues/45)) ([e36f096](https://github.com/iotaledger/twin-federated-catalogue/commit/e36f096aa4fdc61eb5b929a0fc4403247dbd41ce))
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
### Dependencies
|
|
238
|
+
|
|
239
|
+
* The following workspace dependencies were updated
|
|
240
|
+
* dependencies
|
|
241
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.4 to 0.0.3-next.5
|
|
242
|
+
|
|
243
|
+
## [0.0.3-next.4](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.3...federated-catalogue-service-v0.0.3-next.4) (2026-01-06)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
### Features
|
|
247
|
+
|
|
248
|
+
* updates standards dependencies ([62f5d9c](https://github.com/iotaledger/twin-federated-catalogue/commit/62f5d9c6180bc27497ac43624ffd714e7ce65ce6))
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
### Dependencies
|
|
252
|
+
|
|
253
|
+
* The following workspace dependencies were updated
|
|
254
|
+
* dependencies
|
|
255
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.3 to 0.0.3-next.4
|
|
256
|
+
|
|
257
|
+
## [0.0.3-next.3](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.2...federated-catalogue-service-v0.0.3-next.3) (2025-11-28)
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
### Bug Fixes
|
|
261
|
+
|
|
262
|
+
* service logging constructor type ([35e63cc](https://github.com/iotaledger/twin-federated-catalogue/commit/35e63cc6a46769b32c817f43157233d9f05346da))
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
### Dependencies
|
|
266
|
+
|
|
267
|
+
* The following workspace dependencies were updated
|
|
268
|
+
* dependencies
|
|
269
|
+
* @twin.org/federated-catalogue-models bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
270
|
+
|
|
271
|
+
## [0.0.3-next.2](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-service-v0.0.3-next.1...federated-catalogue-service-v0.0.3-next.2) (2025-11-28)
|
|
4
272
|
|
|
5
273
|
|
|
6
274
|
### Features
|
|
7
275
|
|
|
8
|
-
* implement Dataspace Protocol federated catalogue ([#36](https://github.com/
|
|
276
|
+
* implement Dataspace Protocol federated catalogue ([#36](https://github.com/iotaledger/twin-federated-catalogue/issues/36)) ([4765aba](https://github.com/iotaledger/twin-federated-catalogue/commit/4765aba4485ef8ad61e7ec1affbf0e454d974d36))
|
|
9
277
|
|
|
10
278
|
|
|
11
279
|
### Dependencies
|
package/docs/examples.md
CHANGED
|
@@ -1 +1,126 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Federated Catalogue Service Examples
|
|
2
|
+
|
|
3
|
+
These snippets show a realistic service flow for bootstrapping, storing and querying datasets, then removing records when lifecycle events require cleanup.
|
|
4
|
+
|
|
5
|
+
## FederatedCatalogueService
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { MemoryEntityStorageConnector } from '@twin.org/entity-storage-connector-memory';
|
|
9
|
+
import { EntityStorageConnectorFactory } from '@twin.org/entity-storage-models';
|
|
10
|
+
import { FederatedCatalogueService } from '@twin.org/federated-catalogue-service';
|
|
11
|
+
|
|
12
|
+
EntityStorageConnectorFactory.register('dataset', () => new MemoryEntityStorageConnector());
|
|
13
|
+
|
|
14
|
+
const service = new FederatedCatalogueService({
|
|
15
|
+
datasetEntityStorageType: 'dataset'
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
console.log(service.className() === FederatedCatalogueService.CLASS_NAME); // true
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { ContextIdKeys, ContextIdStore } from '@twin.org/context';
|
|
23
|
+
import { MemoryEntityStorageConnector } from '@twin.org/entity-storage-connector-memory';
|
|
24
|
+
import { EntityStorageConnectorFactory } from '@twin.org/entity-storage-models';
|
|
25
|
+
import { FederatedCatalogueService } from '@twin.org/federated-catalogue-service';
|
|
26
|
+
|
|
27
|
+
EntityStorageConnectorFactory.register('dataset', () => new MemoryEntityStorageConnector());
|
|
28
|
+
|
|
29
|
+
const service = new FederatedCatalogueService({
|
|
30
|
+
datasetEntityStorageType: 'dataset'
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
await ContextIdStore.set('request-1', {
|
|
34
|
+
[ContextIdKeys.Node]: 'did:web:node.example',
|
|
35
|
+
[ContextIdKeys.Organization]: 'did:web:publisher.example'
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
await service.start();
|
|
39
|
+
|
|
40
|
+
await service.set({
|
|
41
|
+
'@context': ['https://w3id.org/dspace/2024/1/context.json', 'https://www.w3.org/ns/dcat3.jsonld'],
|
|
42
|
+
'@type': 'dcat:Dataset',
|
|
43
|
+
'@id': 'urn:dataset:air-quality-2026',
|
|
44
|
+
'dcterms:identifier': 'urn:dataset:air-quality-2026',
|
|
45
|
+
'dcterms:publisher': {
|
|
46
|
+
'@id': 'did:web:publisher.example'
|
|
47
|
+
},
|
|
48
|
+
'dcterms:title': {
|
|
49
|
+
'@value': 'Air quality readings'
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const dataset = await service.get('urn:dataset:air-quality-2026');
|
|
54
|
+
|
|
55
|
+
console.log(dataset['@id']); // urn:dataset:air-quality-2026
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
import { ContextIdKeys, ContextIdStore } from '@twin.org/context';
|
|
60
|
+
import { MemoryEntityStorageConnector } from '@twin.org/entity-storage-connector-memory';
|
|
61
|
+
import { EntityStorageConnectorFactory } from '@twin.org/entity-storage-models';
|
|
62
|
+
import { FederatedCatalogueService } from '@twin.org/federated-catalogue-service';
|
|
63
|
+
|
|
64
|
+
EntityStorageConnectorFactory.register('dataset', () => new MemoryEntityStorageConnector());
|
|
65
|
+
|
|
66
|
+
const service = new FederatedCatalogueService({
|
|
67
|
+
datasetEntityStorageType: 'dataset'
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
await ContextIdStore.set('request-2', {
|
|
71
|
+
[ContextIdKeys.Node]: 'did:web:node.example',
|
|
72
|
+
[ContextIdKeys.Organization]: 'did:web:publisher.example'
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
await service.start();
|
|
76
|
+
|
|
77
|
+
const queryResult = await service.query(
|
|
78
|
+
[
|
|
79
|
+
{
|
|
80
|
+
'@type': 'FilterByMetadata',
|
|
81
|
+
'dcterms:publisher': {
|
|
82
|
+
'@id': 'did:web:publisher.example'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
'cursor-0',
|
|
87
|
+
20
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
console.log(queryResult.result['@type']); // Catalog
|
|
91
|
+
console.log(typeof queryResult.cursor === 'string' || queryResult.cursor === undefined); // true
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import { MemoryEntityStorageConnector } from '@twin.org/entity-storage-connector-memory';
|
|
96
|
+
import { EntityStorageConnectorFactory } from '@twin.org/entity-storage-models';
|
|
97
|
+
import { FederatedCatalogueService } from '@twin.org/federated-catalogue-service';
|
|
98
|
+
|
|
99
|
+
EntityStorageConnectorFactory.register('dataset', () => new MemoryEntityStorageConnector());
|
|
100
|
+
|
|
101
|
+
const service = new FederatedCatalogueService({
|
|
102
|
+
datasetEntityStorageType: 'dataset'
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
await service.remove('urn:dataset:air-quality-2026');
|
|
106
|
+
|
|
107
|
+
console.log('removed'.toUpperCase()); // REMOVED
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Dataset
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
import { Dataset } from '@twin.org/federated-catalogue-service';
|
|
114
|
+
|
|
115
|
+
const datasetEntity = new Dataset();
|
|
116
|
+
datasetEntity.id = 'urn:dataset:air-quality-2026';
|
|
117
|
+
datasetEntity.nodeIdentity = 'did:web:node.example';
|
|
118
|
+
datasetEntity.dateModified = '2026-03-10T12:00:00.000Z';
|
|
119
|
+
datasetEntity['@context'] = ['https://www.w3.org/ns/dcat3.jsonld'];
|
|
120
|
+
datasetEntity['@type'] = 'dcat:Dataset';
|
|
121
|
+
datasetEntity['dcterms:title'] = { '@value': 'Air quality readings' };
|
|
122
|
+
datasetEntity['dcterms:publisher'] = { '@id': 'did:web:publisher.example' };
|
|
123
|
+
|
|
124
|
+
console.log(datasetEntity.id); // urn:dataset:air-quality-2026
|
|
125
|
+
console.log(datasetEntity['@type']); // dcat:Dataset
|
|
126
|
+
```
|