From c5d04bce4e4d4cbbaa08ea01bd6ba00951671884 Mon Sep 17 00:00:00 2001 From: Muhammad Saud Khan Date: Fri, 2 Feb 2024 20:08:01 +0100 Subject: [PATCH 1/7] chore: update changelog, update release version to 2.0.2 --- CHANGELOG.md | 40 +++++++++++++++++++ charts/digital-product-pass/Chart.yaml | 7 ++-- charts/digital-product-pass/README.md | 30 ++++++++++++-- docs/RELEASE_USER.md | 15 ++++++- .../digital-product-pass-backend/Chart.yaml | 6 +-- .../digital-product-pass-backend/README.md | 2 +- dpp-backend/digitalproductpass/pom.xml | 2 +- dpp-backend/digitalproductpass/readme.md | 2 +- package-lock.json | 4 +- package.json | 2 +- 10 files changed, 94 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96c5e8e9c..ec21fe5d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,46 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [released] +## [v2.0.2] - 02-02-2024 +## Added +- Added Frameagreement conditions to the provider configuration +- Added Unit Tests for Managers and for Services +- Added changes from version `v1.0.0` to version `v2.0.0` for every component involved +- Added iconMapping for all components involved in DPP `v2.0.0` +- Added multi-language feature that supports currently `EN` and `DE` +- Added back button in the welcome page +- Added `timeToLive` attribute to discovery service model in the dpp-backed +- Added `readOnlyRootFilesystem` to the container security context in helm charts + + +## Updated +- Cleaned up necessary scripts +-Refactored the DPP and IRS postman collections +- Updated the deployment and testing directory structure and their references in relevant documentation +- Updated license header and deployment directory references in the following readme files: + - Admin guide + - Arc42 + - Getting-Started guide +- Updated test directory stricture in dpp-backend +- Updated the app url from [https://materialpass.int.demo.catena-x.net](https://materialpass.int.demo.catena-x.net) to [https://dpp.int.demo.catena-x.net](https://dpp.int.demo.catena-x.net) +- Updated the payloads of asset, policies, contract definition, digital twin and its aspects to align with the DPPTriangle document `v1.1.0` +- Updated the following frontend content: + - Condition for "commercial.warranty" in General Cards + - Mocked passports + - Loading page translation + - Translation files + - Characteristics component + - Identification component + - Sustainability component + - Typology component +- Updated helm template to provide security context values from helm vaules file + + +## Deleted +- Filtered out unnecessary nnecessary/unused files + + ## [released] ## [v2.0.1] - 03-01-2024 ## Added diff --git a/charts/digital-product-pass/Chart.yaml b/charts/digital-product-pass/Chart.yaml index 09e5a1307..f22521752 100644 --- a/charts/digital-product-pass/Chart.yaml +++ b/charts/digital-product-pass/Chart.yaml @@ -1,7 +1,8 @@ ################################################################################# -# Catena-X - Product Passport Consumer Application +# Catena-X - Digital Passport Passport Application # # Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -40,10 +41,10 @@ type: application # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.0.1 +version: 2.0.2 # 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: "2.0.1" +appVersion: "2.0.2" diff --git a/charts/digital-product-pass/README.md b/charts/digital-product-pass/README.md index ecc33d17e..5344a7369 100644 --- a/charts/digital-product-pass/README.md +++ b/charts/digital-product-pass/README.md @@ -1,6 +1,6 @@ # digital-product-pass -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.1](https://img.shields.io/badge/AppVersion-2.0.1-informational?style=flat-square) +![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.2](https://img.shields.io/badge/AppVersion-2.0.2-informational?style=flat-square) A Helm chart for Tractus-X Digital Product Pass Kubernetes @@ -15,7 +15,7 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes | Key | Type | Default | Description | |-----|------|---------|-------------| | affinity | object | `{}` | | -| backend | object | `{"digitalTwinRegistry":{"endpoints":{"digitalTwin":"/shell-descriptors","search":"/lookup/shells","subModel":"/submodel-descriptors"},"temporaryStorage":{"enabled":true,"lifetime":12},"timeouts":{"digitalTwin":20,"negotiation":40,"search":10,"transfer":10}},"discovery":{"bpnDiscovery":{"key":"manufacturerPartId","path":"/api/v1.0/administration/connectors/bpnDiscovery/search"},"edcDiscovery":{"key":"bpn"},"hostname":""},"edc":{"apis":{"catalog":"/catalog/request","management":"/management/v2","negotiation":"/contractnegotiations","transfer":"/transferprocesses"},"delay":100,"hostname":"","participantId":"","xApiKey":""},"hostname":"localhost","image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]},"irs":{"enabled":false,"hostname":""},"logging":{"level":{"root":"INFO","utils":"INFO"}},"maxRetries":5,"name":"dpp-backend","passport":{"aspects":["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass"]},"process":{"encryptionKey":""},"securityCheck":{"bpn":false,"edc":false},"serverPort":8888,"service":{"port":8888,"type":"ClusterIP"}}` | Backend configuration | +| backend | object | `{"digitalTwinRegistry":{"endpoints":{"digitalTwin":"/shell-descriptors","search":"/lookup/shells","subModel":"/submodel-descriptors"},"temporaryStorage":{"enabled":true,"lifetime":12},"timeouts":{"digitalTwin":20,"negotiation":40,"search":10,"transfer":10}},"discovery":{"bpnDiscovery":{"key":"manufacturerPartId","path":"/api/v1.0/administration/connectors/bpnDiscovery/search"},"edcDiscovery":{"key":"bpn"},"hostname":""},"edc":{"apis":{"catalog":"/catalog/request","management":"/management/v2","negotiation":"/contractnegotiations","transfer":"/transferprocesses"},"delay":100,"hostname":"","participantId":"","xApiKey":""},"hostname":"localhost","image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"enabled":false,"hosts":[{"host":"localhost","paths":[{"path":"/","pathType":"Prefix"}]}]},"irs":{"enabled":false,"hostname":""},"logging":{"level":{"root":"INFO","utils":"INFO"}},"maxRetries":5,"name":"dpp-backend","passport":{"aspects":["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass"]},"podSecurityContext":{"fsGroup":3000,"runAsGroup":3000,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}},"process":{"encryptionKey":""},"securityCheck":{"bpn":false,"edc":false},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"add":[],"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsGroup":3000,"runAsNonRoot":true,"runAsUser":10000},"serverPort":8888,"service":{"port":8888,"type":"ClusterIP"}}` | Backend configuration | | backend.digitalTwinRegistry.temporaryStorage | object | `{"enabled":true,"lifetime":12}` | temporary storage of dDTRs for optimization | | backend.digitalTwinRegistry.temporaryStorage.lifetime | int | `12` | lifetime of the temporaryStorage in hours | | backend.digitalTwinRegistry.timeouts | object | `{"digitalTwin":20,"negotiation":40,"search":10,"transfer":10}` | timeouts for the digital twin registry async negotiation | @@ -36,9 +36,21 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes | backend.maxRetries | int | `5` | max retries for the backend services | | backend.passport | object | `{"aspects":["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass"]}` | passport data transfer configuration | | backend.passport.aspects | list | `["urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport","urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass","urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass"]` | passport versions and aspects allowed | +| backend.podSecurityContext | object | `{"fsGroup":3000,"runAsGroup":3000,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| backend.podSecurityContext.fsGroup | int | `3000` | The owner for volumes and any files created within volumes will belong to this guid | +| backend.podSecurityContext.runAsGroup | int | `3000` | Processes within a pod will belong to this guid | +| backend.podSecurityContext.runAsUser | int | `10000` | Runs all processes within a pod with a special uid | +| backend.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | | backend.process | object | `{"encryptionKey":""}` | digital twin registry configuration | | backend.process.encryptionKey | string | `""` | unique sha512 hash key used for the passport encryption | | backend.securityCheck | object | `{"bpn":false,"edc":false}` | security configuration | +| backend.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| backend.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| backend.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| backend.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| backend.securityContext.runAsGroup | int | `3000` | The owner for volumes and any files created within volumes will belong to this guid | +| backend.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| backend.securityContext.runAsUser | int | `10000` | The container's process will run with the specified uid | | backend.serverPort | int | `8888` | configuration of the spring boot server | | backend.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service | | frontend.api | object | `{"delay":1000,"max_retries":30,"timeout":90000}` | api timeouts | @@ -54,14 +66,26 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes | frontend.irs.maxWaitingTime | int | `30` | maximum waiting time to get the irs job status | | frontend.irs.requestDelay | int | `30000` | request timeout delay | | frontend.name | string | `"dpp-frontend"` | | +| frontend.podSecurityContext | object | `{"fsGroup":3000,"runAsGroup":3000,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| frontend.podSecurityContext.fsGroup | int | `3000` | The owner for volumes and any files created within volumes will belong to this guid | +| frontend.podSecurityContext.runAsGroup | int | `3000` | Processes within a pod will belong to this guid | +| frontend.podSecurityContext.runAsUser | int | `10000` | Runs all processes within a pod with a special uid | +| frontend.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | | frontend.portal.hostname | string | `""` | | +| frontend.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| frontend.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| frontend.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| frontend.securityContext.readOnlyRootFilesystem | bool | `false` | Whether the root filesystem is mounted in read-only mode | +| frontend.securityContext.runAsGroup | int | `3000` | The owner for volumes and any files created within volumes will belong to this guid | +| frontend.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| frontend.securityContext.runAsUser | int | `10000` | The container's process will run with the specified uid | | frontend.service.port | int | `8080` | | | frontend.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service | | frontend.supportContact.adminEmail | string | `"admin@example.com"` | | | name | string | `"digital-product-pass"` | | | namespace | string | `""` | | | nodeSelector | object | `{}` | | -| oauth | object | `{"appId":"","bpnCheck":{"bpn":"","enabled":false},"hostname":"","onLoad":"login-required","realm":"","roleCheck":{"enabled":false},"techUser":{"clientId":"","clientSecret":""}}` | oauth configuration | +| oauth | object | `{"appId":"","bpnCheck":{"bpn":"","enabled":false},"hostname":"","onLoad":"login-required","realm":"","roleCheck":{"enabled":false},"techUser":{"clientId":"","clientSecret":""}}` | oauth configuration | | oauth.bpnCheck | object | `{"bpn":"","enabled":false}` | configure here the bpn check for the application | | oauth.bpnCheck.bpn | string | `""` | this bpn needs to be included in the user login information when the check is enabled | | oauth.hostname | string | `""` | url of the identity provider service | diff --git a/docs/RELEASE_USER.md b/docs/RELEASE_USER.md index fdefcc0b7..c164e6ed5 100644 --- a/docs/RELEASE_USER.md +++ b/docs/RELEASE_USER.md @@ -1,5 +1,5 @@ - # tractusx-connector -![Version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.4.1](https://img.shields.io/badge/AppVersion-0.4.1-informational?style=flat-square) +![Version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.0](https://img.shields.io/badge/AppVersion-0.5.0-informational?style=flat-square) A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mock that can be used as edc consumer for the DPP applicatiton. @@ -37,15 +15,53 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | Repository | Name | Version | |------------|------|---------| | https://charts.bitnami.com/bitnami | postgresql(postgresql) | 12.1.6 | -| https://eclipse-tractusx.github.io/charts/dev | tractusx-connector | 0.4.1 | +| https://eclipse-tractusx.github.io/charts/dev | tractusx-connector | 0.5.0 | +| https://eclipse-tractusx.github.io/item-relationship-service | irs-helm | 6.11.0 | ## Values | Key | Type | Default | Description | |-----|------|---------|-------------| +| irs-helm.bpdm.bpnEndpoint | string | `"{{- if .Values.bpdm.url }} {{- tpl (.Values.bpdm.url | default \"\") . }}/api/catena/legal-entities/{partnerId}?idType={idType} {{- end }}"` | | +| irs-helm.bpdm.url | string | `"https://partners-pool.dev.demo.catena-x.net"` | | +| irs-helm.bpn | string | `""` | | +| irs-helm.digitalTwinRegistry.discoveryFinderUrl | string | `"https://semantics.dev.demo.catena-x.net/discoveryfinder/api/v1.0/administration/connectors/discovery/search"` | | +| irs-helm.digitalTwinRegistry.type | string | `"decentral"` | | +| irs-helm.digitalTwinRegistry.url | string | `"https://materialpass.dev.demo.catena-x.net/semantics/registry/api/v3.0"` | | +| irs-helm.edc.catalog.acceptedPolicies[0].leftOperand | string | `"FrameworkAgreement.sustainability"` | | +| irs-helm.edc.catalog.acceptedPolicies[0].operator | string | `"eq"` | | +| irs-helm.edc.catalog.acceptedPolicies[0].rightOperand | string | `"active"` | | +| irs-helm.edc.catalog.acceptedPolicies[1].leftOperand | string | `"Membership"` | | +| irs-helm.edc.catalog.acceptedPolicies[1].operator | string | `"eq"` | | +| irs-helm.edc.catalog.acceptedPolicies[1].rightOperand | string | `"active"` | | +| irs-helm.edc.controlplane.apikey.secret | string | `""` | | +| irs-helm.edc.controlplane.endpoint.data | string | `"https://materialpass.dev.demo.catena-x.net/consumer/management"` | | +| irs-helm.enabled | bool | `true` | | +| irs-helm.ingress.annotations."nginx.ingress.kubernetes.io/backend-protocol" | string | `"HTTP"` | | +| irs-helm.ingress.annotations."nginx.ingress.kubernetes.io/force-ssl-redirect" | string | `"true"` | | +| irs-helm.ingress.annotations."nginx.ingress.kubernetes.io/ssl-passthrough" | string | `"false"` | | +| irs-helm.ingress.annotations.ingressClassName | string | `"nginx"` | | +| irs-helm.ingress.enabled | bool | `true` | | +| irs-helm.ingress.hosts[0].host | string | `"materialpass-irs.dev.demo.catena-x.net"` | | +| irs-helm.ingress.hosts[0].paths[0].path | string | `"/"` | | +| irs-helm.ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | | +| irs-helm.ingress.tls[0].hosts[0] | string | `"materialpass-irs.dev.demo.catena-x.net"` | | +| irs-helm.ingress.tls[0].secretName | string | `"tls-secret"` | | +| irs-helm.irsUrl | string | `"https://materialpass-irs.dev.demo.catena-x.net"` | | +| irs-helm.minio.rootPassword | string | `""` | | +| irs-helm.minio.rootUser | string | `""` | | +| irs-helm.minio.serviceAccount.create | bool | `false` | | +| irs-helm.minioPassword | string | `""` | | +| irs-helm.minioUrl | string | `"http://{{ .Release.Name }}-minio:9000"` | | +| irs-helm.minioUser | string | `""` | | +| irs-helm.oauth2.clientId | string | `""` | | +| irs-helm.oauth2.clientSecret | string | `""` | | +| irs-helm.oauth2.clientTokenUri | string | `"https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"` | | +| irs-helm.oauth2.jwkSetUri | string | `"https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/certs"` | | +| irs-helm.semanticshub.url | string | `"https://semantics.dev.demo.catena-x.net/hub/api/v1/models"` | | | postgresql.auth.database | string | `"edc"` | | -| postgresql.auth.password | string | `""` | | -| postgresql.auth.username | string | `""` | | +| postgresql.auth.password | string | `""` | | +| postgresql.auth.username | string | `""` | | | postgresql.fullnameOverride | string | `"postgresql"` | | | postgresql.jdbcUrl | string | `"jdbc:postgresql://postgresql:5432/edc"` | | | postgresql.primary.persistence.enabled | bool | `true` | | @@ -89,7 +105,7 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.controlplane.envValueFrom | object | `{}` | | | tractusx-connector.controlplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | | tractusx-connector.controlplane.image.repository | string | `"tractusx/edc-controlplane-postgresql-hashicorp-vault"` | Which derivate of the control plane to use. when left empty the deployment will select the correct image automatically | -| tractusx-connector.controlplane.image.tag | string | `"0.4.1"` | Overrides the image tag whose default is the chart appVersion | +| tractusx-connector.controlplane.image.tag | string | `"0.5.0"` | Overrides the image tag whose default is the chart appVersion | | tractusx-connector.controlplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | | tractusx-connector.controlplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | | tractusx-connector.controlplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | @@ -149,20 +165,17 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.controlplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | | tractusx-connector.controlplane.service.annotations | object | `{}` | | | tractusx-connector.controlplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| tractusx-connector.controlplane.ssi.endpoint.audience | string | `"https://materialpass.dev.demo.catena-x.net/consumer"` | | +| tractusx-connector.controlplane.ssi.miw.authorityId | string | `""` | | +| tractusx-connector.controlplane.ssi.miw.url | string | `""` | | +| tractusx-connector.controlplane.ssi.oauth.client.id | string | `""` | | +| tractusx-connector.controlplane.ssi.oauth.client.secretAlias | string | `"dev-client-secret"` | | +| tractusx-connector.controlplane.ssi.oauth.tokenurl | string | `"https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"` | | | tractusx-connector.controlplane.tolerations | list | `[]` | | | tractusx-connector.controlplane.url.ids | string | `""` | Explicitly declared url for reaching the ids api (e.g. if ingresses not used) | | tractusx-connector.controlplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | | tractusx-connector.controlplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | | tractusx-connector.customLabels | object | `{}` | | -| tractusx-connector.daps.clientId | string | `""` | | -| tractusx-connector.daps.connectors[0].attributes.referringConnector | string | `"https://materialpass.dev.demo.catena-x.net/consumer/"` | | -| tractusx-connector.daps.connectors[0].certificate | string | `""` | | -| tractusx-connector.daps.connectors[0].id | string | `""` | | -| tractusx-connector.daps.connectors[0].name | string | `"edcconector"` | | -| tractusx-connector.daps.fullnameOverride | string | `"daps"` | | -| tractusx-connector.daps.paths.jwks | string | `"/.well-known/jwks.json"` | | -| tractusx-connector.daps.paths.token | string | `"/token"` | | -| tractusx-connector.daps.url | string | `"https://daps1.int.demo.catena-x.net"` | | | tractusx-connector.dataplane.affinity | object | `{}` | | | tractusx-connector.dataplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | | tractusx-connector.dataplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | @@ -195,7 +208,7 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.dataplane.envValueFrom | object | `{}` | | | tractusx-connector.dataplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | | tractusx-connector.dataplane.image.repository | string | `"tractusx/edc-dataplane-hashicorp-vault"` | Which derivate of the data plane to use. when left empty the deployment will select the correct image automatically | -| tractusx-connector.dataplane.image.tag | string | `"0.4.1"` | Overrides the image tag whose default is the chart appVersion | +| tractusx-connector.dataplane.image.tag | string | `"0.5.0"` | Overrides the image tag whose default is the chart appVersion | | tractusx-connector.dataplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | | tractusx-connector.dataplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | | tractusx-connector.dataplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | @@ -245,12 +258,16 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.dataplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | | tractusx-connector.enabled | bool | `true` | | | tractusx-connector.fullnameOverride | string | `"dpp-edc-consumer"` | | -| tractusx-connector.idsdaps.connectors[0].certificate | string | `""` | | | tractusx-connector.imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | | tractusx-connector.install.daps | bool | `false` | | | tractusx-connector.install.postgresql | bool | `false` | | | tractusx-connector.install.vault | bool | `false` | | | tractusx-connector.nameOverride | string | `""` | | +| tractusx-connector.networkPolicy.controlplane | object | `{"from":[{"namespaceSelector":{}}]}` | Configuration of the controlplane component | +| tractusx-connector.networkPolicy.controlplane.from | list | `[{"namespaceSelector":{}}]` | Specify from rule network policy for cp (defaults to all namespaces) | +| tractusx-connector.networkPolicy.dataplane | object | `{"from":[{"namespaceSelector":{}}]}` | Configuration of the dataplane component | +| tractusx-connector.networkPolicy.dataplane.from | list | `[{"namespaceSelector":{}}]` | Specify from rule network policy for dp (defaults to all namespaces) | +| tractusx-connector.networkPolicy.enabled | bool | `false` | If `true` network policy will be created to restrict access to control- and dataplane | | tractusx-connector.participant.id | string | `""` | | | tractusx-connector.postgresql.auth.database | string | `"edc"` | | | tractusx-connector.postgresql.auth.password | string | `""` | | @@ -263,6 +280,8 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.serviceAccount.create | bool | `true` | | | tractusx-connector.serviceAccount.imagePullSecrets | list | `[]` | Existing image pull secret bound to the service account to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | | tractusx-connector.serviceAccount.name | string | `""` | | +| tractusx-connector.tests | object | `{"hookDeletePolicy":"before-hook-creation,hook-succeeded"}` | Configurations for Helm tests | +| tractusx-connector.tests.hookDeletePolicy | string | `"before-hook-creation,hook-succeeded"` | Configure the hook-delete-policy for Helm tests | | tractusx-connector.vault.fullnameOverride | string | `"vault"` | | | tractusx-connector.vault.hashicorp.healthCheck.enabled | bool | `true` | | | tractusx-connector.vault.hashicorp.healthCheck.standbyOk | bool | `true` | | @@ -272,8 +291,6 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.vault.hashicorp.token | string | `""` | | | tractusx-connector.vault.hashicorp.url | string | `""` | | | tractusx-connector.vault.injector.enabled | bool | `false` | | -| tractusx-connector.vault.secretNames.dapsPrivateKey | string | `"daps-key-dev"` | | -| tractusx-connector.vault.secretNames.dapsPublicKey | string | `"daps-crt-dev"` | | | tractusx-connector.vault.secretNames.transferProxyTokenEncryptionAesKey | string | `"edc-encryption-key"` | | | tractusx-connector.vault.secretNames.transferProxyTokenSignerPrivateKey | string | `"daps-key-dev"` | | | tractusx-connector.vault.secretNames.transferProxyTokenSignerPublicKey | string | `"daps-crt-dev"` | | diff --git a/deployment/infrastructure/edc-provider/README.md b/deployment/infrastructure/edc-provider/README.md index c4874cf46..e57db6b02 100644 --- a/deployment/infrastructure/edc-provider/README.md +++ b/deployment/infrastructure/edc-provider/README.md @@ -1,28 +1,6 @@ - - # tractusx-connector -![Version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.4.1](https://img.shields.io/badge/AppVersion-0.4.1-informational?style=flat-square) +![Version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.0](https://img.shields.io/badge/AppVersion-0.5.0-informational?style=flat-square) A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mock that can be used as edc provider for the DPP applicatiton. @@ -37,7 +15,7 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | Repository | Name | Version | |------------|------|---------| | https://charts.bitnami.com/bitnami | postgresql(postgresql) | 12.1.6 | -| https://eclipse-tractusx.github.io/charts/dev | tractusx-connector | 0.4.1 | +| https://eclipse-tractusx.github.io/charts/dev | tractusx-connector | 0.5.0 | ## Values @@ -89,7 +67,7 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.controlplane.envValueFrom | object | `{}` | | | tractusx-connector.controlplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | | tractusx-connector.controlplane.image.repository | string | `"tractusx/edc-controlplane-postgresql-hashicorp-vault"` | Which derivate of the control plane to use. when left empty the deployment will select the correct image automatically | -| tractusx-connector.controlplane.image.tag | string | `"0.4.1"` | Overrides the image tag whose default is the chart appVersion | +| tractusx-connector.controlplane.image.tag | string | `"0.5.0"` | Overrides the image tag whose default is the chart appVersion | | tractusx-connector.controlplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | | tractusx-connector.controlplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | | tractusx-connector.controlplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | @@ -149,20 +127,17 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.controlplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | | tractusx-connector.controlplane.service.annotations | object | `{}` | | | tractusx-connector.controlplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| tractusx-connector.controlplane.ssi.endpoint.audience | string | `"https://materialpass.dev.demo.catena-x.net/consumer"` | | +| tractusx-connector.controlplane.ssi.miw.authorityId | string | `""` | | +| tractusx-connector.controlplane.ssi.miw.url | string | `""` | | +| tractusx-connector.controlplane.ssi.oauth.client.id | string | `""` | | +| tractusx-connector.controlplane.ssi.oauth.client.secretAlias | string | `"dev-client-secret"` | | +| tractusx-connector.controlplane.ssi.oauth.tokenurl | string | `"https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"` | | | tractusx-connector.controlplane.tolerations | list | `[]` | | | tractusx-connector.controlplane.url.ids | string | `""` | Explicitly declared url for reaching the ids api (e.g. if ingresses not used) | | tractusx-connector.controlplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | | tractusx-connector.controlplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | | tractusx-connector.customLabels | object | `{}` | | -| tractusx-connector.daps.clientId | string | `""` | | -| tractusx-connector.daps.connectors[0].attributes.referringConnector | string | `"https://materialpass.dev.demo.catena-x.net/consumer/"` | | -| tractusx-connector.daps.connectors[0].certificate | string | `""` | | -| tractusx-connector.daps.connectors[0].id | string | `""` | | -| tractusx-connector.daps.connectors[0].name | string | `"edcconector"` | | -| tractusx-connector.daps.fullnameOverride | string | `"daps"` | | -| tractusx-connector.daps.paths.jwks | string | `"/.well-known/jwks.json"` | | -| tractusx-connector.daps.paths.token | string | `"/token"` | | -| tractusx-connector.daps.url | string | `"https://daps1.int.demo.catena-x.net"` | | | tractusx-connector.dataplane.affinity | object | `{}` | | | tractusx-connector.dataplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | | tractusx-connector.dataplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | @@ -195,7 +170,7 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.dataplane.envValueFrom | object | `{}` | | | tractusx-connector.dataplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | | tractusx-connector.dataplane.image.repository | string | `"tractusx/edc-dataplane-hashicorp-vault"` | Which derivate of the data plane to use. when left empty the deployment will select the correct image automatically | -| tractusx-connector.dataplane.image.tag | string | `"0.4.1"` | Overrides the image tag whose default is the chart appVersion | +| tractusx-connector.dataplane.image.tag | string | `"0.5.0"` | Overrides the image tag whose default is the chart appVersion | | tractusx-connector.dataplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | | tractusx-connector.dataplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | | tractusx-connector.dataplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | @@ -245,7 +220,6 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.dataplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | | tractusx-connector.enabled | bool | `true` | | | tractusx-connector.fullnameOverride | string | `"dpp-edc-provider"` | | -| tractusx-connector.idsdaps.connectors[0].certificate | string | `""` | | | tractusx-connector.imagePullSecrets | list | `[]` | | | tractusx-connector.install.daps | bool | `false` | | | tractusx-connector.install.postgresql | bool | `false` | | @@ -272,8 +246,6 @@ A Helm chart for Tractus-X Eclipse Data Space Connector. This chart is a test mo | tractusx-connector.vault.hashicorp.token | string | `""` | | | tractusx-connector.vault.hashicorp.url | string | `""` | | | tractusx-connector.vault.injector.enabled | bool | `false` | | -| tractusx-connector.vault.secretNames.dapsPrivateKey | string | `"daps-key-dev"` | | -| tractusx-connector.vault.secretNames.dapsPublicKey | string | `"daps-crt-dev"` | | | tractusx-connector.vault.secretNames.transferProxyTokenEncryptionAesKey | string | `"edc-encryption-key"` | | | tractusx-connector.vault.secretNames.transferProxyTokenSignerPrivateKey | string | `"daps-key-dev"` | | | tractusx-connector.vault.secretNames.transferProxyTokenSignerPublicKey | string | `"daps-crt-dev"` | | diff --git a/deployment/infrastructure/edc-provider/data-service/README.md b/deployment/infrastructure/edc-provider/data-service/README.md index 608495219..62bf08db2 100644 --- a/deployment/infrastructure/edc-provider/data-service/README.md +++ b/deployment/infrastructure/edc-provider/data-service/README.md @@ -1,25 +1,3 @@ - - # data-service ![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.0.1](https://img.shields.io/badge/AppVersion-0.0.1-informational?style=flat-square) @@ -30,8 +8,10 @@ The Eclipse Dataspace Connector requires the Backend Application to transfer dat | Key | Type | Default | Description | |-----|------|---------|-------------| +| affinity | object | `{}` | | | container.port | int | `80` | | | fullnameOverride | string | `"data-service"` | Overrides the releases full name | +| image.command | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | | image.repository | string | `"ghcr.io/catenax-ng/catenax-at-home/provider-backend-service"` | Which container image to use | | image.tag | string | `"0.0.1"` | Overrides the image tag whose default is the chart appVersion | @@ -47,10 +27,25 @@ The Eclipse Dataspace Connector requires the Backend Application to transfer dat | ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | | | ingress.tls[0].hosts[0] | string | `"materialpass.int.demo.catena-x.net"` | | | ingress.tls[0].secretName | string | `"tls-secret"` | | +| livenessProbe | object | `{}` | | | nameOverride | string | `""` | Overrides the charts name | +| nodeSelector | object | `{}` | | +| podAnnotations | object | `{}` | additional annotations for the pod | +| podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| readinessProbe | object | `{}` | | | replicaCount | int | `1` | | +| securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | | service.port | int | `8080` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service) to expose the running application on a set of Pods as a network service. | | service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| tolerations | list | `[]` | | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/dpp-backend/charts/digital-product-pass-backend/Chart.yaml b/dpp-backend/charts/digital-product-pass-backend/Chart.yaml index da95bac55..19567983a 100644 --- a/dpp-backend/charts/digital-product-pass-backend/Chart.yaml +++ b/dpp-backend/charts/digital-product-pass-backend/Chart.yaml @@ -41,10 +41,10 @@ type: application # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.0.2 +version: 2.0.3 # 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: "2.0.2" +appVersion: "2.0.3" diff --git a/dpp-backend/charts/digital-product-pass-backend/README.md b/dpp-backend/charts/digital-product-pass-backend/README.md index 377c39f5b..91874f5fc 100644 --- a/dpp-backend/charts/digital-product-pass-backend/README.md +++ b/dpp-backend/charts/digital-product-pass-backend/README.md @@ -1,46 +1,9 @@ # digital-product-pass-backend -![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.2](https://img.shields.io/badge/AppVersion-2.0.2-informational?style=flat-square) +![Version: 2.0.3](https://img.shields.io/badge/Version-2.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.3](https://img.shields.io/badge/AppVersion-2.0.3-informational?style=flat-square) A Helm chart for Tractus-X Digital Product Pass Backend Kubernetes -## TL;DR - -### Install - -```bash -cd backend/charts/digital-product-pass-backend -helm install digital-product-pass-backend -f ./values.yaml -f ./values-int.yaml -``` - -> **NOTE**: This command will deploy the backend application. - -### Exposing ports - -Once the application is running, the certain ports need to be exposed to access the backend outside the Kubernetes cluster. - -### Get pod name -Search for the application name: - -```bash -kubectl get pods --no-headers | awk '{if ($1 ~ "dpp-backend-*") print $1}' -``` -Copy the pod name with the prefix `dpp-backend-*` - -### Port forwarding - -```bash -kubectl port-forward dpp-backend-* 8888:8888 -``` - -> **NOTE**: The default port set is `8888` however it can be changed in the configuration. - -### Check if the application is running - -Open the web browser with the following url to check the health status: -``` -localhost:8888/health - **Homepage:** ## Source Code diff --git a/dpp-backend/digitalproductpass/pom.xml b/dpp-backend/digitalproductpass/pom.xml index 5e627230a..a812a112f 100644 --- a/dpp-backend/digitalproductpass/pom.xml +++ b/dpp-backend/digitalproductpass/pom.xml @@ -34,7 +34,7 @@ org.eclipse.tractusx digitalproductpass - 2.0.2 + 2.0.3 jar Catena-X Digital Product Passport Backend Digital Product Passport Consumer Backend Reference Implementation System for Product Passport Consumer Frontend Application @@ -179,7 +179,7 @@ org.springdoc springdoc-openapi-starter-webmvc-ui - 2.0.2 + 2.0.3 diff --git a/package-lock.json b/package-lock.json index 1221daab2..70ed4a32a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "digital-product-pass-frontend", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 8650d3415..41542b9aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "digital-product-pass-frontend", - "version": "2.0.2", + "version": "2.0.3", "private": true, "scripts": { "serve": "vite --host localhost", From c90a8e545b7bab3f197528899eb4174c3f94f283 Mon Sep 17 00:00:00 2001 From: Muhammad Saud Khan Date: Fri, 2 Feb 2024 20:55:04 +0100 Subject: [PATCH 5/7] chore: update readme files, fix deployment path in helm-test workflow, added pv-data.yaml for helm-test --- .github/workflows/helm-test.yaml | 6 ++--- deployment/README.md | 2 +- deployment/local/storage/pv-data.yaml | 39 +++++++++++++++++++++++++++ docs/RELEASE.md | 2 +- docs/RELEASE_USER.md | 4 +-- 5 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 deployment/local/storage/pv-data.yaml diff --git a/.github/workflows/helm-test.yaml b/.github/workflows/helm-test.yaml index 18b85aecc..83c23ffab 100644 --- a/.github/workflows/helm-test.yaml +++ b/.github/workflows/helm-test.yaml @@ -122,10 +122,10 @@ jobs: - name: Run chart-testing (install) run: | - cp deployment/helm/local/storage/pv-data.yaml charts/digital-product-pass/templates/pv-data.yaml + cp deployment/local/storage/pv-data.yaml charts/digital-product-pass/templates/pv-data.yaml rm charts/digital-product-pass/templates/pvc-data.yaml - cp deployment/helm/local/storage/pvc-data.yaml charts/digital-product-pass/templates/pvc-data.yaml + cp deployment/local/storage/pvc-data.yaml charts/digital-product-pass/templates/pvc-data.yaml helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add tractusx https://eclipse-tractusx.github.io/charts/dev ct install --charts charts/digital-product-pass --helm-extra-set-args "--set=frontend.image.tag=${{ env.TAG }} --set=frontend.image.repository=${{ env.REGISTRY }}/${{ env.FRONTEND_IMAGE}} --set=backend.image.tag=${{ env.TAG }} --set=backend.image.repository=${{ env.REGISTRY }}/${{ env.BACKEND_IMAGE}}" - if: steps.list-changed.outputs.changed == 'true' \ No newline at end of file + if: steps.list-changed.outputs.changed == 'true' diff --git a/deployment/README.md b/deployment/README.md index 3140ebf9d..d80956ce8 100644 --- a/deployment/README.md +++ b/deployment/README.md @@ -50,7 +50,7 @@ Fill out the following required fields. - **Project:** project-material-pass - **Source:** Git repository where the application artifacts are stored (https://github.com/eclipse-tractusx/digital-product-pass) - **Revision:** select branch or a tag -- **Path:** The path to the deployment (possible values: deployment/helm/edc-consumer, deployment/helm/edc-provider, charts/digital-product-pass) +- **Path:** The path to the deployment (possible values: deployment/infrastructure/edc-consumer, deployment/infrastructure/edc-provider, charts/digital-product-pass) - **Cluster URL:** https://kubernetes.default.svc - **Namespace:** product-material-pass - **Plugin:** argocd-vault-plugin-helm-args diff --git a/deployment/local/storage/pv-data.yaml b/deployment/local/storage/pv-data.yaml new file mode 100644 index 000000000..f1194a47f --- /dev/null +++ b/deployment/local/storage/pv-data.yaml @@ -0,0 +1,39 @@ +################################################################################# +# Catena-X - Digital Product Passport Application +# +# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 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 govern in permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################################# + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: pv-data + namespace: default +spec: + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + storageClassName: standard + claimRef: + name: pvc-data + namespace: default + hostPath: + path: "/mnt" diff --git a/docs/RELEASE.md b/docs/RELEASE.md index c961b1a62..63271850f 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -37,7 +37,7 @@ The changelog must also be updated from [CHANGELOG.md](../CHANGELOG.md) file, sh Helm chart released: - [digital-product-pass](../charts/digital-product-pass/Chart.yaml) -Aditional Helm charts of below components can be found in *deployment/helm* folder. +Aditional Helm charts of below components can be found in *deployment/infrastructure* folder. - [edc-consumer](../deployment/infrastructure/edc-consumer/Chart.yaml) - [edc-provider](../deployment/infrastructure/edc-provider/Chart.yaml) diff --git a/docs/RELEASE_USER.md b/docs/RELEASE_USER.md index e8bf4ed98..e2c5d0f19 100644 --- a/docs/RELEASE_USER.md +++ b/docs/RELEASE_USER.md @@ -200,7 +200,7 @@ to the Digital Product Pass Application core functionality. #### Added EDC v0.5.0 version support -As of now, there is a possibility to run EDC `v0.5.0` version of consumer and provider connectors contained in `deployment/helm/edc-provider` and `deployment/helm/edc-consumer`. Additionally, the last EDC version `v0.4.1` is also compatible with the backend application. +As of now, there is a possibility to run EDC `v0.5.0` version of consumer and provider connectors contained in `deployment/infrastructure/edc-provider` and `deployment/infrastructure/edc-consumer`. Additionally, the last EDC version `v0.4.1` is also compatible with the backend application. #### Added Decentralized Digital Twin Registry integration @@ -295,7 +295,7 @@ We are now encrypting the passport when it arrives from the EDC consumer data p ### Updated #### Updated EDC Provider and Consumer Versions to `v0.4.1` -Now the test EDC consusumer and provider contained in `deployment/helm/edc-provider` and `deployment/helm/edc-consumer` are updated to the latest version at the moment available the `v0.4.1` +Now the test EDC consusumer and provider contained in `deployment/infrastructure/edc-provider` and `deployment/infrastructure/edc-consumer` are updated to the latest version at the moment available the `v0.4.1` ## Removed cx-backend-service support From 87c449bff08790546fc0767ab6c22bbe33e0cdab Mon Sep 17 00:00:00 2001 From: Mathias Brunkow Moser Date: Fri, 2 Feb 2024 21:02:12 +0100 Subject: [PATCH 6/7] chore: readded pcv data.yaml --- deployment/infrastructure/registry/README.md | 44 ++++++++++++++++++++ deployment/local/storage/pvc-data.yaml | 36 ++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 deployment/infrastructure/registry/README.md create mode 100644 deployment/local/storage/pvc-data.yaml diff --git a/deployment/infrastructure/registry/README.md b/deployment/infrastructure/registry/README.md new file mode 100644 index 000000000..bce427388 --- /dev/null +++ b/deployment/infrastructure/registry/README.md @@ -0,0 +1,44 @@ +# registry + +![Version: 0.3.23](https://img.shields.io/badge/Version-0.3.23-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) + +Tractus-X Digital Twin Registry Helm Chart + +## Requirements + +| Repository | Name | Version | +|------------|------|---------| +| https://eclipse-tractusx.github.io/sldt-digital-twin-registry | provider-dtr(registry) | 0.3.23 | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| provider-dtr.postgresql.auth.database | string | `"default-database"` | | +| provider-dtr.postgresql.auth.password | string | `""` | | +| provider-dtr.postgresql.auth.username | string | `""` | | +| provider-dtr.registry.authentication | bool | `false` | | +| provider-dtr.registry.dataSource.driverClassName | string | `"org.postgresql.Driver"` | | +| provider-dtr.registry.dataSource.password | string | `""` | | +| provider-dtr.registry.dataSource.sqlInitPlatform | string | `"pg"` | | +| provider-dtr.registry.dataSource.url | string | `"jdbc:postgresql://registry:5432"` | | +| provider-dtr.registry.dataSource.user | string | `""` | | +| provider-dtr.registry.enableKeycloak | bool | `false` | | +| provider-dtr.registry.enablePostgres | bool | `true` | | +| provider-dtr.registry.host | string | `"materialpass.int.demo.catena-x.net"` | | +| provider-dtr.registry.idpClientId | string | `"Cl13-CX-Battery"` | | +| provider-dtr.registry.idpIssuerUri | string | `"https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central"` | | +| provider-dtr.registry.ingress.annotations."cert-manager.io/cluster-issuer" | string | `"selfsigned-cluster-issuer"` | | +| provider-dtr.registry.ingress.annotations."nginx.ingress.kubernetes.io/cors-allow-credentials" | string | `"true"` | | +| provider-dtr.registry.ingress.annotations."nginx.ingress.kubernetes.io/enable-cors" | string | `"true"` | | +| provider-dtr.registry.ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | +| provider-dtr.registry.ingress.annotations."nginx.ingress.kubernetes.io/use-regex" | string | `"true"` | | +| provider-dtr.registry.ingress.annotations."nginx.ingress.kubernetes.io/x-forwarded-prefix" | string | `"/semantics/registry"` | | +| provider-dtr.registry.ingress.className | string | `"nginx"` | | +| provider-dtr.registry.ingress.enabled | bool | `true` | | +| provider-dtr.registry.ingress.tls | bool | `true` | | +| provider-dtr.registry.ingress.urlPrefix | string | `"/semantics/registry"` | | +| provider-dtr.registry.tenantId | string | `"default-tenant"` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/deployment/local/storage/pvc-data.yaml b/deployment/local/storage/pvc-data.yaml new file mode 100644 index 000000000..32cd20643 --- /dev/null +++ b/deployment/local/storage/pvc-data.yaml @@ -0,0 +1,36 @@ +################################################################################# +# Catena-X - Product Passport Consumer Application +# +# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA +# +# 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 govern in permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################################# + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: pvc-data + labels: + {{- include "chart.labels" . | nindent 4 }} + namespace: {{ .Values.namespace }} +spec: + storageClassName: standard + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi From 09ebf2f88c7df9fe73efdaf816da9f2aff527273 Mon Sep 17 00:00:00 2001 From: Mathias Brunkow Moser Date: Fri, 2 Feb 2024 21:16:40 +0100 Subject: [PATCH 7/7] chore: reupdated the files from david --- src/components/general/TabsComponent.vue | 2 +- src/components/passport/GeneralCards.vue | 9 ++-- src/components/passport/TransmissionCards.vue | 10 ++-- .../passport/sections/Characteristics.vue | 4 +- .../passport/sections/Commercial.vue | 2 +- src/components/passport/sections/Handling.vue | 42 +++++++-------- .../passport/sections/Identification.vue | 4 +- src/components/passport/sections/Metadata.vue | 14 ++--- .../passport/sections/Operation.vue | 8 +-- .../passport/sections/Sustainability.vue | 18 +++---- src/components/passport/sections/Typology.vue | 6 +-- src/translations/de.json | 54 ++++--------------- src/translations/en.json | 52 +++--------------- src/views/PassportView.vue | 16 ++---- 14 files changed, 75 insertions(+), 166 deletions(-) diff --git a/src/components/general/TabsComponent.vue b/src/components/general/TabsComponent.vue index c05cf51d9..e3bd35be0 100644 --- a/src/components/general/TabsComponent.vue +++ b/src/components/general/TabsComponent.vue @@ -29,7 +29,7 @@ :value="section.component" > - {{ $t(`passportView.dppComponentsNames.${section.label}`) }} + {{ $t(section.label) }} diff --git a/src/components/passport/GeneralCards.vue b/src/components/passport/GeneralCards.vue index bb681aa46..fdcc13cae 100644 --- a/src/components/passport/GeneralCards.vue +++ b/src/components/passport/GeneralCards.vue @@ -138,12 +138,9 @@ export default { label: "generalCards.totalCo2Footprint", secondLabel: "generalCards.warrantyPeriod", icon: "mdi-leaf", - value: - this.$props.data.aspect.sustainability && - this.$props.data.aspect.sustainability["PEF"] && - this.$props.data.aspect.sustainability["PEF"].carbon - ? this.$props.data.aspect.sustainability["PEF"].carbon[0].value - : "-", + value: this.$props.data.aspect.sustainability["PEF"].carbon + ? this.$props.data.aspect.sustainability["PEF"].carbon[0].value + : "-", valueUnits: "t CO2 Total", secondValue: this.$props.data.aspect.commercial ? this.$props.data.aspect.commercial.warranty diff --git a/src/components/passport/TransmissionCards.vue b/src/components/passport/TransmissionCards.vue index 2ba4bebf9..b5a8e77b5 100644 --- a/src/components/passport/TransmissionCards.vue +++ b/src/components/passport/TransmissionCards.vue @@ -139,12 +139,10 @@ export default { label: "Total CO2 footprint", secondLabel: "Warranty period", icon: "mdi-leaf", - value: - this.$props.data.aspect.sustainability && - this.$props.data.aspect.sustainability.carbonFootprint - ? this.$props.data.aspect.sustainability.carbonFootprint - .co2FootprintTotal - : "-", + value: this.$props.data.aspect.sustainability.carbonFootprint + ? this.$props.data.aspect.sustainability.carbonFootprint + .co2FootprintTotal + : "-", valueUnits: "t CO2 Total", secondValue: this.$props.data.aspect.generalInformation.warrantyPeriod, diff --git a/src/components/passport/sections/Characteristics.vue b/src/components/passport/sections/Characteristics.vue index 83252fbfa..1bf362c16 100644 --- a/src/components/passport/sections/Characteristics.vue +++ b/src/components/passport/sections/Characteristics.vue @@ -48,7 +48,7 @@ v-for="attr in propsData.lifespan" :key="attr" :icon="callIconFinder('lifespan')" - :label="$t('sections.characteristics.lifespan')" + label="Lifespan" :value="attr.value" :unit="attr.unit" /> @@ -58,7 +58,7 @@ diff --git a/src/components/passport/sections/Commercial.vue b/src/components/passport/sections/Commercial.vue index ca01916f5..9ee35564b 100644 --- a/src/components/passport/sections/Commercial.vue +++ b/src/components/passport/sections/Commercial.vue @@ -27,7 +27,7 @@ diff --git a/src/components/passport/sections/Handling.vue b/src/components/passport/sections/Handling.vue index 076afaf11..b03e963b9 100644 --- a/src/components/passport/sections/Handling.vue +++ b/src/components/passport/sections/Handling.vue @@ -34,7 +34,7 @@ diff --git a/src/components/passport/sections/Identification.vue b/src/components/passport/sections/Identification.vue index 901f96689..e9306441d 100644 --- a/src/components/passport/sections/Identification.vue +++ b/src/components/passport/sections/Identification.vue @@ -35,7 +35,7 @@ diff --git a/src/components/passport/sections/Metadata.vue b/src/components/passport/sections/Metadata.vue index 33f1240b7..415a80b61 100644 --- a/src/components/passport/sections/Metadata.vue +++ b/src/components/passport/sections/Metadata.vue @@ -27,17 +27,17 @@ @@ -45,12 +45,12 @@ @@ -58,12 +58,12 @@ diff --git a/src/components/passport/sections/Operation.vue b/src/components/passport/sections/Operation.vue index 8ba2c7373..20f32952f 100644 --- a/src/components/passport/sections/Operation.vue +++ b/src/components/passport/sections/Operation.vue @@ -28,7 +28,7 @@ @@ -37,17 +37,17 @@ diff --git a/src/components/passport/sections/Sustainability.vue b/src/components/passport/sections/Sustainability.vue index 86f70d392..0456ab306 100644 --- a/src/components/passport/sections/Sustainability.vue +++ b/src/components/passport/sections/Sustainability.vue @@ -21,7 +21,7 @@ --> @@ -144,7 +144,7 @@ > @@ -152,7 +152,7 @@ @@ -167,9 +167,7 @@ > @@ -180,7 +178,7 @@ diff --git a/src/components/passport/sections/Typology.vue b/src/components/passport/sections/Typology.vue index 431c60d0d..8af5b6ec6 100644 --- a/src/components/passport/sections/Typology.vue +++ b/src/components/passport/sections/Typology.vue @@ -35,12 +35,12 @@ @@ -48,7 +48,7 @@ diff --git a/src/translations/de.json b/src/translations/de.json index 0a8415f92..e6c5fdbac 100644 --- a/src/translations/de.json +++ b/src/translations/de.json @@ -34,20 +34,6 @@ "electrochemicalProperties": "Elektrochemische Eigenschaften", "documents": "Dokumente", "exchange": "Austausch" - }, - "dppComponentsNames": { - "typology": "Typologie", - "metadata": "Metadaten", - "characteristics": "Merkmale", - "components": "Komponenten", - "commercial": "Kommerziell", - "identification": "Identifikation", - "sources": "Quellen", - "handling": "Handhabung", - "additionalData": "Zusätzliche Daten", - "sustainability": "Nachhaltigkeit", - "operation": "Betrieb", - "exchange": "Austausch" } }, "home": { @@ -271,8 +257,7 @@ "weight": "Gewicht", "lifespan": "Lebensdauer", "energyCapacity": "Energiekapazität", - "voltage": "Spannung", - "physicalState": "Physischer Zustand" + "voltage": "Spannung" }, "commercial": { "placedOnMarket": "Markteinführung", @@ -281,41 +266,23 @@ "handling": { "maintenanceHistory": "Wartungshistorie", "spareParts": "Ersatzteile", - "substanceOfConcern": "Besorgniserregende Substanz", - "producerId": "Produzenten-ID", - "partName": "Teilname", - "partGtin": "Teil-GTIN", - "type": "Typ", - "location": "Standort", - "unit": "Einheit", - "concentrationMax": "Maximale Konzentration", - "concentrationMin": "Minimale Konzentration", - "exemption": "Ausnahme", - "idType": "ID-Typ", - "id": "ID" + "substanceOfConcern": "besorgniserregender Stoff" }, "identification": { - "gtin": "GTIN", - "manufacturerId": "Hersteller-ID", - "dataMatrixCode": "Data-Matrix-Code" + "gtin": "GTIN" }, "metadata": { - "predecessor": "Vorgänger", - "legitimization": "Legitimation", - "identification": "Identifikation", "issueDate": "Ausgabedatum", "version": "Version", "validityDate": "Gültigkeitsdatum", "customerPartId": "Kundenteil-ID", "manufacturerPartId": "Herstellerteil-ID", - "status": "Status", - "expirationDate": "Ablaufdatum" + "status": "Status" }, "operation": { - "importer": "Importeur-ID", + "importer": "Importeur", "manufacturerId": "Hersteller-ID", - "facilityId": "Anlagen-ID", - "manufacturingDate": "Herstellungsdatum" + "facilityId": "Einrichtungs-ID" }, "serialization": { "manufacturingInformation": "Herstellungsinformationen", @@ -336,18 +303,15 @@ "co2FootprintTotal": "Gesamter CO₂-Fußabdruck", "operator": "Betreiber", "ruleNames": "Regelnamen", - "otherOperatorName": "Name des anderen Betreibers", - "productOrSectorSpecificRules": "Produkt- oder sektorspezifische Regeln", - "critical": "Kritisch" + "otherOperatorName": "Name des anderen Betreibers" }, "typology": { "name": "Name", - "shortName": "Kurzname", - "longName": "Langname", + "shortName": "Kurzer Name", "definition": "Definition", "code": "Code", "nameAtManufacturer": "Name beim Hersteller", - "nameAtCustomer": "Name beim Kunden" + "nameAtCustomer": "Name auf dem Markt" } } } diff --git a/src/translations/en.json b/src/translations/en.json index 20eede3f7..417b14e75 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -34,20 +34,6 @@ "electrochemicalProperties": "Electrochemical Properties", "documents": "Documents", "exchange": "Exchange" - }, - "dppComponentsNames": { - "typology": "Typeology", - "metadata": "Metadata", - "characteristics": "Characteristics", - "components": "Components", - "commercial": "Commercial", - "identification": "Identification", - "sources": "Sources", - "handling": "Handling", - "additionalData": "Additional Data", - "sustainability": "Sustainability", - "operation": "Operation", - "exchange": "Exchange" } }, "home": { @@ -271,8 +257,7 @@ "weight": "Weight", "lifespan": "Lifespan", "energyCapacity": "Energy capacity", - "voltage": "Voltage", - "physicalState": "Physical state" + "voltage": "Voltage" }, "commercial": { "placedOnMarket": "Place on the market", @@ -281,41 +266,23 @@ "handling": { "maintenanceHistory": "Maintenance history", "spareParts": "Spare parts", - "substanceOfConcern": "Substance of concern", - "producerId": "Producer Id", - "partName": "Part name", - "partGtin": "Part gtin", - "type": "Type", - "location": "Location", - "unit": "Unit", - "concentrationMax": "Concentration max", - "concentrationMin": "Concentration main", - "exemption": "Exemption", - "idType": "Id type", - "id": "Id" + "substanceOfConcern": "Substance of concern" }, "identification": { - "gtin": "Gtin", - "manufacturerId": "Manufacturer ID", - "dataMatrixCode": "Data matrix code" + "gtin": "Gtin" }, "metadata": { - "predecessor": "Predecessor", - "legitimization": "Legitimization", - "identification": "Identification", "issueDate": "Issue date", "version": "Version", "validityDate": "Validity date", "customerPartId": "Customer part ID", "manufacturerPartId": "Manufacturer part ID", - "status": "Status", - "expirationDate": "Expiration date" + "status": "Status" }, "operation": { - "importer": "Importer ID", + "importer": "Importer", "manufacturerId": "Manufacturer ID", - "facilityId": "Facility ID", - "manufacturingDate": "Manufacturing date" + "facilityId": "Facility ID" }, "serialization": { "manufacturingInformation": "Manufacturing information", @@ -330,20 +297,17 @@ "state": "State", "material": "Material", "carbonContentTotal": "Carbon content total", - "crossSectoralStandard": "Cross sectoral standard used", + "crossSectoralStandard": "Cross sectoral standard", "substancesOfConcern": "Substances of concern", "criticalRawMaterials": "Critical raw materials", "co2FootprintTotal": "CO₂ footprint total", "operator": "Operator", "ruleNames": "Rule names", - "otherOperatorName": "Other operator name", - "productOrSectorSpecificRules": "Product or sector specific rules", - "critical": "Critical" + "otherOperatorName": "Other operator name" }, "typology": { "name": "Name", "shortName": "Short name", - "longName": "Long name", "definition": "Definition", "code": "Code", "nameAtManufacturer": "Name at manufacturer", diff --git a/src/views/PassportView.vue b/src/views/PassportView.vue index 198b296f7..e92d749c2 100644 --- a/src/views/PassportView.vue +++ b/src/views/PassportView.vue @@ -222,23 +222,13 @@ export default { let dataKeys = Object.keys(this.data.aspect); // Check if data exists and is not empty if (this.data.aspect && dataKeys.length > 0) { - // Filter out keys with empty objects or arrays - dataKeys = dataKeys.filter((key) => { - const value = this.data.aspect[key]; - if (typeof value === "object" && value !== null) { - // Check if it's an array or an object and ensure it's not empty - return Array.isArray(value) - ? value.length > 0 - : Object.keys(value).length > 0; - } - return true; // Include if it's not an object/array or if it's a non-empty primitive value - }); - dataKeys.splice(3, 0, "components"); dataKeys.push("exchange"); // Generate component names dynamically from the JSON keys return dataKeys.map((key) => ({ - label: key, + label: passportUtil.toSentenceCase( + key[0].toUpperCase() + key.slice(1) + ), icon: passportUtil.iconFinder(key), component: key, }));