How prakhar2275/sw360 works
SW360 is a software component catalogue for managing projects, products, components, releases, and their metadata. A typical integration enters through the REST API, which exposes project and release services and delegates backend operations to Thrift services; backend data is stored in CouchDB. The repository also contains distinct license/SPDX, vulnerability, moderation, attachment, and identity capabilities. The graph uses README-level architecture statements and the sampled source/index; several feature-level runtime connections are therefore omitted rather than inferred.
Main entry points: resourceserver REST API · DatabaseConnectorCloudant.java CouchDB · Sw360ProjectService.java Project service · Sw360ReleaseService.java Release service
Components 18
API and services
- REST API
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver - Project service
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/project/Sw360ProjectService.java - Release service
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/release/Sw360ReleaseService.java - Thrift services
Catalogue management
- Components
backend/components/src/main/java/org/eclipse/sw360/components/ComponentHandler.java - Projects
backend/projects/src/main/java/org/eclipse/sw360/projects/ProjectHandler.java - Packages
backend/packages/src/main/java/org/eclipse/sw360/packages/PackageHandler.java - Attachments
backend/attachments/src/main/java/org/eclipse/sw360/attachments/AttachmentHandler.java
Licensing and governance
- License information
backend/licenseinfo/src/main/java/org/eclipse/sw360/licenseinfo/LicenseInfoHandler.java - SPDX documents
backend/spdxdocument/src/main/java/org/eclipse/sw360/spdxdocument/SPDXDocumentHandler.java - Vulnerabilities
backend/vulnerabilities/src/main/java/org/eclipse/sw360/vulnerabilities/VulnerabilityHandler.java - Moderation
backend/moderation/src/main/java/org/eclipse/sw360/moderation/ModerationHandler.java
Shared data and identity
- CouchDB
libraries/datahandler/src/main/java/org/eclipse/sw360/datahandler/cloudantclient/DatabaseConnectorCloudant.java - Search
backend/search/src/main/java/org/eclipse/sw360/search/SearchHandler.java - Permissions
libraries/datahandler/src/main/java/org/eclipse/sw360/datahandler/permissions/PermissionUtils.java - Keycloak user access
keycloak/sw360-keycloak-common/src/main/java/org/eclipse/sw360/keycloak/common/Sw360UserService.java
Other components
- External integrator
- CVE search service
Connections 20
- External integrator → REST API: calls API
README.md - REST API → Project service: exposes projects
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/release/Sw360ReleaseService.java - REST API → Release service: exposes releases
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/project/Sw360ProjectService.java - Project service → Thrift services: uses Thrift
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/project/Sw360ProjectService.java - Release service → Thrift services: uses Thrift
rest/resource-server/src/main/java/org/eclipse/sw360/rest/resourceserver/release/Sw360ReleaseService.java - Thrift services → CouchDB: stores metadata
README.md - Keycloak user access → CouchDB: reads users
keycloak/sw360-keycloak-common/src/main/java/org/eclipse/sw360/keycloak/common/Sw360UserService.java - External integrator → Thrift services: calls services
README.md - External integrator → CouchDB: data persisted
README.md - Thrift services → Components: serves catalogue
- Thrift services → Projects: serves projects
- Thrift services → Packages: serves packages
- Thrift services → Attachments: serves attachments
- Thrift services → License information: serves license data
- Thrift services → SPDX documents: serves SPDX
- Thrift services → Vulnerabilities: serves vulnerability data
- Thrift services → Moderation: serves moderation
- Thrift services → Search: serves search
- Thrift services → Permissions: checks access
- Vulnerabilities → CVE search service: queries CVEs