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.
Service | Repository | Programing Language | Lead |
---|---|---|---|
UI | PrivateAim/hub | TypeScript | tada5hi |
Core | PrivateAim/hub | TypeScript | tada5hi |
Realtime | PrivateAim/hub | TypeScript | tada5hi |
Analysis | PrivateAim/hub | TypeScript | tada5hi |
Storage | PrivateAim/hub | TypeScript | tada5hi |
UI
- Frontend application for proposal and train management, downloading of results and much moreCore
- Main backend application to manage resources and trigger commands & events through the message brokerRealtime
- Distribute resource events to authorized clientsAnalysis
- Microservice fulfilling different aspects for analysis execution.Storage
- Storing code-, temp-, result-files for an analysis.
Third-Party Service | Repository | Programing Language |
---|---|---|
Authup | authup/authup | TypeScript |
Harbor | goharbor/harbor | Go/TypeScript |
RabbitMQ | rabbitmq/rabbitmq-server | Starlark |
Vault | hashicorp/vault | Go/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.
Service | Repository | Programing Language | Lead |
---|---|---|---|
UI | PrivateAim/node-ui | JavaScript | brucetony |
Hub API Adapter | PrivateAim/node-hub-api-adapter | Python | brucetony |
Message Broker | PrivateAim/node-message-broker | TypeScript | dicanio |
Result | PrivateAim/node-result-service | Python | mjugl |
Pod Orchestration | PrivateAim/node-node-pod-orchestration | Python | antidodo |
UI
- User interface for sites data source management, analysis execution and monitoringHub API Adapter
- Bundles all endpoints required for the Node UIMessage Broker
- Manages communication with other nodes over the hubResult Service
- Manages the sending of files to the hub StorageData Service
- Manages data access at the nodesPod Orchestration
- Manages the live cycle and network limitations of analytics deployments.
Third-Party Service | Repository | Programing Language |
---|---|---|
KeyCloak | keycloak/keycloak | Go/JavaScript |
Kong | Kong/kong | Lua/Perl |
MinIO | minio/minio | Go |
Keycloak
- Local Identity and access management at the nodeKong
- API Gateway at node used data provisioning serviceMinIO
- Object storage for result Service
Not listed as third party services are nginx
, mongoDB
and Postgres
.