diff --git a/.github/workflows/e2e-tests-xray_frontend.yml b/.github/workflows/e2e-tests-xray_frontend.yml index 782da21677..f86969bc58 100644 --- a/.github/workflows/e2e-tests-xray_frontend.yml +++ b/.github/workflows/e2e-tests-xray_frontend.yml @@ -116,7 +116,7 @@ jobs: CYPRESS_ADMIN_PW: ${{ secrets.TRACE_X_ADMIN_PW }} CYPRESS_USER_LOGIN: ${{ secrets.TRACE_X_USER_LOGIN }} CYPRESS_USER_PW: ${{ secrets.TRACE_X_USER_PW }} - REDIRECT_URI: https://traceability-portal-e2e-a.dev.demo.catena-x.net/dashboard + CYPRESS_REDIRECT_URI: https://traceability-portal-e2e-a.dev.demo.catena-x.net/dashboard - name: Submit results to Xray # we don't want to submit results to xray when it was run by PR diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 88686f29ac..a7726390f9 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -17,42 +17,42 @@ jobs: run: echo HELM_VERSION=$(cat charts/traceability-foss/CHANGELOG.md | sed -n 's/.*\[\([0-9]\+\.[0-9]\+\.[0-9]\+\)\].*/\1/p' | head -n 1) >> $GITHUB_ENV - name: Update Chart.yaml appVersion - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.appVersion = "${{ github.ref_name }}"' charts/traceability-foss/Chart.yaml - name: Update Chart.yaml version - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.version = "${{ env.HELM_VERSION }}"' charts/traceability-foss/Chart.yaml - name: Update frontend dependency version in Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.dependencies[0].version = "${{ env.HELM_VERSION }}"' charts/traceability-foss/Chart.yaml - name: Update backend dependency version in Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.dependencies[1].version = "${{ env.HELM_VERSION }}"' charts/traceability-foss/Chart.yaml - name: Update frontend version in frontend/Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.version = "${{ env.HELM_VERSION }}"' charts/traceability-foss/charts/frontend/Chart.yaml - name: Update frontend appVersion in frontend/Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.appVersion = "${{ github.ref_name }}"' charts/traceability-foss/charts/frontend/Chart.yaml - name: Update backend version in backend/Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.version = "${{ env.HELM_VERSION }}"' charts/traceability-foss/charts/backend/Chart.yaml - name: Update backend appVersion in frontend/Chart.yaml - uses: mikefarah/yq@v4.42.1 + uses: mikefarah/yq@v4.43.1 with: cmd: yq -i eval '.appVersion = "${{ github.ref_name }}"' charts/traceability-foss/charts/backend/Chart.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b531f5253..6857e53d51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ _**For better traceability add the corresponding GitHub issue number in each cha - #706 Created notification classes to support both alert and investigations - #706 Notification controller having the same endpoints as alerts and investigations controllers - #736 add contractAgreementId as searchable field for /contracts +- Added capitalization section in guidelines.md ### Changed - #709 Bumped spring-core from 6.0.17 to 6.1.5 @@ -32,6 +33,10 @@ _**For better traceability add the corresponding GitHub issue number in each cha - #718 update tj-actions/changed-files from v42 to v44 - #718 update maven-project-info-reports-plugin from 3.4.5 to 3.5.0 - #718 update jsonschema2pojo-core from 1.1.1 to 1.2.1 +- #718 migrate Spring Boot from 3.1.9 to 3.2.4 +- #630 Updated user manual with new part detailed view also for supplier and customer parts +- #736 fixed bug in request logic of contracts detailed view +- Improved the release documentation ### Removed - Shedlock, resilence4j, templateResolver as not used anymore diff --git a/DEPENDENCIES_BACKEND b/DEPENDENCIES_BACKEND index 52eb6fcef4..6bdeb0e558 100644 --- a/DEPENDENCIES_BACKEND +++ b/DEPENDENCIES_BACKEND @@ -108,7 +108,7 @@ maven/mavencentral/io.micrometer/micrometer-core/1.12.4, Apache-2.0 AND (Apache- maven/mavencentral/io.micrometer/micrometer-jakarta9/1.12.4, Apache-2.0, approved, #12923 maven/mavencentral/io.micrometer/micrometer-observation/1.12.4, Apache-2.0, approved, #11680 maven/mavencentral/io.micrometer/micrometer-registry-prometheus/1.11.4, Apache-2.0, approved, #9805 -maven/mavencentral/io.micrometer/micrometer-registry-prometheus/1.12.4, , restricted, clearlydefined +maven/mavencentral/io.micrometer/micrometer-registry-prometheus/1.12.4, Apache-2.0, approved, #14187 maven/mavencentral/io.minio/minio/8.5.6, Apache-2.0, approved, #9097 maven/mavencentral/io.opentelemetry/opentelemetry-api/1.29.0, Apache-2.0, approved, #10088 maven/mavencentral/io.opentelemetry/opentelemetry-api/1.31.0, Apache-2.0, approved, #11087 @@ -330,12 +330,12 @@ maven/mavencentral/org.hibernate.validator/hibernate-validator/8.0.1.Final, Apac maven/mavencentral/org.javassist/javassist/3.29.2-GA, Apache-2.0 AND LGPL-2.1-or-later AND MPL-1.1, approved, #6023 maven/mavencentral/org.jboss.logging/jboss-logging/3.5.0.Final, Apache-2.0, approved, #9471 maven/mavencentral/org.jboss.logging/jboss-logging/3.5.3.Final, Apache-2.0, approved, #9471 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.9.0, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.9.23, , restricted, clearlydefined +maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.9.0, Apache-2.0, approved, #14186 +maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.9.23, Apache-2.0, approved, #14186 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.6.10, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.9.23, , restricted, clearlydefined +maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.9.23, None, restricted, #14188 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.6.10, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.9.23, , restricted, clearlydefined +maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.9.23, None, restricted, #14185 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.6.20, Apache-2.0, approved, clearlydefined maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.9.23, Apache-2.0, approved, #11827 maven/mavencentral/org.jetbrains/annotations/24.1.0, Apache-2.0, approved, clearlydefined @@ -350,7 +350,7 @@ maven/mavencentral/org.junit.platform/junit-platform-launcher/1.10.2, EPL-2.0, a maven/mavencentral/org.junit.platform/junit-platform-suite-api/1.10.2, EPL-2.0, approved, #9707 maven/mavencentral/org.junit.platform/junit-platform-suite-commons/1.10.2, EPL-2.0, approved, #9716 maven/mavencentral/org.junit.platform/junit-platform-suite-engine/1.10.2, EPL-2.0, approved, #9710 -maven/mavencentral/org.junit.platform/junit-platform-suite/1.10.2, , restricted, clearlydefined +maven/mavencentral/org.junit.platform/junit-platform-suite/1.10.2, EPL-2.0, approved, #14183 maven/mavencentral/org.jvnet.mimepull/mimepull/1.9.15, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, CQ21484 maven/mavencentral/org.latencyutils/LatencyUtils/2.0.3, BSD-2-Clause, approved, CQ17408 maven/mavencentral/org.mockito/mockito-core/5.7.0, MIT AND (Apache-2.0 AND MIT) AND Apache-2.0, approved, #11424 @@ -387,7 +387,7 @@ maven/mavencentral/org.springframework.boot/spring-boot-starter-oauth2-client/3. maven/mavencentral/org.springframework.boot/spring-boot-starter-oauth2-resource-server/3.2.4, Apache-2.0, approved, #11931 maven/mavencentral/org.springframework.boot/spring-boot-starter-security/3.2.4, Apache-2.0, approved, #12069 maven/mavencentral/org.springframework.boot/spring-boot-starter-test/3.2.4, Apache-2.0, approved, #12917 -maven/mavencentral/org.springframework.boot/spring-boot-starter-thymeleaf/3.2.4, , restricted, clearlydefined +maven/mavencentral/org.springframework.boot/spring-boot-starter-thymeleaf/3.2.4, Apache-2.0, approved, #14184 maven/mavencentral/org.springframework.boot/spring-boot-starter-tomcat/3.2.4, Apache-2.0, approved, #11923 maven/mavencentral/org.springframework.boot/spring-boot-starter-validation/3.2.4, Apache-2.0, approved, #12921 maven/mavencentral/org.springframework.boot/spring-boot-starter-web/3.2.4, Apache-2.0, approved, #11916 diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 0d6d3b5aea..a2d52d4eab 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -3,40 +3,50 @@

