Overview
Want to hack on Hyades, the upcoming Dependency-Track v5?
Awesome, here's what you need to know to get started!
Important
Please be sure to read CONTRIBUTING.md
and
CODE_OF_CONDUCT.md
as well.
Repositories
The project consists of the following repositories:
Repository | Description |
---|---|
DependencyTrack/hyades | Main repository. Includes Hyades services, end-to-end tests, documentation, and deployment manifests. GitHub issues and discussions are managed here. |
DependencyTrack/hyades-apiserver | Fork of DependencyTrack/dependency-track . GitHub issues and discussions are disabled. |
DependencyTrack/hyades-frontend | Fork of DependencyTrack/frontend . GitHub issues and discussions are disabled. |
Note
The hyades
and hyades-apiserver
repositories are split for historical reasons.
We are planning to merge them,
which should result in less overhead and more opportunities for code sharing.
To clone them all:
git clone https://github.com/DependencyTrack/hyades.git
git clone https://github.com/DependencyTrack/hyades-apiserver.git
git clone https://github.com/DependencyTrack/hyades-frontend.git
Prerequisites
There are a few things you'll need on your journey:
- Java Development Kit1 >=21 (Temurin distribution recommended)
- Maven1 >=3.9 (comes bundled with IntelliJ and Eclipse)
- NodeJS2 >=20
- A Java and JavaScript capable editor or IDE of your preference (we recommend IntelliJ3)
- Docker or Podman
- Docker Compose or Podman Compose
Tip
1 We recommend sdkman to install Java and Maven. When working in a corporate environment, you should obviously prefer the packages provided by your organization.
2 If you need to juggle multiple NodeJS versions on your system, consider using nvm to make this more bearable.
3 We provide common run configurations for IntelliJ
in the .idea/runConfigurations
directories of each repository for convenience.
IntelliJ will automatically pick those up when you open this repository.
Core Technologies
Knowing about the core technologies may help you with understanding the code base.
Infrastructure
Technology | Purpose |
---|---|
PostgreSQL | Database |
Apache Kafka | Messaging / Streaming |
API Server
Technology | Purpose |
---|---|
JAX-RS | REST API specification |
Jersey | JAX-RS implementation |
Java Data Objects (JDO) | Persistence specification |
DataNucleus | JDO implementation |
JDBI | Lightweight database operations |
Liquibase | Database migrations |
Confluent Parallel Consumer | Kafka message processing |
Jetty | Servlet Container |
Alpine | Framework / Scaffolding |
Maven | Package manager / Build tool |
Java | Programming language |
Hyades Services
Technology | Purpose |
---|---|
Kafka Streams | Stream processing |
Quarkus | Framework / Scaffolding |
Maven | Package manager / Build tool |
Java | Programming language |
Frontend
Technology | Purpose |
---|---|
webpack | Asset bundler |
Vue.js | Framework |
NPM | Package manager / Build tool |
JavaScript | Programming language |