Fedn v0.9.0 and Studio v0.10.0

FEDn

2024-04-22 08:55:34


We're excited to announce the release of Fedn v0.9.0 and corresponding updates to Studio! This release includes a variety of new features, bug fixes, and improvements.

New Features in FEDn

  • Token Authentication: The API client now supports token authentication for secure access to FEDn Studio. Follow the documentation for more information.
  • Model Loading: A new API method allows loading and downloading federated models from the model repository.
  • JWT Verification: The system now includes JWT verification for enhanced security. This has been implemented at the controller level, enabling advanced users of FEDn to integrate with existing authentication systems. See documentation (RBAC).
  • Asynchronous Simulation: Support for asynchronous simulation has been added. This example has been added to continuously test asynchronous federated training. See “examples” folder on Github.
  • Remote Logging: Enable remote logging for better monitoring and troubleshooting. You can now set up a remote server which can retrieve logs from clients, combiners and the controller.
  • Health Endpoint: A /health endpoint has been added to the API for checking the controller health status.
  • Python Environment Support: The fedn.yaml configuration file in FEDn projects now supports specifying the Python environment. This enables users to control python dependencies at client runtime! You no longer need a specific container image to run your federated FEDn project. See “Getting Started” in documentation!
  • FEDn projects: To ease management and creation of FEDn projects and their packages (compute package) we have added new subcommands to the CLI: fedn package create - will make a tarball (package) of your project, including the ML code which can be distributed to all clients using the FEDn package manager (upload of packages) fedn run build: allows users to run a new entry point in fedn.yaml using the CLI. This is convenient for (example) creating initial model artifacts (federated seed model).
  • Studio Documentation Integration: Studio documentation has been moved to the main Fedn documentation for easier access.
  • Default Bearer Token: The FEDN_AUTH_SCHEME now defaults to Bearer for convenience. Please note that we used Token before.
  • Changes to protobuf definitions: To facilitate c++ and Android clients, changes have been made to protobuf definitions which in turn have resulted in refactors of gRPC endpoints. This makes previous versions of clients incompatible with the current version!

Bug Fixes

  • Client Model Retrieval Error Handling: The client now correctly handles model retrieval errors.
  • Auth Metadata Conflict: A conflict in auth metadata within the gRPC client has been resolved.
  • Incorrect Event Data: The get_events function now returns correct data when used with a custom prefix.
  • Flask Dependency Issue: An issue with Flask dependencies has been fixed.

Improvements

  • Session ID Storage: The session ID is now stored on status (event) and validation objects for better tracking.
  • APIClient Refactoring: The APIClient has been refactored for improved code quality and maintainability.

Notes

If you get a gRPC error on the client side stating “Method not found”, please note that this is an indication that you are running an incompatible version of FEDn on the client side. For example, if you are running FEDn v0.8 on the clients but v0.9 on the servers (combiners).

New Features in FEDn Studio

  • FEDn backend databases (MongoDB and Minio): are now globally shared among projects. Please note that collections and buckets are still isolated and authenticated on a project level. This is to facilitate better management of database services. You don’t have to worry about running out of storage any longer!
  • JWT authentication: We have enabled JWT authentication for RBAC of different client roles. Federated clients participating in training have limited access to endpoints of the REST-API and gRPC server. An admin API can be generated in the Settings of a project for full access to the - REST-API for managing your FEDn projects. For on-premise solutions, the JWT authentication system enables integration with existing authentication systems by sharing the public key from an asymmetric encryption algorithm, such as RS256.
  • FEDn version synchronization: There’s now a “sync button” to synchronize projects to the latest version of FEDn. If you like to downgrade to a previous version you have to contact support. Please observe that client’s will temporarily lose connection to servers while upgrading. Don’t upgrade during a running session (a check for this will be added in upcoming releases)! If you upgrade, please try to use the same FEDn version on your clients. Compatibility checks will be added in future releases.