From 7d30f002c047f8bbd174f2cc5237ae7270166bb8 Mon Sep 17 00:00:00 2001 From: Muhammad Saud Khan Date: Tue, 7 May 2024 14:01:51 +0200 Subject: [PATCH 1/4] chore(update): updated and renamed readmes in docs folder --- README.md | 16 +-- charts/digital-product-pass/values-beta.yaml | 111 ----------------- charts/digital-product-pass/values-dev.yaml | 112 ------------------ charts/digital-product-pass/values.yaml | 6 +- docs/README.md | 20 ++-- docs/{admin guide => admin}/AdminGuide.md | 2 +- docs/{admin guide => admin}/media/CXLogo.png | Bin docs/{arc42 => architecture}/Arc42.md | 14 +-- docs/{arc42 => architecture}/media/CXlogo.png | Bin .../media/DPPView1.jpg | Bin .../media/DPPView2.jpg | Bin .../media/GraphicAvatar.png | Bin .../media/GraphicBasicTable.png | Bin .../media/GraphicBatteryPassportView.png | Bin .../GraphicBatteryPassportViewGeneralInfo.png | Bin .../media/GraphicLogos.png | Bin .../media/GraphicQRCodeView.png | Bin .../media/GraphicSearchView.png | Bin .../GraphicVueFrameworkComparison2022.png | Bin .../media/arc42logo.png | Bin .../media/auth/authenticationFlow.drawio.svg | 0 .../dataRetrieval/agreeApiFlow.drawio.svg | 0 .../dataRetrieval/agreeApiSequence.drawio.svg | 0 .../dataRetrieval/cancelApiFlow.drawio.svg | 0 .../dataRetrieval/cancelFlowApi.drawio.svg | 0 .../dataRetrieval/createApiFlow.drawio.svg | 0 .../createApiSequence.drawio.svg | 0 .../dataRetrieval/dataApiFlow.drawio.svg | 0 .../dataRetrievalResume.drawio.svg | 0 .../dataRetrieval/declineApiFlow.drawio.svg | 0 .../digitalProductPassContext.drawio.svg | 0 .../dataRetrieval/searchApiFlow.drawio.svg | 0 .../searchApiSequence.drawio.svg | 0 .../dataRetrieval/statusApiFlow.drawio.svg | 0 .../media/dataRetrieval/userFlow.drawio.svg | 0 .../intrastructure/DeployementView.drawio.svg | 0 .../GraphicArchitectureDiagram.drawio.svg | 0 .../GraphicBackendComponent.drawio.svg | 0 .../GraphicBlackboxOverallSys.drawio.svg | 0 .../GraphicBulidingBlockView.drawio.svg | 0 .../GraphicCrossCuttingConcepts.drawio.svg | 0 .../GraphicFrontendComponent.drawio.svg | 0 .../GraphicWhiteboxOverallSys.drawio.svg | 0 .../media/irs/ChildNotFound.jpg | Bin .../media/irs/ErrorOccured.jpg | Bin .../media/irs/IRSDataSearch.drawio.svg | 0 .../media/irs/Loading.jpg | Bin .../media/irs/TreeOfComponents.jpg | Bin .../media/irs/irsFlow.drawio.svg | 0 .../media/irs/irsSearchFlow.drawio.svg | 0 .../media/irs/searchWithIrs.drawio.svg | 0 .../media/irs/searchWithItRS.drawio.svg | 0 .../README.md} | 2 +- .../media/dataRetrievalFlow.drawio.svg | 0 .../media/dataRetrievalFlow1.drawio.svg | 0 .../media/dataRetrievalFlow2.drawio.svg | 0 .../media/dataRetrievalSequence.drawio.svg | 0 .../media/dataSearchApi.drawio.svg | 0 .../media/discoveryServices.drawio.svg | 0 .../media/dtrSearchFlow.drawio.svg | 0 .../media/dtrSearchSequence.drawio.svg | 0 .../media/searchApiFlow.drawio.svg | 0 docs/data-sovereignty/PolicyConfigGuide.md | 10 +- docs/infrastructure as code/media/kics.png | Bin 97925 -> 0 bytes docs/infrastructure as code/media/trivy.png | Bin 124830 -> 0 bytes .../InteroperabilityGuide.md} | 0 .../media/graphArchitectureFunctionalCut.svg | 0 .../media/graphBusinessProblem.svg | 0 .../infrastructure-as-code}/IaC.md | 37 +++--- .../media/output-codeql.png | Bin 0 -> 158406 bytes .../media/output-kics.png | Bin 0 -> 180128 bytes .../media/output-trivy-backend.png | Bin 0 -> 147704 bytes .../media/output-trivy-frontend.png | Bin 0 -> 139378 bytes .../secrets-management/SecretsManagement.md} | 13 +- docs/{user manual => user}/UserManual.md | 1 + .../media/afterPolicySelection.png | Bin .../media/agreePolicy.png | Bin .../media/aspectNotSupported.png | Bin .../media/beforePolicySelection.png | Bin .../media/declinePolicy.png | Bin docs/{user manual => user}/media/irs.png | Bin docs/{user manual => user}/media/irsJob.png | Bin .../media/loadingPass.png | Bin docs/{user manual => user}/media/mainMenu.png | Bin .../media/notAuthorized.png | Bin .../media/productPassport.png | Bin .../media/scanPassport.png | Bin .../media/userProfile.png | Bin .../media/viewPolicy.png | Bin .../values-dev.yaml | 76 ------------ .../digital-product-pass-backend/values.yaml | 4 +- .../src/components/general/Header.vue | 41 ++----- 92 files changed, 75 insertions(+), 390 deletions(-) delete mode 100644 charts/digital-product-pass/values-beta.yaml delete mode 100644 charts/digital-product-pass/values-dev.yaml rename docs/{admin guide => admin}/AdminGuide.md (99%) rename docs/{admin guide => admin}/media/CXLogo.png (100%) rename docs/{arc42 => architecture}/Arc42.md (97%) rename docs/{arc42 => architecture}/media/CXlogo.png (100%) rename docs/{arc42 => architecture}/media/DPPView1.jpg (100%) rename docs/{arc42 => architecture}/media/DPPView2.jpg (100%) rename docs/{arc42 => architecture}/media/GraphicAvatar.png (100%) rename docs/{arc42 => architecture}/media/GraphicBasicTable.png (100%) rename docs/{arc42 => architecture}/media/GraphicBatteryPassportView.png (100%) rename docs/{arc42 => architecture}/media/GraphicBatteryPassportViewGeneralInfo.png (100%) rename docs/{arc42 => architecture}/media/GraphicLogos.png (100%) rename docs/{arc42 => architecture}/media/GraphicQRCodeView.png (100%) rename docs/{arc42 => architecture}/media/GraphicSearchView.png (100%) rename docs/{arc42 => architecture}/media/GraphicVueFrameworkComparison2022.png (100%) rename docs/{arc42 => architecture}/media/arc42logo.png (100%) rename docs/{arc42 => architecture}/media/auth/authenticationFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/agreeApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/agreeApiSequence.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/cancelApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/cancelFlowApi.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/createApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/createApiSequence.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/dataApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/dataRetrievalResume.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/declineApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/digitalProductPassContext.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/searchApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/searchApiSequence.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/statusApiFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/dataRetrieval/userFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/DeployementView.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicArchitectureDiagram.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicBackendComponent.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicBlackboxOverallSys.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicBulidingBlockView.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicCrossCuttingConcepts.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicFrontendComponent.drawio.svg (100%) rename docs/{arc42 => architecture}/media/intrastructure/GraphicWhiteboxOverallSys.drawio.svg (100%) rename docs/{arc42 => architecture}/media/irs/ChildNotFound.jpg (100%) rename docs/{arc42 => architecture}/media/irs/ErrorOccured.jpg (100%) rename docs/{arc42 => architecture}/media/irs/IRSDataSearch.drawio.svg (100%) rename docs/{arc42 => architecture}/media/irs/Loading.jpg (100%) rename docs/{arc42 => architecture}/media/irs/TreeOfComponents.jpg (100%) rename docs/{arc42 => architecture}/media/irs/irsFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/irs/irsSearchFlow.drawio.svg (100%) rename docs/{arc42 => architecture}/media/irs/searchWithIrs.drawio.svg (100%) rename docs/{arc42 => architecture}/media/irs/searchWithItRS.drawio.svg (100%) rename docs/{data retrieval guide/DataRetrievalGuide.md => data-retrieval/README.md} (99%) rename docs/{data retrieval guide => data-retrieval}/media/dataRetrievalFlow.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dataRetrievalFlow1.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dataRetrievalFlow2.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dataRetrievalSequence.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dataSearchApi.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/discoveryServices.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dtrSearchFlow.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/dtrSearchSequence.drawio.svg (100%) rename docs/{data retrieval guide => data-retrieval}/media/searchApiFlow.drawio.svg (100%) delete mode 100644 docs/infrastructure as code/media/kics.png delete mode 100644 docs/infrastructure as code/media/trivy.png rename docs/{business statement/BusinessStatement.md => interoperability/InteroperabilityGuide.md} (100%) rename docs/{business statement => interoperability}/media/graphArchitectureFunctionalCut.svg (100%) rename docs/{business statement => interoperability}/media/graphBusinessProblem.svg (100%) rename docs/{infrastructure as code => security/infrastructure-as-code}/IaC.md (56%) create mode 100644 docs/security/infrastructure-as-code/media/output-codeql.png create mode 100644 docs/security/infrastructure-as-code/media/output-kics.png create mode 100644 docs/security/infrastructure-as-code/media/output-trivy-backend.png create mode 100644 docs/security/infrastructure-as-code/media/output-trivy-frontend.png rename docs/{secrets management/SECRETS_MANAGEMENT.md => security/secrets-management/SecretsManagement.md} (90%) rename docs/{user manual => user}/UserManual.md (99%) rename docs/{user manual => user}/media/afterPolicySelection.png (100%) rename docs/{user manual => user}/media/agreePolicy.png (100%) rename docs/{user manual => user}/media/aspectNotSupported.png (100%) rename docs/{user manual => user}/media/beforePolicySelection.png (100%) rename docs/{user manual => user}/media/declinePolicy.png (100%) rename docs/{user manual => user}/media/irs.png (100%) rename docs/{user manual => user}/media/irsJob.png (100%) rename docs/{user manual => user}/media/loadingPass.png (100%) rename docs/{user manual => user}/media/mainMenu.png (100%) rename docs/{user manual => user}/media/notAuthorized.png (100%) rename docs/{user manual => user}/media/productPassport.png (100%) rename docs/{user manual => user}/media/scanPassport.png (100%) rename docs/{user manual => user}/media/userProfile.png (100%) rename docs/{user manual => user}/media/viewPolicy.png (100%) delete mode 100644 dpp-backend/charts/digital-product-pass-backend/values-dev.yaml diff --git a/README.md b/README.md index a8d5cb90d..6948ac6cd 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ In particular, the appliction is used to access the battery passport data provid Here is a preview from the DPP App UI, where we visualize a test battery passport in this case. -![General Info View](./docs/arc42/media/GraphicBatteryPassportViewGeneralInfo.png) +![General Info View](./docs/architecture/media/GraphicBatteryPassportViewGeneralInfo.png) > **Note**: For more information check the [documentation section](./docs/README.md) @@ -57,18 +57,20 @@ To get started you can have a look into our documentation: | Name | Description | | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Arc42](./docs/arc42/Arc42.md) | Main Architecture Document (Arc42) of Digital Product Pass Application | -| [Administration Guide](./docs/admin%20guide/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application | -| [Data Retrieval Guide](./docs/data%20retrieval%20guide/DataRetrievalGuide.md) | Guide on how to retrieve data from the Catena-X Network as the Digital Product Pass | +| [Arc42](./docs/architecture/Arc42.md) | Main Architecture Document (Arc42) of Digital Product Pass Application | +| [Interoperability](./docs/interoperability/InteroperabilityGuide.md) | Interoperability document of Digital Product Pass Application | +| [Data Sovereignty](./docs/data-sovereignty/PolicyConfigGuide.md) | Data Sovereignty document of Digital Product Pass Application | +| [Administration Guide](./docs/admin/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application | +| [Data Retrieval Guide](./docs/data-retrieval/README.md) | Guide on how to retrieve data from the Catena-X Network as the Digital Product Pass | | [Backend Documentation](./dpp-backend/digitalproductpass/README.md) | Backend documentation Product Passport App | | [Deployment in Argo CD](./deployment/README.md) | Technical Guide - Deployment in ArgoCD - integration environment | | [Docker Overview](./deployment/local/iam/README.md) | Overview on general docker commands | | [Keycloak Overview](./deployment/local/iam/README.md) | This guide describes how to setup a keycloak instance in local docker forcontainer and import existing realm.json file. | | [Short Introduction into the project](./docs/GETTING-STARTED.md) | Digital Product Pass App infrastructure, helm installation guide, technical usage guide | -| [Code Scaning with Kics and Trivy](./docs/infrastructure%20as%20code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github | +| [Code Scaning with Kics and Trivy](./docs/security/infrastructure-as-code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github | | [Release Guidelines](./docs/RELEASE.md) | Digital Product Pass App Release Guide | -| [Secret Management](./docs/secrets%20management/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | -| [End User Manual](./docs/user%20manual/UserManual.md) | End User Manual Product Viewer App | +| [Secret Management](./docs/security/secrets-management/SecretsManagement.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | +| [End User Manual](./docs/user/UserManual.md) | End User Manual Product Viewer App | | [Postman Overview](./deployment/local/postman//README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client | | [Changelog](./CHANGELOG.md) | Changelog | | [Helm Charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | Project's Helm Charts | diff --git a/charts/digital-product-pass/values-beta.yaml b/charts/digital-product-pass/values-beta.yaml deleted file mode 100644 index 1519c7675..000000000 --- a/charts/digital-product-pass/values-beta.yaml +++ /dev/null @@ -1,111 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG -# Copyright (c) 2022, 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 -################################################################################# - -backend: - ingress: - enabled: true - # className: "nginx" - annotations: - ingressClassName: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: &hostname "materialpass.beta.demo.catena-x.net" - paths: - - path: / - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - *hostname - - edc: - xApiKey: - participantId: &bpn - hostname: "materialpass.beta.demo.catena-x.net/consumer" - - hostname: *hostname - securityCheck: - bpn: true - edc: true - - irs: - enabled: true - hostnam: "materialpass-irs.beta.demo.catena-x.net" - - process: - encryptionKey: "" - - discovery: - hostname: "semantics.beta.demo.catena-x.net/discoveryfinder" - -frontend: - ingress: - enabled: true - #className: "" - annotations: - ingressClassName: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - nginx.ingress.kubernetes.io/service-upstream: "true" - hosts: - - host: materialpass.beta.demo.catena-x.net - paths: - - path: /passport(/|$)(.*) - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - materialpass.beta.demo.catena-x.net - - # Product Passport UI Configuration - backend: - hostname: "materialpass.beta.demo.catena-x.net" - - supportContact: - adminEmail: "admin@example.com" - - portal: - hostname: "portal.beta.demo.catena-x.net" - -oauth: - hostname: "centralidp.data.demo.catena-x.net" - techUser: - clientId: - clientSecret: - realm: - appId: - bpnCheck: - enabled: true - bpn: *bpn - roleCheck: - enabled: false - apiKey: - header: "X-Api-Key" - secret: diff --git a/charts/digital-product-pass/values-dev.yaml b/charts/digital-product-pass/values-dev.yaml deleted file mode 100644 index ffd4d8f5d..000000000 --- a/charts/digital-product-pass/values-dev.yaml +++ /dev/null @@ -1,112 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG -# Copyright (c) 2022, 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 -################################################################################# - -backend: - ingress: - enabled: true - # className: "nginx" - annotations: - ingressClassName: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: &hostname "materialpass.dev.demo.catena-x.net" - paths: - - path: / - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - *hostname - - edc: - xApiKey: - participantId: &bpn - hostname: "materialpass.dev.demo.catena-x.net/consumer" - - hostname: *hostname - - securityCheck: - bpn: true - edc: true - - irs: - enabled: true - hostname: "materialpass-irs.dev.demo.catena-x.net" - - process: - encryptionKey: "" - - discovery: - hostname: "semantics.dev.demo.catena-x.net/discoveryfinder" - -frontend: - ingress: - enabled: true - #className: "" - annotations: - ingressClassName: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/service-upstream: "true" - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: materialpass.dev.demo.catena-x.net - paths: - - path: /passport(/|$)(.*) - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - materialpass.dev.demo.catena-x.net - - # Product Passport UI Configuration - backend: - hostname: *hostname - - supportContact: - adminEmail: "admin@example.com" - - portal: - hostname: "portal.dev.demo.catena-x.net" - -oauth: - hostname: "centralidp.dev.demo.catena-x.net" - techUser: - clientId: - clientSecret: - realm: - appId: - bpnCheck: - enabled: true - bpn: *bpn - roleCheck: - enabled: false - apiKey: - header: "X-Api-Key" - secret: diff --git a/charts/digital-product-pass/values.yaml b/charts/digital-product-pass/values.yaml index beb5b9428..d91d65ea2 100644 --- a/charts/digital-product-pass/values.yaml +++ b/charts/digital-product-pass/values.yaml @@ -36,7 +36,7 @@ backend: name: "dpp-backend" image: repository: docker.io/tractusx/digital-product-pass-backend - pullPolicy: Always + pullPolicy: IfNotPresent # -- 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) imagePullSecrets: [] @@ -56,7 +56,7 @@ backend: nginx.ingress.kubernetes.io/ssl-passthrough: "false" nginx.ingress.kubernetes.io/backend-protocol: "HTTP" hosts: - - host: &hostname "localhost" + - host: &hostname "" paths: - path: / pathType: Prefix @@ -263,7 +263,7 @@ frontend: name: "dpp-frontend" image: repository: docker.io/tractusx/digital-product-pass-frontend - pullPolicy: Always + pullPolicy: IfNotPresent # -- 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) imagePullSecrets: [] diff --git a/docs/README.md b/docs/README.md index efa76316f..78a2800d9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -56,7 +56,7 @@ Welcome to the documentation section, below you will find all the necesary docs | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Business Statement](./business%20statement/BusinessStatement.md) | Business Context from the Application | +| [Business Statement](./interoperability/InteroperabilityGuide.md) | Business Context from the Application | # Application User Interface Preview @@ -64,11 +64,11 @@ Here you can find some application screenshots that will help you to visualize a ## Passport Search View -![Search View](./arc42/media/GraphicQRCodeView.png) +![Search View](./architecture/media/GraphicQRCodeView.png) ## Passport General Information View -![General Info View](./arc42/media/GraphicBatteryPassportViewGeneralInfo.png) +![General Info View](./architecture/media/GraphicBatteryPassportViewGeneralInfo.png) ## User Interface Documentation @@ -76,7 +76,7 @@ If you need an extra guideline to understand the application user interface plea | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [User Manual](./user%20manual/UserManual.md) | User Manual explaining the user interface | +| [User Manual](./user/UserManual.md) | User Manual explaining the user interface | # Architecture Documentation @@ -84,11 +84,11 @@ If you need an extra guideline to understand the application user interface plea For understating the achitecture first take a look at the following diagram: -![Application Scope](./arc42/media/dataRetrieval/digitalProductPassContext.drawio.svg) +![Application Scope](./architecture/media/dataRetrieval/digitalProductPassContext.drawio.svg) Here you can see that the Digital Product Pass Application is located between the consumer and the data provider. It should be provided by the Consumer and conected to a EDC. At the moment the DPP is hosted by Catena-X and is connected to a [test EDC Consumer](../deployment/infrastructure/data-consumer/edc-consumer/), which is maintained by the Eclipse Foundation and can be found in the [Eclipse Tractus-X EDC Repository](https://github.com/eclipse-tractusx/tractusx-edc). -The [Arc42](./arc42/Arc42.md) documentation is the main architecture guide you can read in order to have a overview from the application and get to know more about the system. +The [Arc42](./architecture/Arc42.md) documentation is the main architecture guide you can read in order to have a overview from the application and get to know more about the system. ## Documents of Interest @@ -96,8 +96,8 @@ Here are all the docs you need to understand the architecture and arhitecture co | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Arc42](./arc42/Arc42.md) | Main architecture document of the Digital Product Pass Application | -| [Administration Guide](./admin%20guide/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application +| [Arc42](./architecture/Arc42.md) | Main architecture document of the Digital Product Pass Application | +| [Administration Guide](./admin/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application # User and Technical User Changelogs @@ -133,8 +133,8 @@ Here you can find the main security documentatin for the Digital Product Pass Ap Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Keycloak Overview](../deployment/local/iam/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. | -[Code Scaning with Kics and Trivy](./infrastructure%20as%20code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github -| [Secret Management](./secrets%20management/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | +[Code Scaning with Kics and Trivy](./security/infrastructure-as-code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github +| [Secret Management](./security/secrets-management/SecretsManagement.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | # Testing Documentation diff --git a/docs/admin guide/AdminGuide.md b/docs/admin/AdminGuide.md similarity index 99% rename from docs/admin guide/AdminGuide.md rename to docs/admin/AdminGuide.md index 355e3a6a1..6c225cf18 100644 --- a/docs/admin guide/AdminGuide.md +++ b/docs/admin/AdminGuide.md @@ -172,7 +172,7 @@ In order to set up the secret management please follow this guide: | Name | Location | Link | | ---- | -------- | ---- | -| Secrets Management Documentation | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/secrets%20management/SECRETS_MANAGEMENT.md](https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/secrets%20management/SECRETS_MANAGEMENT.md) | +| Secrets Management Documentation | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/security/secrets-management/SecretsManagement.md](https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/security/secrets-management/SecretsManagement.md) | ## EDC Provider Configuration diff --git a/docs/admin guide/media/CXLogo.png b/docs/admin/media/CXLogo.png similarity index 100% rename from docs/admin guide/media/CXLogo.png rename to docs/admin/media/CXLogo.png diff --git a/docs/arc42/Arc42.md b/docs/architecture/Arc42.md similarity index 97% rename from docs/arc42/Arc42.md rename to docs/architecture/Arc42.md index 5bad6147e..c8dd75ae4 100644 --- a/docs/arc42/Arc42.md +++ b/docs/architecture/Arc42.md @@ -255,7 +255,7 @@ If the `configuration.dtr.central` is disabled the backend will also make a call ### Data Retrieval Flow -As detailed at the [Data Retrieval Guide Phases](../data%20retrieval%20guide/DataRetrievalGuide.md#data-retrieval-flow) there are 4 main phases required to retrieve data in the **Catena-X Network**: +As detailed at the [Data Retrieval Guide Phases](../data-retrieval/README.md#data-retrieval-flow) there are 4 main phases required to retrieve data in the **Catena-X Network**: 1. Discovery Phase 2. Digital Twin Registry Search Phase @@ -280,10 +280,10 @@ The keys used for searching the endpoints in the Discovery Service by default ar in case the keys used in the Discovery Service are another ones. #### Digital Twin Registry Search Phase -The **Digital Twin Registry Search Phase** as it is detailed at the [Data Retrieval Guide Phase 1 and 2](../data%20retrieval%20guide/DataRetrievalGuide.md#1-discovery-phase--2-digital-twin-registry-search-phase) is the junction of two main phases the *Discovery Phase* and the *Digital Twin Registry Search Phase* which are essential for starting the Digital Twin Search. +The **Digital Twin Registry Search Phase** as it is detailed at the [Data Retrieval Guide Phase 1 and 2](../data-retrieval/README.md#1-discovery-phase--2-digital-twin-registry-search-phase) is the junction of two main phases the *Discovery Phase* and the *Digital Twin Registry Search Phase* which are essential for starting the Digital Twin Search. The `/create` api is responsible for calling the `BPN Discovery` service searching for the BPN of a `manufacturerPartId` and validating if there is any `Decentral Digital Twin Registry` available for the BPN number found in the `EDC Discovery` service. -This is detailed [here](../data%20retrieval%20guide/DataRetrievalGuide.md#1-discovery-phase--2-digital-twin-registry-search-phase) in the Data Retrieval Guide. +This is detailed [here](../data-retrieval/README.md#1-discovery-phase--2-digital-twin-registry-search-phase) in the Data Retrieval Guide. The API is called "**create**" because it is responsible for creating the **process** which will be responsible for doing the data retrieval in the Digital Product Pass. Basically it creates a `processId` when the `Digital Twin Registries` are found and are available for searching Digital Twins. @@ -301,7 +301,7 @@ Basically it creates a `processId` when the `Digital Twin Registries` are found #### Digital Twin Search -The **Digital Twin Search** as it is detailed at the [Data Retrieval Guide Phase 3](../data%20retrieval%20guide/DataRetrievalGuide.md#3-digital-twin-search-phase-1) is the phase responsible for search in all the **Digital Twin Registries** found at the previous phase, finding and retrieving the searched **Digital Twin**. +The **Digital Twin Search** as it is detailed at the [Data Retrieval Guide Phase 3](../data-retrieval/README.md#3-digital-twin-search-phase-1) is the phase responsible for search in all the **Digital Twin Registries** found at the previous phase, finding and retrieving the searched **Digital Twin**. As described at the *Data Retrieval Guide* the **Digital Product Pass** Application is searching by default for the *partInstanceId* of an specific digital twin. @@ -339,7 +339,7 @@ This means that first the backend will search in the digital twin if the digital #### Data Negotiation and Transfer Phase -The **Data Negotiation and Transfer Phase** as it is detailed at the [Data Retrieval Guide Phase 4](../data%20retrieval%20guide/DataRetrievalGuide.md#4-data-negotiation-and-transfer-phase-1) is the phase responsible for the final data transfer and negotiation. In this phase we retrieve the data using the EDC. +The **Data Negotiation and Transfer Phase** as it is detailed at the [Data Retrieval Guide Phase 4](../data-retrieval/README.md#4-data-negotiation-and-transfer-phase-1) is the phase responsible for the final data transfer and negotiation. In this phase we retrieve the data using the EDC. Once the user has the contract he can call the `/agree` API to start the negotiation process and the transfer of the passport. This means that the user accepted the policy and the frame-contracts contained in the contract policy. @@ -542,9 +542,9 @@ Alternatively (or additionally) you can use a table. The title of the table is t * [ARC42 Documentation](./Arc42.md) * [GitHub Documentation](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/docs) -* [Administration Guide](../admin%20guide/AdminGuide.md) +* [Administration Guide](../admin/AdminGuide.md) * [API Documentation (Swagger)](https://app.swaggerhub.com/apis/eclipse-tractusx-bot/digital-product-pass) -* [Data Retrieval Guide](../data%20retrieval%20guide/DataRetrievalGuide.md) +* [Data Retrieval Guide](../data-retrieval/README.md) #### Catena-X Shared Services diff --git a/docs/arc42/media/CXlogo.png b/docs/architecture/media/CXlogo.png similarity index 100% rename from docs/arc42/media/CXlogo.png rename to docs/architecture/media/CXlogo.png diff --git a/docs/arc42/media/DPPView1.jpg b/docs/architecture/media/DPPView1.jpg similarity index 100% rename from docs/arc42/media/DPPView1.jpg rename to docs/architecture/media/DPPView1.jpg diff --git a/docs/arc42/media/DPPView2.jpg b/docs/architecture/media/DPPView2.jpg similarity index 100% rename from docs/arc42/media/DPPView2.jpg rename to docs/architecture/media/DPPView2.jpg diff --git a/docs/arc42/media/GraphicAvatar.png b/docs/architecture/media/GraphicAvatar.png similarity index 100% rename from docs/arc42/media/GraphicAvatar.png rename to docs/architecture/media/GraphicAvatar.png diff --git a/docs/arc42/media/GraphicBasicTable.png b/docs/architecture/media/GraphicBasicTable.png similarity index 100% rename from docs/arc42/media/GraphicBasicTable.png rename to docs/architecture/media/GraphicBasicTable.png diff --git a/docs/arc42/media/GraphicBatteryPassportView.png b/docs/architecture/media/GraphicBatteryPassportView.png similarity index 100% rename from docs/arc42/media/GraphicBatteryPassportView.png rename to docs/architecture/media/GraphicBatteryPassportView.png diff --git a/docs/arc42/media/GraphicBatteryPassportViewGeneralInfo.png b/docs/architecture/media/GraphicBatteryPassportViewGeneralInfo.png similarity index 100% rename from docs/arc42/media/GraphicBatteryPassportViewGeneralInfo.png rename to docs/architecture/media/GraphicBatteryPassportViewGeneralInfo.png diff --git a/docs/arc42/media/GraphicLogos.png b/docs/architecture/media/GraphicLogos.png similarity index 100% rename from docs/arc42/media/GraphicLogos.png rename to docs/architecture/media/GraphicLogos.png diff --git a/docs/arc42/media/GraphicQRCodeView.png b/docs/architecture/media/GraphicQRCodeView.png similarity index 100% rename from docs/arc42/media/GraphicQRCodeView.png rename to docs/architecture/media/GraphicQRCodeView.png diff --git a/docs/arc42/media/GraphicSearchView.png b/docs/architecture/media/GraphicSearchView.png similarity index 100% rename from docs/arc42/media/GraphicSearchView.png rename to docs/architecture/media/GraphicSearchView.png diff --git a/docs/arc42/media/GraphicVueFrameworkComparison2022.png b/docs/architecture/media/GraphicVueFrameworkComparison2022.png similarity index 100% rename from docs/arc42/media/GraphicVueFrameworkComparison2022.png rename to docs/architecture/media/GraphicVueFrameworkComparison2022.png diff --git a/docs/arc42/media/arc42logo.png b/docs/architecture/media/arc42logo.png similarity index 100% rename from docs/arc42/media/arc42logo.png rename to docs/architecture/media/arc42logo.png diff --git a/docs/arc42/media/auth/authenticationFlow.drawio.svg b/docs/architecture/media/auth/authenticationFlow.drawio.svg similarity index 100% rename from docs/arc42/media/auth/authenticationFlow.drawio.svg rename to docs/architecture/media/auth/authenticationFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/agreeApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/agreeApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/agreeApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/agreeApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/agreeApiSequence.drawio.svg b/docs/architecture/media/dataRetrieval/agreeApiSequence.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/agreeApiSequence.drawio.svg rename to docs/architecture/media/dataRetrieval/agreeApiSequence.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/cancelApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/cancelApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/cancelApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/cancelApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/cancelFlowApi.drawio.svg b/docs/architecture/media/dataRetrieval/cancelFlowApi.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/cancelFlowApi.drawio.svg rename to docs/architecture/media/dataRetrieval/cancelFlowApi.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/createApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/createApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/createApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/createApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/createApiSequence.drawio.svg b/docs/architecture/media/dataRetrieval/createApiSequence.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/createApiSequence.drawio.svg rename to docs/architecture/media/dataRetrieval/createApiSequence.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/dataApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/dataApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/dataApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/dataApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/dataRetrievalResume.drawio.svg b/docs/architecture/media/dataRetrieval/dataRetrievalResume.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/dataRetrievalResume.drawio.svg rename to docs/architecture/media/dataRetrieval/dataRetrievalResume.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/declineApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/declineApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/declineApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/declineApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/digitalProductPassContext.drawio.svg b/docs/architecture/media/dataRetrieval/digitalProductPassContext.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/digitalProductPassContext.drawio.svg rename to docs/architecture/media/dataRetrieval/digitalProductPassContext.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/searchApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/searchApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/searchApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/searchApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/searchApiSequence.drawio.svg b/docs/architecture/media/dataRetrieval/searchApiSequence.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/searchApiSequence.drawio.svg rename to docs/architecture/media/dataRetrieval/searchApiSequence.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/statusApiFlow.drawio.svg b/docs/architecture/media/dataRetrieval/statusApiFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/statusApiFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/statusApiFlow.drawio.svg diff --git a/docs/arc42/media/dataRetrieval/userFlow.drawio.svg b/docs/architecture/media/dataRetrieval/userFlow.drawio.svg similarity index 100% rename from docs/arc42/media/dataRetrieval/userFlow.drawio.svg rename to docs/architecture/media/dataRetrieval/userFlow.drawio.svg diff --git a/docs/arc42/media/intrastructure/DeployementView.drawio.svg b/docs/architecture/media/intrastructure/DeployementView.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/DeployementView.drawio.svg rename to docs/architecture/media/intrastructure/DeployementView.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicArchitectureDiagram.drawio.svg b/docs/architecture/media/intrastructure/GraphicArchitectureDiagram.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicArchitectureDiagram.drawio.svg rename to docs/architecture/media/intrastructure/GraphicArchitectureDiagram.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicBackendComponent.drawio.svg b/docs/architecture/media/intrastructure/GraphicBackendComponent.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicBackendComponent.drawio.svg rename to docs/architecture/media/intrastructure/GraphicBackendComponent.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicBlackboxOverallSys.drawio.svg b/docs/architecture/media/intrastructure/GraphicBlackboxOverallSys.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicBlackboxOverallSys.drawio.svg rename to docs/architecture/media/intrastructure/GraphicBlackboxOverallSys.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg b/docs/architecture/media/intrastructure/GraphicBulidingBlockView.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg rename to docs/architecture/media/intrastructure/GraphicBulidingBlockView.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicCrossCuttingConcepts.drawio.svg b/docs/architecture/media/intrastructure/GraphicCrossCuttingConcepts.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicCrossCuttingConcepts.drawio.svg rename to docs/architecture/media/intrastructure/GraphicCrossCuttingConcepts.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicFrontendComponent.drawio.svg b/docs/architecture/media/intrastructure/GraphicFrontendComponent.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicFrontendComponent.drawio.svg rename to docs/architecture/media/intrastructure/GraphicFrontendComponent.drawio.svg diff --git a/docs/arc42/media/intrastructure/GraphicWhiteboxOverallSys.drawio.svg b/docs/architecture/media/intrastructure/GraphicWhiteboxOverallSys.drawio.svg similarity index 100% rename from docs/arc42/media/intrastructure/GraphicWhiteboxOverallSys.drawio.svg rename to docs/architecture/media/intrastructure/GraphicWhiteboxOverallSys.drawio.svg diff --git a/docs/arc42/media/irs/ChildNotFound.jpg b/docs/architecture/media/irs/ChildNotFound.jpg similarity index 100% rename from docs/arc42/media/irs/ChildNotFound.jpg rename to docs/architecture/media/irs/ChildNotFound.jpg diff --git a/docs/arc42/media/irs/ErrorOccured.jpg b/docs/architecture/media/irs/ErrorOccured.jpg similarity index 100% rename from docs/arc42/media/irs/ErrorOccured.jpg rename to docs/architecture/media/irs/ErrorOccured.jpg diff --git a/docs/arc42/media/irs/IRSDataSearch.drawio.svg b/docs/architecture/media/irs/IRSDataSearch.drawio.svg similarity index 100% rename from docs/arc42/media/irs/IRSDataSearch.drawio.svg rename to docs/architecture/media/irs/IRSDataSearch.drawio.svg diff --git a/docs/arc42/media/irs/Loading.jpg b/docs/architecture/media/irs/Loading.jpg similarity index 100% rename from docs/arc42/media/irs/Loading.jpg rename to docs/architecture/media/irs/Loading.jpg diff --git a/docs/arc42/media/irs/TreeOfComponents.jpg b/docs/architecture/media/irs/TreeOfComponents.jpg similarity index 100% rename from docs/arc42/media/irs/TreeOfComponents.jpg rename to docs/architecture/media/irs/TreeOfComponents.jpg diff --git a/docs/arc42/media/irs/irsFlow.drawio.svg b/docs/architecture/media/irs/irsFlow.drawio.svg similarity index 100% rename from docs/arc42/media/irs/irsFlow.drawio.svg rename to docs/architecture/media/irs/irsFlow.drawio.svg diff --git a/docs/arc42/media/irs/irsSearchFlow.drawio.svg b/docs/architecture/media/irs/irsSearchFlow.drawio.svg similarity index 100% rename from docs/arc42/media/irs/irsSearchFlow.drawio.svg rename to docs/architecture/media/irs/irsSearchFlow.drawio.svg diff --git a/docs/arc42/media/irs/searchWithIrs.drawio.svg b/docs/architecture/media/irs/searchWithIrs.drawio.svg similarity index 100% rename from docs/arc42/media/irs/searchWithIrs.drawio.svg rename to docs/architecture/media/irs/searchWithIrs.drawio.svg diff --git a/docs/arc42/media/irs/searchWithItRS.drawio.svg b/docs/architecture/media/irs/searchWithItRS.drawio.svg similarity index 100% rename from docs/arc42/media/irs/searchWithItRS.drawio.svg rename to docs/architecture/media/irs/searchWithItRS.drawio.svg diff --git a/docs/data retrieval guide/DataRetrievalGuide.md b/docs/data-retrieval/README.md similarity index 99% rename from docs/data retrieval guide/DataRetrievalGuide.md rename to docs/data-retrieval/README.md index d560157e9..02b95976e 100644 --- a/docs/data retrieval guide/DataRetrievalGuide.md +++ b/docs/data-retrieval/README.md @@ -62,7 +62,7 @@ Created: *25 August 2023* - [NOTICE](#notice) ## Introduction -The Catena-X Network Data Retrieval process can be really complex and challenging to understand. The `Digital Product Pass` application as consumer application is designed to retrieve information from the Catena-X Network in its native way. We as team proposed a solution for retrieving information in this decentralized network in a very efficient way. This solution is implemented in the [`Digital Product Pass Backend`](../../consumer-dpp-backend/digitalproductpass/readme.md) and can retrieve information in approximated `8-20s` using the algorithm and procedures documented in the [Arc42](../arc42/Arc42.md) documentation. +The Catena-X Network Data Retrieval process can be really complex and challenging to understand. The `Digital Product Pass` application as consumer application is designed to retrieve information from the Catena-X Network in its native way. We as team proposed a solution for retrieving information in this decentralized network in a very efficient way. This solution is implemented in the [`Digital Product Pass Backend`](../../consumer-dpp-backend/digitalproductpass/readme.md) and can retrieve information in approximated `8-20s` using the algorithm and procedures documented in the [Arc42](../architecture/Arc42.md) documentation. Therefore this guide is here to provide information about how to retrieve Data from the Catena-X Network like the `Digital Product Pass` application. Here we will describe the problem that many consumers application are facing then retrieving data in Catena-X and how we as the DPP Team propose our vision. diff --git a/docs/data retrieval guide/media/dataRetrievalFlow.drawio.svg b/docs/data-retrieval/media/dataRetrievalFlow.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dataRetrievalFlow.drawio.svg rename to docs/data-retrieval/media/dataRetrievalFlow.drawio.svg diff --git a/docs/data retrieval guide/media/dataRetrievalFlow1.drawio.svg b/docs/data-retrieval/media/dataRetrievalFlow1.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dataRetrievalFlow1.drawio.svg rename to docs/data-retrieval/media/dataRetrievalFlow1.drawio.svg diff --git a/docs/data retrieval guide/media/dataRetrievalFlow2.drawio.svg b/docs/data-retrieval/media/dataRetrievalFlow2.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dataRetrievalFlow2.drawio.svg rename to docs/data-retrieval/media/dataRetrievalFlow2.drawio.svg diff --git a/docs/data retrieval guide/media/dataRetrievalSequence.drawio.svg b/docs/data-retrieval/media/dataRetrievalSequence.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dataRetrievalSequence.drawio.svg rename to docs/data-retrieval/media/dataRetrievalSequence.drawio.svg diff --git a/docs/data retrieval guide/media/dataSearchApi.drawio.svg b/docs/data-retrieval/media/dataSearchApi.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dataSearchApi.drawio.svg rename to docs/data-retrieval/media/dataSearchApi.drawio.svg diff --git a/docs/data retrieval guide/media/discoveryServices.drawio.svg b/docs/data-retrieval/media/discoveryServices.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/discoveryServices.drawio.svg rename to docs/data-retrieval/media/discoveryServices.drawio.svg diff --git a/docs/data retrieval guide/media/dtrSearchFlow.drawio.svg b/docs/data-retrieval/media/dtrSearchFlow.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dtrSearchFlow.drawio.svg rename to docs/data-retrieval/media/dtrSearchFlow.drawio.svg diff --git a/docs/data retrieval guide/media/dtrSearchSequence.drawio.svg b/docs/data-retrieval/media/dtrSearchSequence.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/dtrSearchSequence.drawio.svg rename to docs/data-retrieval/media/dtrSearchSequence.drawio.svg diff --git a/docs/data retrieval guide/media/searchApiFlow.drawio.svg b/docs/data-retrieval/media/searchApiFlow.drawio.svg similarity index 100% rename from docs/data retrieval guide/media/searchApiFlow.drawio.svg rename to docs/data-retrieval/media/searchApiFlow.drawio.svg diff --git a/docs/data-sovereignty/PolicyConfigGuide.md b/docs/data-sovereignty/PolicyConfigGuide.md index 1fe89da29..9549bd685 100644 --- a/docs/data-sovereignty/PolicyConfigGuide.md +++ b/docs/data-sovereignty/PolicyConfigGuide.md @@ -154,14 +154,14 @@ If the parameter is set to `false` the backend will automatically select the fir ## Policy Selection Options -For viewing and understanding the latest information regarding the policy selection flow see th [User Manual](../user%20manual/UserManual.md). +For viewing and understanding the latest information regarding the policy selection flow see th [User Manual](../user/UserManual.md). In this documentation some points and resources will be indicated: ### Auto-Negotiation If Auto sign setting is enabled, the first valid contract policy checked against the configuration is always chosen as shown in below screenshot. -The passport is shown to the user as shown in a [Passport Page](../user%20manual/UserManual.md#passport-page). +The passport is shown to the user as shown in a [Passport Page](../user/UserManual.md#passport-page). ![Loading Product Pass](../user%20manual/media/loadingPass.png) @@ -171,7 +171,7 @@ This feature requires user action. If disabled, the contract policy must be choo ![Before Contract Policy Selection](../user%20manual/media/beforePolicySelection.png) -The sign feature basically signs the contract policy before the contract negotiation is done. The right contract policy must be selected by the user, otherwise the contract negotiation is aborted and user is returned back to the [Main Menu](../user%20manual/UserManual.md#main-menu). +The sign feature basically signs the contract policy before the contract negotiation is done. The right contract policy must be selected by the user, otherwise the contract negotiation is aborted and user is returned back to the [Main Menu](../user/UserManual.md#main-menu). ![Agree Contract policy](../user%20manual/media/agreePolicy.png) @@ -194,12 +194,12 @@ In case the user want to see more details from the policy, it can be done by cli ![View Contract Policy](../user%20manual/media/viewPolicy.png) -The user accepts the right contract policy, and click on the **Agree** button which resumes the remaining negotiation and data transfer steps. In the end, the passport data is retrieved and displays to the user [Passport Page](../user%20manual/UserManual.md#passport-page). +The user accepts the right contract policy, and click on the **Agree** button which resumes the remaining negotiation and data transfer steps. In the end, the passport data is retrieved and displays to the user [Passport Page](../user/UserManual.md#passport-page). ![After Contract Policy Selection](../user%20manual/media/afterPolicySelection.png) #### Decline Contract -If a user is not permitted to accept a particular policy from his company, the contract policy can be declined in this case. The user will be redirected to the [Main Menu](../user%20manual/UserManual.md#main-menu). +If a user is not permitted to accept a particular policy from his company, the contract policy can be declined in this case. The user will be redirected to the [Main Menu](../user/UserManual.md#main-menu). ![Decline Contract Policy](../user%20manual/media/declinePolicy.png) diff --git a/docs/infrastructure as code/media/kics.png b/docs/infrastructure as code/media/kics.png deleted file mode 100644 index 501334c539252581ffd3220525058ecc5a7e1752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97925 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

bLkMW; @!1;hvQ+l1GqPVkldl%!KU>HSnTM&VC20gH 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 Q#-05s?j7ytkO diff --git a/docs/infrastructure as code/media/trivy.png b/docs/infrastructure as code/media/trivy.png deleted file mode 100644 index bd4a9f4a5f1c74670ed35662ba77b469c7e8d94c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124830 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