Skip to content

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