@twin.org/node 0.9.0 → 0.9.1-next.10

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.
@@ -107,6 +107,10 @@
107
107
  "name": "Datasets",
108
108
  "description": "Tenant-scoped CRUD over the datasets the Control Plane reads at start time to populate the federated catalogue."
109
109
  },
110
+ {
111
+ "name": "Version Discovery",
112
+ "description": "RFC 8615 well-known endpoint for advertising the Dataspace Protocol versions supported by this connector."
113
+ },
110
114
  {
111
115
  "name": "Policy Administration Point",
112
116
  "description": "Endpoints for managing ODRL policies in the Policy Administration Point"
@@ -1948,6 +1952,311 @@
1948
1952
  }
1949
1953
  }
1950
1954
  },
1955
+ "/authentication/audit/{id}": {
1956
+ "get": {
1957
+ "operationId": "authenticationAuditGet",
1958
+ "summary": "Get an authentication audit entry",
1959
+ "tags": [
1960
+ "Authentication Audit"
1961
+ ],
1962
+ "parameters": [
1963
+ {
1964
+ "name": "id",
1965
+ "description": "The audit entry id.",
1966
+ "in": "path",
1967
+ "required": true,
1968
+ "schema": {
1969
+ "type": "string"
1970
+ },
1971
+ "style": "simple",
1972
+ "example": "018f0b53d5d5704fa3a06d6ed2478575"
1973
+ }
1974
+ ],
1975
+ "security": [
1976
+ {
1977
+ "jwtBearerAuthScheme": []
1978
+ }
1979
+ ],
1980
+ "responses": {
1981
+ "200": {
1982
+ "description": "Response from getting an authentication audit entry.",
1983
+ "content": {
1984
+ "application/json": {
1985
+ "schema": {
1986
+ "$ref": "#/components/schemas/AuthenticationAuditEntry"
1987
+ },
1988
+ "examples": {
1989
+ "authenticationAuditGetResponseExample": {
1990
+ "summary": "The response for getting an authentication audit entry.",
1991
+ "value": {
1992
+ "id": "018f0b53d5d5704fa3a06d6ed2478575",
1993
+ "actorId": "user@example.com",
1994
+ "dateCreated": "2026-01-12T09:05:23.123Z",
1995
+ "event": "login-success",
1996
+ "data": {
1997
+ "organizationIdentity": "did:example:org1"
1998
+ }
1999
+ }
2000
+ }
2001
+ }
2002
+ }
2003
+ }
2004
+ },
2005
+ "400": {
2006
+ "description": "The server cannot process the request, see the content for more details.",
2007
+ "content": {
2008
+ "application/json": {
2009
+ "schema": {
2010
+ "$ref": "#/components/schemas/Error"
2011
+ },
2012
+ "examples": {
2013
+ "exampleResponse": {
2014
+ "value": {
2015
+ "name": "GeneralError",
2016
+ "message": "errorMessage",
2017
+ "properties": {
2018
+ "foo": "bar"
2019
+ }
2020
+ }
2021
+ }
2022
+ }
2023
+ }
2024
+ }
2025
+ },
2026
+ "401": {
2027
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2028
+ "content": {
2029
+ "application/json": {
2030
+ "schema": {
2031
+ "$ref": "#/components/schemas/Error"
2032
+ },
2033
+ "examples": {
2034
+ "exampleResponse": {
2035
+ "value": {
2036
+ "name": "UnauthorizedError",
2037
+ "message": "errorMessage"
2038
+ }
2039
+ }
2040
+ }
2041
+ }
2042
+ }
2043
+ },
2044
+ "500": {
2045
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
2046
+ "content": {
2047
+ "application/json": {
2048
+ "schema": {
2049
+ "$ref": "#/components/schemas/Error"
2050
+ },
2051
+ "examples": {
2052
+ "exampleResponse": {
2053
+ "value": {
2054
+ "name": "InternalServerError",
2055
+ "message": "errorMessage"
2056
+ }
2057
+ }
2058
+ }
2059
+ }
2060
+ }
2061
+ }
2062
+ }
2063
+ },
2064
+ "put": {
2065
+ "operationId": "authenticationAuditUpdate",
2066
+ "summary": "Update an authentication audit entry",
2067
+ "tags": [
2068
+ "Authentication Audit"
2069
+ ],
2070
+ "parameters": [
2071
+ {
2072
+ "name": "id",
2073
+ "description": "The audit entry id.",
2074
+ "in": "path",
2075
+ "required": true,
2076
+ "schema": {
2077
+ "type": "string"
2078
+ },
2079
+ "style": "simple",
2080
+ "example": "018f0b53d5d5704fa3a06d6ed2478575"
2081
+ }
2082
+ ],
2083
+ "security": [
2084
+ {
2085
+ "jwtBearerAuthScheme": []
2086
+ }
2087
+ ],
2088
+ "requestBody": {
2089
+ "description": "Update an authentication audit entry.",
2090
+ "required": true,
2091
+ "content": {
2092
+ "application/json": {
2093
+ "schema": {
2094
+ "$ref": "#/components/schemas/AuditUpdateRequest"
2095
+ },
2096
+ "examples": {
2097
+ "authenticationAuditUpdateRequestExample": {
2098
+ "summary": "The request to update an authentication audit entry.",
2099
+ "value": {
2100
+ "data": {
2101
+ "organizationIdentity": "did:example:org1"
2102
+ }
2103
+ }
2104
+ }
2105
+ }
2106
+ }
2107
+ }
2108
+ },
2109
+ "responses": {
2110
+ "204": {
2111
+ "description": "The rest request ended in success with no data."
2112
+ },
2113
+ "400": {
2114
+ "description": "The server cannot process the request, see the content for more details.",
2115
+ "content": {
2116
+ "application/json": {
2117
+ "schema": {
2118
+ "$ref": "#/components/schemas/Error"
2119
+ },
2120
+ "examples": {
2121
+ "exampleResponse": {
2122
+ "value": {
2123
+ "name": "GeneralError",
2124
+ "message": "errorMessage",
2125
+ "properties": {
2126
+ "foo": "bar"
2127
+ }
2128
+ }
2129
+ }
2130
+ }
2131
+ }
2132
+ }
2133
+ },
2134
+ "401": {
2135
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2136
+ "content": {
2137
+ "application/json": {
2138
+ "schema": {
2139
+ "$ref": "#/components/schemas/Error"
2140
+ },
2141
+ "examples": {
2142
+ "exampleResponse": {
2143
+ "value": {
2144
+ "name": "UnauthorizedError",
2145
+ "message": "errorMessage"
2146
+ }
2147
+ }
2148
+ }
2149
+ }
2150
+ }
2151
+ },
2152
+ "500": {
2153
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
2154
+ "content": {
2155
+ "application/json": {
2156
+ "schema": {
2157
+ "$ref": "#/components/schemas/Error"
2158
+ },
2159
+ "examples": {
2160
+ "exampleResponse": {
2161
+ "value": {
2162
+ "name": "InternalServerError",
2163
+ "message": "errorMessage"
2164
+ }
2165
+ }
2166
+ }
2167
+ }
2168
+ }
2169
+ }
2170
+ }
2171
+ },
2172
+ "delete": {
2173
+ "operationId": "authenticationAuditRemove",
2174
+ "summary": "Remove an authentication audit entry",
2175
+ "tags": [
2176
+ "Authentication Audit"
2177
+ ],
2178
+ "parameters": [
2179
+ {
2180
+ "name": "id",
2181
+ "description": "The audit entry id.",
2182
+ "in": "path",
2183
+ "required": true,
2184
+ "schema": {
2185
+ "type": "string"
2186
+ },
2187
+ "style": "simple",
2188
+ "example": "018f0b53d5d5704fa3a06d6ed2478575"
2189
+ }
2190
+ ],
2191
+ "security": [
2192
+ {
2193
+ "jwtBearerAuthScheme": []
2194
+ }
2195
+ ],
2196
+ "responses": {
2197
+ "204": {
2198
+ "description": "The rest request ended in success with no data."
2199
+ },
2200
+ "400": {
2201
+ "description": "The server cannot process the request, see the content for more details.",
2202
+ "content": {
2203
+ "application/json": {
2204
+ "schema": {
2205
+ "$ref": "#/components/schemas/Error"
2206
+ },
2207
+ "examples": {
2208
+ "exampleResponse": {
2209
+ "value": {
2210
+ "name": "GeneralError",
2211
+ "message": "errorMessage",
2212
+ "properties": {
2213
+ "foo": "bar"
2214
+ }
2215
+ }
2216
+ }
2217
+ }
2218
+ }
2219
+ }
2220
+ },
2221
+ "401": {
2222
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2223
+ "content": {
2224
+ "application/json": {
2225
+ "schema": {
2226
+ "$ref": "#/components/schemas/Error"
2227
+ },
2228
+ "examples": {
2229
+ "exampleResponse": {
2230
+ "value": {
2231
+ "name": "UnauthorizedError",
2232
+ "message": "errorMessage"
2233
+ }
2234
+ }
2235
+ }
2236
+ }
2237
+ }
2238
+ },
2239
+ "500": {
2240
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
2241
+ "content": {
2242
+ "application/json": {
2243
+ "schema": {
2244
+ "$ref": "#/components/schemas/Error"
2245
+ },
2246
+ "examples": {
2247
+ "exampleResponse": {
2248
+ "value": {
2249
+ "name": "InternalServerError",
2250
+ "message": "errorMessage"
2251
+ }
2252
+ }
2253
+ }
2254
+ }
2255
+ }
2256
+ }
2257
+ }
2258
+ }
2259
+ },
1951
2260
  "/identity/{identity}": {
1952
2261
  "get": {
1953
2262
  "operationId": "identityResolve",
@@ -6829,6 +7138,122 @@
6829
7138
  }
6830
7139
  }
