Skip to content
On this page

Components

Several Git repositories contain the components of the PHT. Third party components can be found on the respective manufacturer's site. These components can be roughly separated into the following categories:

  • Central
  • Local

All public repositories can be found on GitHub.

Central

Central components/services are individual packages within one monorepo. They include the implementation of the Central UI, Train Building, Train Routing, Result Extraction, API, etc., which supply the core functions of the PHT.

ServiceRepositoryPrograming LanguageLead
User InterfacePHT-Medic/centralTypeScripttada5hi
APIPHT-Medic/centralTypeScripttada5hi
RealtimePHT-Medic/centralTypeScripttada5hi
Train-ManagerPHT-Medic/centralTypeScripttada5hi
  • User Interface - Frontend application for proposal and train management, downloading of results and much more
  • API - Backend application to manage resources and trigger commands & events through the message broker
  • Realtime - Distribute resource events to authorized clients
  • Train Manager - Microservice serving different components:
    • Train Building - Build and distribute train images to a registry
    • Train Routing - Move trains between projects & registries accordingly to the route of the train
    • Result Extracting - Download, extract & serve encrypted results from the registry
Third-Party ServiceRepositoryPrograming Language
Harborgoharbor/harborGo/TypeScript
RabbitMQrabbitmq/rabbitmq-serverStarlark
Vaulthashicorp/vaultGo/JavaScript
  • Harbor - Harbor is a docker registry to distribute images. In the context of the PHT it is used for train distribution across multiple locations.
  • RabbitMQ - RabbitMQ is a message broker. It is used for the communication between microservices.
  • Vault - Vault is a secret storage service for managing and storing sensitive information.

Local

Local/Station components/services are packages utilized in local setups by analysts and administrators. The Station repository is used to set up local stations by administrators. The Desktop App implements a released version of the local PHT tool, necessary for the encryption of stations and signing/decryption of trains.

ServiceRepositoryPrograming LanguageLead
StationPHT-Medic/stationPythonmigraf
Desktop AppPHT-Medic/desktop-appTypeScripttada5hi
Train Container LibraryPHT-Medic/train-container-libraryPythonmigraf
  • Station - Local airflow instance for processing train images
  • Desktop App - GUI to manage key pairs and decrypt results locally
  • Train Container Library - Python library for validating and interacting with pht-train images/containers
Third-Party ServiceRepositoryPrograming Language
Airflowapache/airflowPython/TypeScript
Authuptada5hi/authupTypeScript
  • Airflow - An open source, community developed platform to programmatically author, schedule and monitor workflows and the primary component of the station.
  • Authup - Identity and Access Management (IAM) to manage users and roles.