|
1 |
| -# Architecture Constraints |
| 1 | +# Architecture Constraints Documentation |
2 | 2 |
|
3 |
| -## General |
| 3 | +## Overview |
4 | 4 |
|
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. |
6 | 6 |
|
7 |
| -- Run anywhere: can be deployed as a docker image, e. g. on Kubernetes (platform-independent, cloud, on prem or local). |
| 7 | +## General Constraints |
8 | 8 |
|
9 |
| -## Developer |
| 9 | +### System Purpose |
10 | 10 |
|
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. |
12 | 14 |
|
13 |
| -- Coding guidelines for FE and BE are defined and are to be followed for all portal related developments. |
| 15 | +### Deployment |
14 | 16 |
|
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. |
16 | 19 |
|
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 |
18 | 21 |
|
19 |
| -## Code analysis, linting and code coverage |
| 22 | +### Open Source Software |
20 | 23 |
|
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. |
22 | 26 |
|
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. |
31 | 51 |
|
32 | 52 | ## NOTICE
|
33 | 53 |
|
|
0 commit comments