Skip to content

Components ​

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

  • Hub
  • Node

All public repositories can be found on GitHub.

Hub ​

Hub components/services are individual packages/services within one monorepo.

ServiceRepositoryPrograming LanguageLead
UIPrivateAim/hubTypeScripttada5hi
CorePrivateAim/hubTypeScripttada5hi
RealtimePrivateAim/hubTypeScripttada5hi
AnalysisPrivateAim/hubTypeScripttada5hi
StoragePrivateAim/hubTypeScripttada5hi
  • UI - Frontend application for proposal and train management, downloading of results and much more
  • Core - Main backend application to manage resources and trigger commands & events through the message broker
  • Realtime - Distribute resource events to authorized clients
  • Analysis - Microservice fulfilling different aspects for analysis execution.
  • Storage - Storing code-, temp-, result-files for an analysis.
Third-Party ServiceRepositoryPrograming Language
Authupauthup/authupTypeScript
Harborgoharbor/harborGo/TypeScript
RabbitMQrabbitmq/rabbitmq-serverStarlark
Vaulthashicorp/vaultGo/JavaScript
  • Authup - Identity and Access Management (IAM) to manage users, roles, clients, permissions, ...
  • Harbor - Harbor is a docker registry to distribute images. In the context of the PrivateAim 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.

Node ​

Local components/services are packages utilized in local node setups by analysts and administrators. The node-deployment repository is used to set up local nodes by administrators.

ServiceRepositoryPrograming LanguageLead
UIPrivateAim/node-uiJavaScriptbrucetony
Hub API AdapterPrivateAim/node-hub-api-adapterPythonbrucetony
Message BrokerPrivateAim/node-message-brokerTypeScriptdicanio
ResultPrivateAim/node-result-servicePythonmjugl
Pod OrchestrationPrivateAim/node-node-pod-orchestrationPythonantidodo
  • UI - User interface for sites data source management, analysis execution and monitoring
  • Hub API Adapter - Bundles all endpoints required for the Node UI
  • Message Broker - Manages communication with other nodes over the hub
  • Result Service - Manages the sending of files to the hub Storage
  • Data Service - Manages data access at the nodes
  • Pod Orchestration - Manages the live cycle and network limitations of analytics deployments.
Third-Party ServiceRepositoryPrograming Language
KeyCloakkeycloak/keycloakGo/JavaScript
KongKong/kongLua/Perl
MinIOminio/minioGo
  • Keycloak - Local Identity and access management at the node
  • Kong - API Gateway at node used data provisioning service
  • MinIO - Object storage for result Service

Not listed as third party services are nginx, mongoDB and Postgres.