Skip to content

Latest commit

History

3,822 Commits

Folders and files

NameName
Last commit message
Last commit date
FLAME Hub — federated analytics across institutions. The data never moves.

CICodeQLnode 24DOIlicense

A FLAME analysis is a container that travels to the data. Institutions each run a node; Hub is the centre that decides what runs where — it builds the analysis image, ships it to the nodes that joined a project, and collects the results, without ever seeing a row of the underlying data.

This monorepo is the central half: five backend services, a Nuxt frontend, 19 shared TypeScript libraries, and the documentation site.

Documentation · Quick start · Services · Packages · Contributing

Quick start

Requires Node.js 24, npm, and Docker. Running the backend locally also expects Authup (OAuth2), Redis, RabbitMQ, and MySQL or PostgreSQL.

npm ci # install
npm run build # build all packages (Nx, dependency-aware)
npm run test# run the test matrix
npm run lint # lint
docker compose up -d # MySQL + Postgres
npm run dev --workspace=apps/server-core # Core API
npm run dev --workspace=apps/client-ui # Nuxt frontend
npm run dev --workspace=docs # Documentation site

Every entity endpoint answers with a { data, meta } envelope, and every query-capable GET publishes the vocabulary it accepts under meta.schema — so a client never has to read server source to build a valid query.

📖 Local setup · API reference · Deployment

Services

Architecture

Each backend service follows the same hexagonal (ports & adapters) architecture and ships in the shared privateaim/hub Docker image, selected at startup with SERVICE=<name>.

ServiceResponsibility
server-coreMain REST API — analyses, projects, nodes, registries
server-core-workerBackground worker — Docker image build & distribution
server-storageFile and object storage, on MinIO / S3 or the filesystem
server-telemetryLog aggregation and events, backed by VictoriaLogs
server-messengerDurable store-and-forward message broker
client-uiNuxt 4 web application

Packages

Shared libraries, published to npm as @privateaim/*.

Foundation

PackageResponsibilityVersion
kitCrypto, domain events, permissions, realmsnpm
errorsHubError, typed subclasses, code → HTTP-status mappingnpm

Domain kits

Models, contracts and typed clients, one set per service area.

PackageResponsibilityVersion
core-kitDomain models and types for the core servicenpm
core-http-kitHTTP client for the core APInpm
core-realtime-kitWebSocket event contracts for the core APInpm
storage-kitStorage domain types and HTTP clientnpm
telemetry-kitTelemetry domain types and validatorsnpm
messenger-kitMessenger contracts and crypto typesnpm
messenger-http-kitHTTP client for the messenger brokernpm

Server kits

Building blocks shared across the backend services.

PackageResponsibilityVersion
server-kitLogging, auth, AMQP, Redis, dependency injectionnpm
server-db-kitTypeORM utilities and migration supportnpm
server-http-kitHTTP middleware and OpenAPI generationnpm
server-realtime-kitSocket.io server helpersnpm
server-storage-kitStorage service componentsnpm
server-telemetry-kitTelemetry components and Winston transportnpm
server-core-worker-kitWorker task definitionsnpm
server-test-kitShared test fakes and helpersnpm

Client

PackageResponsibilityVersion
client-vueVue 3 component librarynpm
client-vue-themevuecs-based theme — design tokens and chromenpm

Built with

FLAME Hub runs on a stack of open-source libraries maintained by the same author: Authup (identity and access), Routup (HTTP routing), Hapic (HTTP clients), validup (validation), ilingo (i18n), and vuecs (Vue components and theming).

Contributing

Before starting work on a pull request, please review the contributing guidelines and the code of conduct.

Credits and citation

Created and maintained by Peter Placzek (@tada5hi), with contributions from the PrivateAIM team.

If you use FLAME Hub in academic work, please cite it — citation metadata lives in CITATION.cff, which GitHub renders as a "Cite this repository" button.

License

Made with 💚 · Published under Apache 2.0.

About

Central services for the FLAME platform (PrivateAIM), privacy-preserving federated analytics across distributed institutions: analysis orchestration, object storage, telemetry & real-time messaging.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages