Add multiproject design docs and phase 1 plumbing#4276
Add multiproject design docs and phase 1 plumbing#4276pcnudde wants to merge 11 commits intoNVIDIA:mainfrom
Conversation
- Rename design docs to multiproject.md / multiproject_implementation.md - Deprecate scope concept in favor of project - Add PocEnv project parameter alongside ProdEnv - New project.yml v4 schema: sites/admins/projects separation - admins section explicitly optional for SSO migration path - Add Phase 1 implementation section
|
/build |
Greptile SummaryThis PR delivers Phase 1 of multi-project support for NVFLARE: a design document plus the minimal plumbing to thread a Key changes:
The main issue found is a type annotation mismatch in Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant DS as Data Scientist
participant Env as PocEnv / ProdEnv
participant SM as SessionManager
participant Sess as Session (FlareAPI)
participant Srv as JobCommandModule (Server)
participant L as DockerJobLauncher
DS->>Env: ProdEnv(project="cancer-research")
Env->>Env: name_check(project, "project")
DS->>Env: recipe.execute(env)
Env->>SM: SessionManager({project: "cancer-research", ...})
SM->>Sess: new_secure_session(project="cancer-research")
Sess->>Sess: name_check(project) → store self._project
DS->>Sess: submit_job(job_path)
Sess->>Sess: props = {project: "cancer-research"}
Sess->>Srv: do_command(SUBMIT_JOB, props=props)
Srv->>Srv: _add_project_to_meta(meta, conn)
Note over Srv: name_check(project) server-side re-validation
Srv->>Srv: meta[project] = "cancer-research"
Srv->>Srv: fire_event(SUBMIT_JOB, fl_ctx{JOB_META=meta})
Srv->>Srv: job_def_manager.create(meta, ...)
Note over Srv,L: At job launch time
Srv->>L: launch_job(job_meta)
L->>L: _resolve_docker_workspace(job_id, project)
Note over L: os.path.isdir check
L->>L: volumes = {workspace/cancer-research: /workspace}
L->>L: docker.containers.run(image, volumes=...)
|
Summary