Product Traceability FOSS Release guide

-## Release an app -Prerequisite: -Make sure eclipse / catena git repositories are in sync +# Release an app -1) Decide which version will be incremented. Following shows example for 1.0.0 -2) Create a release branch in [IRS](https://github.com/eclipse-tractusx/item-relationship-service) named release/trace-x-irs-client-lib-release +### Prerequisite: +- Make sure eclipse / catena git repositories are in sync +- Before releasing Trace-X, it is required to go through the [IRS Library Release](#irs-library-release) steps + +### IRS Library Release +The goal is to not use a -SNAPSHOT version in the Trace-X Release. +1) Check if the irs-registry-client version has a -SNAPSHOT suffix: [IRS Repo](https://github.com/eclipse-tractusx/item-relationship-service/blob/f731e2e7403b738d516a7a25b19c756cc32b04f3/pom.xml#L76) +2) If yes, continue with the next steps. If no, skip to the [Trace-X Release process](#trace-x-release-process) 3) Click on the [Update irs-registry-client Version workflow](https://github.com/eclipse-tractusx/item-relationship-service/actions/workflows/update-registry-library.yaml). -4) Select "Run workflow," choose the release branch and select the type of version increment major, minor or patch. Use the Semantic Versioning guidelines to accurately determine the specific type of version increment. [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Don't forget to check the box to remove the snapshot. -5) The irs lib version in (irs)[https://github.com/eclipse-tractusx/item-relationship-service/blob/65a42336b7ec7ae50690ec7590d05d8e3b15555a/pom.xml#L76] should align with the potential (newer one)[https://github.com/catenax-ng/tx-traceability-foss/blob/fb1130d4c1dd4f869e61d334310e99bc191fa0c7/pom.xml#L103] in trace-x main -6) A pull request (name: Update irs-registry-client to "Version") will be generated in which you have to make sure the irs lib version is now correct (change it manually if necessary). Check if Actions finish successfully. (If Dash IP Check fails, update the DEPENDENCIES file with the mvn command on the generated pull request branch) -7) Merge the created Pull request and make sure the release branch is deleted afterward (default behaviour). -8) In [IRS](https://github.com/eclipse-tractusx/item-relationship-service), the gitHub action [Upload to Central Maven Registry ](https://github.com/eclipse-tractusx/item-relationship-service/actions/workflows/maven-deploy.yaml) will release the irs-registry-client library with the version defined in step 3 -9) Create and Checkout release branch on catena /release/1.0.0 -10) Update in the above created release branch to the created one in step 3. -11) Edit changelog: Align the new version (1.0.0) with the changes and add new UNRELEASED section -12) Edit /charts/traceability-foss/CHANGELOG.md -13) Add an Entry for an incremented (patch) version (1.0.0 -> 1.0.1) -14) Push onto /release/1.0.0 catena and eclipse -15) Open Release App Page Catena: https://github.com/catenax-ng/tx-traceability-foss/releases -16) Draft a new release -17) On dropdown choose a tag - use the version 1.0.0 (Create new tag will appear - select it) -18) On dropdown target use your /release/1.0.0 -19) Title = Version of app -> 1.0.0 -20) Description = Changelog Content of app -21) Checkbox set as latest release -22) Verify that github action [Release](https://github.com/catenax-ng/tx-traceability-foss/actions/workflows/release.yaml) generation has been triggered -23) Verify that an automatic pull request has been opened (Prepare Helm release for next version) -24) Validate that the versions within that pull requests are correct -25) Merge pull request (Prepare Helm release for next version) -26) Merge release branch into main (when merging make sure to restore release branch since it should stay) -27) Open the github action for helm release generation: https://github.com/catenax-ng/tx-traceability-foss/actions/workflows/helm-chart-release.yaml -28) Execute it from main branch -29) Validate that the helm charts release has been generated within the release page -30) Create a new branch from release/1.0.0 and name it release/helm-environments-1.0.0 (helm app version not chart version) -31) Repeat step 8 to 23 for tractus-x: [GitHub Releases page](https://github.com/eclipse-tractusx/traceability-foss/releases) -32) Sync catena and eclipse main branch -33) Create a message in the Trace-X channel of the Eclipse Foundation Chat to notify the community about the new release (add a link to the tractus-x release) +4) Select "Run workflow" select the type of version increment major, minor or patch (Can be adjusted on generated PR branch). Check the box to remove the snapshot. Click on "Run". +5) A pull request (name: Update irs-registry-client to "Version") will be generated in which you have to make sure the irs lib version is now correct (change it manually if necessary). +6) Merge the generated Pull request +7) The GitHub action [Upload to Central Maven Registry ](https://github.com/eclipse-tractusx/item-relationship-service/actions/workflows/maven-deploy.yaml) will automatically release the irs-registry-client library with the new version defined in step 4 + +### Trace-X Release process + +1) Decide which to which version the release trace-x will be incremented. Following shows example for releasing a version 1.0.0 +2) Create and Checkout release branch on catena /release/1.0.0 +3) Optional: If [IRS Library Release](#irs-library-release) was needed: + 1) If the action of [IRS Library Release](#irs-library-release) step 7 was executed successfully + 2) Update in the above created release +4) Edit changelog: Align the new version (1.0.0) with the changes and add a new UNRELEASED section +5) Edit /charts/traceability-foss/CHANGELOG.md +6) Add an Entry for an incremented (patch) version (1.0.0 -> 1.0.1) +7) Update the [Compatability Matrix](https://github.com/catenax-ng/tx-traceability-foss/blob/main/COMPATIBILITY_MATRIX.md) with a new entry for the release version +8) Push onto /release/1.0.0 catena and eclipse +9) Open Release App Page Catena: https://github.com/catenax-ng/tx-traceability-foss/releases +10) Draft a new release +11) On dropdown choose a tag - use the version 1.0.0 (Create new tag will appear - select it) +12) On dropdown target use your /release/1.0.0 +13) Title = Version of app -> 1.0.0 +14) Description = Changelog Content of app +15) Checkbox set as latest release +16) Verify that GitHub action [Release](https://github.com/catenax-ng/tx-traceability-foss/actions/workflows/release.yaml) generation has been triggered +17) Verify that an automatic pull request has been opened (Prepare Helm release for next version) +18) Validate that the versions within that pull requests are correct +19) Merge pull request (Prepare Helm release for next version) +20) Merge release branch into main (when merging make sure to restore release branch since it should stay) +21) Open the GitHub action for helm release generation: https://github.com/catenax-ng/tx-traceability-foss/actions/workflows/helm-chart-release.yaml +22) Execute it from main branch +23) Validate that the helm charts release has been generated within the release page +24) Create a new branch from release/1.0.0 and name it release/helm-environments-1.0.0 (helm app version not chart version) +25) Repeat step 9 to 24 for tractus-x: [GitHub Releases page](https://github.com/eclipse-tractusx/traceability-foss/releases) +26) Sync catena and eclipse main branch +27) Create a message in the Trace-X channel of the Eclipse Foundation Chat to notify the community about the new release (add a link to the tractus-x release) diff --git a/docs/src/docs/arc42/cross-cutting/safety-security.adoc b/docs/src/docs/arc42/cross-cutting/safety-security.adoc index 317366bee7..afe3c3c281 100644 --- a/docs/src/docs/arc42/cross-cutting/safety-security.adoc +++ b/docs/src/docs/arc42/cross-cutting/safety-security.adoc @@ -13,8 +13,7 @@ JWT token should also contain two claims: The list of values will be converted to roles by Trace-X. Currently, Trace-X API handles three roles: **'User'** and **'Supervisor'** and **'Admin'.** -// TODO: Add Link to the role matrix -You can have a look at the rights and roles matrix in the system overview of the administration guide. +You can have a look at the https://github.com/eclipse-tractusx/traceability-foss/blob/main/docs/src/docs/administration/system-overview.adoc#rights-and-role-matrix-of-trace-x[rights and role matrix] in the system overview of the administration guide. === Trace-X as EDC client diff --git a/docs/src/docs/arc42/introduction-goals/requirements.adoc b/docs/src/docs/arc42/introduction-goals/requirements.adoc index f63e2dba08..2b9b7ec4df 100644 --- a/docs/src/docs/arc42/introduction-goals/requirements.adoc +++ b/docs/src/docs/arc42/introduction-goals/requirements.adoc @@ -8,8 +8,8 @@ * Notifications/Messages regarding quality-related incidents and a tool for inspecting the supply chain. == Essential features -* List and view manufactured parts based on BoM AsBuild -* List and view planned parts based on BoM AsPlanned +* List, view and publish manufactured parts based on BoM AsBuild +* List, view and publish planned parts based on BoM AsPlanned * Filter and search functionality on part views * Show detailed information on manufactured parts from AAS description assets and Aspects * Uses Submodels SerialPart, AssemblyPartRelationship and Batch diff --git a/docs/src/docs/arc42/solution-strategy/structure.adoc b/docs/src/docs/arc42/solution-strategy/structure.adoc index fde12a0419..e9f81a699a 100644 --- a/docs/src/docs/arc42/solution-strategy/structure.adoc +++ b/docs/src/docs/arc42/solution-strategy/structure.adoc @@ -6,7 +6,7 @@ It roughly can be broken down into the following parts: * Asset controllers to get the asset information * Dashboard controller to get dashboard related summed up information * Registry controller to fetch assets from the Digital Twin Registry -* Notification controllers to get notification information and create EDC notification offers +* Notification controller to get notification information and create EDC notification offers * Submodel controller for providing asset data functionality * Import controller for importing Trace-X data for data provisioning * Contract controller to get information about contract agreements diff --git a/docs/src/docs/user/user-manual.adoc b/docs/src/docs/user/user-manual.adoc index 205d8b6c25..d5aa9ae38f 100644 --- a/docs/src/docs/user/user-manual.adoc +++ b/docs/src/docs/user/user-manual.adoc @@ -101,26 +101,26 @@ Navigates to the Catena-X portal. Only applicable for the admin user role. Possibility to check the network status based on logfiles and will provide access to configuration possibilities for the application. -==== Contracts View and export +==== Contracts view and export -In the Contracts View an admin user can view contract agreements and sort them by the contract ID. +In the Contracts view an admin user can view contract agreements and sort them by the contract ID. -Also, it's possible to select contracts and export/download them as a .csv file +Also, it's possible to select contracts and export/download them as a .csv file. image::https://raw.githubusercontent.com/eclipse-tractusx/traceability-foss/main/docs/src/images/arc42/user-guide/admin_contract_view.png[] -By clicking on the burger menu of a data row you can get to the detailed view of a contract +By clicking on the burger menu of a data row you can get to the detailed view of a contract. -==== Contract Detailed View +==== Contract detailed view -The Contract Detailed View is divided into two sections. +The contract detailed view is divided into two sections. On the left, you'll find a general overview of the contract data. On the right, policy details are -displayed in JSON format. Use the View Selector to switch between -JSON View and JSON Tree View. Expand the policy details card on the right +displayed in JSON format. Use the view selector to switch between +JSON view and JSON tree view. Expand the policy details card on the right upper side for full-width display. image::https://raw.githubusercontent.com/eclipse-tractusx/traceability-foss/main/docs/src/images/arc42/user-guide/admin_contract_detailed_view.png[] @@ -290,7 +290,7 @@ Information about the identifiers at the customer for the respective part/batch. ==== Traction battery code data If the asset has the "traction battery code" aspect model, an additional section underneath will be displayed. -In this section there are detailed information about the traction battery and a table with its subcomponents +In this section there is detailed information about the traction battery and a table with its subcomponents ==== Creation of a quality incident from detailed view diff --git a/docs/src/images/arc42/user-guide/customer-parts-list-detailed-view.png b/docs/src/images/arc42/user-guide/customer-parts-list-detailed-view.png index a895bc0628..39468fb1d7 100644 Binary files a/docs/src/images/arc42/user-guide/customer-parts-list-detailed-view.png and b/docs/src/images/arc42/user-guide/customer-parts-list-detailed-view.png differ diff --git a/docs/src/images/arc42/user-guide/supplier-parts-list-detailed-view.png b/docs/src/images/arc42/user-guide/supplier-parts-list-detailed-view.png index f071b4a852..8ee3be52d7 100644 Binary files a/docs/src/images/arc42/user-guide/supplier-parts-list-detailed-view.png and b/docs/src/images/arc42/user-guide/supplier-parts-list-detailed-view.png differ diff --git a/docs/src/uml-diagrams/arc42/cross-cutting/domain-model/domain-model-quality-notifications.puml b/docs/src/uml-diagrams/arc42/cross-cutting/domain-model/domain-model-quality-notifications.puml index f821996874..03b2bd71af 100644 --- a/docs/src/uml-diagrams/arc42/cross-cutting/domain-model/domain-model-quality-notifications.puml +++ b/docs/src/uml-diagrams/arc42/cross-cutting/domain-model/domain-model-quality-notifications.puml @@ -7,6 +7,8 @@ title: Quality Notification Domain class QualityNotification { bpn : BPN; + title : String; + type: QualityNotificationType; notificationId : QualityNotificationId; notificationStatus : QualityNotificationStatus; description: String; @@ -19,6 +21,11 @@ class QualityNotification { messages: List; } +enum QualityNotificationType{ + ALERT; + INVESTIGATION; +} + class QualityNotificationId { id: Long; } @@ -61,6 +68,7 @@ enum QualityNotificationStatus{ QualityNotification --> QualityNotificationId QualityNotification --> BPN +QualityNotification --> QualityNotificationType QualityNotification --> QualityNotificationStatus QualityNotification --> QualityNotificationSide QualityNotification *-- QualityNotificationMessage diff --git a/docs/src/uml-diagrams/arc42/runtime-view/data-consumption-process.puml b/docs/src/uml-diagrams/arc42/runtime-view/data-consumption-process.puml index 81e4c40908..13255f1ef1 100644 --- a/docs/src/uml-diagrams/arc42/runtime-view/data-consumption-process.puml +++ b/docs/src/uml-diagrams/arc42/runtime-view/data-consumption-process.puml @@ -10,7 +10,7 @@ participant IRS User -> TraceX: Open asset list TraceX -> DTR: lookup assets by configured BPN rnote right TraceX -Once per day, schedule based +Every 2 hours, schedule based end rnote TraceX <-- DTR: List diff --git a/frontend/GUIDELINES.md b/frontend/GUIDELINES.md index 7e62794b6f..b24c67ca98 100644 --- a/frontend/GUIDELINES.md +++ b/frontend/GUIDELINES.md @@ -206,6 +206,13 @@ You might find some CSS warnings on vscode. To disable those, you must configure This prevents the default linter from validating the css. +### Capitalization +Please make sure to follow this [capitalization guideline](https://developers.google.com/style/capitalization) to keep consistent capitalization throughout the UI. + +The most significant rules are: +- The start of a header / label / sentence begins with an upper case followed by lowercase letters +- Domain specific names such as "As-Built", "As-Planned" can also be written in upper case even when the letter is not at the start of a header / label / sentence. + ### Icons We use the open source icons from [Material Icons](https://fonts.google.com/icons?query=Material+Icon). diff --git a/frontend/TESTING.md b/frontend/TESTING.md index 5deaad5eca..11c0e4bef7 100644 --- a/frontend/TESTING.md +++ b/frontend/TESTING.md @@ -27,7 +27,8 @@ To be able to use Behavior-driven development (BDD) approach we have configured ### Using host machine browsers - local env (via cypress app): - - run command `ng e2e` - it should open new window with Cypress tool + - Prerequisite: Having a cypress.local.config.ts file which contains all env variables. It will be ignored by git. + - run command `npm run cypress:local` - it should open new window with Cypress tool - click on "E2E testing" and then on "Start E2E Testing in Chrome" - you should see new window under url: http://localhost:4200/\_\_/#/specs when you can click on given scenario to run it. - local env (run tests in command line): `yarn run cypress:run` diff --git a/frontend/package.json b/frontend/package.json index 16e3509f83..09e6104f9a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,6 +33,7 @@ "e2e": "ng e2e", "cypress:open": "cypress open", "cypress:local": "cypress open --config-file cypress.local.config.ts", + "cypress:run-local": "cypress run --config-file cypress.local.config.ts", "cypress:run": "cypress run" }, "private": true, diff --git a/frontend/src/app/modules/page/admin/presentation/contracts/contracts.component.ts b/frontend/src/app/modules/page/admin/presentation/contracts/contracts.component.ts index 7855cc9369..c4974ce485 100644 --- a/frontend/src/app/modules/page/admin/presentation/contracts/contracts.component.ts +++ b/frontend/src/app/modules/page/admin/presentation/contracts/contracts.component.ts @@ -34,7 +34,6 @@ export class ContractsComponent { this.contractsFacade.setContracts(0,10,[null,null]); } }) - console.log("ngOnInit") this.pagination = { page: 0, pageSize: 10, sorting: [ '', null ] }; this.tableConfig = { diff --git a/frontend/src/app/modules/page/admin/presentation/contracts/contracts.facade.ts b/frontend/src/app/modules/page/admin/presentation/contracts/contracts.facade.ts index 440b54d10e..a6d8cba5df 100644 --- a/frontend/src/app/modules/page/admin/presentation/contracts/contracts.facade.ts +++ b/frontend/src/app/modules/page/admin/presentation/contracts/contracts.facade.ts @@ -1,12 +1,12 @@ -import {Injectable} from '@angular/core'; -import {Pagination} from '@core/model/pagination.model'; -import {Contract} from '@page/admin/core/admin.model'; -import {AdminService} from '@page/admin/core/admin.service'; -import {ContractsState} from '@page/admin/presentation/contracts/contracts.state'; -import {provideDataObject} from '@page/parts/core/parts.helper'; -import {TableHeaderSort} from '@shared/components/table/table.model'; -import {View} from '@shared/model/view.model'; -import {Observable, Subject, Subscription} from 'rxjs'; +import { Injectable } from '@angular/core'; +import { Pagination } from '@core/model/pagination.model'; +import { Contract } from '@page/admin/core/admin.model'; +import { AdminService } from '@page/admin/core/admin.service'; +import { ContractsState } from '@page/admin/presentation/contracts/contracts.state'; +import { provideDataObject } from '@page/parts/core/parts.helper'; +import { TableHeaderSort } from '@shared/components/table/table.model'; +import { View } from '@shared/model/view.model'; +import { Observable, Subject, Subscription } from 'rxjs'; @Injectable() export class ContractsFacade { @@ -46,7 +46,7 @@ export class ContractsFacade { public setSelectedContractById(contractId: string): void { this.selectedContractSubscription = this.adminService.getContracts(0, 10, [null,null], {contractId: [contractId]}).subscribe({ - next: data => (this.contractsState.selectedContract = { data: data.content as unknown as Contract}), + next: data => (this.contractsState.selectedContract = { data: data.content[0] as unknown as Contract}), error: error => (this.contractsState.selectedContract = {error}) }) } diff --git a/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.html b/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.html index 37f6bda677..b703b7cacf 100644 --- a/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.html +++ b/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.html @@ -72,104 +72,6 @@ -
- - -

