From 62f147470e58b6ccb69b984feed1a030b19e33c0 Mon Sep 17 00:00:00 2001 From: nidhigarg-bmw <101316912+nidhigarg-bmw@users.noreply.github.com> Date: Thu, 25 Apr 2024 13:46:03 +0530 Subject: [PATCH 1/5] feat(issuer component): connect with new Issuer Component (#735) https://github.com/eclipse-tractusx/portal-frontend/issues/620 --- CHANGELOG.md | 6 ++++++ index.html | 2 +- scripts/inject-dynamic-env.sh | 4 ++-- src/assets/locales/de/main.json | 2 +- src/assets/locales/en/main.json | 2 +- src/features/certification/certificationApiSlice.tsx | 7 +++---- src/features/usecase/usecaseApiSlice.ts | 3 ++- src/services/EnvironmentService.ts | 2 ++ src/utils/rtkUtil.ts | 9 +++++++++ 9 files changed, 27 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa6daf952..3ec923157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.0.0-RC4 + +### Change + +- Connect Credential Management UI with new Issuer Component + ## 2.0.0-RC3 ### Bugfix diff --git a/index.html b/index.html index 01a14b12d..f19af609e 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@
diff --git a/scripts/inject-dynamic-env.sh b/scripts/inject-dynamic-env.sh index a89e15eeb..7ee1e5f15 100644 --- a/scripts/inject-dynamic-env.sh +++ b/scripts/inject-dynamic-env.sh @@ -20,9 +20,9 @@ ############################################################### # Define custom variable -custom_env_vars='{PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",BPDM_API_URL:"'$BPDM_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'"}' +custom_env_vars='{PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",SSI_CREDENTIAL_URL:"'$SSI_CREDENTIAL_URL'",BPDM_API_URL:"'$BPDM_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'"}' # Define anchor variable -custom_env_vars_anchor='{PORTAL_ASSETS_URL:"http://localhost:3000/assets",PORTAL_BACKEND_URL:"https://portal-backend.example.org",CENTRALIDP_URL:"https://centralidp.example.org/auth",BPDM_API_URL:"https://business-partners.example.org/pool/api",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"}' +custom_env_vars_anchor='{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_API_URL:"https://business-partners.example.org/pool/api",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"}' # 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 e79478566..8725eeab9 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -62,7 +62,7 @@ "certificate-credential": "Config - Certificates", "about": "About", "dataspace": "Data Space", - "admin-credential": "Certification Mgmt", + "admin-credential": "Credential Requests", "companyCertificate": "Company Certificates", "companyWallet": "Company Wallet", "company-subscriptions": "Firmenabonnements", diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index 236556af5..f06a9411f 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -61,7 +61,7 @@ "certificate-credential": "Config - Certificates", "about": "About", "dataspace": "Data Space", - "admin-credential": "Certification Mgmt", + "admin-credential": "Credential Requests", "companyCertificate": "Company Certificates", "companyWallet": "Company Wallet", "company-subscriptions": "Company Subscriptions", diff --git a/src/features/certification/certificationApiSlice.tsx b/src/features/certification/certificationApiSlice.tsx index 681fc7038..ae894f31e 100644 --- a/src/features/certification/certificationApiSlice.tsx +++ b/src/features/certification/certificationApiSlice.tsx @@ -20,6 +20,7 @@ import type { PaginFetchArgs } from '@catena-x/portal-shared-components' import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' +import { getSsiBase } from 'services/EnvironmentService' import { PAGE_SIZE } from 'types/Constants' import { apiBaseQuery } from 'utils/rtkUtil' @@ -105,11 +106,9 @@ export const apiSlice = createApi({ fetchCredentialsSearch: builder.query( { query: (fetchArgs) => ({ - url: `api/administration/companydata/credentials?page=${ + url: `${getSsiBase()}/api/issuer?page=${ fetchArgs.page - }&size=${PAGE_SIZE}&companyName=${ - fetchArgs.args.expr ?? '' - }&companySsiDetailStatusId=${fetchArgs.args.filterType ?? ''}`, + }&size=${PAGE_SIZE}`, }), } ), diff --git a/src/features/usecase/usecaseApiSlice.ts b/src/features/usecase/usecaseApiSlice.ts index cad7f43a6..f9a0a9db6 100644 --- a/src/features/usecase/usecaseApiSlice.ts +++ b/src/features/usecase/usecaseApiSlice.ts @@ -18,6 +18,7 @@ ********************************************************************************/ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' +import { getSsiBase } from 'services/EnvironmentService' import { apiBaseQuery } from 'utils/rtkUtil' export type VerifiedCredentialsData = { @@ -59,7 +60,7 @@ export const apiSlice = createApi({ tagTypes: ['usecase'], endpoints: (builder) => ({ fetchUsecase: builder.query({ - query: () => '/api/administration/companydata/useCaseParticipation', + query: () => `${getSsiBase()}/api/issuer/useCaseParticipation`, providesTags: ['usecase'], }), addUsecase: builder.mutation({ diff --git a/src/services/EnvironmentService.ts b/src/services/EnvironmentService.ts index c3037ce6d..8ed50f774 100644 --- a/src/services/EnvironmentService.ts +++ b/src/services/EnvironmentService.ts @@ -31,6 +31,8 @@ export const getCentralIdp = () => ENV.CENTRALIDP_URL ?? '' export const getApiBase = () => ENV.PORTAL_BACKEND_URL ?? '' +export const getSsiBase = () => ENV.SSI_CREDENTIAL_URL ?? '' + export const getAssetBase = () => ENV.PORTAL_ASSETS_URL ?? '' export const getBpdmApiBase = () => ENV.BPDM_API_URL ?? '' diff --git a/src/utils/rtkUtil.ts b/src/utils/rtkUtil.ts index 7c4793353..2f12512c4 100644 --- a/src/utils/rtkUtil.ts +++ b/src/utils/rtkUtil.ts @@ -23,6 +23,7 @@ import { getBpdmApiBase, getMiwBase, getAssetBase, + getSsiBase, } from 'services/EnvironmentService' import UserService from 'services/UserService' @@ -34,6 +35,14 @@ export const apiBaseQuery = () => ({ }, }) +export const apiSsiCredentialQuery = () => ({ + baseUrl: getSsiBase(), + prepareHeaders: (headers: Headers) => { + headers.set('authorization', `Bearer ${UserService.getToken()}`) + return headers + }, +}) + export const apiBpdmQuery = () => ({ baseUrl: getBpdmApiBase(), prepareHeaders: (headers: Headers) => { From 1e6178cb1968ed589cd8b99f52f49e4e48220aa1 Mon Sep 17 00:00:00 2001 From: lavanya-bmw <106523828+lavanya-bmw@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:58:47 +0530 Subject: [PATCH 2/5] fix(app release process): update roles endpoint (#737) https://github.com/eclipse-tractusx/portal-frontend/issues/704 --- CHANGELOG.md | 2 ++ .../pages/AppOverview/AppOverViewDetails.tsx | 4 ++-- .../TechnicalIntegration/index.tsx | 18 +++++++++--------- .../ValidateAndPublish/index.tsx | 4 ++-- .../components/CommonValidateAndPublish.tsx | 10 ++++++---- src/features/appManagement/apiSlice.ts | 7 +++---- 6 files changed, 24 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ec923157..277623f22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Change +- App Release Process + - Updated roles endpoint to get roles - Connect Credential Management UI with new Issuer Component ## 2.0.0-RC3 diff --git a/src/components/pages/AppOverview/AppOverViewDetails.tsx b/src/components/pages/AppOverview/AppOverViewDetails.tsx index b8775ebc2..dbefe59fa 100644 --- a/src/components/pages/AppOverview/AppOverViewDetails.tsx +++ b/src/components/pages/AppOverview/AppOverViewDetails.tsx @@ -28,7 +28,7 @@ import { Grid } from '@mui/material' import { useTranslation } from 'react-i18next' import { ConsentStatusEnum, - useFetchRolesDataQuery, + useFetchAppRolesDataQuery, useSubmitappMutation, } from 'features/appManagement/apiSlice' import { useCallback, useEffect, useMemo, useState } from 'react' @@ -50,7 +50,7 @@ export default function AppOverViewDetails({ const [cardImage, setCardImage] = useState('') const [fetchDocumentById] = useFetchDocumentByIdMutation() const [cardLanguage, setCardLanguage] = useState('en') - const { data } = useFetchRolesDataQuery(id ?? '') + const { data } = useFetchAppRolesDataQuery(id ?? '') const [submitapp] = useSubmitappMutation() const defaultValues = useMemo(() => { diff --git a/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx b/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx index 701eec338..8fc7076e2 100644 --- a/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx @@ -43,14 +43,14 @@ import { import { Dropzone, type DropzoneFile } from 'components/shared/basic/Dropzone' import { isString } from 'lodash' import { - type rolesType, useDeleteRolesMutation, useFetchAppStatusQuery, - useFetchRolesDataQuery, + useFetchAppRolesDataQuery, useFetchTechnicalUserProfilesQuery, useFetchUserRolesQuery, useSaveTechnicalUserProfilesMutation, useUpdateRoleDataMutation, + type updateRolePayload, } from 'features/appManagement/apiSlice' import { setAppStatus } from 'features/appManagement/actions' import SnackbarNotificationWithButtons from '../components/SnackbarNotificationWithButtons' @@ -73,7 +73,7 @@ export default function TechnicalIntegration() { const fetchAppStatus = useFetchAppStatusQuery(appId ?? '', { refetchOnMountOrArgChange: true, }).data - const { data, refetch: refetchRolesData } = useFetchRolesDataQuery( + const { data, refetch: refetchRolesData } = useFetchAppRolesDataQuery( appId ?? '', { refetchOnMountOrArgChange: true, @@ -580,12 +580,12 @@ export default function TechnicalIntegration() { )} - {data?.map((role: rolesType, index) => ( + {data?.map((role: updateRolePayload, index) => ( { - onChipDelete(role.roleId) + onChipDelete(role.role) }} /> ), color: 'white', children: ( - {role.description} + {role.descriptions?.[0].description} ), }, diff --git a/src/components/shared/basic/ReleaseProcess/ValidateAndPublish/index.tsx b/src/components/shared/basic/ReleaseProcess/ValidateAndPublish/index.tsx index 086706c2a..dec86b82a 100644 --- a/src/components/shared/basic/ReleaseProcess/ValidateAndPublish/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/ValidateAndPublish/index.tsx @@ -26,7 +26,7 @@ import { appIdSelector } from 'features/appManagement/slice' import { ConsentStatusEnum, useFetchAppStatusQuery, - useFetchRolesDataQuery, + useFetchAppRolesDataQuery, useSubmitappMutation, } from 'features/appManagement/apiSlice' import { setAppStatus } from 'features/appManagement/actions' @@ -48,7 +48,7 @@ export default function ValidateAndPublish({ const fetchAppStatus = useFetchAppStatusQuery(appId ?? '', { refetchOnMountOrArgChange: true, }).data - const { data } = useFetchRolesDataQuery(appId ?? '') + const { data } = useFetchAppRolesDataQuery(appId ?? '') useEffect(() => { if (fetchAppStatus) dispatch(setAppStatus(fetchAppStatus)) diff --git a/src/components/shared/basic/ReleaseProcess/components/CommonValidateAndPublish.tsx b/src/components/shared/basic/ReleaseProcess/components/CommonValidateAndPublish.tsx index 9796f24cc..bfa5beb10 100644 --- a/src/components/shared/basic/ReleaseProcess/components/CommonValidateAndPublish.tsx +++ b/src/components/shared/basic/ReleaseProcess/components/CommonValidateAndPublish.tsx @@ -45,7 +45,7 @@ import { ConsentStatusEnum, type DocumentData, DocumentTypeId, - type rolesType, + type updateRolePayload, } from 'features/appManagement/apiSlice' import ArticleOutlinedIcon from '@mui/icons-material/ArticleOutlined' import CommonService from 'services/CommonService' @@ -110,7 +110,7 @@ interface CommonValidateAndPublishType { | ReleaseProcessTypes.SERVICE_RELEASE | AppOverviewTypes.APP_OVERVIEW_DETAILS serviceTypes?: string - rolesData?: rolesType[] + rolesData?: updateRolePayload[] } export default function CommonValidateAndPublish({ @@ -532,9 +532,11 @@ export default function CommonValidateAndPublish({ {rolesData.length > 0 ? ( {rolesData?.map((role) => ( - + {role.role} - {role.description} + + {role.descriptions?.[0].description} + ))} diff --git a/src/features/appManagement/apiSlice.ts b/src/features/appManagement/apiSlice.ts index 080ee100f..514acc90c 100644 --- a/src/features/appManagement/apiSlice.ts +++ b/src/features/appManagement/apiSlice.ts @@ -304,9 +304,8 @@ export const apiSlice = createApi({ }), invalidatesTags: [Tags.APP], }), - fetchRolesData: builder.query({ - query: (appId: string) => - `/api/administration/user/owncompany/roles/apps/${appId}?languageShortName=${i18next.language}`, + fetchAppRolesData: builder.query({ + query: (appId: string) => `/api/apps/AppReleaseProcess/${appId}/roles`, }), updateRoleData: builder.mutation({ query: (data) => ({ @@ -449,7 +448,7 @@ export const { useFetchSalesManagerDataQuery, useSaveAppMutation, useDeleteAppReleaseDocumentMutation, - useFetchRolesDataQuery, + useFetchAppRolesDataQuery, useUpdateRoleDataMutation, useDeleteRolesMutation, useFetchNewDocumentByIdMutation, From 4aa4059f297e618f7dd90da88a1b62db8667243d Mon Sep 17 00:00:00 2001 From: nidhigarg-bmw <101316912+nidhigarg-bmw@users.noreply.github.com> Date: Thu, 25 Apr 2024 19:52:23 +0530 Subject: [PATCH 3/5] feat(ssi issuer): enable client id for ssi credential (#738) https://github.com/eclipse-tractusx/portal-frontend/issues/620 --- index.html | 2 +- scripts/inject-dynamic-env.sh | 4 ++-- src/services/EnvironmentService.ts | 3 +++ src/services/UserService.ts | 11 ++++++++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index f19af609e..45159416a 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@
diff --git a/scripts/inject-dynamic-env.sh b/scripts/inject-dynamic-env.sh index 7ee1e5f15..793f89883 100644 --- a/scripts/inject-dynamic-env.sh +++ b/scripts/inject-dynamic-env.sh @@ -20,9 +20,9 @@ ############################################################### # Define custom variable -custom_env_vars='{PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",SSI_CREDENTIAL_URL:"'$SSI_CREDENTIAL_URL'",BPDM_API_URL:"'$BPDM_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'"}' +custom_env_vars='{PORTAL_ASSETS_URL:"'$PORTAL_ASSETS_URL'",PORTAL_BACKEND_URL:"'$PORTAL_BACKEND_URL'",CENTRALIDP_URL:"'$CENTRALIDP_URL'",SSI_CREDENTIAL_URL:"'$SSI_CREDENTIAL_URL'",BPDM_API_URL:"'$BPDM_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'"}' # Define anchor variable -custom_env_vars_anchor='{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_API_URL:"https://business-partners.example.org/pool/api",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"}' +custom_env_vars_anchor='{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_API_URL:"https://business-partners.example.org/pool/api",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"}' # 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/services/EnvironmentService.ts b/src/services/EnvironmentService.ts index 8ed50f774..a5197026f 100644 --- a/src/services/EnvironmentService.ts +++ b/src/services/EnvironmentService.ts @@ -27,6 +27,8 @@ export const getClientIdSemantic = () => ENV.CLIENT_ID_SEMANTIC ?? '' export const getClientIdMiw = () => ENV.CLIENT_ID_MIW ?? '' +export const getClientIdSsiCredential = () => ENV.CLIENT_ID_SSI_CREDENTIAL ?? '' + export const getCentralIdp = () => ENV.CENTRALIDP_URL ?? '' export const getApiBase = () => ENV.PORTAL_BACKEND_URL ?? '' @@ -46,6 +48,7 @@ const EnvironmentService = { getClientId, getClientIdSemantic, getClientIdMiw, + getClientIdSsiCredential, getCentralIdp, getApiBase, getAssetBase, diff --git a/src/services/UserService.ts b/src/services/UserService.ts index f8a032786..27c0c021f 100644 --- a/src/services/UserService.ts +++ b/src/services/UserService.ts @@ -25,6 +25,7 @@ import { getCentralIdp, getClientId, getClientIdMiw, + getClientIdSsiCredential, getClientIdSemantic, getMiwBase, getRealm, @@ -51,6 +52,12 @@ const keycloakConfigMIW: Keycloak.KeycloakConfig = { clientId: getClientIdMiw(), } +const keycloakConfigSsiCredential: Keycloak.KeycloakConfig = { + url: getMiwBase(), + realm: getRealm(), + clientId: getClientIdSsiCredential(), +} + // Add an ESLint exception until there is a solution const KC = new Keycloak(keycloakConfig) @@ -116,8 +123,10 @@ const getRoles = (): Array => .concat( KC.tokenParsed?.resource_access[keycloakConfigSemantic.clientId]?.roles ) + .concat(KC.tokenParsed?.resource_access[keycloakConfigMIW.clientId]?.roles) .concat( - KC.tokenParsed?.resource_access[keycloakConfigMIW.clientId]?.roles + KC.tokenParsed?.resource_access[keycloakConfigSsiCredential.clientId] + ?.roles ) ?? [] const hasRole = (role: string) => getRoles()?.includes(role) From b8915e752c011114a70346cc52df63030fee2ee0 Mon Sep 17 00:00:00 2001 From: Evelyn Gurschler Date: Fri, 26 Apr 2024 09:34:02 +0200 Subject: [PATCH 4/5] docs(2.0.0-rc4): update changelog --- CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 277623f22..52900448d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,14 @@ ## 2.0.0-RC4 -### Change +### Feature + +- Connected Credential Management UI with new Issuer Component + + ### Bugfix - App Release Process - - Updated roles endpoint to get roles -- Connect Credential Management UI with new Issuer Component + - updated roles endpoint to get roles ## 2.0.0-RC3 From a215350894decbb209c60d73c39d5f48661d3863 Mon Sep 17 00:00:00 2001 From: Evelyn Gurschler Date: Fri, 26 Apr 2024 09:35:48 +0200 Subject: [PATCH 5/5] build(2.0.0-rc4): bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 90dff1746..627b91e44 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@catena-x/portal-frontend", - "version": "v2.0.0-RC3", + "version": "v2.0.0-RC4", "description": "Catena-X Portal Frontend", "author": "Catena-X Contributors", "license": "Apache-2.0",