diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9418b4f1..605167c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
- The customer already gets an email from Portal and the third-Party-provider after the successful deployment that the SDE-Service is ready to use. If the connector End2End test is unsuccessful (this might be based on the cloud communication issue), the customer will be informed about the failing connectivity. This behavior might need to be clarified for the customer. We will change this behavior in the next release.
+## [1.5.0] - 2023-09-04
+
+### Changed
+ - Support DDTR 3.2 for external subject id
## [1.4.2] - 2023-08-22
diff --git a/README.md b/README.md
index 78ec7aba..1fda800d 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,8 @@ This service will help service provider to set up DFT/SDE with EDC and EDC as se
### Software Version
```shell
-Application version: 1.4.2
-Helm release version: 1.4.3
+Application version: 1.5.0
+Helm release version: 1.5.0
```
# Container images
diff --git a/charts/orchestrator/Chart.yaml b/charts/orchestrator/Chart.yaml
index 697ebd9d..d89cb123 100644
--- a/charts/orchestrator/Chart.yaml
+++ b/charts/orchestrator/Chart.yaml
@@ -38,13 +38,13 @@ sources:
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 1.4.3
+version: 1.5.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
-appVersion: "1.4.2"
+appVersion: "1.5.0"
dependencies:
- condition: postgresql.enabled
diff --git a/charts/orchestrator/README.md b/charts/orchestrator/README.md
index 8d812150..8748d294 100644
--- a/charts/orchestrator/README.md
+++ b/charts/orchestrator/README.md
@@ -1,6 +1,6 @@
# managed-service-orchestrator
-![Version: 1.4.3](https://img.shields.io/badge/Version-1.4.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.4.2](https://img.shields.io/badge/AppVersion-1.4.2-informational?style=flat-square)
+![Version: 1.5.0](https://img.shields.io/badge/Version-1.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.5.0](https://img.shields.io/badge/AppVersion-1.5.0-informational?style=flat-square)
This service will help service provider to set up DFT/SDE with EDC and EDC as service in service provider environment.
diff --git a/pom.xml b/pom.xml
index cd9066f0..565f2f7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
org.eclipse.tractusx
managed-service-orchestrator
- 1.4.2
+ 1.5.0
managed-service-orchestrator
managed-service-orchestrator
diff --git a/src/main/java/org/eclipse/tractusx/autosetup/constant/SDEConfigurationProperty.java b/src/main/java/org/eclipse/tractusx/autosetup/constant/SDEConfigurationProperty.java
index 0d2f6191..a1b0b040 100644
--- a/src/main/java/org/eclipse/tractusx/autosetup/constant/SDEConfigurationProperty.java
+++ b/src/main/java/org/eclipse/tractusx/autosetup/constant/SDEConfigurationProperty.java
@@ -51,6 +51,7 @@ public class SDEConfigurationProperty {
private String dtregistryidpClientId;
private String dtregistrytenantId;
private String dtregistryUrlPrefix;
+ private String dtregistryApiUri;
private String bpndiscoveryHostname;
private String discoveryAuthenticationUrl;
diff --git a/src/main/java/org/eclipse/tractusx/autosetup/manager/DTRegistryManager.java b/src/main/java/org/eclipse/tractusx/autosetup/manager/DTRegistryManager.java
index 9d7e7361..374cbc43 100644
--- a/src/main/java/org/eclipse/tractusx/autosetup/manager/DTRegistryManager.java
+++ b/src/main/java/org/eclipse/tractusx/autosetup/manager/DTRegistryManager.java
@@ -26,6 +26,7 @@
import java.util.Map;
import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
import org.eclipse.tractusx.autosetup.apiproxy.EDCProxyService;
import org.eclipse.tractusx.autosetup.constant.AppActions;
import org.eclipse.tractusx.autosetup.constant.SDEConfigurationProperty;
@@ -70,8 +71,10 @@ public Map managePackage(Customer customerDetails, AppActions ac
String dnsName = inputData.get("dnsName");
String dnsNameURLProtocol = inputData.get("dnsNameURLProtocol");
+ String dturi = sDEConfigurationProperty.getDtregistryApiUri();
+ dturi = StringUtils.isAllEmpty(dturi) ? "/api/v3.0" : dturi;
String dtregistryUrl = dnsNameURLProtocol + "://" + dnsName + "/"
- + sDEConfigurationProperty.getDtregistryUrlPrefix();
+ + sDEConfigurationProperty.getDtregistryUrlPrefix() + dturi;
inputData.put("rgdatabase", "registry");
inputData.put("rgdbpass", "admin@123");
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index b2c4659b..8719d698 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -115,6 +115,7 @@ sde.portal-backend-clientSecret=${sde_portal-backend-clientSecret}
sde.dtregistryidp-client-id=${sde_dtregistryidp-client-id}
sde.dtregistrytenant-id=${sde_dtregistrytenant-id}
sde.dtregistry-url-prefix=${sde_dtregistry-url-prefix}
+sde.dtregistry-api-uri=${sde_dtregistry-api-uri}
sde.bpndiscovery-hostname=${sde_bpndiscovery-hostname}
sde.discovery-authentication-url=${sde_discovery-authentication-url}
diff --git a/src/main/resources/flyway/V8__update_app_version.sql b/src/main/resources/flyway/V8__update_app_version.sql
new file mode 100644
index 00000000..28505334
--- /dev/null
+++ b/src/main/resources/flyway/V8__update_app_version.sql
@@ -0,0 +1,374 @@
+/********************************************************************************
+ * Copyright (c) 2023 T-Systems International GmbH
+ * Copyright (c) 2023 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+update app_tbl set expected_input_data='{
+ "sdepostgresql":{
+ "enabled":true,
+ "primary":{
+ "persistence":{
+ "size":"1Gi"
+ }
+ },
+ "persistence":{
+ "size":"1Gi"
+ },
+ "auth":{
+ "postgresPassword":"$\{postgresPassword\}",
+ "password":"$\{postgresPassword\}",
+ "username":"$\{username\}",
+ "database":"$\{database\}"
+ }
+ },
+ "backend": {
+ "ingresses":[
+ {
+ "enabled":true,
+ "hostname":"$\{dnsName\}",
+ "annotations":{
+
+ },
+ "className":"nginx",
+ "endpoints":[
+ "default"
+ ],
+ "tls":{
+ "enabled":true,
+ "secretName":"sdebackend"
+ },
+ "certManager":{
+ "clusterIssuer":"letsencrypt-prod"
+ }
+ }
+ ],
+ "configuration":{
+ "properties": "server.port=8080
+
+ spring.main.allow-bean-definition-overriding=true
+
+ spring.servlet.multipart.enabled=true
+
+ spring.servlet.multipart.file-size-threshold=2KB
+
+ spring.servlet.multipart.max-file-size=200MB
+
+ spring.servlet.multipart.max-request-size=215MB
+
+ server.servlet.context-path=/backend/api
+
+ spring.flyway.baseline-on-migrate=true
+
+ spring.flyway.locations=classpath:/flyway
+
+ file.upload-dir=./temp/
+
+ logging.level.org.apache.http=info
+
+ logging.level.root=info
+
+ spring.datasource.driver-class-name=org.postgresql.Driver
+
+ spring.jpa.open-in-view=false
+
+ digital-twins.hostname=$\{sde.digital-twins.hostname\}
+
+ digital-twins.authentication.url=$\{sde.digital-twins.authentication.url\}
+
+ digital-twins.authentication.clientId=$\{digital-twins.authentication.clientId\}
+
+ digital-twins.authentication.clientSecret=$\{digital-twins.authentication.clientSecret\}
+
+ digital-twins.authentication.grantType=client_credentials
+
+ dft.hostname=$\{sdeBackEndUrl\}
+
+ dft.apiKeyHeader=$\{sdeBackEndApiKeyHeader\}
+
+ dft.apiKey=$\{sdeBackEndApiKey\}
+
+ manufacturerId=$\{manufacturerId\}
+
+ edc.hostname=$\{controlPlaneEndpoint\}
+
+ edc.managementpath=/data/v2
+
+ edc.apiKeyHeader=$\{edcApiKey\}
+
+ edc.apiKey=$\{edcApiKeyValue\}
+
+ edc.consumer.hostname=$\{controlPlaneEndpoint\}
+
+ edc.consumer.apikeyheader=$\{edcApiKey\}
+
+ edc.consumer.apikey=$\{edcApiKeyValue\}
+
+ edc.consumer.managementpath=/data/v2
+
+ edc.consumer.protocol.path=/api/v1/dsp
+
+ keycloak.clientid=$\{sdebackendkeycloakclientid\}
+
+ spring.security.oauth2.resourceserver.jwt.issuer-uri=$\{sde.resourceServerIssuer\}
+
+ springdoc.api-docs.path=/api-docs
+
+ springdoc.swagger-ui.oauth.client-id=$\{sdebackendkeycloakclientid\}
+
+ partner.pool.hostname=$\{sde.partner.pool.hostname\}
+
+ partner.pool.authentication.url=$\{sde.partner.pool.authentication.url\}
+
+ partner.pool.clientId=$\{sde.partner.pool.clientId\}
+
+ partner.pool.clientSecret=$\{sde.partner.pool.clientSecret\}
+
+ partner.pool.grantType=client_credentials
+
+ portal.backend.hostname=$\{sde.portal.backend.hostname\}
+
+ portal.backend.authentication.url=$\{sde.portal.backend.authentication.url\}
+
+ portal.backend.clientId=$\{sde.portal.backend.clientId\}
+
+ portal.backend.clientSecret=$\{sde.portal.backend.clientSecret\}
+
+ portal.backend.grantType=client_credentials
+
+ bpndiscovery.hostname=$\{sde.bpndiscovery.hostname\}
+
+ discovery.authentication.url=$\{sde.discovery.authentication.url\}
+
+ discovery.clientId=$\{sde.discovery.clientId\}
+
+ discovery.clientSecret=$\{sde.discovery.clientSecret\}
+
+ discovery.grantType=client_credentials"
+ }
+ },
+ "frontend": {
+ "ingresses":[
+ {
+ "enabled":true,
+ "hostname":"$\{dnsName\}",
+ "annotations":{
+ "kubernetes.io/tls-acme": "true"
+ },
+ "className":"nginx",
+ "endpoints":[
+ "default"
+ ],
+ "tls":{
+ "enabled":true,
+ "secretName":"sdefrontend"
+ },
+ "certManager":{
+ "clusterIssuer":"letsencrypt-prod"
+ }
+ }
+ ],
+ "configuration":{
+ "properties":"REACT_APP_API_URL=$\{sdeBackEndUrl\}
+
+ REACT_APP_KEYCLOAK_URL=$\{sde.keycloak.auth\}
+
+ REACT_APP_KEYCLOAK_REALM=$\{sde.keycloak.realm\}
+
+ REACT_APP_CLIENT_ID=$\{sdefrontendkeycloakclientid\}
+
+ REACT_APP_DEFAULT_COMPANY_BPN=$\{bpnNumber\}
+
+ REACT_APP_FILESIZE=268435456"
+ }
+ }
+}', package_version='2.1.0' where app_name='SDE';;
+
+
+update app_tbl set expected_input_data= '{
+ "install": {
+ "postgresql": true,
+ "vault": false
+ },
+ "participant" : {
+ "id": "$\{bpnNumber\}"
+ },
+ "backendService": {
+ "httpProxyTokenReceiverUrl": "$\{dftAddress\}"
+ },
+ "postgresql": {
+ "enabled": true,
+ "primary":{
+ "persistence":{
+ "size":"1Gi"
+ }
+ },
+ "persistence":{
+ "enabled":true,
+ "size":"1Gi"
+ },
+ "fullnameOverride": "connectorpostgresqlhost",
+ "jdbcUrl":"jdbc:postgresql://connectorpostgresqlhost:5432/edc",
+ "username":"$\{username\}",
+ "password":"$\{appdbpass\}",
+ "database": "edc",
+ "auth":{
+ "username":"$\{username\}",
+ "password":"$\{appdbpass\}",
+ "postgresPassword":"$\{postgresPassword\}"
+ }
+ },
+ "vault": {
+ "hashicorp": {
+ "enabled": true,
+ "url": "$\{vaulturl\}",
+ "token": "$\{vaulttoken\}",
+ "timeout": 30,
+ "healthCheck": {
+ "enabled": false,
+ "standbyOk": false
+ },
+ "paths": {
+ "health": "/v1/sys/health",
+ "secret": "$\{valuttenantpath\}"
+ }
+ },
+ "secretNames": {
+ "dapsPrivateKey": "$\{certificate-private-key\}",
+ "dapsPublicKey": "$\{daps-cert\}",
+ "transferProxyTokenEncryptionAesKey": "$\{encryptionkeys\}",
+ "transferProxyTokenSignerPrivateKey": "$\{certificate-data-plane-private-key\}",
+ "transferProxyTokenSignerPublicKey": "$\{certificate-data-plane-public-key\}"
+ }
+ },
+ "controlplane": {
+ "endpoints": {
+ "management": {
+ "authKey": "$\{edcApiKeyValue\}",
+ "path": "/data",
+ "port": "8081"
+ }
+ },
+ "service": {
+ "type": "NodePort"
+ },
+ "securityContext": {
+ "readOnlyRootFilesystem": false
+ },
+ "ssi" : {
+ "miw" :{
+ "authorityId" : "$\{authorityId\}",
+ "url": "$\{edcMiwUrl\}"
+ },
+ "oauth": {
+ "client" :{
+ "id" :"$\{keycloakAuthenticationClientId\}",
+ "secretAlias": "client-secret"
+ },
+ "tokenurl": "$\{keycloakAuthTokenURL\}"
+ }
+ },
+ "ingresses": [
+ {
+ "enabled": true,
+ "hostname": "$\{dnsName\}",
+ "annotations": {},
+ "className": "nginx",
+ "endpoints": [
+ "protocol",
+ "management",
+ "control",
+ "default"
+ ],
+ "tls": {
+ "enabled": true,
+ "secretName": "edctxcontrolplane"
+ },
+ "certManager": {
+ "clusterIssuer": "letsencrypt-prod"
+ }
+ }
+ ]
+ },
+ "dataplane": {
+ "ingresses": [
+ {
+ "enabled": true,
+ "hostname": "$\{dnsName\}",
+ "annotations": {},
+ "className": "nginx",
+ "endpoints": [
+ "public"
+ ],
+ "tls": {
+ "enabled": true,
+ "secretName": "edctxdataplane"
+ },
+ "certManager": {
+ "clusterIssuer": "letsencrypt-prod"
+ }
+ }
+ ]
+ }
+}', package_version='0.5.1' where app_name='EDC_CONNECTOR';
+
+
+update app_tbl set expected_input_data= '{
+ "enablePostgres": true,
+ "enableKeycloak": false,
+ "postgresql": {
+ "auth": {
+ "password":"$\{rgdbpass\}",
+ "postgresPassword":"$\{rgdbpass\}",
+ "username":"$\{rgusername\}",
+ "database":"$\{rgdatabase\}"
+ },
+ "primary":
+ {
+ "persistence":{
+ "size" :"1Gi"
+ }
+ },
+ "persistence": {
+ "size" :"1Gi"
+ }
+ },
+ "registry": {
+ "host": "$\{dnsName\}",
+ "idpClientId" : "$\{idpClientId\}",
+ "idpIssuerUri": "$\{idpIssuerUri\}",
+ "tenantId" : "$\{bpnNumber\}",
+ "authentication": true,
+ "ingress": {
+ "enabled": true,
+ "hostname": "$\{dnsName\}",
+ "annotations": {
+ "cert-manager.io/cluster-issuer": letsencrypt-prod,
+ "nginx.ingress.kubernetes.io/cors-allow-credentials": "true",
+ "nginx.ingress.kubernetes.io/enable-cors": "true",
+ "nginx.ingress.kubernetes.io/rewrite-target": /$2,
+ "nginx.ingress.kubernetes.io/use-regex": "true",
+ "nginx.ingress.kubernetes.io/x-forwarded-prefix": /$\{dtregistryUrlPrefix\}
+ },
+ "urlPrefix": /$\{dtregistryUrlPrefix\},
+ "className": "nginx",
+ "tls": true
+ }
+ }
+}', package_version='0.3.21' where app_name='DT_REGISTRY';
+
+update app_tbl set expected_input_data= replace(replace(expected_input_data,'\{','{'),'\}','}'), required_yaml_configuration=replace(replace(required_yaml_configuration,'\{','{'),'\}','}');
diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-test.properties
index 6ee8fffe..f759536d 100644
--- a/src/test/resources/application-test.properties
+++ b/src/test/resources/application-test.properties
@@ -111,6 +111,7 @@ sde.portal-backend-clientSecret=test
sde.dtregistryidp-client-id=test
sde.dtregistrytenant-id=test
sde.dtregistry-url-prefix=test
+sde.dtregistry-api-uri=test
sde.bpndiscovery-hostname=test
sde.discovery-authentication-url=test