diff --git a/.github/workflows/trufflehog.yml b/.github/workflows/trufflehog.yml new file mode 100644 index 000000000..1c9cfd7f6 --- /dev/null +++ b/.github/workflows/trufflehog.yml @@ -0,0 +1,60 @@ +############################################################### +# Copyright (c) 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 governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +############################################################### + +name: 'TruffleHog' + +on: + push: + branches: ['main'] + pull_request: + # The branches below must be a subset of the branches above + branches: ['main'] + schedule: + - cron: '0 0 * * *' # Once a day + workflow_dispatch: + +permissions: + actions: read + contents: read + security-events: write + id-token: write + issues: write + +jobs: + ScanSecrets: + name: Scan secrets + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + fetch-depth: 0 # Ensure full clone for pull request workflows + + - name: TruffleHog OSS + id: trufflehog + uses: trufflesecurity/trufflehog@7e78ca385fb82c19568c7a4b341c97d57d9aa5e1 #v3.82.2 + continue-on-error: true + with: + path: ./ # Scan the entire repository + base: '${{ github.event.repository.default_branch }}' # Set base branch for comparison (pull requests) + extra_args: --filter-entropy=4 --results=verified,unknown --debug + + - name: Scan Results Status + if: steps.trufflehog.outcome == 'failure' + run: exit 1 # Set workflow run to failure if TruffleHog finds secrets diff --git a/CHANGELOG.md b/CHANGELOG.md index d0d27c2bc..ebae718d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,27 +1,35 @@ # Changelog +## Unreleased + +### Bugfixes + +- **Service Release Process** + - Updated description regex & validation error message to prevent only spaces in short & long description +- **OSP Consent form** + - Display invited company name in OSP consent form (Previously hard coded with 'BMW') [#1083](https://github.com/eclipse-tractusx/portal-frontend/pull/1083) + - Fixed missing street number in form [#1081](https://github.com/eclipse-tractusx/portal-frontend/issues/1081) + ## Unreleased 2.2.0-RC3 ### Feature -- Customer Detail Data Overlay +- **Roles and Permissions** + - Enable more fine grained permission checks by client id and roles +- **Customer Detail Data Overlay** - implement new UI design for customer detail data overlay - **Company Subscription Management** - - Extended the subscription detail page for customer to include more app-related information [#1051](https://github.com/eclipse-tractusx/portal-frontend/pull/1051) + - extended the subscription detail page for customer to include more app-related information [#1051](https://github.com/eclipse-tractusx/portal-frontend/pull/1051) ### Change -- **Technical User Management** - - Removed 'Inactive' filter in technical user management [#1046](https://github.com/eclipse-tractusx/portal-frontend/pull/1046) -- **Application Requests and Connector Management** - - update the status(skipped) in application requests and necessary changes with checkbox in connector management [#1019](https://github.com/eclipse-tractusx/portal-frontend/pull/1019) -- **Technical User Management** - - Removed 'Inactive' filter in technical user management [#1046](https://github.com/eclipse-tractusx/portal-frontend/pull/1046) - **Company Subscriptions** - Update and bind API with filter options [#1062](https://github.com/eclipse-tractusx/portal-frontend/pull/1062) ### Bugfixes +- fixed onClick of "Overview My Apps" button in App Release Process screen [#1022](https://github.com/eclipse-tractusx/portal-frontend/issues/1022) +- fixed 400 Bad Request error in App Access Management -> Add Role search filter [#1057](https://github.com/eclipse-tractusx/portal-frontend/issues/1057) - **Connector Management** - fixed technical user selection - **IDP management** @@ -30,7 +38,7 @@ - Show appropriate error message. - Fix closing page notification bar issue - **IDP management** - - Fixed statusTag color in status coloumn [#978](https://github.com/eclipse-tractusx/portal-frontend/pull/978) + - Fixed statusTag color in status column [#978](https://github.com/eclipse-tractusx/portal-frontend/pull/978) - **Connector Management** - Updated SD document download API to fix downloading SD document issue [#1038](https://github.com/eclipse-tractusx/portal-frontend/pull/1038) - **Service Release Process** @@ -39,42 +47,28 @@ - Fixed 'activeTab' conditions to load data for Tab-2(Registration Process) [#1050](https://github.com/eclipse-tractusx/portal-frontend/pull/1050) - **App Release Process**: - Fixed role upload does not work using Firefox [#1003](https://github.com/eclipse-tractusx/portal-frontend/pull/1003) + - Fixed "None" selection issue in Technical Integration -> App Release Process [#1036](https://github.com/eclipse-tractusx/portal-frontend/issues/1036) - **Technical User Management** - Display technicalUserManagement button based on role validation [#1073](https://github.com/eclipse-tractusx/portal-frontend/pull/1073) -- **OSP Consent form** - - Display invited company name in OSP consent form (Previously hard coded with 'BMW') [#1083](https://github.com/eclipse-tractusx/portal-frontend/pull/1083) +- **Use Case participation** + - Removes use cases without verified credentials from the "Use Case Participation" list [#1088](https://github.com/eclipse-tractusx/portal-frontend/pull/1088) -## 2.2.0-RC2 - -### Feature - -- **Onboarding Service Provider Management**: - - Create new page for onboarding service provider management [#1052](https://github.com/eclipse-tractusx/portal-frontend/pull/1052) -- **Company data** - - Disable confirm button if input value is not matching with the regular expression [#1056](https://github.com/eclipse-tractusx/portal-frontend/pull/1056) - - Fix infinite loop issue in add New Address Modal - - Add new csv bulk upload modal [#1056](https://github.com/eclipse-tractusx/portal-frontend/pull/1056) -- **Service Subscription** - - Update auto setup api response data in the service subscription response overlay - -### Bugfixes - -- **Partner Network** - - Change interface of the partner network apis. add /members to the POST api and update the business logic accordingly [#1002](https://github.com/eclipse-tractusx/portal-frontend/pull/1002) -- **Business Partner invite** - - fix person name regex patter [#1040](https://github.com/eclipse-tractusx/portal-frontend/pull/1040) - -## 2.2.0-RC1 +## 2.2.0 ### Change -- **Page headers** - - harmonized and standardized page headers: added consistent headers and removed unused code [#864](https://github.com/eclipse-tractusx/portal-frontend/pull/864) -- **Company data Management** +- **Company Data Management** - integrated /ready api to trigger once the new record is created [#958](https://github.com/eclipse-tractusx/portal-frontend/pull/958) - enabled displaying of sharing state error details in the company overlay details page [#958](https://github.com/eclipse-tractusx/portal-frontend/pull/958) -- **Business partner invite** - - updated first name and last name pattern to allow 2 characters in business partner invite application form [#1025](https://github.com/eclipse-tractusx/portal-frontend/pull/1025) +- **Technical User Management** + - removed 'Inactive' filter in technical user management [#1046](https://github.com/eclipse-tractusx/portal-frontend/pull/1046) + - updated filters view and logic [#1087](https://github.com/eclipse-tractusx/portal-frontend/pull/1087) +- **Skipping of GX compliance service interface** + - updated the status (skipped) in application requests and changed checkbox in connector management [#1019](https://github.com/eclipse-tractusx/portal-frontend/pull/1019) +- **Connector Management** + - updated delete connector confirmation logic with technical user [#1076](https://github.com/eclipse-tractusx/portal-frontend/pull/1076) +- **Page headers** + - harmonized and standardized page headers: added consistent headers and removed unused code [#864](https://github.com/eclipse-tractusx/portal-frontend/pull/864) ### Feature @@ -83,6 +77,13 @@ - **Technical User Management** - enhanced technical user table by adding StatusTag to the status column [#967](https://github.com/eclipse-tractusx/portal-frontend/pull/967) - enhanced technical user table status column by adding new status 'pending deletion' [#967](https://github.com/eclipse-tractusx/portal-frontend/pull/967) +- **Onboarding Service Provider Management**: + - created new page for onboarding service provider management [#1052](https://github.com/eclipse-tractusx/portal-frontend/pull/1052) +- **Company Data Management** + - added new csv bulk upload BUT it is currently not enabled: further enhancements will follow [#1056](https://github.com/eclipse-tractusx/portal-frontend/pull/1056), [#1091](https://github.com/eclipse-tractusx/portal-frontend/pull/1091) + - disabled confirm button if input value is not matching with the regular expression [#1056](https://github.com/eclipse-tractusx/portal-frontend/pull/1056) +- **Service Subscription** + - updated auto setup api response data in the service subscription response overlay ### Technical Support @@ -93,13 +94,33 @@ ### Bugfixes +- **Partner Network** + - changed BPDM interface integration so that partners are listed in the Partner Network: added /members to the POST api and updated the business logic accordingly [#1002](https://github.com/eclipse-tractusx/portal-frontend/pull/1002) +- **Company Data Management** + - fixed infinite loop issue in add new address modal [#1048](https://github.com/eclipse-tractusx/portal-frontend/pull/1048) + - fixed broken title and description in modal [#1070](https://github.com/eclipse-tractusx/portal-frontend/pull/1070) + - fixed translation error [#1070](https://github.com/eclipse-tractusx/portal-frontend/pull/1070) +- **Business Partner Invitation** + - updated first name and last name pattern to allow 2 characters in application form [#1025](https://github.com/eclipse-tractusx/portal-frontend/pull/1025) + - fixed person name regex pattern [#1040](https://github.com/eclipse-tractusx/portal-frontend/pull/1040) - fixed usage of scroll to top button from shared components [#868](https://github.com/eclipse-tractusx/portal-frontend/pull/868) - fixed naming consistency of constants: used camel case for all page paths and update corresponding usage in other files [#895](https://github.com/eclipse-tractusx/portal-frontend/pull/895) - removed unnecessary condition in semantic hub page's table [#979](https://github.com/eclipse-tractusx/portal-frontend/pull/979) - fixed unchanged text of button when user requests subscription [#985](https://github.com/eclipse-tractusx/portal-frontend/pull/985) - fixed height for "Admin Service Detail" page content [#1001](https://github.com/eclipse-tractusx/portal-frontend/pull/1001) -- fixed onClick of "Overview My Apps" button in App Release Process screen [#1022](https://github.com/eclipse-tractusx/portal-frontend/issues/1022) -- Fix 400 Bad Request error in App Access Management -> Add Role search filter [#1057](https://github.com/eclipse-tractusx/portal-frontend/issues/1057) + +### Known Knowns + +- Technical Issues and Limitations + - Technical User Accounts + - There is an issue where attempting to display details for inactive technical users results in a blank page due to a lack of necessary backend support. + - Long Description field in German (de) does not accept German special characters [#965](https://github.com/eclipse-tractusx/portal-frontend/pull/965). + - Role Upload does not work during App Release Process when using Firefox [#961](https://github.com/eclipse-tractusx/portal-frontend/pull/961). +- Feature Support and Development + - Auto-setup Process Worker + - There is no frontend support for the extended auto-setup process worker, specifically in terms of error handling and status transparency. + - Registration Approval Process + - The frontend provides limited support for the registration approval process, particularly concerning the retriggering of jobs. ## 2.1.0 diff --git a/DEPENDENCIES b/DEPENDENCIES index 7300986a7..6373a6976 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -601,7 +601,7 @@ npm/npmjs/@babel/template/7.24.0, MIT, approved, clearlydefined npm/npmjs/@babel/traverse/7.24.1, MIT AND (BSD-2-Clause AND ISC AND MIT) AND BSD-2-Clause AND BSD-3-Clause, approved, #13926 npm/npmjs/@babel/types/7.24.0, MIT, approved, clearlydefined npm/npmjs/@bcoe/v8-coverage/0.2.3, ISC AND MIT, approved, clearlydefined -npm/npmjs/@catena-x/portal-shared-components/3.4.0, Apache-2.0 AND CC-BY-4.0 AND OFL-1.1, approved, #16027 +npm/npmjs/@catena-x/portal-shared-components/3.5.2, Apache-2.0 AND CC-BY-4.0 AND OFL-1.1, approved, #16079 npm/npmjs/@cspotcode/source-map-support/0.8.1, MIT, approved, clearlydefined npm/npmjs/@date-io/core/3.0.0, MIT, approved, clearlydefined npm/npmjs/@date-io/date-fns/3.0.0, MIT, approved, #14023 diff --git a/index.html b/index.html index 1a72c3909..ef42715e5 100644 --- a/index.html +++ b/index.html @@ -29,8 +29,8 @@
- \ No newline at end of file + diff --git a/package.json b/package.json index 54de6ba61..ac39cf16c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@catena-x/portal-frontend", - "version": "v2.2.0-RC2", + "version": "v2.2.0", "description": "Catena-X Portal Frontend", "author": "Catena-X Contributors", "license": "Apache-2.0", @@ -34,7 +34,7 @@ ] }, "dependencies": { - "@catena-x/portal-shared-components": "^3.4.0", + "@catena-x/portal-shared-components": "^3.5.2", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@hookform/error-message": "^2.0.1", diff --git a/providers.html b/providers.html new file mode 100644 index 000000000..fdf3299e0 --- /dev/null +++ b/providers.html @@ -0,0 +1,515 @@ +const data = [ + { + "name": "CX-Operator", + "alias": "CX-Operator", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/CX-Operator/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Uniper SE", + "alias": "idp2", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp2/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Krones AG", + "alias": "idp3", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp3/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "MAN SE", + "alias": "idp4", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp4/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SOH Dataspace AG", + "alias": "idp6", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp6/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Krones Dup AG", + "alias": "idp7", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp7/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Resöüt", + "alias": "idp8", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp8/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "4zero Solutions GmbH", + "alias": "idp9", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp9/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Saller GmbH", + "alias": "idp18", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp18/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Arnsburg Apotheke "Alte Bornheimer Apotheke" e.K.", + "alias": "idp19", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp19/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Automotive Cells Co", + "alias": "idp20", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp20/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SAP Deutschland SE & Co. KG", + "alias": "idp21", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp21/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Continental Automotive Technologies GmbH", + "alias": "idp22", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp22/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SAP France", + "alias": "idp23", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp23/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SAP Italia S.p.A.", + "alias": "idp24", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp24/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SAP Österreich GmbH", + "alias": "idp25", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp25/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Covestro Deutschland AG", + "alias": "idp26", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp26/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SAP SE", + "alias": "idp27", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp27/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Schaeffler AG", + "alias": "idp28", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp28/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Schaeffler Technologies AG & Co. KG", + "alias": "idp29", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp29/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Schaeffler Engineering GmbH", + "alias": "idp30", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp30/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "DatafabriQ UG", + "alias": "idp31", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp31/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "B. Fischer AG", + "alias": "idp32", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp32/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Siemens Advanta Solutions GmbH", + "alias": "idp33", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp33/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Delos Cloud GmbH", + "alias": "idp34", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp34/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "BASF Digital Solutions S.L.U.", + "alias": "idp35", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp35/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "BASF SE", + "alias": "idp36", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp36/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Denso Automotive Deutschland GmbH", + "alias": "idp37", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp37/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "BloqSens AG", + "alias": "idp38", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp38/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "DENSO CORPORATION", + "alias": "idp39", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp39/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "BMW AG", + "alias": "idp40", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp40/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "HELLA GmbH & Co. KGaA", + "alias": "idp41", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp41/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Detecon International GmbH", + "alias": "idp42", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp42/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Capgemini Deutschland GmbH", + "alias": "idp43", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp43/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "CatX Service GmbH", + "alias": "idp44", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp44/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Eberspächer Controls Esslingen GmbH & Co. KG", + "alias": "idp45", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp45/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Hirschmann Automotive GmbH", + "alias": "idp46", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp46/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Siemens AG", + "alias": "idp47", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp47/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "EJOT SE & Co. KG", + "alias": "idp48", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp48/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Hybris GmbH", + "alias": "idp49", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp49/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Flex Automotive GmbH", + "alias": "idp50", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp50/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Siemens Industry Software GmbH", + "alias": "idp51", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp51/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "sovity GmbH", + "alias": "idp54", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp54/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SK Inc.", + "alias": "idp55", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp55/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Ford Werke GmbH", + "alias": "idp56", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp56/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Forvia", + "alias": "idp57", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp57/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Spherity GmbH", + "alias": "idp58", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp58/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "FORD ESPANA SL", + "alias": "idp52", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp52/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "IAV GmbH Ingenieurgesellschaft Auto und Verkehr", + "alias": "idp53", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp53/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "IBM Deutschland GmbH", + "alias": "idp59", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp59/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Light ds GmbH", + "alias": "idp60", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp60/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SSC-Services GmbH", + "alias": "idp61", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp61/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "German Edge Cloud GmbH & Co. KG", + "alias": "idp62", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp62/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Stellantis N.V.", + "alias": "idp63", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp63/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Lisa Dräxlmaier GmbH", + "alias": "idp64", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp64/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Harman Becker Automotive Systems GmbH", + "alias": "idp65", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp65/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "SupplyOn AG", + "alias": "idp66", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp66/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Trebing & Himstedt Prozeßautomation GmbH & Co. KG", + "alias": "idp67", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp67/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "T-Systems International GmbH", + "alias": "idp68", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp68/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Volkswagen AG", + "alias": "idp69", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp69/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "WITTE Automotive GmbH", + "alias": "idp70", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp70/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "ZF Friedrichshafen AG", + "alias": "idp71", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp71/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Antipodean GmbH", + "alias": "idp72", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp72/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Magna International (Germany) GmbH", + "alias": "idp73", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp73/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "AROMA GLOBAL 3 d.o.o", + "alias": "idp74", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp74/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "MAHLE International GmbH", + "alias": "idp75", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp75/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Materna Information & Communications SE", + "alias": "idp76", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp76/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Mercedes-Benz Group AG", + "alias": "idp77", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp77/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "MHP Management- und IT-Beratung GmbH", + "alias": "idp78", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp78/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "NTT Communications Corporation", + "alias": "idp79", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp79/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "NTT Germany", + "alias": "idp80", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp80/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "NTT Luxembourg PSF SA", + "alias": "idp81", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp81/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "NTT Netherlands B.V.", + "alias": "idp82", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp82/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "OETINGER Aluminum GmbH", + "alias": "idp83", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp83/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Polygran GmbH", + "alias": "idp84", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp84/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Pöppelmann Kunststoff-Technik GmbH & Co. KG", + "alias": "idp85", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp85/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Contemporary Amperex Technology", + "alias": "idp86", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp86/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Renault SAS", + "alias": "idp87", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp87/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "RenewEarth Lab Inc", + "alias": "idp88", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp88/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Franke Holding AG", + "alias": "idp89", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp89/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Rhenus Automotive SE", + "alias": "idp90", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp90/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "RITTAL GmbH & Co. KG", + "alias": "idp91", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp91/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Robert Bosch GmbH", + "alias": "idp92", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp92/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "Robert Bosch Manufacturing Solutions GmbH", + "alias": "idp93", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp93/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + { + "name": "S1Seven GmbH", + "alias": "idp94", + "provider": "keycloak-oidc", + "url": "/auth/realms/CX-Central/broker/idp94/login?client_id=Cl2-CX-Portal&tab_id=n0o38pB50y8&session_code=oWrl70zGNNgkCIaNN5nRuom6CuEu3DInyHI4Pn7e7AE" + }, + null +] + +console.log(data) \ No newline at end of file diff --git a/scripts/inject-dynamic-env.sh b/scripts/inject-dynamic-env.sh index 84de178ba..dfa698eb2 100644 --- a/scripts/inject-dynamic-env.sh +++ b/scripts/inject-dynamic-env.sh @@ -20,9 +20,9 @@ ############################################################### # Define custom variable -custom_env_vars='{REQUIRE_HTTPS_URL_PATTERN:"'$REQUIRE_HTTPS_URL_PATTERN'",PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",SSI_CREDENTIAL_URL:"'$SSI_CREDENTIAL_URL'",BPDM_POOL_API_URL:"'$BPDM_POOL_API_URL'",BPDM_GATE_API_URL:"'$BPDM_GATE_API_URL'",SEMANTICS_URL:"'$SEMANTICS_URL'",MANAGED_IDENTITY_WALLETS_NEW_URL:"'$MANAGED_IDENTITY_WALLETS_NEW_URL'",REALM:"'$REALM'",CLIENT_ID:"'$CLIENT_ID'",CLIENT_ID_SEMANTIC:"'$CLIENT_ID_SEMANTIC'",CLIENT_ID_MIW:"'$CLIENT_ID_MIW'",CLIENT_ID_SSI_CREDENTIAL:"'$CLIENT_ID_SSI_CREDENTIAL'"}' +custom_env_vars='{REQUIRE_HTTPS_URL_PATTERN:"'$REQUIRE_HTTPS_URL_PATTERN'",PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",SSI_CREDENTIAL_URL:"'$SSI_CREDENTIAL_URL'",BPDM_POOL_API_URL:"'$BPDM_POOL_API_URL'",BPDM_GATE_API_URL:"'$BPDM_GATE_API_URL'",SEMANTICS_URL:"'$SEMANTICS_URL'",MANAGED_IDENTITY_WALLETS_NEW_URL:"'$MANAGED_IDENTITY_WALLETS_NEW_URL'",REALM:"'$REALM'",CLIENT_ID:"'$CLIENT_ID'",CLIENT_ID_REGISTRATION:"'$CLIENT_ID_REGISTRATION'",CLIENT_ID_SEMANTIC:"'$CLIENT_ID_SEMANTIC'",CLIENT_ID_BPDM:"'$CLIENT_ID_BPDM'",CLIENT_ID_MIW:"'$CLIENT_ID_MIW'",CLIENT_ID_SSI_CREDENTIAL:"'$CLIENT_ID_SSI_CREDENTIAL'"}' # Define anchor variable -custom_env_vars_anchor='{REQUIRE_HTTPS_URL_PATTERN:"true",PORTAL_ASSETS_URL:"http://localhost:3000/assets",PORTAL_BACKEND_URL:"https://portal-backend.example.org",CENTRALIDP_URL:"https://centralidp.example.org/auth",SSI_CREDENTIAL_URL:"https://ssi-credential-issuer.example.org",BPDM_POOL_API_URL:"https://business-partners.example.org/pool/v6",BPDM_GATE_API_URL:"https://business-partners.example.org/companies/test-company/v6",SEMANTICS_URL:"https://semantics.example.org",MANAGED_IDENTITY_WALLETS_NEW_URL:"https://managed-identity-wallets-new.example.org",REALM:"CX-Central",CLIENT_ID:"Cl2-CX-Portal",CLIENT_ID_SEMANTIC:"Cl3-CX-Semantic",CLIENT_ID_MIW:"Cl5-CX-Custodian",CLIENT_ID_SSI_CREDENTIAL:"Cl24-CX-SSI-CredentialIssuer"}' +custom_env_vars_anchor='{REQUIRE_HTTPS_URL_PATTERN:"true",PORTAL_ASSETS_URL:"http://localhost:3000/assets",PORTAL_BACKEND_URL:"https://portal-backend.example.org",CENTRALIDP_URL:"https://centralidp.example.org/auth",SSI_CREDENTIAL_URL:"https://ssi-credential-issuer.example.org",BPDM_POOL_API_URL:"https://business-partners.example.org/pool/v6",BPDM_GATE_API_URL:"https://business-partners.example.org/companies/test-company/v6",SEMANTICS_URL:"https://semantics.example.org",MANAGED_IDENTITY_WALLETS_NEW_URL:"https://managed-identity-wallets-new.example.org",REALM:"CX-Central",CLIENT_ID:"Cl2-CX-Portal",CLIENT_ID_REGISTRATION:"Cl1-CX-Registration",CLIENT_ID_SEMANTIC:"Cl3-CX-Semantic",CLIENT_ID_BPDM:"Cl7-CX-BPDM",CLIENT_ID_MIW:"Cl5-CX-Custodian",CLIENT_ID_SSI_CREDENTIAL:"Cl24-CX-SSI-CredentialIssuer"}' # Read content of the reference index.html file into the index_html_reference variable index_html_reference=`cat /usr/share/nginx/html/index.html.reference` # Replace the anchor variable with the custom variable in the index.html file diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index 9f6567692..21098b12e 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -675,7 +675,7 @@ "deletemodal": { "title": "EDC-Connector Löschen", "description": "Möchten Sie den ausgewählten Connector wirklich löschen? Die Löschung kann nicht rückgängig gemacht werden.", - "techUserdescription": "Möchten Sie den Connector wirklich löschen? Mit der Löschung wird der Connector automatisch vom Endpunkt „Connector Discovery“ gelöscht und das Selbstbeschreibungsdokument auf inaktiv gesetzt.\n Bitte beachten Sie, dass mit dem Connector ein technischer Benutzer verbunden ist – der technische Benutzer wird ebenfalls sofort inaktiviert, wenn mit dem Löschen fortgefahren wird.", + "techUserdescription": "Möchten Sie den Connector wirklich löschen? Mit der Löschung wird der Connector automatisch vom Endpunkt „Connector Discovery“ gelöscht und das Selbstbeschreibungsdokument auf inaktiv gesetzt.\n Bitte beachten Sie, dass mit dem Connector ein technischer Benutzer verbunden ist. Der technische Benutzer kann gelöscht werden, wenn Sie das Kontrollkästchen unten aktivieren. Andernfalls wird nur die Zuordnung zwischen Connector und technischem Benutzer gelöscht.", "techUserCheckBoxLabel": "Ja, ich möchte den Connector deaktivieren, wodurch automatisch auch der erwähnte technische Benutzer gelöscht wird.", "techDetails": { "title": "Technical Details", @@ -974,8 +974,7 @@ "resetCredentialError": "Something went wrong", "resetCredentialSuccess": "Credential reset was successful", "tabs": { - "active": "Aktiv", - "inactive": "Inaktiv", + "showAll": "Alle anzeigen", "managed": "Gelang es", "owned": "Besessen" }, @@ -2298,7 +2297,8 @@ }, "userRoles": { "title": "Assigned Catena-X Portal Roles", - "changeRoleBtn": "Change Portal Role" + "changeRoleBtn": "Change Portal Role", + "errorMsg": "Sie sind nicht berechtigt, Ihre eigenen Administrator-Rollen zu ändern. Bitte wenden Sie sich an einen anderen Administrator." } }, "global": { @@ -2330,7 +2330,9 @@ "alias": "Alias", "authMethod": "Auth Method", "progress": "Progress", - "action": "Action" + "action": "Action", + "ownership": "Ownership", + "userType": "Usertype" }, "actions": { "cancel": "Abbrechen", diff --git a/src/assets/locales/de/servicerelease.json b/src/assets/locales/de/servicerelease.json index e7810fd66..daef24a49 100644 --- a/src/assets/locales/de/servicerelease.json +++ b/src/assets/locales/de/servicerelease.json @@ -90,6 +90,7 @@ "maximum": "Maximum", "charactersAllowed": " characters allowed", "validCharactersIncludes": "Valid characters includes: ", + "spaceAloneNotAllowed": " and spaces alone are not allowed", "isMandatory": " is mandatory", "fileUploadIsMandatory": "File upload is mandatory", "error": { diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index f6a44b376..057c29614 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -680,7 +680,7 @@ "deletemodal": { "title": "Delete Connector", "description": "Do you really want to delete the registered connector? Please note that the deletion is not reversable.", - "techUserdescription": "Do you really want to delete the connector? With the deletion the connector will be automatically deleted from the „connector discovery“ endpoint as well as the self-description document will be set to inactive.\n\n Please note, the connector has a technical user connected – the technical user will get inactived immediadetly as well when proceeding with the deletion.", + "techUserdescription": "Do you really want to delete the connector? With the deletion the connector will be automatically deleted from the „connector discovery“ endpoint as well as the self-description document will be set to inactive.\n\n Please note, the connector has a technical user connected - the technical user can be deleted if you select the checkbox below otherwise only the mapping between connector and technical user will be deleted.", "techUserCheckBoxLabel": "Yes, I want to deactivate the connector which will automatically also delete the mentioned technical user.", "techDetails": { "title": "Technical Details", @@ -979,8 +979,7 @@ "resetCredentialError": "Something went wrong", "resetCredentialSuccess": "Credential reset was successful", "tabs": { - "active": "Active", - "inactive": "Inactive", + "showAll": "Show All", "managed": "Managed", "owned": "Owned" }, @@ -2271,7 +2270,8 @@ }, "userRoles": { "title": "Assigned Catena-X Portal Roles", - "changeRoleBtn": "Change Portal Role" + "changeRoleBtn": "Change Portal Role", + "errorMsg": "You are not authorized to change your own admin roles. Please contact another admin." } }, "global": { @@ -2305,7 +2305,9 @@ "alias": "Alias", "authMethod": "Auth Method", "progress": "Progress", - "action": "Action" + "action": "Action", + "ownership": "Ownership", + "userType": "Usertype" }, "actions": { "cancel": "Cancel", diff --git a/src/assets/locales/en/servicerelease.json b/src/assets/locales/en/servicerelease.json index cbd9b1577..8c86fee4b 100644 --- a/src/assets/locales/en/servicerelease.json +++ b/src/assets/locales/en/servicerelease.json @@ -90,6 +90,7 @@ "maximum": "Maximum", "charactersAllowed": " characters allowed", "validCharactersIncludes": "Valid characters includes: ", + "spaceAloneNotAllowed": " and spaces alone are not allowed", "isMandatory": " is mandatory", "fileUploadIsMandatory": "File upload is mandatory", "error": { diff --git a/src/components/AuthProvider.tsx b/src/components/AuthProvider.tsx deleted file mode 100644 index 75fc2f080..000000000 --- a/src/components/AuthProvider.tsx +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import { setLoggedUser } from 'features/user/slice' -import type { IUser } from 'features/user/types' - -export function AuthProvider(props: { - children: JSX.Element - user: IUser -}): JSX.Element { - const dispatch = useDispatch() - useEffect(() => { - dispatch(setLoggedUser(props.user)) - }, [dispatch, props.user]) - return <>{props.children} -} diff --git a/src/components/overlays/CSVUploadOverlay/index.tsx b/src/components/overlays/CSVUploadOverlay/index.tsx index d2a514718..5ea856d78 100644 --- a/src/components/overlays/CSVUploadOverlay/index.tsx +++ b/src/components/overlays/CSVUploadOverlay/index.tsx @@ -102,7 +102,6 @@ export default function CSVUploadOverlay(): JSX.Element { document.body.appendChild(a) a.click() a.remove() - CopySuccess(t('content.companyData.upload.downloadSuccess')) }) } diff --git a/src/components/overlays/CompanyCertificateDetails/index.tsx b/src/components/overlays/CompanyCertificateDetails/index.tsx index 8bd3e5d84..7391f37df 100644 --- a/src/components/overlays/CompanyCertificateDetails/index.tsx +++ b/src/components/overlays/CompanyCertificateDetails/index.tsx @@ -46,8 +46,8 @@ import { useEffect, useState } from 'react' import { OVERLAYS, ROLES } from 'types/Constants' import dayjs from 'dayjs' import LoadingProgress from 'components/shared/basic/LoadingProgress' -import UserService from 'services/UserService' import { SortType } from 'components/pages/CompanyCertificates' +import { userHasPortalRole } from 'services/AccessService' export enum StatusTag { PENDING = 'Pending', @@ -209,7 +209,7 @@ export default function CompanyCertificateDetails({ - { diff --git a/src/components/pages/CompanySubscriptions/components/CompanySubscriptionTechnical/index.tsx b/src/components/pages/CompanySubscriptions/components/CompanySubscriptionTechnical/index.tsx index 40cfae42f..a297ad1e5 100644 --- a/src/components/pages/CompanySubscriptions/components/CompanySubscriptionTechnical/index.tsx +++ b/src/components/pages/CompanySubscriptions/components/CompanySubscriptionTechnical/index.tsx @@ -22,7 +22,7 @@ import { useTranslation } from 'react-i18next' import { StaticTable, Typography } from '@catena-x/portal-shared-components' import { type ActiveSubscriptionDetails } from 'features/apps/types' import { PAGES, ROLES } from 'types/Constants' -import UserService from 'services/UserService' +import { userHasPortalRole } from 'services/AccessService' export default function CompanySubscriptionTechnical({ detail, @@ -52,7 +52,7 @@ export default function CompanySubscriptionTechnical({ { icon: false, clickableLink: - UserService.hasRole(ROLES.VIEW_USER_ACCOUNT) && + userHasPortalRole(ROLES.VIEW_USER_ACCOUNT) && detail.technicalUserData.length ? `/${PAGES.USER_DETAILS}/${detail.technicalUserData[0].id}` : undefined, diff --git a/src/components/pages/CompanyWallet/RuleCard.tsx b/src/components/pages/CompanyWallet/RuleCard.tsx index db917ab0c..9d77d6b92 100644 --- a/src/components/pages/CompanyWallet/RuleCard.tsx +++ b/src/components/pages/CompanyWallet/RuleCard.tsx @@ -29,6 +29,8 @@ import { useTranslation } from 'react-i18next' import { Box, Grid } from '@mui/material' import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore' import { getAssetBase } from 'services/EnvironmentService' +import { userHasSsiCredentialRole } from 'services/AccessService' +import { ROLES } from 'types/Constants' type Hash = Record @@ -61,6 +63,7 @@ export default function RuleCard({ const canShowRevoke = (item: WalletContent) => { return ( + userHasSsiCredentialRole(ROLES.REVOKE_CREDENTIALS_ISSUER) && item.status === CredentialSubjectStatus.ACTIVE && item?.credentialType !== CredentialType.MEMBERSHIP && item.credentialType !== CredentialType.BUSINESS_PARTNER_NUMBER diff --git a/src/components/pages/EdcConnector/ConnectorDetailsOverlay.tsx b/src/components/pages/EdcConnector/ConnectorDetailsOverlay.tsx index e57624c8d..cc8169467 100644 --- a/src/components/pages/EdcConnector/ConnectorDetailsOverlay.tsx +++ b/src/components/pages/EdcConnector/ConnectorDetailsOverlay.tsx @@ -32,7 +32,6 @@ import { } from '@catena-x/portal-shared-components' import { type ConnectorDetailsType, - useDeleteConnectorMutation, useUpdateConnectorUrlMutation, useFetchConnectorDetailsQuery, useFetchSdDocumentMutation, @@ -44,8 +43,8 @@ import { error, success } from 'services/NotifyService' import EditIcon from '@mui/icons-material/Edit' import Patterns from 'types/Patterns' import { download } from 'utils/downloadUtils' -import UserService from 'services/UserService' import { ROLES } from 'types/Constants' +import { userHasPortalRole } from 'services/AccessService' interface DeleteConfirmationOverlayProps { openDialog?: boolean @@ -66,10 +65,6 @@ const ConnectorDetailsOverlay = ({ error: fetchError, refetch, } = useFetchConnectorDetailsQuery(overlayData?.id ?? '') - const [openDeleteConnector, setOpenDeleteConnector] = useState(false) - const [deleteConnectorSuccess, setDeleteConnectorSuccess] = useState(false) - const [deleteConnector] = useDeleteConnectorMutation() - const [deleteLoading, setDeleteLoading] = useState(false) const [enableConnectorUrl, setEnableConnectorUrl] = useState(true) const [updateConnectorUrl] = useUpdateConnectorUrlMutation() const [confirmLoading, setConfirmLoading] = useState(false) @@ -146,27 +141,6 @@ const ConnectorDetailsOverlay = ({ } } - const handleDeleteConnector = async () => { - setDeleteLoading(true) - await deleteConnector(fetchConnectorDetails?.id ?? '') - .unwrap() - .then(() => { - setDeleteConnectorSuccess(true) - setDeleteLoading(false) - }) - .catch((err) => { - setDeleteConnectorSuccess(false) - setDeleteLoading(false) - error( - err.status === 409 - ? err.data.title - : t('content.edcconnector.details.errormessage'), - '', - err - ) - }) - } - const handleUrlSubmit = async () => { setConfirmLoading(true) @@ -300,86 +274,6 @@ const ConnectorDetailsOverlay = ({ )} - {openDeleteConnector && ( - - - - - {deleteConnectorSuccess - ? t('content.edcconnector.details.connectorDeletedSuccessfully') - : t('content.edcconnector.details.wantToDeleteConnector')} - - - - {deleteConnectorSuccess ? ( - - ) : ( - - )} - - {deleteLoading ? ( - - - - ) : ( - !deleteConnectorSuccess && ( - - ) - )} - - - )} - )} diff --git a/src/components/pages/EdcConnector/DeleteConfirmationOverlay/DeleteConfirmationOverlay.tsx b/src/components/pages/EdcConnector/DeleteConfirmationOverlay/DeleteConfirmationOverlay.tsx index 017d180fe..78b0ae933 100644 --- a/src/components/pages/EdcConnector/DeleteConfirmationOverlay/DeleteConfirmationOverlay.tsx +++ b/src/components/pages/EdcConnector/DeleteConfirmationOverlay/DeleteConfirmationOverlay.tsx @@ -35,7 +35,7 @@ import Box from '@mui/material/Box' interface DeleteConfirmationOverlayProps { openDialog?: boolean handleOverlayClose: React.MouseEventHandler - handleConfirmClick: React.MouseEventHandler + handleConfirmClick: (status: boolean) => void loading?: boolean techUser?: { id: string @@ -138,9 +138,8 @@ const DeleteConfirmationOverlay = ({ {!loading && (