Skip to content

Dev - #7

Merged
anurag2796 merged 156 commits into
mainfrom
dev
May 12, 2026
Merged

Dev#7
anurag2796 merged 156 commits into
mainfrom
dev

Conversation

@anurag2796

Copy link
Copy Markdown
Collaborator

This pull request introduces major improvements to the build and release process for the FedLearn Desktop application, along with significant updates to the project documentation. The new workflow provides a unified, cross-platform build and release pipeline for macOS (Apple Silicon), Windows (CPU and CUDA), and Linux (x64 and arm64), automating the packaging of both the Electron frontend and the PyInstaller-built native client. The documentation is updated to reflect the current architecture, deployment, authentication flow, and technology stack, clarifying how all components interact and improving security explanations.

Build & Release Automation:

  • Added .github/workflows/release-desktop.yml to implement a matrix-based GitHub Actions workflow that builds, packages, and releases the Electron desktop app and native client for macOS (arm64), Windows (CPU and CUDA), and Linux (x64, arm64), with artifact uploads and a detailed release description.
  • Deprecated .github/workflows/desktop-release.yml in favor of the new workflow, which offers broader platform support and a more robust, maintainable release process.

Documentation & Architecture Updates:

  • Updated the README.md system components table and data flow section to accurately describe the frontend, backend, database, FL framework, clients, and new desktop orchestrator, including deployment details and supported platforms.
  • Improved the authentication section to explain the use of stateless JWTs delivered via HttpOnly cookies, removing references to localStorage and clarifying security benefits for both web and desktop apps.
  • Refined technology stack descriptions for frontend, backend, FL framework, and DevOps, reflecting current tools and deployment practices. [1] [2]

Clarity and Security Enhancements:

  • Enhanced explanations of backend streaming, Docker-based client deployment, and the benefits of the new authentication and packaging approaches, making the documentation more accessible to new contributors and users. [1] [2] [3]

These changes streamline the release workflow, improve cross-platform support, and provide clearer, more secure documentation for both developers and end users.

anurag2796 and others added 30 commits April 1, 2026 21:53
…e multiprocessing handling in edge/platform clients
Copilot AI review requested due to automatic review settings May 12, 2026 15:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@anurag2796
anurag2796 requested a review from Copilot May 12, 2026 16:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@anurag2796
anurag2796 merged commit 9cc2f26 into main May 12, 2026
anurag2796 added a commit that referenced this pull request Jul 14, 2026
…web JWT key

app.fl.token-secret defaults to app.jwt.secret (${APP_FL_TOKEN_SECRET:${app.jwt.secret}})
for local backward-compat. But the network-facing FL server holds the FL secret,
so if it equals the web-auth key a compromise of that server can forge web/admin
sessions — defeating the SE-7/SE-17 trust-domain isolation that keeps APP_JWT_SECRET
out of the FL child. A new FlSecretDistinctnessValidator fails the boot closed
(IllegalStateException) when a deployed profile (ec2demo/production) is active AND
the two secrets resolve equal; dev/test/base still allow the fallback.

This is the "boot check they differ" half of finding #7; the web-JWT audience/type
binding (defense-in-depth for a shared dev secret) touches the auth hot path and is
tracked as remaining. Unit-tested (deployed+equal -> throws; deployed+distinct and
non-deployed -> ok); full backend suite green.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants