@twin.org/dataspace-data-plane-service 0.0.3-next.19 → 0.0.3-next.20

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.
@@ -87,7 +87,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
87
87
  type: "IActivityStreamNotifyRequest",
88
88
  examples: [
89
89
  {
90
- id: "activityStreamNotifyExample",
90
+ id: "activityStreamNotifyRequestExample",
91
91
  request: {
92
92
  body: activityExample
93
93
  }
@@ -112,7 +112,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
112
112
  type: "IActivityLogEntryGetRequest",
113
113
  examples: [
114
114
  {
115
- id: "activityLogEntryGet",
115
+ id: "activityLogEntryGetRequestExample",
116
116
  request: {
117
117
  pathParams: {
118
118
  id: "urn:x-activity-log:1234567"
@@ -126,7 +126,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
126
126
  type: "IActivityLogEntryGetResponse",
127
127
  examples: [
128
128
  {
129
- id: "activityLogEntryResponseExample",
129
+ id: "activityLogEntryGetResponseExample",
130
130
  response: {
131
131
  body: { ...activityLogEntryExample }
132
132
  }
@@ -146,7 +146,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
146
146
  type: "IDataAssetGetEntitiesRequest",
147
147
  examples: [
148
148
  {
149
- id: "dataAssetEntitiesGet",
149
+ id: "dataAssetEntitiesGetRequestExample",
150
150
  request: {
151
151
  query: {
152
152
  consumerPid: "urn:uuid:consumer-pid-12345",
@@ -183,7 +183,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
183
183
  type: "IDataAssetQueryRequest",
184
184
  examples: [
185
185
  {
186
- id: "dataAssetQuery",
186
+ id: "dataAssetQueryRequestExample",
187
187
  request: {
188
188
  body: {
189
189
  consumerPid: "urn:uuid:consumer-pid-12345",
@@ -201,7 +201,7 @@ export function generateRestRoutesDataspaceDataPlane(baseRouteName, factoryServi
201
201
  type: "IDataAssetEntitiesResponse",
202
202
  examples: [
203
203
  {
204
- id: "dataAssetEntitiesGetResponseExample",
204
+ id: "dataAssetQueryResponseExample",
205
205
  response: {
206
206
  body: { ...dataspaceDataPlaneQueryResultExample }
207
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataspaceDataPlaneRoutes.js","sourceRoot":"","sources":["../../src/dataspaceDataPlaneRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpParameterHelper,\n\ttype IHostingComponent,\n\ttype IConflictResponse,\n\ttype ICreatedResponse,\n\ttype IForbiddenResponse,\n\ttype IHttpRequestContext,\n\ttype INotFoundResponse,\n\ttype IRestRoute,\n\ttype ITag,\n\ttype IUnauthorizedResponse,\n\ttype IUnprocessableEntityResponse\n} from \"@twin.org/api-models\";\nimport { Coerce, ComponentFactory, Guards, Is } from \"@twin.org/core\";\nimport type {\n\tIActivityLogEntry,\n\tIActivityLogEntryGetRequest,\n\tIActivityLogEntryGetResponse,\n\tIActivityStreamNotifyRequest,\n\tIDataAssetEntitiesResponse,\n\tIDataAssetGetEntitiesRequest,\n\tIDataAssetItemList,\n\tIDataAssetQueryRequest,\n\tIDataspaceDataPlaneComponent,\n\tIFilteringQuery\n} from \"@twin.org/dataspace-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport type { IActivityStreamsActivity } from \"@twin.org/standards-w3c-activity-streams\";\nimport { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"dataspaceDataPlaneRoutes\";\n\n/**\n * Activity stream route.\n */\nconst ACTIVITY_STREAM_ROUTE = \"notify\";\n\n/**\n * Activity processing details route.\n */\nexport const ACTIVITY_LOG_ROUTE = \"activity-logs\";\n\n/**\n * Route of the query interface.\n */\nconst QUERY_INTERFACE_ROUTE = \"entities\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDataspaceDataPlane: ITag[] = [\n\t{\n\t\tname: \"Dataspace Data Plane\",\n\t\tdescription: \"Endpoints to access a Dataspace Data Plane.\"\n\t}\n];\n\nconst activityExample: IActivityStreamsActivity = {\n\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\ttype: \"Add\",\n\tactor: {\n\t\tid: \"did:iota:testnet:0x123456\"\n\t},\n\tobject: {\n\t\t\"@context\": \"https://vocabulary.uncefact.org\",\n\t\t\"@type\": \"Consignment\",\n\t\tglobalId: \"24KEP051219453I002610796\"\n\t},\n\tupdated: \"2025-08-12T12:00:00Z\"\n};\n\nconst activityLogEntryExample: IActivityLogEntry = {\n\tid: \"urn:x-activity-log:134567\",\n\tdateCreated: \"2025-08-12T12:00:00Z\",\n\tdateModified: \"2025-08-12T12:00:00Z\",\n\tgenerator: \"did:iota:testnet:123456\",\n\tstatus: \"pending\",\n\tpendingTasks: [\n\t\t{\n\t\t\ttaskId: \"urn:x-task-id:45678\",\n\t\t\tdataspaceAppId: \"https://my-app.example.org/app1\"\n\t\t}\n\t],\n\trunningTasks: [],\n\tfinalizedTasks: [],\n\tinErrorTasks: []\n};\n\nconst dataspaceDataPlaneQueryResultExample: IDataAssetItemList = {\n\t\"@context\": \"https://schema.org\",\n\ttype: \"ItemList\",\n\titemListElement: [\n\t\t{\n\t\t\t\"@context\": \"https://vocabulary.uncefact.org/unece-context-D23B.jsonld\",\n\t\t\ttype: \"Consignment\",\n\t\t\tid: \"urn:ucr:PL527288386100000\"\n\t\t}\n\t]\n};\n\n/**\n * The REST routes for Dataspace Data Plane.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param factoryServiceName The name of the service to use in the routes store in the ServiceFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesDataspaceDataPlane(\n\tbaseRouteName: string,\n\tfactoryServiceName: string\n): IRestRoute[] {\n\tconst notifyActivityStreamRoute: IRestRoute<IActivityStreamNotifyRequest, ICreatedResponse> = {\n\t\toperationId: \"activityStreamNotify\",\n\t\tsummary: \"Notify of a new Activity\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/${ACTIVITY_STREAM_ROUTE}`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tactivityStreamNotify(baseRouteName, httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\ttype: nameof<IActivityStreamNotifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"activityStreamNotifyExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: activityExample\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>()\n\t\t\t},\n\t\t\t{ type: nameof<IUnprocessableEntityResponse>() }\n\t\t]\n\t};\n\n\tconst getActivityLogEntryRoute: IRestRoute<\n\t\tIActivityLogEntryGetRequest,\n\t\tIActivityLogEntryGetResponse | INotFoundResponse\n\t> = {\n\t\toperationId: \"dataspaceDataPlaneGetActivityLogEntry\",\n\t\tsummary: \"Get a Activity Log Entry\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/${ACTIVITY_LOG_ROUTE}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tactivityLogEntryGet(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IActivityLogEntryGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"activityLogEntryGet\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:x-activity-log:1234567\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IActivityLogEntryGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"activityLogEntryResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...activityLogEntryExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getDataAssetEntitiesRoute: IRestRoute<\n\t\tIDataAssetGetEntitiesRequest,\n\t\t| IDataAssetEntitiesResponse\n\t\t| INotFoundResponse\n\t\t| IConflictResponse\n\t\t| IUnauthorizedResponse\n\t\t| IForbiddenResponse\n\t> = {\n\t\toperationId: \"dataspaceDataPlaneGetDataAssetEntities\",\n\t\tsummary: \"Get Data Asset Entities\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/${QUERY_INTERFACE_ROUTE}`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tgetDataAssetEntities(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDataAssetGetEntitiesRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"dataAssetEntitiesGet\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tconsumerPid: \"urn:uuid:consumer-pid-12345\",\n\t\t\t\t\t\t\tid: \"urn:ucr:24PLP051219453I002610799053311\",\n\t\t\t\t\t\t\ttype: \"https://vocabulary.uncefact.org/Consignment\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDataAssetEntitiesResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"dataAssetEntitiesGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...dataspaceDataPlaneQueryResultExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true\n\t};\n\n\tconst queryDataAssetRoute: IRestRoute<\n\t\tIDataAssetQueryRequest,\n\t\t| IDataAssetEntitiesResponse\n\t\t| INotFoundResponse\n\t\t| IUnprocessableEntityResponse\n\t\t| IUnauthorizedResponse\n\t\t| IForbiddenResponse\n\t> = {\n\t\toperationId: \"dataspaceDataPlaneQueryDataAsset\",\n\t\tsummary: \"Query Data Asset\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/${QUERY_INTERFACE_ROUTE}/query`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tqueryDataAsset(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDataAssetQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"dataAssetQuery\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tconsumerPid: \"urn:uuid:consumer-pid-12345\",\n\t\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\t\ttype: \"Example\",\n\t\t\t\t\t\t\t\tq: \"example query\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDataAssetEntitiesResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"dataAssetEntitiesGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...dataspaceDataPlaneQueryResultExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true\n\t};\n\n\treturn [\n\t\tnotifyActivityStreamRoute,\n\t\tgetActivityLogEntryRoute,\n\t\tgetDataAssetEntitiesRoute,\n\t\tqueryDataAssetRoute\n\t];\n}\n\n/**\n * Notify a new Activity to the Dataspace Data Plane Activity Stream.\n * @param baseRouteName The base route name.\n * @param httpRequestContext The request context for the API.\n * @param factoryServiceName The name of the service to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function activityStreamNotify(\n\tbaseRouteName: string,\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IActivityStreamNotifyRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IActivityStreamNotifyRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IActivityStreamsActivity>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\tconst activityLogEntryId = await component.notifyActivity(request.body);\n\n\treturn {\n\t\theaders: {\n\t\t\tlocation: `${baseRouteName}/${ACTIVITY_LOG_ROUTE}/${activityLogEntryId}`\n\t\t},\n\t\tstatusCode: HttpStatusCode.created\n\t};\n}\n\n/**\n * Get an Activity Log entry.\n * @param httpRequestContext The request context for the API.\n * @param factoryServiceName The name of the service to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function activityLogEntryGet(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IActivityLogEntryGetRequest\n): Promise<IActivityLogEntryGetResponse | INotFoundResponse> {\n\tGuards.object<IActivityLogEntryGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IActivityLogEntryGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\treturn {\n\t\tbody: await component.getActivityLogEntry(request.pathParams.id)\n\t};\n}\n\n/**\n * Handles a request to obtain the entities of a data asset.\n * @param httpRequestContext The request Context.\n * @param factoryServiceName The factory service name\n * @param request The request.\n * @returns Either the entities as JSON-LD or the corresponding error response.\n */\nexport async function getDataAssetEntities(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IDataAssetGetEntitiesRequest\n): Promise<IDataAssetEntitiesResponse | INotFoundResponse | IConflictResponse> {\n\tGuards.object<IDataAssetGetEntitiesRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDataAssetGetEntitiesRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.type), request.query.type);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.consumerPid), request.query.consumerPid);\n\n\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tconst trustPayload = HeaderHelper.extractBearer(request.headers?.[HeaderTypes.Authorization]);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\tconst result = await component.getDataAssetEntities(\n\t\t{\n\t\t\tentityType: request.query.type,\n\t\t\tentityId: HttpParameterHelper.arrayFromString(request.query.id)\n\t\t},\n\t\trequest.query.consumerPid,\n\t\trequest.query.cursor,\n\t\tCoerce.integer(request.query.limit),\n\t\ttrustPayload\n\t);\n\n\tconst headers: IDataAssetEntitiesResponse[\"headers\"] = {};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.itemList\n\t};\n}\n\n/**\n * Handles a request to query a data asset.\n * @param httpRequestContext The request Context.\n * @param factoryServiceName The factory service name\n * @param request The request.\n * @returns Either the entities as JSON-LD or the corresponding error response.\n */\nexport async function queryDataAsset(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IDataAssetQueryRequest\n): Promise<IDataAssetEntitiesResponse | INotFoundResponse | IUnprocessableEntityResponse> {\n\tGuards.object<IDataAssetQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDataAssetQueryRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.body.consumerPid), request.body.consumerPid);\n\n\tGuards.object<IFilteringQuery>(ROUTES_SOURCE, nameof(request.body.query), request.body.query);\n\tGuards.string(ROUTES_SOURCE, nameof(request.body.query.type), request.body.query.type);\n\tGuards.string(ROUTES_SOURCE, nameof(request.body.query.q), request.body.query.q);\n\n\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tconst trustPayload = HeaderHelper.extractBearer(request.headers?.[HeaderTypes.Authorization]);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\tconst result = await component.queryDataAsset(\n\t\trequest.body.consumerPid,\n\t\trequest.body.query,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit),\n\t\ttrustPayload\n\t);\n\n\tconst headers: IDataAssetEntitiesResponse[\"headers\"] = {};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.itemList\n\t};\n}\n"]}
1
+ {"version":3,"file":"dataspaceDataPlaneRoutes.js","sourceRoot":"","sources":["../../src/dataspaceDataPlaneRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpParameterHelper,\n\ttype ICreatedResponse,\n\ttype IHostingComponent,\n\ttype IHttpRequestContext,\n\ttype IRestRoute,\n\ttype ITag,\n\ttype IUnprocessableEntityResponse\n} from \"@twin.org/api-models\";\nimport { Coerce, ComponentFactory, Guards, Is } from \"@twin.org/core\";\nimport type {\n\tIActivityLogEntry,\n\tIActivityLogEntryGetRequest,\n\tIActivityLogEntryGetResponse,\n\tIActivityStreamNotifyRequest,\n\tIDataAssetEntitiesResponse,\n\tIDataAssetGetEntitiesRequest,\n\tIDataAssetItemList,\n\tIDataAssetQueryRequest,\n\tIDataspaceDataPlaneComponent,\n\tIFilteringQuery\n} from \"@twin.org/dataspace-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport type { IActivityStreamsActivity } from \"@twin.org/standards-w3c-activity-streams\";\nimport { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"dataspaceDataPlaneRoutes\";\n\n/**\n * Activity stream route.\n */\nconst ACTIVITY_STREAM_ROUTE = \"notify\";\n\n/**\n * Activity processing details route.\n */\nexport const ACTIVITY_LOG_ROUTE = \"activity-logs\";\n\n/**\n * Route of the query interface.\n */\nconst QUERY_INTERFACE_ROUTE = \"entities\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDataspaceDataPlane: ITag[] = [\n\t{\n\t\tname: \"Dataspace Data Plane\",\n\t\tdescription: \"Endpoints to access a Dataspace Data Plane.\"\n\t}\n];\n\nconst activityExample: IActivityStreamsActivity = {\n\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\ttype: \"Add\",\n\tactor: {\n\t\tid: \"did:iota:testnet:0x123456\"\n\t},\n\tobject: {\n\t\t\"@context\": \"https://vocabulary.uncefact.org\",\n\t\t\"@type\": \"Consignment\",\n\t\tglobalId: \"24KEP051219453I002610796\"\n\t},\n\tupdated: \"2025-08-12T12:00:00Z\"\n};\n\nconst activityLogEntryExample: IActivityLogEntry = {\n\tid: \"urn:x-activity-log:134567\",\n\tdateCreated: \"2025-08-12T12:00:00Z\",\n\tdateModified: \"2025-08-12T12:00:00Z\",\n\tgenerator: \"did:iota:testnet:123456\",\n\tstatus: \"pending\",\n\tpendingTasks: [\n\t\t{\n\t\t\ttaskId: \"urn:x-task-id:45678\",\n\t\t\tdataspaceAppId: \"https://my-app.example.org/app1\"\n\t\t}\n\t],\n\trunningTasks: [],\n\tfinalizedTasks: [],\n\tinErrorTasks: []\n};\n\nconst dataspaceDataPlaneQueryResultExample: IDataAssetItemList = {\n\t\"@context\": \"https://schema.org\",\n\ttype: \"ItemList\",\n\titemListElement: [\n\t\t{\n\t\t\t\"@context\": \"https://vocabulary.uncefact.org/unece-context-D23B.jsonld\",\n\t\t\ttype: \"Consignment\",\n\t\t\tid: \"urn:ucr:PL527288386100000\"\n\t\t}\n\t]\n};\n\n/**\n * The REST routes for Dataspace Data Plane.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param factoryServiceName The name of the service to use in the routes store in the ServiceFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesDataspaceDataPlane(\n\tbaseRouteName: string,\n\tfactoryServiceName: string\n): IRestRoute[] {\n\tconst notifyActivityStreamRoute: IRestRoute<IActivityStreamNotifyRequest, ICreatedResponse> = {\n\t\toperationId: \"activityStreamNotify\",\n\t\tsummary: \"Notify of a new Activity\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/${ACTIVITY_STREAM_ROUTE}`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tactivityStreamNotify(baseRouteName, httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\ttype: nameof<IActivityStreamNotifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"activityStreamNotifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: activityExample\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>()\n\t\t\t},\n\t\t\t{ type: nameof<IUnprocessableEntityResponse>() }\n\t\t]\n\t};\n\n\tconst getActivityLogEntryRoute: IRestRoute<\n\t\tIActivityLogEntryGetRequest,\n\t\tIActivityLogEntryGetResponse\n\t> = {\n\t\toperationId: \"dataspaceDataPlaneGetActivityLogEntry\",\n\t\tsummary: \"Get a Activity Log Entry\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/${ACTIVITY_LOG_ROUTE}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tactivityLogEntryGet(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IActivityLogEntryGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"activityLogEntryGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:x-activity-log:1234567\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IActivityLogEntryGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"activityLogEntryGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...activityLogEntryExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getDataAssetEntitiesRoute: IRestRoute<\n\t\tIDataAssetGetEntitiesRequest,\n\t\tIDataAssetEntitiesResponse\n\t> = {\n\t\toperationId: \"dataspaceDataPlaneGetDataAssetEntities\",\n\t\tsummary: \"Get Data Asset Entities\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/${QUERY_INTERFACE_ROUTE}`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tgetDataAssetEntities(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDataAssetGetEntitiesRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"dataAssetEntitiesGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tconsumerPid: \"urn:uuid:consumer-pid-12345\",\n\t\t\t\t\t\t\tid: \"urn:ucr:24PLP051219453I002610799053311\",\n\t\t\t\t\t\t\ttype: \"https://vocabulary.uncefact.org/Consignment\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDataAssetEntitiesResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"dataAssetEntitiesGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...dataspaceDataPlaneQueryResultExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true\n\t};\n\n\tconst queryDataAssetRoute: IRestRoute<IDataAssetQueryRequest, IDataAssetEntitiesResponse> = {\n\t\toperationId: \"dataspaceDataPlaneQueryDataAsset\",\n\t\tsummary: \"Query Data Asset\",\n\t\ttag: tagsDataspaceDataPlane[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/${QUERY_INTERFACE_ROUTE}/query`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tqueryDataAsset(httpRequestContext, factoryServiceName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDataAssetQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"dataAssetQueryRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tconsumerPid: \"urn:uuid:consumer-pid-12345\",\n\t\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\t\ttype: \"Example\",\n\t\t\t\t\t\t\t\tq: \"example query\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDataAssetEntitiesResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"dataAssetQueryResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: { ...dataspaceDataPlaneQueryResultExample }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true\n\t};\n\n\treturn [\n\t\tnotifyActivityStreamRoute,\n\t\tgetActivityLogEntryRoute,\n\t\tgetDataAssetEntitiesRoute,\n\t\tqueryDataAssetRoute\n\t];\n}\n\n/**\n * Notify a new Activity to the Dataspace Data Plane Activity Stream.\n * @param baseRouteName The base route name.\n * @param httpRequestContext The request context for the API.\n * @param factoryServiceName The name of the service to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function activityStreamNotify(\n\tbaseRouteName: string,\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IActivityStreamNotifyRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IActivityStreamNotifyRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IActivityStreamsActivity>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\tconst activityLogEntryId = await component.notifyActivity(request.body);\n\n\treturn {\n\t\theaders: {\n\t\t\tlocation: `${baseRouteName}/${ACTIVITY_LOG_ROUTE}/${activityLogEntryId}`\n\t\t},\n\t\tstatusCode: HttpStatusCode.created\n\t};\n}\n\n/**\n * Get an Activity Log entry.\n * @param httpRequestContext The request context for the API.\n * @param factoryServiceName The name of the service to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function activityLogEntryGet(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IActivityLogEntryGetRequest\n): Promise<IActivityLogEntryGetResponse> {\n\tGuards.object<IActivityLogEntryGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IActivityLogEntryGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\treturn {\n\t\tbody: await component.getActivityLogEntry(request.pathParams.id)\n\t};\n}\n\n/**\n * Handles a request to obtain the entities of a data asset.\n * @param httpRequestContext The request Context.\n * @param factoryServiceName The factory service name\n * @param request The request.\n * @returns Either the entities as JSON-LD or the corresponding error response.\n */\nexport async function getDataAssetEntities(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IDataAssetGetEntitiesRequest\n): Promise<IDataAssetEntitiesResponse> {\n\tGuards.object<IDataAssetGetEntitiesRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDataAssetGetEntitiesRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.type), request.query.type);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.consumerPid), request.query.consumerPid);\n\n\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tconst trustPayload = HeaderHelper.extractBearer(request.headers?.[HeaderTypes.Authorization]);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\tconst result = await component.getDataAssetEntities(\n\t\t{\n\t\t\tentityType: request.query.type,\n\t\t\tentityId: HttpParameterHelper.arrayFromString(request.query.id)\n\t\t},\n\t\trequest.query.consumerPid,\n\t\trequest.query.cursor,\n\t\tCoerce.integer(request.query.limit),\n\t\ttrustPayload\n\t);\n\n\tconst headers: IDataAssetEntitiesResponse[\"headers\"] = {};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.itemList\n\t};\n}\n\n/**\n * Handles a request to query a data asset.\n * @param httpRequestContext The request Context.\n * @param factoryServiceName The factory service name\n * @param request The request.\n * @returns Either the entities as JSON-LD or the corresponding error response.\n */\nexport async function queryDataAsset(\n\thttpRequestContext: IHttpRequestContext,\n\tfactoryServiceName: string,\n\trequest: IDataAssetQueryRequest\n): Promise<IDataAssetEntitiesResponse> {\n\tGuards.object<IDataAssetQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDataAssetQueryRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.body.consumerPid), request.body.consumerPid);\n\n\tGuards.object<IFilteringQuery>(ROUTES_SOURCE, nameof(request.body.query), request.body.query);\n\tGuards.string(ROUTES_SOURCE, nameof(request.body.query.type), request.body.query.type);\n\tGuards.string(ROUTES_SOURCE, nameof(request.body.query.q), request.body.query.q);\n\n\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tconst trustPayload = HeaderHelper.extractBearer(request.headers?.[HeaderTypes.Authorization]);\n\n\tconst component = ComponentFactory.get<IDataspaceDataPlaneComponent>(factoryServiceName);\n\n\tconst result = await component.queryDataAsset(\n\t\trequest.body.consumerPid,\n\t\trequest.body.query,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit),\n\t\ttrustPayload\n\t);\n\n\tconst headers: IDataAssetEntitiesResponse[\"headers\"] = {};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.itemList\n\t};\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type IConflictResponse, type ICreatedResponse, type IHttpRequestContext, type INotFoundResponse, type IRestRoute, type ITag, type IUnprocessableEntityResponse } from "@twin.org/api-models";
1
+ import { type ICreatedResponse, type IHttpRequestContext, type IRestRoute, type ITag } from "@twin.org/api-models";
2
2
  import type { IActivityLogEntryGetRequest, IActivityLogEntryGetResponse, IActivityStreamNotifyRequest, IDataAssetEntitiesResponse, IDataAssetGetEntitiesRequest, IDataAssetQueryRequest } from "@twin.org/dataspace-models";
3
3
  /**
4
4
  * Activity processing details route.
@@ -31,7 +31,7 @@ export declare function activityStreamNotify(baseRouteName: string, httpRequestC
31
31
  * @param request The request.
32
32
  * @returns The response object with additional http response properties.
33
33
  */
34
- export declare function activityLogEntryGet(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IActivityLogEntryGetRequest): Promise<IActivityLogEntryGetResponse | INotFoundResponse>;
34
+ export declare function activityLogEntryGet(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IActivityLogEntryGetRequest): Promise<IActivityLogEntryGetResponse>;
35
35
  /**
36
36
  * Handles a request to obtain the entities of a data asset.
37
37
  * @param httpRequestContext The request Context.
@@ -39,7 +39,7 @@ export declare function activityLogEntryGet(httpRequestContext: IHttpRequestCont
39
39
  * @param request The request.
40
40
  * @returns Either the entities as JSON-LD or the corresponding error response.
41
41
  */
42
- export declare function getDataAssetEntities(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IDataAssetGetEntitiesRequest): Promise<IDataAssetEntitiesResponse | INotFoundResponse | IConflictResponse>;
42
+ export declare function getDataAssetEntities(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IDataAssetGetEntitiesRequest): Promise<IDataAssetEntitiesResponse>;
43
43
  /**
44
44
  * Handles a request to query a data asset.
45
45
  * @param httpRequestContext The request Context.
@@ -47,4 +47,4 @@ export declare function getDataAssetEntities(httpRequestContext: IHttpRequestCon
47
47
  * @param request The request.
48
48
  * @returns Either the entities as JSON-LD or the corresponding error response.
49
49
  */
50
- export declare function queryDataAsset(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IDataAssetQueryRequest): Promise<IDataAssetEntitiesResponse | INotFoundResponse | IUnprocessableEntityResponse>;
50
+ export declare function queryDataAsset(httpRequestContext: IHttpRequestContext, factoryServiceName: string, request: IDataAssetQueryRequest): Promise<IDataAssetEntitiesResponse>;
package/docs/changelog.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.3-next.20](https://github.com/twinfoundation/dataspace/compare/dataspace-data-plane-service-v0.0.3-next.19...dataspace-data-plane-service-v0.0.3-next.20) (2026-03-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * improve open-api examples ([288c68c](https://github.com/twinfoundation/dataspace/commit/288c68c928694d2fff6407eab568710a72db9ec3))
9
+ * improve open-api examples ([f065f4b](https://github.com/twinfoundation/dataspace/commit/f065f4bd55540041a653ef141c4be29a83c5055e))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * The following workspace dependencies were updated
15
+ * dependencies
16
+ * @twin.org/dataspace-app-runner bumped from 0.0.3-next.19 to 0.0.3-next.20
17
+ * @twin.org/dataspace-models bumped from 0.0.3-next.19 to 0.0.3-next.20
18
+ * devDependencies
19
+ * @twin.org/dataspace-test-app bumped from 0.0.3-next.19 to 0.0.3-next.20
20
+
3
21
  ## [0.0.3-next.19](https://github.com/twinfoundation/dataspace/compare/dataspace-data-plane-service-v0.0.3-next.18...dataspace-data-plane-service-v0.0.3-next.19) (2026-03-12)
4
22
 
5
23
 
@@ -42,7 +42,7 @@
42
42
  "$ref": "#/components/schemas/ActivityStreamsActivity"
43
43
  },
44
44
  "examples": {
45
- "activityStreamNotifyExample": {
45
+ "activityStreamNotifyRequestExample": {
46
46
  "value": {
47
47
  "@context": "https://www.w3.org/ns/activitystreams",
48
48
  "type": "Add",
@@ -177,7 +177,7 @@
177
177
  "$ref": "#/components/schemas/ActivityLogEntry"
178
178
  },
179
179
  "examples": {
180
- "activityLogEntryResponseExample": {
180
+ "activityLogEntryGetResponseExample": {
181
181
  "value": {
182
182
  "id": "urn:x-activity-log:134567",
183
183
  "dateCreated": "2025-08-12T12:00:00Z",
@@ -447,7 +447,7 @@
447
447
  "$ref": "#/components/schemas/DataAssetQueryRequest"
448
448
  },
449
449
  "examples": {
450
- "dataAssetQuery": {
450
+ "dataAssetQueryRequestExample": {
451
451
  "value": {
452
452
  "consumerPid": "urn:uuid:consumer-pid-12345",
453
453
  "query": {
@@ -469,7 +469,7 @@
469
469
  "$ref": "#/components/schemas/DataAssetItemList"
470
470
  },
471
471
  "examples": {
472
- "dataAssetEntitiesGetResponseExample": {
472
+ "dataAssetQueryResponseExample": {
473
473
  "value": {
474
474
  "@context": "https://schema.org",
475
475
  "type": "ItemList",
@@ -14,7 +14,7 @@ Activity Log Details.
14
14
 
15
15
  ## Properties
16
16
 
17
- ### id
17
+ ### id {#id}
18
18
 
19
19
  > **id**: `string`
20
20
 
@@ -22,7 +22,7 @@ The entry Id.
22
22
 
23
23
  ***
24
24
 
25
- ### activityId?
25
+ ### activityId? {#activityid}
26
26
 
27
27
  > `optional` **activityId**: `string`
28
28
 
@@ -30,7 +30,7 @@ The Activity Id.
30
30
 
31
31
  ***
32
32
 
33
- ### generator
33
+ ### generator {#generator}
34
34
 
35
35
  > **generator**: `string`
36
36
 
@@ -38,7 +38,7 @@ The generator of the Activity (different than the Actor)
38
38
 
39
39
  ***
40
40
 
41
- ### dateCreated
41
+ ### dateCreated {#datecreated}
42
42
 
43
43
  > **dateCreated**: `string`
44
44
 
@@ -46,7 +46,7 @@ The creation date.
46
46
 
47
47
  ***
48
48
 
49
- ### dateModified
49
+ ### dateModified {#datemodified}
50
50
 
51
51
  > **dateModified**: `string`
52
52
 
@@ -54,7 +54,7 @@ The last update date.
54
54
 
55
55
  ***
56
56
 
57
- ### retainUntil?
57
+ ### retainUntil? {#retainuntil}
58
58
 
59
59
  > `optional` **retainUntil**: `number`
60
60
 
@@ -62,7 +62,7 @@ The timestamp of when to retain the entry until.
62
62
 
63
63
  ***
64
64
 
65
- ### retryCount?
65
+ ### retryCount? {#retrycount}
66
66
 
67
67
  > `optional` **retryCount**: `number`
68
68
 
@@ -14,7 +14,7 @@ Activity Task entity linking activity log entries to their background tasks.
14
14
 
15
15
  ## Properties
16
16
 
17
- ### activityLogEntryId
17
+ ### activityLogEntryId {#activitylogentryid}
18
18
 
19
19
  > **activityLogEntryId**: `string`
20
20
 
@@ -22,7 +22,7 @@ The entry Id.
22
22
 
23
23
  ***
24
24
 
25
- ### associatedTasks
25
+ ### associatedTasks {#associatedtasks}
26
26
 
27
27
  > **associatedTasks**: `ITaskApp`[]
28
28
 
@@ -28,7 +28,7 @@ The options for the data plane.
28
28
 
29
29
  ## Properties
30
30
 
31
- ### CLASS\_NAME
31
+ ### CLASS\_NAME {#class_name}
32
32
 
33
33
  > `readonly` `static` **CLASS\_NAME**: `string`
34
34
 
@@ -36,7 +36,7 @@ Runtime name for the class.
36
36
 
37
37
  ## Methods
38
38
 
39
- ### className()
39
+ ### className() {#classname}
40
40
 
41
41
  > **className**(): `string`
42
42
 
@@ -54,7 +54,7 @@ The class name of the component.
54
54
 
55
55
  ***
56
56
 
57
- ### start()
57
+ ### start() {#start}
58
58
 
59
59
  > **start**(`nodeLoggingComponentType?`): `Promise`\<`void`\>
60
60
 
@@ -78,7 +78,7 @@ The node logging component type.
78
78
 
79
79
  ***
80
80
 
81
- ### notifyActivity()
81
+ ### notifyActivity() {#notifyactivity}
82
82
 
83
83
  > **notifyActivity**(`activity`): `Promise`\<`string`\>
84
84
 
@@ -104,7 +104,7 @@ The Activity's Log Entry identifier.
104
104
 
105
105
  ***
106
106
 
107
- ### subscribeToActivityLog()
107
+ ### subscribeToActivityLog() {#subscribetoactivitylog}
108
108
 
109
109
  > **subscribeToActivityLog**(`callback`, `subscriptionId?`): `Promise`\<`string`\>
110
110
 
@@ -136,7 +136,7 @@ The subscription Id.
136
136
 
137
137
  ***
138
138
 
139
- ### unSubscribeToActivityLog()
139
+ ### unSubscribeToActivityLog() {#unsubscribetoactivitylog}
140
140
 
141
141
  > **unSubscribeToActivityLog**(`subscriptionId`): `Promise`\<`void`\>
142
142
 
@@ -160,7 +160,7 @@ The Subscription Id.
160
160
 
161
161
  ***
162
162
 
163
- ### getActivityLogEntry()
163
+ ### getActivityLogEntry() {#getactivitylogentry}
164
164
 
165
165
  > **getActivityLogEntry**(`logEntryId`): `Promise`\<`IActivityLogEntry`\>
166
166
 
@@ -190,7 +190,7 @@ NotFoundError if activity log entry is not known.
190
190
 
191
191
  ***
192
192
 
193
- ### getDataAssetEntities()
193
+ ### getDataAssetEntities() {#getdataassetentities}
194
194
 
195
195
  > **getDataAssetEntities**(`entitySet`, `consumerPid`, `cursor?`, `limit?`, `trustPayload?`): `Promise`\<`IDataAssetItemListResult`\>
196
196
 
@@ -241,7 +241,7 @@ The entities requested as a JSON-LD Document.
241
241
 
242
242
  ***
243
243
 
244
- ### queryDataAsset()
244
+ ### queryDataAsset() {#querydataasset}
245
245
 
246
246
  > **queryDataAsset**(`consumerPid`, `query`, `cursor?`, `limit?`, `trustPayload?`): `Promise`\<`IDataAssetItemListResult`\>
247
247
 
@@ -292,7 +292,7 @@ The item list and optional cursor for pagination via Link headers.
292
292
 
293
293
  ***
294
294
 
295
- ### validateTransfer()
295
+ ### validateTransfer() {#validatetransfer}
296
296
 
297
297
  > **validateTransfer**(`consumerPid`, `trustPayload`): `Promise`\<`ITransferContext`\>
298
298
 
@@ -1,6 +1,6 @@
1
1
  # Function: activityLogEntryGet()
2
2
 
3
- > **activityLogEntryGet**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`IActivityLogEntryGetResponse` \| `INotFoundResponse`\>
3
+ > **activityLogEntryGet**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`IActivityLogEntryGetResponse`\>
4
4
 
5
5
  Get an Activity Log entry.
6
6
 
@@ -26,6 +26,6 @@ The request.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<`IActivityLogEntryGetResponse` \| `INotFoundResponse`\>
29
+ `Promise`\<`IActivityLogEntryGetResponse`\>
30
30
 
31
31
  The response object with additional http response properties.
@@ -1,6 +1,6 @@
1
1
  # Function: getDataAssetEntities()
2
2
 
3
- > **getDataAssetEntities**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`INotFoundResponse` \| `IDataAssetEntitiesResponse` \| `IConflictResponse`\>
3
+ > **getDataAssetEntities**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`IDataAssetEntitiesResponse`\>
4
4
 
5
5
  Handles a request to obtain the entities of a data asset.
6
6
 
@@ -26,6 +26,6 @@ The request.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<`INotFoundResponse` \| `IDataAssetEntitiesResponse` \| `IConflictResponse`\>
29
+ `Promise`\<`IDataAssetEntitiesResponse`\>
30
30
 
31
31
  Either the entities as JSON-LD or the corresponding error response.
@@ -1,6 +1,6 @@
1
1
  # Function: queryDataAsset()
2
2
 
3
- > **queryDataAsset**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`IUnprocessableEntityResponse` \| `INotFoundResponse` \| `IDataAssetEntitiesResponse`\>
3
+ > **queryDataAsset**(`httpRequestContext`, `factoryServiceName`, `request`): `Promise`\<`IDataAssetEntitiesResponse`\>
4
4
 
5
5
  Handles a request to query a data asset.
6
6
 
@@ -26,6 +26,6 @@ The request.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<`IUnprocessableEntityResponse` \| `INotFoundResponse` \| `IDataAssetEntitiesResponse`\>
29
+ `Promise`\<`IDataAssetEntitiesResponse`\>
30
30
 
31
31
  Either the entities as JSON-LD or the corresponding error response.
@@ -4,7 +4,7 @@ Dataspace Data Plane service configuration
4
4
 
5
5
  ## Properties
6
6
 
7
- ### retainActivityLogsFor?
7
+ ### retainActivityLogsFor? {#retainactivitylogsfor}
8
8
 
9
9
  > `optional` **retainActivityLogsFor**: `number`
10
10
 
@@ -12,7 +12,7 @@ The amount of time in minutes to retain activity log entries until removal, set
12
12
 
13
13
  ***
14
14
 
15
- ### activityLogsCleanUpInterval?
15
+ ### activityLogsCleanUpInterval? {#activitylogscleanupinterval}
16
16
 
17
17
  > `optional` **activityLogsCleanUpInterval**: `number`
18
18
 
@@ -4,7 +4,7 @@ Dataspace Data Plane service options
4
4
 
5
5
  ## Properties
6
6
 
7
- ### loggingComponentType?
7
+ ### loggingComponentType? {#loggingcomponenttype}
8
8
 
9
9
  > `optional` **loggingComponentType**: `string`
10
10
 
@@ -12,7 +12,7 @@ Logging component type.
12
12
 
13
13
  ***
14
14
 
15
- ### backgroundTaskComponentType?
15
+ ### backgroundTaskComponentType? {#backgroundtaskcomponenttype}
16
16
 
17
17
  > `optional` **backgroundTaskComponentType**: `string`
18
18
 
@@ -20,7 +20,7 @@ Background task component.
20
20
 
21
21
  ***
22
22
 
23
- ### taskSchedulerComponentType?
23
+ ### taskSchedulerComponentType? {#taskschedulercomponenttype}
24
24
 
25
25
  > `optional` **taskSchedulerComponentType**: `string`
26
26
 
@@ -28,7 +28,7 @@ Task Scheduler Component Type.
28
28
 
29
29
  ***
30
30
 
31
- ### activityLogEntityStorageType?
31
+ ### activityLogEntityStorageType? {#activitylogentitystoragetype}
32
32
 
33
33
  > `optional` **activityLogEntityStorageType**: `string`
34
34
 
@@ -36,7 +36,7 @@ The entity storage for activity log details.
36
36
 
37
37
  ***
38
38
 
39
- ### activityTaskEntityStorageType?
39
+ ### activityTaskEntityStorageType? {#activitytaskentitystoragetype}
40
40
 
41
41
  > `optional` **activityTaskEntityStorageType**: `string`
42
42
 
@@ -44,7 +44,7 @@ The entity storage for the association between Activities and Tasks.
44
44
 
45
45
  ***
46
46
 
47
- ### transferProcessEntityStorageType?
47
+ ### transferProcessEntityStorageType? {#transferprocessentitystoragetype}
48
48
 
49
49
  > `optional` **transferProcessEntityStorageType**: `string`
50
50
 
@@ -53,7 +53,7 @@ Used to read Transfer Process state from shared storage.
53
53
 
54
54
  ***
55
55
 
56
- ### partitionContextIds?
56
+ ### partitionContextIds? {#partitioncontextids}
57
57
 
58
58
  > `optional` **partitionContextIds**: `string`[]
59
59
 
@@ -61,7 +61,7 @@ The keys to use from the context ids to cleanup partitions.
61
61
 
62
62
  ***
63
63
 
64
- ### trustComponentType?
64
+ ### trustComponentType? {#trustcomponenttype}
65
65
 
66
66
  > `optional` **trustComponentType**: `string`
67
67
 
@@ -69,7 +69,7 @@ Trust component type.
69
69
 
70
70
  ***
71
71
 
72
- ### pepComponentType?
72
+ ### pepComponentType? {#pepcomponenttype}
73
73
 
74
74
  > `optional` **pepComponentType**: `string`
75
75
 
@@ -77,7 +77,7 @@ Policy enforcement point component type for ODRL policy enforcement.
77
77
 
78
78
  ***
79
79
 
80
- ### config?
80
+ ### config? {#config}
81
81
 
82
82
  > `optional` **config**: [`IDataspaceDataPlaneServiceConfig`](IDataspaceDataPlaneServiceConfig.md)
83
83
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/dataspace-data-plane-service",
3
- "version": "0.0.3-next.19",
3
+ "version": "0.0.3-next.20",
4
4
  "description": "Processes activities and data requests while enforcing transfer and policy constraints in the data plane.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,8 +21,8 @@
21
21
  "@twin.org/crypto": "next",
22
22
  "@twin.org/data-core": "next",
23
23
  "@twin.org/data-json-ld": "next",
24
- "@twin.org/dataspace-app-runner": "0.0.3-next.19",
25
- "@twin.org/dataspace-models": "0.0.3-next.19",
24
+ "@twin.org/dataspace-app-runner": "0.0.3-next.20",
25
+ "@twin.org/dataspace-models": "0.0.3-next.20",
26
26
  "@twin.org/engine-models": "next",
27
27
  "@twin.org/entity": "next",
28
28
  "@twin.org/entity-storage-models": "next",