Skip to content

Commit 1621945

Browse files
authored
Merge 74c3e1b into f0567d1
2 parents f0567d1 + 74c3e1b commit 1621945

File tree

3 files changed

+165
-3
lines changed

3 files changed

+165
-3
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ recipes.
3333
- [Deployment with Helm](#deployment-with-helm)
3434
- [Testing](#testing)
3535
- [Additional documentation and resources](#additional-documentation-and-resources)
36+
- [Ongoing Work](#ongoing-work)
3637
- [Additional documentation](#additional-documentation)
3738
- [Additional Resources](#additional-resources)
3839

@@ -354,6 +355,8 @@ the [test-scenarios](./it/src/test/resources/it/mvds_basic.feature) against it.
354355

355356
## Additional documentation and resources
356357

358+
### Ongoing Work
359+
The FIWARE Data Space Connector is constantly beeing developed and extended with new features. Their status and some previews will be listed [here](./doc/ONGOING_WORK.md).
357360

358361
### Additional documentation
359362

@@ -362,9 +365,6 @@ specific flows and its deployment and integration with other frameworks, can be
362365
* [Additional documentation](./doc)
363366

364367

365-
366-
367-
368368
### Additional Resources
369369

370370
Following is a list with additional resources about the FIWARE Data Space Connector and Data Spaces in general:

doc/ONGOING_WORK.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# Ongoing Work
2+
3+
The FIWARE Data Space Connector is constantly beeing developed and extended with new features. Their status and some previews will be listed on this page.
4+
5+
All planned work is listed in the [FIWARE Data Space Connector Taiga-Board](https://tree.taiga.io/project/dwendland-fiware-data-space-connector/epics).
6+
7+
>:warning: Since everything in this section is still under development, it might not work at all times.
8+
9+
## Transfer Process Protocol
10+
11+
In order to be compatible with other Connectors, the FIWARE Data Space Connector will support the [IDSA Transfer Process Protocol](https://docs.internationaldataspaces.org/ids-knowledgebase/dataspace-protocol/transfer-process/transfer.process.protocol).
12+
The architecture to be implemented is drafted in the following diagramm:
13+
14+
![TPP Draft](./img/tpp-draft.png)
15+
16+
* [Rainbow](https://github.com/ging/rainbow)(not yet public) is a RUST-implementation of the [Dataspace Protocol](https://docs.internationaldataspaces.org/ids-knowledgebase/dataspace-protocol), used for providing the [Transfer Process API](https://docs.internationaldataspaces.org/ids-knowledgebase/dataspace-protocol/transfer-process/transfer.process.protocol), the [Catalog API](https://docs.internationaldataspaces.org/ids-knowledgebase/dataspace-protocol/catalog/catalog.protocol) and the Agreement-Part of the [Contract Negotiation API](https://docs.internationaldataspaces.org/ids-knowledgebase/dataspace-protocol/contract-negotiation/contract.negotiation.protocol)
17+
* the [Contract Management](https://github.com/FIWARE/contract-management) component is beeing extended to:
18+
* integrate with the TMForum API and translate its entities to [DCAT Entries](https://www.w3.org/TR/vocab-dcat-3/) in Rainbow([Catalogs](https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog) and [DataServices](https://www.w3.org/TR/vocab-dcat-3/#Class:Data_Service))
19+
* create Agreements in Rainbow based on the Product Orderings
20+
* create Policies at the [ODRL-PAP](https://github.com/wistefan/odrl-pap) based in the Product Orderings
21+
22+
The current state of work can be found at the [TPP-Integration Branch of the Contract Management](https://github.com/FIWARE/contract-management/tree/tpp-integration) and the [TPP-Integration Branch of the Data Space Connector](https://github.com/FIWARE/data-space-connector/tree/tpp-integration).
23+
24+
In order to try it out, check out the branch and deploy the Connector from there. Once everything is running, the following steps can be executed:
25+
26+
1. Create a category:
27+
28+
```shell
29+
export CATEGORY_ID=$(curl -X 'POST' \
30+
'http://tm-forum-api.127.0.0.1.nip.io:8080/tmf-api/productCatalogManagement/v4/category' \
31+
-H 'accept: application/json;charset=utf-8' \
32+
-H 'Content-Type: application/json;charset=utf-8' \
33+
-d '{
34+
"description": "Test Category",
35+
"name": "Test Category"
36+
}' | jq .id -r); echo ${CATEGORY_ID}
37+
```
38+
39+
2. Create a catalog:
40+
41+
```shell
42+
export CATALOG_ID=$(curl -X 'POST' \
43+
'http://tm-forum-api.127.0.0.1.nip.io:8080/tmf-api/productCatalogManagement/v4/catalog' \
44+
-H 'accept: application/json;charset=utf-8' \
45+
-H 'Content-Type: application/json;charset=utf-8' \
46+
-d "{
47+
\"description\": \"Test Catalog\",
48+
\"name\": \"Test Catalog\",
49+
\"category\": [
50+
{
51+
\"id\": \"${CATEGORY_ID}\"
52+
}
53+
]
54+
}" | jq .id -r); echo ${CATALOG_ID}
55+
```
56+
57+
3. Create a product specification:
58+
59+
```shell
60+
export PRODUCT_SPEC_ID=$(curl -X 'POST' \
61+
'http://tm-forum-api.127.0.0.1.nip.io:8080/tmf-api/productCatalogManagement/v4/productSpecification' \
62+
-H 'accept: application/json;charset=utf-8' \
63+
-H 'Content-Type: application/json;charset=utf-8' \
64+
-d "{
65+
\"name\": \"Test Spec\",
66+
\"productSpecCharacteristic\": [
67+
{
68+
\"id\": \"endpointUrl\",
69+
\"name\":\"Service Endpoint URL\",
70+
\"valueType\":\"endpointUrl\",
71+
\"productSpecCharacteristicValue\": [{
72+
\"value\":\"https://the-test-service.org\",
73+
\"isDefault\": true
74+
}]
75+
},
76+
{
77+
\"id\": \"endpointDescription\",
78+
\"name\":\"Service Endpoint Description\",
79+
\"valueType\":\"endpointDescription\",
80+
\"productSpecCharacteristicValue\": [{
81+
\"value\":\"The Test Service\"
82+
}]
83+
}
84+
]
85+
}" | jq .id -r); echo ${PRODUCT_SPEC_ID}
86+
```
87+
88+
4. Create the product offering:
89+
90+
```shell
91+
export PRODUCT_OFFERING_ID=$(curl -X 'POST' \
92+
'http://tm-forum-api.127.0.0.1.nip.io:8080/tmf-api/productCatalogManagement/v4/productOffering' \
93+
-H 'accept: application/json;charset=utf-8' \
94+
-H 'Content-Type: application/json;charset=utf-8' \
95+
-d "{
96+
\"name\": \"Test Offering\",
97+
\"description\": \"Test Offering description\",
98+
\"isBundle\": false,
99+
\"isSellable\": true,
100+
\"lifecycleStatus\": \"Active\",
101+
\"productSpecification\":
102+
{
103+
\"id\": \"${PRODUCT_SPEC_ID}\",
104+
\"name\":\"The Test Spec\"
105+
},
106+
\"category\": [{
107+
\"id\": \"${CATEGORY_ID}\"
108+
}]
109+
}" | jq .id -r); echo ${PRODUCT_OFFERING_ID}
110+
```
111+
112+
After those steps, the catalog with the offering is available at Rainbows' Catalog API:
113+
114+
```shell
115+
curl -X GET 'http://rainbow.127.0.0.1.nip.io:8080/api/v1/catalogs'
116+
```
117+
118+
The result will be similar to the following:
119+
120+
```json
121+
[
122+
{
123+
"@context": "https://w3id.org/dspace/2024/1/context.json",
124+
"@type": "dcat:Catalog",
125+
"@id": "urn:ngsi-ld:catalog:5b33f5bc-65e7-40b4-a71c-b722da52a919",
126+
"foaf:homepage": null,
127+
"dcat:theme": "",
128+
"dcat:keyword": "",
129+
"dct:conformsTo": null,
130+
"dct:creator": null,
131+
"dct:identifier": "urn:ngsi-ld:catalog:5b33f5bc-65e7-40b4-a71c-b722da52a919",
132+
"dct:issued": "2025-01-15T07:25:19.779168",
133+
"dct:modified": null,
134+
"dct:title": "Test Catalog",
135+
"dct:description": [],
136+
"dspace:participantId": null,
137+
"odrl:hasPolicy": [],
138+
"dspace:extraFields": null,
139+
"dcat:dataset": [],
140+
"dcat:service": [
141+
{
142+
"@context": "https://w3id.org/dspace/2024/1/context.json",
143+
"@type": "dcat:DataService",
144+
"@id": "urn:ngsi-ld:product-offering:96eaae6d-1615-41b0-b721-91c6a2e36551",
145+
"dcat:theme": "",
146+
"dcat:keyword": "",
147+
"dcat:endpointDescription": "The Test Service",
148+
"dcat:endpointURL": "https://the-test-service.org",
149+
"dct:conformsTo": null,
150+
"dct:creator": null,
151+
"dct:identifier": "urn:ngsi-ld:product-offering:96eaae6d-1615-41b0-b721-91c6a2e36551",
152+
"dct:issued": "2025-01-15T07:25:31.220506",
153+
"dct:modified": null,
154+
"dct:title": "Test Spec",
155+
"dct:description": [],
156+
"odrl:hasPolicy": [],
157+
"dspace:extraFields": null
158+
}
159+
]
160+
}
161+
]
162+
```

doc/img/tpp-draft.png

114 KB
Loading

0 commit comments

Comments
 (0)