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, robots, 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.