- find_in_page - {{ 'pageTitle.investigations' | i18n }} -

-
- - - - drafts - - {{ 'commonAlert.tabs.received' | i18n }} - - - -
-
- - -
- remove_red_eye - {{ 'commonAlert.viewAll' | i18n }} -
-
-
-
-
- - - - -
-
- - - drafts - - {{ 'commonAlert.tabs.queuedAndRequested' | i18n }} - - - -
-
- - -
- remove_red_eye - {{ 'commonAlert.viewAll' | i18n }} -
-
-
-
-
- - - - -
-
-
-
- -
@@ -188,7 +90,7 @@

drafts - {{ 'commonAlert.tabs.received' | i18n }} + {{ 'commonAlert.tabs.queuedAndRequested' | i18n }} @@ -213,12 +115,12 @@

@@ -229,7 +131,7 @@

drafts - {{ 'commonAlert.tabs.queuedAndRequested' | i18n }} + {{ 'commonAlert.tabs.received' | i18n }} @@ -254,12 +156,12 @@

diff --git a/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.ts b/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.ts index 68bf92c159..0edd845bf4 100644 --- a/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.ts +++ b/frontend/src/app/modules/page/dashboard/presentation/dashboard.component.ts @@ -70,7 +70,7 @@ export class DashboardComponent implements OnInit, OnDestroy { const { link: alertLink, queryParams: alertQueryParams, - } = getRoute(ALERT_BASE_ROUTE, NotificationStatusGroup.RECEIVED); + } = getRoute(ALERT_BASE_ROUTE, NotificationStatusGroup.QUEUED_AND_REQUESTED); this.alertLink = alertLink; this.alertParams = alertQueryParams; diff --git a/frontend/src/app/modules/shared/components/request-notification/request-notification.component.ts b/frontend/src/app/modules/shared/components/request-notification/request-notification.component.ts index de6559ed9c..b9ea051f40 100644 --- a/frontend/src/app/modules/shared/components/request-notification/request-notification.component.ts +++ b/frontend/src/app/modules/shared/components/request-notification/request-notification.component.ts @@ -97,8 +97,9 @@ export class RequestNotificationComponent { const { description, bpn, severity } = this.formGroup.value; const { link, queryParams } = getRoute(ALERT_BASE_ROUTE, NotificationStatusGroup.QUEUED_AND_REQUESTED); - let type = this.isInvestigation ? 'INVESTIGATION' : 'ALERT'; + + this.notificationService.createAlert(partIds, description, severity, bpn, isAsBuilt, type).subscribe({ next: () => this.onSuccessfulSubmit(link, queryParams), error: (err) => this.onUnsuccessfulSubmit(err.error.message), diff --git a/frontend/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html b/frontend/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html index 6641630b6a..d96fe73094 100644 --- a/frontend/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html +++ b/frontend/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html @@ -26,7 +26,7 @@
{{ toastMessage.message | i18n }} {{toastMessage.stringMessage}} {{toastMessage?.actions[0].text | i18n}} + href="{{toastMessage?.actions[0].link}}?tabIndex={{toastMessage?.actions[0]?.linkQueryParams?.tabIndex}}">{{toastMessage?.actions[0].text | i18n}} spring-boot-starter-oauth2-resource-server - org.springframework.security diff --git a/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asbuilt/service/AssetAsBuiltServiceImpl.java b/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asbuilt/service/AssetAsBuiltServiceImpl.java index 93b8c389f6..984eb35784 100644 --- a/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asbuilt/service/AssetAsBuiltServiceImpl.java +++ b/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asbuilt/service/AssetAsBuiltServiceImpl.java @@ -70,6 +70,7 @@ protected BomLifecycle getBomLifecycle() { return BomLifecycle.AS_BUILT; } + @Override protected JobRepository getJobRepository() { return jobRepository; } diff --git a/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asplanned/service/AssetAsPlannedServiceImpl.java b/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asplanned/service/AssetAsPlannedServiceImpl.java index 302e2ac429..a4c23b070d 100644 --- a/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asplanned/service/AssetAsPlannedServiceImpl.java +++ b/tx-backend/src/main/java/org/eclipse/tractusx/traceability/assets/domain/asplanned/service/AssetAsPlannedServiceImpl.java @@ -65,6 +65,7 @@ protected BomLifecycle getBomLifecycle() { return BomLifecycle.AS_PLANNED; } + @Override protected JobRepository getJobRepository() { return jobRepository; } diff --git a/tx-backend/src/test/java/org/eclipse/tractusx/traceability/integration/common/config/RestAssuredConfig.java b/tx-backend/src/test/java/org/eclipse/tractusx/traceability/integration/common/config/RestAssuredConfig.java index 346b246b9a..ab3d73a23e 100644 --- a/tx-backend/src/test/java/org/eclipse/tractusx/traceability/integration/common/config/RestAssuredConfig.java +++ b/tx-backend/src/test/java/org/eclipse/tractusx/traceability/integration/common/config/RestAssuredConfig.java @@ -32,7 +32,7 @@ public class RestAssuredConfig { private final ServerProperties serverProperties; @EventListener(WebServerInitializedEvent.class) - void onServletContainerInitialized(WebServerInitializedEvent event) { + void onServletContainerInitialized() { RestAssured.port = serverProperties.getPort(); } } diff --git a/tx-cucumber-tests/src/test/java/org/eclipse/tractusx/traceability/test/tooling/rest/RestProvider.java b/tx-cucumber-tests/src/test/java/org/eclipse/tractusx/traceability/test/tooling/rest/RestProvider.java index 81f102c5d1..f346f205bb 100644 --- a/tx-cucumber-tests/src/test/java/org/eclipse/tractusx/traceability/test/tooling/rest/RestProvider.java +++ b/tx-cucumber-tests/src/test/java/org/eclipse/tractusx/traceability/test/tooling/rest/RestProvider.java @@ -174,7 +174,7 @@ public void closeNotification(final Long notificationId) { )) .then(); try { - ValidatableResponse validatableResponse = result.statusCode(HttpStatus.SC_NO_CONTENT); + result.statusCode(HttpStatus.SC_NO_CONTENT); return true; } catch (Exception e) { return false;