Item Relationship Service (IRS)

Apache 2 License
Non-code license: CC BY 4.0 Build Coverage Quality Gate Status CodeQL
Kics Trivy Docker Hub Scan OWASP Dependency Check Eclipse-dash Tavern IRS API test CucumberReports: item-relationship-service

Introduction

Vision and Mission Statement

The IRS is providing a technical API Endpoint in the Catena-X Network, which builds an item tree representation of given digital twins stored across the industry. Therefore, it is a key component for the Network to provide data chains along the value chain in the industry.

The vision for the Item Relationship Service is to provide an easy access endpoint for complex distributed digital twins across Catena-X members. It abstracts the access from separated digital twins towards a connected data chain of twins and provides those. It enables to apply business logic on complex distributed digital twins across company borders.

What is the IRS?

Within the Catena-X network, the so-called Item Relationship Service (IRS) forms an essential foundation for various services and products. Within the Catena-X use cases, the IRS serves to increase business value. For example, the IRS provides functionalities to serve requirements, such as occasion-based Traceability, from the Supply Chain Act. In doing so, IDSA and Gaia-X principles, such as data interoperability and sovereignty, are maintained on the Catena-X network and access to dispersed data is enabled. Data chains are established as a common asset.

With the help of the IRS, data chains are to be provided ad-hoc across n-tiers within the Catena-X network. To realize these data chains, the IRS relies on data models of the Traceability use case and provides the federated data chains to customers or applications. Furthermore, the target picture of the IRS includes the enablement of new business areas by means of data chains along the value chain in the automotive industry.

Source Layout

The IRS project consists of several different parts:

Folder Description Further information
.config Configuration, rules and suppression files for code quality check tools etc. .config README
.github Github configuration such as workflow definitions.
.idea Configuration for development via IntelliJ.
.run Run configurations for running the IRS in IntelliJ.
charts HELM charts.
charts/item-relationship-service IRS HELM chart for running the IRS with and its direct dependencies in kubernetes. IRS HELM charts documentation
docs Concepts and documentation. Docs README
irs-api The IRS API.
irs-common Common classes of the IRS.
irs-cucumber-tests Cucumber tests for the IRS. Cucumber Tests README
irs-edc-client The EDC client module which is responsible for communicating with the EDCs.
irs-integration-tests Integration tests of the IRS.
irs-load-tests Load tests for the IRS. IRS Load Tests README
irs-models Model classes.
irs-parent-spring-boot Spring Boot parent POM.
irs-policy-store The IRS policy store, an API to store and retrieve accepted EDC policies.
irs-registry-client Digital Twin Registry Client. Digital Twin Registry Client README
irs-report-aggregate This Maven module aggregates the test coverage reports of all modules.
irs-testing This module contains testing utilities for the IRS like testcontainers, Wiremock configurations and requests etc.
local This folder contains resources for local development and demonstration.
local/demo Showcases the IRS ESS top-down investigation use-case. ess-demo.py README
local/deployment HELM charts for local deployment of the IRS.
local/development This folder contains resources relevant for setting up the local development environment such as the commit message check hook.
local/testing/request-collection REST Request Collection for Insomnia. REST Request Collection README
local/testing/api-tests Tavern API tests for the IRS. Tavern API Tests README
local/testing/testdata Test data. Test data README

Installation

This section describes both deployment on kubernetes via Helm and local deployment for development.

Helm Deployment

See INSTALL.

Local Deployment

The following subsection provides instructions for running the infrastructure on docker-compose and the application in the IDE.

Start the application with the commands in the subsection further below. After everything is up and running the local IRS API is available at the following URLs:

Docker-compose + IDE

  1. cd local/deployment
  2. Start the necessary infrastructure by running docker-compose up
  3. Start the application from your favorite IDE. For IntelliJ, a run configuration is available in the .run folder.

In case of problems connecting to MinIO check whether the MinIO console is accessible in your webbrowser (see URL in the output of step 2). You might need to wait some time before MinIO is up and accepts connections. If that does not help, execute docker-compose down and repeat from step 2.

Usage

See Usage.

Documentation

Monitoring

See Architecture Documentation - Monitoring.

Tests

See TESTS.

Changelog and Compatibility Matrix

Known Issues and Limitations

See Bugs & Security Incidents.

Reporting Bugs and Vulnerabilities

Please distinguish bugs and vulnerabilities when reporting:

Iteration Notes and Discussions

For each iteration we create a page under the GitHub discussions section where we document the iteration goal and the sprint roles. Example: PI 12 iteration 3.

If you have any suggestions feel free to join any discussion or create a new one in the GitHub discussions section.

Contributing

See CONTRIBUTING.

FAQ

See FAQ.

Licenses

For used licenses, please see the NOTICE.

Notice for Docker Image

Below you can find the information regarding Docker Notice for this application.

Contact

See CONTACT.