6831
7140
  },
7141
+ "/telemetry/metric/{id}/value/{valueId}": {
7142
+ "get": {
7143
+ "operationId": "telemetryGetMetricValue",
7144
+ "summary": "Get a specific telemetry metric value",
7145
+ "tags": [
7146
+ "Telemetry"
7147
+ ],
7148
+ "parameters": [
7149
+ {
7150
+ "name": "id",
7151
+ "description": "The id of the metric.",
7152
+ "in": "path",
7153
+ "required": true,
7154
+ "schema": {
7155
+ "type": "string"
7156
+ },
7157
+ "style": "simple",
7158
+ "example": "my-counter"
7159
+ },
7160
+ {
7161
+ "name": "valueId",
7162
+ "description": "The id of the metric value.",
7163
+ "in": "path",
7164
+ "required": true,
7165
+ "schema": {
7166
+ "type": "string"
7167
+ },
7168
+ "style": "simple",
7169
+ "example": "aabbccdd11223445566"
7170
+ }
7171
+ ],
7172
+ "security": [
7173
+ {
7174
+ "jwtBearerAuthScheme": []
7175
+ }
7176
+ ],
7177
+ "responses": {
7178
+ "200": {
7179
+ "description": "Get a telemetry metric value response.",
7180
+ "content": {
7181
+ "application/json": {
7182
+ "schema": {
7183
+ "$ref": "#/components/schemas/TelemetryMetricValue"
7184
+ },
7185
+ "examples": {
7186
+ "telemetryGetMetricValueResponseExample": {
7187
+ "value": {
7188
+ "id": "aabbccdd11223445566",
7189
+ "ts": 1715252922273,
7190
+ "value": 10
7191
+ }
7192
+ }
7193
+ }
7194
+ }
7195
+ }
7196
+ },
7197
+ "400": {
7198
+ "description": "The server cannot process the request, see the content for more details.",
7199
+ "content": {
7200
+ "application/json": {
7201
+ "schema": {
7202
+ "$ref": "#/components/schemas/Error"
7203
+ },
7204
+ "examples": {
7205
+ "exampleResponse": {
7206
+ "value": {
7207
+ "name": "GeneralError",
7208
+ "message": "errorMessage",
7209
+ "properties": {
7210
+ "foo": "bar"
7211
+ }
7212
+ }
7213
+ }
7214
+ }
7215
+ }
7216
+ }
7217
+ },
7218
+ "401": {
7219
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
7220
+ "content": {
7221
+ "application/json": {
7222
+ "schema": {
7223
+ "$ref": "#/components/schemas/Error"
7224
+ },
7225
+ "examples": {
7226
+ "exampleResponse": {
7227
+ "value": {
7228
+ "name": "UnauthorizedError",
7229
+ "message": "errorMessage"
7230
+ }
7231
+ }
7232
+ }
7233
+ }
7234
+ }
7235
+ },
7236
+ "500": {
7237
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
7238
+ "content": {
7239
+ "application/json": {
7240
+ "schema": {
7241
+ "$ref": "#/components/schemas/Error"
7242
+ },
7243
+ "examples": {
7244
+ "exampleResponse": {
7245
+ "value": {
7246
+ "name": "InternalServerError",
7247
+ "message": "errorMessage"
7248
+ }
7249
+ }
7250
+ }
7251
+ }
7252
+ }
7253
+ }
7254
+ }
7255
+ }
7256
+ },
6832
7257
  "/automation/trigger/{trigger}": {
6833
7258
  "post": {
6834
7259
  "operationId": "AutomationTrigger",
@@ -11624,7 +12049,7 @@
11624
12049
  },
11625
12050
  {
11626
12051
  "name": "conditions",
11627
- "description": "The conditions to filter the streams, JSON stringified EntityCondition<IAuditableItemGraphVertex>.",
12052
+ "description": "The conditions to filter the streams, JSON stringified `EntityCondition<IAuditableItemGraphVertex>`.",
11628
12053
  "in": "query",
11629
12054
  "required": false,
11630
12055
  "schema": {
@@ -13387,7 +13812,7 @@
13387
13812
  "parameters": [
13388
13813
  {
13389
13814
  "name": "conditions",
13390
- "description": "The conditions to filter the streams, JSON stringified IComparator[].",
13815
+ "description": "The conditions to filter the streams, JSON stringified `EntityCondition<IAuditableItemStream>`.",
13391
13816
  "in": "query",
13392
13817
  "required": false,
13393
13818
  "schema": {
@@ -14415,7 +14840,7 @@
14415
14840
  },
14416
14841
  {
14417
14842
  "name": "conditions",
14418
- "description": "The conditions to filter the stream, JSON stringified IComparator[].",
14843
+ "description": "The conditions to filter the stream, JSON stringified `EntityCondition<IAuditableItemStreamEntry>`.",
14419
14844
  "in": "query",
14420
14845
  "required": false,
14421
14846
  "schema": {
@@ -15264,7 +15689,7 @@
15264
15689
  "parameters": [
15265
15690
  {
15266
15691
  "name": "conditions",
15267
- "description": "The conditions to filter the stream, JSON stringified IComparator[].",
15692
+ "description": "The conditions to filter the stream, JSON stringified `EntityCondition<IAuditableItemStreamEntry>`.",
15268
15693
  "in": "query",
15269
15694
  "required": false,
15270
15695
  "schema": {
@@ -15525,7 +15950,7 @@
15525
15950
  },
15526
15951
  {
15527
15952
  "name": "conditions",
15528
- "description": "The conditions to filter the stream, JSON stringified IComparator[].",
15953
+ "description": "The conditions to filter the stream, JSON stringified `EntityCondition<IAuditableItemStreamEntry>`.",
15529
15954
  "in": "query",
15530
15955
  "required": false,
15531
15956
  "schema": {
@@ -15708,7 +16133,7 @@
15708
16133
  "parameters": [
15709
16134
  {
15710
16135
  "name": "conditions",
15711
- "description": "The conditions to filter the stream, JSON stringified IComparator[].",
16136
+ "description": "The conditions to filter the stream, JSON stringified `EntityCondition<IAuditableItemStreamEntry>`.",
15712
16137
  "in": "query",
15713
16138
  "required": false,
15714
16139
  "schema": {
@@ -16774,6 +17199,91 @@
16774
17199
  }
16775
17200
  }
16776
17201
  },
17202
+ "/.well-known/dspace-version": {
17203
+ "get": {
17204
+ "operationId": "getProtocolVersions",
17205
+ "summary": "Get supported Dataspace Protocol versions (DSP 2025-1)",
17206
+ "tags": [
17207
+ "Version Discovery"
17208
+ ],
17209
+ "requestBody": {
17210
+ "description": "A REST request with no input parameters.",
17211
+ "required": true,
17212
+ "content": {
17213
+ "application/json": {
17214
+ "schema": {
17215
+ "$ref": "#/components/schemas/NoContentRequest"
17216
+ }
17217
+ }
17218
+ }
17219
+ },
17220
+ "responses": {
17221
+ "200": {
17222
+ "description": "API response for the DSP version discovery endpoint.",
17223
+ "content": {
17224
+ "application/json": {
17225
+ "schema": {
17226
+ "$ref": "#/components/schemas/DataspaceProtocolVersionResponse"
17227
+ },
17228
+ "examples": {
17229
+ "getProtocolVersionsResponseExample": {
17230
+ "value": {
17231
+ "protocolVersions": [
17232
+ {
17233
+ "version": "2025-1",
17234
+ "path": "/dataspace-control-plane/2025-1",
17235
+ "binding": "HTTPS",
17236
+ "serviceId": "twin-connector"
17237
+ }
17238
+ ]
17239
+ }
17240
+ }
17241
+ }
17242
+ }
17243
+ }
17244
+ },
17245
+ "400": {
17246
+ "description": "The server cannot process the request, see the content for more details.",
17247
+ "content": {
17248
+ "application/json": {
17249
+ "schema": {
17250
+ "$ref": "#/components/schemas/Error"
17251
+ },
17252
+ "examples": {
17253
+ "exampleResponse": {
17254
+ "value": {
17255
+ "name": "GeneralError",
17256
+ "message": "errorMessage",
17257
+ "properties": {
17258
+ "foo": "bar"
17259
+ }
17260
+ }
17261
+ }
17262
+ }
17263
+ }
17264
+ }
17265
+ },
17266
+ "500": {
17267
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
17268
+ "content": {
17269
+ "application/json": {
17270
+ "schema": {
17271
+ "$ref": "#/components/schemas/Error"
17272
+ },
17273
+ "examples": {
17274
+ "exampleResponse": {
17275
+ "value": {
17276
+ "name": "InternalServerError",
17277
+ "message": "errorMessage"
17278
+ }
17279
+ }
17280
+ }
17281
+ }
17282
+ }
17283
+ }
17284
+ }
17285
+ }
17286
+ },
16777
17287
  "/dataspace-control-plane/transfers/request": {
16778
17288
  "post": {
16779
17289
  "operationId": "requestTransfer",
@@ -20909,6 +21419,57 @@
20909
21419
  ],
20910
21420
  "description": "The response body."
20911
21421
  },
21422
+ "AuditUpdateRequest": {
21423
+ "description": "The body of the request.",
21424
+ "type": "object",
21425
+ "properties": {
21426
+ "event": {
21427
+ "anyOf": [
21428
+ {
21429
+ "$ref": "#/components/schemas/AuthAuditEvent"
21430
+ },
21431
+ {
21432
+ "type": "string"
21433
+ }
21434
+ ],
21435
+ "description": "The audit event that occurred."
21436
+ },
21437
+ "actorId": {
21438
+ "type": "string",
21439
+ "description": "The actor identifier, could be e-mail, username, or other unique identifier."
21440
+ },
21441
+ "nodeId": {
21442
+ "type": "string",
21443
+ "description": "The node identifier associated with the audit entry, if applicable."
21444
+ },
21445
+ "organizationId": {
21446
+ "type": "string",
21447
+ "description": "The organization identifier associated with the audit entry, if applicable."
21448
+ },
21449
+ "tenantId": {
21450
+ "type": "string",
21451
+ "description": "The tenant identifier associated with the audit entry, if applicable."
21452
+ },
21453
+ "ipAddressHashes": {
21454
+ "type": "array",
21455
+ "items": {
21456
+ "type": "string"
21457
+ },
21458
+ "description": "The hashed IP addresses of the client."
21459
+ },
21460
+ "userAgent": {
21461
+ "type": "string",
21462
+ "description": "The user agent string of the client."
21463
+ },
21464
+ "correlationId": {
21465
+ "type": "string",
21466
+ "description": "The correlation ID for request tracing."
21467
+ },
21468
+ "data": {
21469
+ "description": "Additional data related to the audit entry, such as IP address, user agent, etc."
21470
+ }
21471
+ }
21472
+ },
20912
21473
  "AuditableItemGraphCreateRequest": {
20913
21474
  "description": "The data to be used in the vertex.",
20914
21475
  "type": "object",
@@ -21711,6 +22272,7 @@
21711
22272
  "dateModified"
21712
22273
  ]
21713
22274
  },
22275
+ "DataspaceProtocolVersionResponse": {},
21714
22276
  "DocumentManagementCreateRequest": {
21715
22277
  "type": "object",
21716
22278
  "properties": {
@@ -21858,7 +22420,7 @@
21858
22420
  "description": "The query type."
21859
22421
  },
21860
22422
  "q": {
21861
- "description": "The representation of the query."
22423
+ "description": "The representation of the query, optional depending on the query type."
21862
22424
  },
21863
22425
  "jsonLdContext": {
21864
22426
  "type": "array",
@@ -21869,8 +22431,7 @@
21869
22431
  }
21870
22432
  },
21871
22433
  "required": [
21872
- "type",
21873
- "q"
22434
+ "type"
21874
22435
  ]
21875
22436
  },
21876
22437
  "GetTransferProcessResponse": {
@@ -22553,6 +23114,10 @@
22553
23114
  },
22554
23115
  "description": "The request body containing update parameters."
22555
23116
  },
23117
+ "NoContentRequest": {
23118
+ "not": {},
23119
+ "description": "Data to return send as the body."
23120
+ },
22556
23121
  "NotFoundResponse": {
22557
23122
  "type": "object",
22558
23123
  "properties": {