Secure Federated Learning Platform
Project description
CVDLink (FeatureCloud extension)
Overview
CVDLink is a domain-specific extension of the FeatureCloud Python package, tailored for the CVDLink project and deployment at https://fc.cvdlink-project.eu. It builds on the same engine to support privacy-preserving federated learning and data analysis, with CVDLink-oriented defaults for controller images, global API endpoints, and container registries.
CVDLink targets federated collaborations in cardiovascular research and related biomedical domains, enabling partners to run distributed workflows without sharing raw data.
Important: CVDLink is not a standalone replacement for FeatureCloud. It is a specialization of the same codebase and tooling, distributed as the
cvdlinkpip package with CVDLink-first defaults.
Relationship to FeatureCloud
This package reuses the FeatureCloud controller runtime, app model, CLI layout, tests, and workflow tooling. It adds:
cvdlink/CVDLinkCLI entry points that default to the CVDLink profilefeaturecloud/FeatureCloudentry points that default to the FeatureCloud profile (same commands, different defaults)- Profile-aware Docker image names for app publish, download, remove, and test flows (registry host prefix chosen from the active profile)
- Optional
--no-pullon controller start for air-gapped or pre-loaded images
For general FeatureCloud concepts and app development, see featurecloud.ai and the FeatureCloud repository.
Reference: Matschinske, J., Späth, J., Bakhtiari, M., Probul, N., Kazemi Majdabadi, M. M., Nasirigerdeh, R., ... & Baumbach, J. (2023). The FeatureCloud platform for federated learning in biomedicine: unified approach. Journal of Medical Internet Research, 25, e42621.
Installation
pip install cvdlink
The distribution name on PyPI is cvdlink; import paths remain under FeatureCloud.
CLI entry points and profiles
| Command | Default profile | Typical use |
|---|---|---|
cvdlink / CVDLink |
cvdlink |
CVDLink deployments (fc.cvdlink-project.eu, …) Same flags as FeatureCloud. |
featurecloud / FeatureCloud |
featurecloud |
Upstream FeatureCloud defaults (featurecloud.ai, …) |
The active profile affects default registry prefixes for app images:
- FeatureCloud:
featurecloud.ai/… - CVDLink:
fc.cvdlink-project.eu/…
You can still override the registry with --registry where the command supports it. Short image names are completed using the prefix that matches the current profile (so you do not have to type the full registry path when it matches your environment).
Environment variable
For tests and workflow code that resolves app images outside the main CLI, you can set:
export FC_CLI_PROFILE=cvdlink # or featurecloud
If unset, the workflow layer falls back to sensible defaults for the context in which it runs.
Controller commands
Start, stop, inspect, and tail controller instances.
Start a controller
cvdlink controller start [NAME] [OPTIONS]
By default, CVDLink uses profile cvdlink: CVDLink-oriented controller images and config defaults apply unless you override them.
Common options
--port— Controller port (default:8000)--data-dir— Data directory for the controller--controller-image— Full image reference override--global-endpoint,--registry,--relay-address— Override baked config--poll-interval,--query-interval— Workflow timing overrides--config-file— Config file path inside the container--no-pull— Skipdocker pull; use the controller image already present locally (offline mirrors, custom tags, or CI)
Example:
cvdlink controller start --data-dir ./data
cvdlink controller start --no-pull --controller-image fc.cvdlink-project.eu/controller:latest
Other controller commands
controller status,logs,tail,ls,stop
App commands
Create, build, publish, pull, and remove federated app images.
Examples
cvdlink app new --template-name app-blank
cvdlink app build --path <APP_PATH> --image-name <NAME> --tag <TAG>
cvdlink app publish --name <NAME> --tag <TAG>
Publish / download / remove use the registry prefix for the active CLI profile unless you supply a fully qualified image name. Log in to the registry host you use (docker login fc.cvdlink-project.eu for CVDLink).
Other subcommands include download, remove, plot-states, matching FeatureCloud semantics under the chosen profile.
Tests and workflow
cvdlink test (and featurecloud test) use the same test harness; image names for test start respect the active profile (and FC_CLI_PROFILE when workflow code runs in isolation). Use this when validating apps against the registry naming you deploy with.
Branch purpose (cvdlink)
The cvdlink branch exists to ship a single package that:
- Keeps feature parity with the FeatureCloud CLI and libraries.
- Makes CVDLink the default when users install
cvdlinkand runcvdlink …. - Avoids blind
docker pullwhen operators choose--no-pull. - Keeps registry-qualified image names consistent with CVDLink vs FeatureCloud infrastructure.
Upstream FeatureCloud behavior remains available via the featurecloud entry points in the same installation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cvdlink-0.1.4-py3-none-any.whl.
File metadata
- Download URL: cvdlink-0.1.4-py3-none-any.whl
- Upload date:
- Size: 49.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f69014d6bc185679d82099abf64dbb880a1cbde54977852e884e634d9fc921fb
|
|
| MD5 |
e146707338a117582e9c8f6b422a8c32
|
|
| BLAKE2b-256 |
ddc5cb71bdc76c24d4cc9a8a4e4c676d44aabe6e082271dc5fe16f8faecb0d72
|