Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 9e88926

Browse files
authored
Merge pull request #140 from International-Data-Spaces-Association/develop
Version 9.3.0
2 parents 524bc3e + e062262 commit 9e88926

File tree

21 files changed

+316
-64
lines changed

21 files changed

+316
-64
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22
All notable changes to this project will be documented in this file.
33
(Skipped major version 1, 2 and 3 to match versioning of IDS DataSpaceConnector)
44

5+
## [9.3.0] - 2022-05-04 (compatible with DSC 7.x)
6+
7+
### Added
8+
- Add IDS/Non-IDS subscription to requested resource
9+
- Delete associated routes of generic endpoint on delete
10+
- Keystore/Truststore alias on settings page
11+
12+
### Fixes
13+
- Removed route selection for IDS subscription
14+
- Breadcrumbs: remove null links
15+
- Docker Image with Non-Root-User
16+
- Delete representation & artifact when requested resource is deleted
17+
518
## [9.2.0] - 2022-04-08 (compatible with DSC 7.0.0)
619

720
### Added

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ RUN npm run-script build
77
RUN npm prune --production
88
RUN rm -r .git
99
RUN sed -i "s@http://localhost:8083@@g" dist/js/*.js
10+
RUN groupadd -r nonroot && useradd -r -g nonroot nonroot
11+
USER nonroot
1012
ENTRYPOINT ["./entryPoint.sh"]

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ let connectorUrl = "https://localhost:8080"
4545

4646
You can change the main colors of the user interface in `src/theme/default.js`
4747

48+
### Test backend
49+
50+
The UI backend provides an endpoint (http://[localhost:8083]/testdata) that can be used as backend connection (type: REST) in the DSC for testing purposes.
51+
This can process POST and GET requests.
52+
4853
## Start with Docker
4954

5055
Build docker image:

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dataspaceconnector-ui",
3-
"version": "9.2.0",
3+
"version": "9.3.0",
44
"private": true,
55
"scripts": {
66
"serve": "vue-cli-service serve --open --port 8082",

src/components/infobox/InfoBox.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,4 +138,17 @@
138138
Running apps cannot be deleted and must be stopped first.
139139
</v-card-text>
140140
</v-card-text>
141+
<v-card-text v-if="currentRoute == 'subscriptions'">
142+
<v-card-text>
143+
Overview of all currently active subscriptions.
144+
<br>
145+
<br>
146+
Subscriptions can be deleted.
147+
</v-card-text>
148+
</v-card-text>
149+
<v-card-text v-if="currentRoute == 'subscriberesource'">
150+
<v-card-text>
151+
Subscribe to resources as IDS or non-IDS system
152+
</v-card-text>
153+
</v-card-text>
141154
</v-card>

src/datamodel/clientDataModel.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ export default {
119119

120120
createConnectorConfig(id, title, description, endpoint, version, curator, maintainer, inboundModelVersion, outboundModelVersion,
121121
useProxy, proxyUrl, proxyUsername, proxyPassword, noProxyArray, logLevel, connectorStatus, connectorDeployMode, trustStoreUrl, trustStorePassword,
122-
keyStoreUrl, keyStorePassword) {
122+
trustStoreAlias, keyStoreUrl, keyStorePassword, keyStoreAlias) {
123123
let configuration = {};
124124
if (id === undefined) {
125125
configuration.id = "";
@@ -216,6 +216,11 @@ export default {
216216
} else {
217217
configuration.trustStorePassword = trustStorePassword;
218218
}
219+
if (trustStoreAlias === undefined) {
220+
configuration.trustStoreAlias = "";
221+
} else {
222+
configuration.trustStoreAlias = trustStoreAlias;
223+
}
219224
if (keyStoreUrl === undefined) {
220225
configuration.keyStoreUrl = "";
221226
} else {
@@ -226,6 +231,11 @@ export default {
226231
} else {
227232
configuration.keyStorePassword = keyStorePassword;
228233
}
234+
if (keyStoreAlias === undefined) {
235+
configuration.keyStoreAlias = "";
236+
} else {
237+
configuration.keyStoreAlias = keyStoreAlias;
238+
}
229239

230240
return configuration;
231241
},
@@ -379,8 +389,10 @@ export default {
379389
let connectorDeployMode = "";
380390
let trustStoreUrl = "";
381391
let trustStorePassword = "";
392+
let trustStoreAlias = "";
382393
let keyStoreUrl = "";
383394
let keyStorePassword = "";
395+
let keyStoreAlias = "";
384396

385397
if (idsConfiguration !== undefined) {
386398
id = dataUtils.getIdOfConnectorResponse(idsConfiguration);
@@ -406,11 +418,13 @@ export default {
406418
logLevel = idsConfiguration.logLevel;
407419
connectorDeployMode = idsConfiguration.deployMode;
408420
trustStoreUrl = idsConfiguration.trustStore.location;
421+
trustStoreAlias = idsConfiguration.trustStore.alias;
409422
keyStoreUrl = idsConfiguration.keyStore.location;
423+
keyStoreAlias = idsConfiguration.keyStore.alias;
410424
}
411425

412426
return this.createConnectorConfig(id, title, description, endpoint, version, curator, maintainer, inboundModelVersion, outboundModelVersion,
413-
useProxy, proxyUrl, username, password, noProxyArray, logLevel, connectorStatus, connectorDeployMode, trustStoreUrl, trustStorePassword,
414-
keyStoreUrl, keyStorePassword);
427+
useProxy, proxyUrl, username, password, noProxyArray, logLevel, connectorStatus, connectorDeployMode, trustStoreUrl, trustStorePassword, trustStoreAlias,
428+
keyStoreUrl, keyStorePassword, keyStoreAlias);
415429
}
416430
}

src/pages/PageStructure.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import InstallAppsPage from "@/pages/appstores/installapps/InstallAppsPage.vue";
1212
import SettingsPage from "@/pages/settings/SettingsPage.vue";
1313
import BackendConnectionsPage from "@/pages/backendconnections/BackendConnectionsPage.vue";
1414
import SubscriptionsPage from "@/pages/subscriptions/SubscriptionsPage.vue";
15+
import SubscribeResourcePage from "@/pages/subscriptions/subscribe/SubscribeResourcePage.vue";
1516
import ResourceCatalogsPage from "@/pages/dataoffering/resources/addresource/catalog/ResourceCatalogsPage.vue";
1617

1718
export default {
@@ -104,7 +105,13 @@ export default {
104105
path: "subscriptions",
105106
name: "Subscriptions",
106107
icon: "mdi-rss",
107-
component: SubscriptionsPage
108+
component: SubscriptionsPage,
109+
subpages: [{
110+
path: "subscriberesource",
111+
name: "Subscribe Resource",
112+
component: SubscribeResourcePage,
113+
showInMenu: false
114+
}]
108115
}, {
109116
path: "brokers",
110117
name: "Brokers",

src/pages/backendconnections/BackendConnectionsPage.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,19 @@ export default {
4949
},
5050
deleteItem(item) {
5151
this.$refs.confirmationDialog.title = "Delete Backend Connection";
52-
this.$refs.confirmationDialog.text = "Are you sure you want to delete the Backend Connection '" + item.url + "'?";
52+
this.$refs.confirmationDialog.text = "Are you sure you want to delete the Backend Connection '" + item.accessUrl + "'?";
53+
this.$refs.confirmationDialog.text2 = "Associated routes will be deleted.";
5354
this.$refs.confirmationDialog.callbackData = {
5455
item: item
5556
};
5657
this.$refs.confirmationDialog.callback = this.deleteCallback;
5758
this.$refs.confirmationDialog.dialog = true;
5859
},
59-
deleteCallback(choice, callbackData) {
60+
async deleteCallback(choice, callbackData) {
6061
if (choice == "yes") {
6162
this.$root.$emit('showBusyIndicator', true);
62-
this.deleteBackendConnection(callbackData.item.id, callbackData.item.dataSource.id);
63+
await dataUtils.deleteAllRoutesOfGenericEndpoint(callbackData.item.id);
64+
await this.deleteBackendConnection(callbackData.item.id, callbackData.item.dataSource.id);
6365
}
6466
},
6567
async deleteBackendConnection(id, dataSourceId) {

src/pages/dataconsumption/dataconsumption/IDSDataConsumptionPage.js

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ export default {
183183
},
184184
async requestSearchResult(item) {
185185
this.$root.$emit('showBusyIndicator', true);
186+
console.trace();
186187
this.$data.recipientId = item.accessUrl;
187188
await this.receiveCatalogs();
188189
let filterdResources = [];
@@ -254,7 +255,7 @@ export default {
254255

255256
async subscribeToResource(subscriptionLocation) {
256257
try {
257-
this.$data.subscribeToResourceResponse = await dataUtils.subscribeToResource(this.$data.recipientId, this.$data.selectedResource["@id"], subscriptionLocation);
258+
this.$data.subscribeToResourceResponse = await dataUtils.subscribeToResource(this.$data.recipientId, this.$data.selectedResource["@id"], subscriptionLocation, true);
258259
} catch (error) {
259260
errorUtils.showError(error, "subscribe to Resource");
260261
}
@@ -306,19 +307,7 @@ export default {
306307
},
307308

308309
async requestArtifact(item) {
309-
let configuration = await dataUtils.getConnectorConfiguration();
310-
let subscriptionLocations = [];
311-
subscriptionLocations.push({
312-
display: configuration.endpoint,
313-
value: configuration.endpoint
314-
});
315-
for (let route of this.$data.routes) {
316-
subscriptionLocations.push({
317-
display: route.description,
318-
value: route.selfLink
319-
});
320-
}
321-
this.$refs.artifactDialog.show(this.$data.selectedResource["ids:contractOffer"][0]["ids:permission"], this.$data.selectedResource["ids:standardLicense"]["@id"], item, subscriptionLocations, this.clickAcceptContract);
310+
this.$refs.artifactDialog.show(this.$data.selectedResource["ids:contractOffer"][0]["ids:permission"], this.$data.selectedResource["ids:standardLicense"]["@id"], item, this.clickAcceptContract);
322311
},
323312

324313
clickAcceptContract(artifact, subscribe, subscriptionLocation) {

src/pages/dataconsumption/dataconsumption/artifactdialog/ArtifactDialog.html

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,6 @@ <h4 class="data-consumption-page-dialog-title">Rules:</h4>
1212
<h4 class="data-consumption-page-dialog-title">License:</h4>
1313
{{ license }}
1414
<v-checkbox v-model="subscribe" label="Subscribe"></v-checkbox>
15-
<v-row no-gutters>
16-
<v-col cols="12" md="1">
17-
</v-col>
18-
<v-col cols="12" md="11">
19-
<v-select class="artifact-dialog-location" v-model="subscriptionLocation"
20-
:items="subscriptionLocations" label="Subscription location" :disabled="!subscribe"
21-
item-text="display" item-value="value">
22-
</v-select>
23-
</v-col>
24-
</v-row>
2515
</v-card-text>
2616

2717
<v-divider></v-divider>

0 commit comments

Comments
 (0)