Skip to main content

Repository map

FL-Net is not a single monorepo. All repositories live in the FedLearnNet GitHub organization. Use this page to answer one practical question quickly:

  • which repository owns the part of FL-Net you want to change?

If you want the product-level architecture first, start with Understanding the network architecture. If you already know you are touching the Angular UI, also see the Frontend workspace map.

Mental model​

The repositories are easiest to understand as five layers:

  1. Documentation
  2. Deployment
  3. Frontend
  4. Platform and Client services
  5. Tool development

This diagram is intentionally simplified. It does not contain repository interactions.

Core product repositories​

RepositoryWhat it ownsWhen you usually change it
DocumentationDocusaurus site for Client/Platform usage and deployment documentation. Also contains Tool development and contributors documentationWriting or restructuring docs, see Documentation workflow
FrontendsAngular workspace with the local (Client) and global (Platform) frontends, the shared UI library, and project themesUI flows, components, routes, frontend integrations, brand variants, see Frontend
Learning-APIsMulti-module Quarkus project: core-learning-api (shared logic and DTOs), global-learning-api (Platform), local-learning-api (Client, including data import and the patient store), datamodeler-api (data models (schemas) with ontologies and datatypes)Federated learning flows, queries, workflows, data import, schema and ontology handling
Orchestration-APIRuns Tools as Docker containers: pulls images, creates an isolated network and volume per run, starts Tool builds, and tracks the run lifecycle. Also handles the tool build pipeline execution.Starting runs, container isolation, run lifecycle
Federated-Learning-Communication-APIGo services for federated communication: one controller per Client and one relay server per networkController and relay behavior, encryption, SMPC and DP message flows

Tool development repositories​

RepositoryWhat it ownsNotes
Python-Tool-APIPython SDK and runtime for FL-Net Tools, published as the FL-Net-Python-Tool-API packageImported as pyfedappwrap
Tool-Build-PipelineContainerized pipeline that builds, tests, scans, and publishes Tool imagesNormally started by the Orchestration API when a Tool is published

See Tool development for how to use these repositories to create a Tool.

Deployment repositories​

RepositoryWhat it owns
FL-Net-CLIThe flnet command line for setting up and operating Clients and Platforms and for scaffolding new Tools

See the Deployment section for how these are used.

Fast path: where should I change what?​

  • Documentation: Documentation
  • Angular UI or shared frontend components: Frontends
  • Platform backend behavior (projects, queries, workflows, federated runs): global-learning-api in Learning-APIs, potentially also the local-learning-api as the federated runs are executed there.
  • Client backend behavior (data import, patient store, local queries, Tool runs): local-learning-api in Learning-APIs
  • Schema, ontology, or data model work: datamodeler-api in Learning-APIs
  • Tool container and pipeline execution and run lifecycle: Orchestration-API
  • Federated communication layer (Controller or relay internals): Federated-Learning-Communication-API
  • Tool development support: Python-Tool-API, Tool-Build-Pipeline
  • Deployment including proxy (NGINX) and oauth (KeyCloak) handling: FL-Net-CLI