Skip to content

Commit 9a9b4f4

Browse files
authored
docs: arc42 enhancement with business context (eclipse-tractusx#158)
* docs(update):Update Architecture Constraints description * docs:update Context and scope documentation * docs: update Requirements --------- Reviewed-By: Phil Schneider <[email protected]>
1 parent 8b9bffa commit 9a9b4f4

File tree

3 files changed

+75
-30
lines changed

3 files changed

+75
-30
lines changed

docs/architecture/Architecture Constraints.md

+39-19
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,53 @@
1-
# Architecture Constraints
1+
# Architecture Constraints Documentation
22

3-
## General
3+
## Overview
44

5-
- The SSI Credential Issuer is a central API for the handling of credentials. It handles the wallet communication for the creation and revocation of credentials of the issuer and holder. Another purpose is the expiry handling and automatic revocation of already expired credentials. There is no plan to implement an UI at the current stage.
5+
The following document outlines the architecture constraints for the SSI Credential Issuer App. This App serves as a central point for credential handling, including creation, revocation, and expiration management. The constraints outlined in this document are intended to guide the development and deployment of the system to ensure it meets the specified requirements and adheres to the defined standards.
66

7-
- Run anywhere: can be deployed as a docker image, e. g. on Kubernetes (platform-independent, cloud, on prem or local).
7+
## General Constraints
88

9-
## Developer
9+
### System Purpose
1010

11-
- OpenSource software first - FOSS licenses approved by the eclipse foundation has to be used. It could represent the initial set that the CX community agrees on to regulate the content contribution under FOSS licenses.
11+
- **Credential Management**: The SSI Credential Issuer App is designed to manage digital credentials, handling tasks such as creation, revocation, and automatic expiration of credentials for both issuers and holders.
12+
- **Communication**: The App facilitates communication with wallets, enabling the management of credentials.
13+
- **No User Interface (UI)**: The current development plan does not include the implementation of a user interface. However an user interface interaction got implemented as part of the portal project.
1214

13-
- Coding guidelines for FE and BE are defined and are to be followed for all portal related developments.
15+
### Deployment
1416

15-
- Apache License 2.0 - Apache License 2.0 is one of the approved licenses which should be used to respect and guarantee Intellectual property (IP).
17+
- **Run Anywhere**: The system is designed to be containerized and deployable as a Docker image. This ensures it can run on various platforms, including cloud environments, on-premises infrastructure, or locally.
18+
- **Platform-Independent**: The application is platform-independent, capable of running on Kubernetes or similar orchestration platforms.
1619

17-
- Code Analysis, Linting and Code Coverage - Consistent style increases readability and maintainability of the code base. Hence, we use analyzers to enforce consistency and style rules. We enforce the code style and rules in the CI to avoid merging code that does not comply with standards.
20+
## Developer Constraints
1821

19-
## Code analysis, linting and code coverage
22+
### Open Source Software
2023

21-
As part of the standard reviews, following code analysis and security checks have been executed:
24+
- **FOSS Licenses**: All software used must be open-source, with licenses approved by the Eclipse Foundation. These licenses form the initial set agreed upon by the CX community to regulate content contributions.
25+
- **Apache License 2.0**: The Apache License 2.0 is selected as the approved license to respect and guarantee intellectual property rights.
2226

23-
- SonarCloud Code Analysis
24-
- Thread Modelling Analysis
25-
- Static Application Security Testing (SAST)
26-
- Dynamic Application Security Testing (DAST)
27-
- Secret Scans
28-
- Software Composition Analysis (SCA)
29-
- Container Scans
30-
- Infrastructure as Code (IaC)
27+
### Development Standards
28+
29+
- **Coding Guidelines**: Defined coding guidelines for frontend (FE) and backend (BE) development must be followed for all portal-related developments.
30+
- **Consistency Enforcement**: Code analysis tools, linters, and code coverage metrics are used to enforce coding standards and maintain a consistent style. These standards are enforced through the Continuous Integration (CI) process to prevent the merging of non-compliant code.
31+
32+
## Code Analysis and Security
33+
34+
To ensure code quality and security, the following analyses and checks are performed during standard reviews:
35+
36+
### Code Quality Checks
37+
38+
- **SonarCloud Code Analysis**: Automated code review tool to detect code quality issues.
39+
- **Code Linting**: Tools to enforce coding style and detect syntax errors.
40+
- **Code Coverage**: Metrics to ensure a sufficient percentage of the codebase is covered by automated tests.
41+
42+
### Security Checks
43+
44+
- **Thread Modelling Analysis**: Assessment of potential security threats and vulnerabilities.
45+
- **Static Application Security Testing (SAST)**: Analysis of source code for security vulnerabilities.
46+
- **Dynamic Application Security Testing (DAST)**: Testing of the application in its running state to find security vulnerabilities.
47+
- **Secret Scans**: Detection of sensitive information such as passwords or API keys in the codebase.
48+
- **Software Composition Analysis (SCA)**: Evaluation of open-source components for security risks.
49+
- **Container Scans**: Analysis of Docker container images for vulnerabilities.
50+
- **Infrastructure as Code (IaC)**: Analysis of infrastructure definitions for security and compliance.
3151

3252
## NOTICE
3353

docs/architecture/Context and scope.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22

33
## Business Context
44

5-
The SSI credential issuer is created to enable the communication with wallets and handle the creation, revocation and expiry of credentials.
6-
Additionally it gives the user a overview of available use case credentials.
5+
The Self-Sovereign Identity (SSI) credential issuer core purpose is to facilitate seamless communication with digital wallets, which are essential tools for managing digital identities. Being responsible for the critical functions of creating, revoking, and managing the expiry of credentials. This ensures that issuers maintain control over their issues digital identities.
6+
7+
To further enhance the user experience, the SSI credential issuer provides users with a comprehensive overview of available use case credentials. By doing so, it empowers users to make informed decisions about which credentials to acquire and use. The business context of the SSI credential issuer is thus centered around providing a robust, user-friendly, and secure mechanism for identity management.
78

89
## Technical Context
910

10-
The SSI credential issuer comprise the technical foundation for interaction, monitoring, auditing and further functionalities. They are state of the art in terms of technology portfolio, consist of open-source components whenever possible and are open-sourced themselves 100%.
11+
From a technical standpoint, the SSI credential issuer is built on a foundation that promotes interaction, monitoring, auditing, and a host of other functionalities that are crucial for maintaining a secure and reliable identity management system.
12+
13+
A key aspect of the technical context is the commitment to open-source principles. The SSI credential issuer is constructed with open-source components to the greatest extent possible, fostering a collaborative and transparent development environment. Moreover, the entire codebase of the SSI credential issuer is open-sourced, reflecting a 100% commitment to the open-source community.
1114

1215
## NOTICE
1316

docs/architecture/Requirements.md

+30-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,38 @@
11
# Requirements overview
22

3-
## What is the Portal & Marketplace Product?
3+
The development and deployment of the Self-Sovereign Identity (SSI) credential issuer necessitate a comprehensive set of requirements that span across various domains including functional, security, performance, and usability aspects. This overview encapsulates the fundamental requirements that will guide the design and implementation of the SSI credential issuer to ensure it meets the intended objectives and user needs.
44

5-
The SSI Credential Issuer is a central API for the handling of credentials. It handles the wallet communication for the creation and revocation of credentials of the issuer and holder. Another purpose is the expiry handling and automatic revocation of already expired credentials. There is no plan to implement an UI at the current stage.
5+
## Functional Requirements
66

7-
## Requirements
7+
- **Credential Management**: The system must support the creation, issuance, revocation, and expiration of digital credentials.
8+
- **Communication Interface**: Seamless interaction with digital wallets and other SSI services must be facilitated through a robust communication interface.
9+
- **Interoperability**: The issuer must be compatible with various wallet applications and adhere to relevant SSI standards.
10+
- **Scalability**: The system should be designed to scale efficiently as the number of users and credentials grows.
811

9-
<!-- TODO (JJ): could you please add the requirements -->
10-
For Catena-X Member Companies
11-
|ID|Title|Requirement|
12-
|--------|--------|--------|
13-
|REQ|tbd|tbd|
12+
## Security Requirements
13+
14+
- **Authentication and Authorization**: Secure methods must be employed to authenticate users and authorize actions within the system.
15+
- **Data Protection**: Personal and sensitive data should be encrypted and protected from unauthorized access.
16+
- **Audit Trails**: The system should maintain detailed logs for all actions to enable monitoring and auditing.
17+
- **Compliance**: The issuer must comply with relevant privacy and security regulations such as GDPR, CCPA, etc.
18+
19+
## Performance Requirements
20+
21+
- **Response Time**: The system should provide timely responses to user requests to ensure a smooth user experience.
22+
- **Throughput**: It must be capable of handling a high volume of transactions and operations without degradation in performance.
23+
- **Reliability**: High availability and fault tolerance must be ensured to maintain continuous operation.
24+
25+
## Usability Requirements
26+
27+
- **Accessibility**: The interface should be accessible to a diverse user base, including those with disabilities.
28+
- **Simplicity**: The design should be intuitive, allowing users to easily navigate and perform actions without extensive training.
29+
- **Documentation**: Comprehensive documentation should be provided to assist users and developers in understanding and using the system.
30+
31+
## Technical Requirements
32+
33+
- **Technology Stack**: Utilization of state-of-the-art, open-source technologies to ensure robustness and facilitate community contributions.
34+
- **Modularity**: The architecture should be modular to allow for easy updates and maintenance.
35+
- **Integration**: The system should provide APIs and hooks for integration with other systems and services.
1436

1537
## NOTICE
1638

0 commit comments

Comments
 (0)