Declarative Provisioning (Two-Files Stack)
The ColabBio Declarative Provisioning System establishes a zero-code standard for deploying and configuring clinical AI environments across heterogeneous infrastructure. By decoupling the hospital’s data infrastructure (vfs.yaml) from the MLOps analytical pipeline (study.yaml), any research study can be executed seamlessly in any hospital.
graph TD
subgraph DeclarativeManifests ["Declarative Contract (Two-Files Stack)"]
VFS["vfs.yaml (Tenant Infrastructure & Secrets)"]
STUDY["study.yaml (MLOps & Model Specification)"]
end
subgraph Targets ["Execution Targets (100% Environment Agnostic)"]
LOCAL["1. Local CLI / Dev<br/><code>java -jar cb-svc-ai.jar --vfs=... --study=...</code>"]
VM["2. Automated VM (Multipass / KVM)<br/><code>./launch-colabbio-vm.sh</code>"]
K8S["3. Kubernetes Cluster (Helm)<br/><code>helm install --set-file vfsConfig=...</code>"]
end
VFS --> LOCAL
STUDY --> LOCAL
VFS --> VM
STUDY --> VM
VFS --> K8S
STUDY --> K8S
1. The Two-Files Contract
Section titled “1. The Two-Files Contract”1.1 vfs.yaml (Tenant / Hospital Data Federation)
Section titled “1.1 vfs.yaml (Tenant / Hospital Data Federation)”Owned and managed by the Hospital IT & Data Engineering team. It defines data connectors, credentials, and virtual storage mappings without referencing specific machine learning models.
version: "1.0"project: "vhio-hospital-tenant"
sources: - id: "vhio-fhir-ehr" type: "fhir" endpoint: "https://fhir.vhio.org/r4" auth: secret_ref: "k8s://colabbio-secrets/vhio-fhir-token"
- id: "vhio-omero-wsi" type: "omero" endpoint: "https://omero.vhio.org/webclient" auth: secret_ref: "k8s://colabbio-secrets/vhio-omero-credentials"
- id: "vhio-omop-cdm" type: "omop" endpoint: "http://colabbio-mcp-omop:8080"
- id: "vhio-orthanc-pacs" type: "orthanc" endpoint: "http://colabbio-mcp-dicom:8081"
storage: type: "pvc" pvc_name: "vhio-medvfs-pvc" local_path: "/data/medvfs/vhio"1.2 study.yaml (MLOps Pipeline & Analytical Spec)
Section titled “1.2 study.yaml (MLOps Pipeline & Analytical Spec)”Owned by the Data Science / Clinical Pathology team. It specifies data ingestion, Docker training environments, tracking, and inference deployment.
version: v1
metadata: name: "breast-cancer-abmil" run_id: "exp-breast-001" description: "WSI gigapixel attention-based classification"
data: vfs_config: "vhio-sources.yaml"
ingest: - id: "cohort_ingest" type: "fhir" pipeline: "colabbio-loaders/csv-to-fhir.nf"
train: type: "local" image: "ghcr.io/colabbio/slidelab:v1.0.0" resources: cpus: 8 memory: "32 GB" gpus: 1
mlflow: experiment_name: "Breast_Cancer_ABMIL" tracking_uri: "http://mlflow.colabbio.internal:5000"
deploy: triton_model_name: "abmil_wsi_pac_classifier" model_version: "1"2. Dynamic Runtime Resolution (MedVfsConfigLoader)
Section titled “2. Dynamic Runtime Resolution (MedVfsConfigLoader)”When the backend (cb-svc-ai) boots:
MedVfsConfigLoaderreads--vfsand--studyCLI flags or/etc/colabbio/vfs.yaml.- It parses both YAMLs using
jackson-dataformat-yamlinto type-safe DTOs (VfsSpecandStudySpec). - It dynamically mutates base endpoints across all registered Model Context Protocol clients (
FhirMcpService,OmeroMcpService,OmopMcpClient,DicomMcpClient) without requiring a server reboot.
sequenceDiagram
participant CLI as VM / K8s / CLI Launcher
participant Loader as MedVfsConfigLoader
participant Registry as ClinicalMcpClientRegistry
participant MCP as MCP Satellite Servers
CLI->>Loader: Injects vfs.yaml & study.yaml
Loader->>Loader: Deserializes into VfsSpec & StudySpec
Loader->>Registry: updateClientEndpoint("omop", "http://...")
Loader->>Registry: updateClientEndpoint("dicom", "http://...")
Loader->>MCP: Establishes SSE stream connection
Registry-->>CLI: 19 Clinical Tools Active & Ready
3. Multi-Target Deployment Commands
Section titled “3. Multi-Target Deployment Commands”Local CLI Execution
Section titled “Local CLI Execution”java -jar cb-svc-ai.jar \ --vfs=./cb-specs/catalog/sources/slidelab-abmil-vfs.yaml \ --study=./cb-specs/catalog/pipelines/slidelab-abmil-study.yamlAutomated Single-Command VM (Multipass / KVM)
Section titled “Automated Single-Command VM (Multipass / KVM)”./cb-devops/local/launch-colabbio-vm.sh \ --name slidelab-abmil-vm \ --vfs ./cb-specs/catalog/sources/slidelab-abmil-vfs.yaml \ --study ./cb-specs/catalog/pipelines/slidelab-abmil-study.yaml \ --cpus 4 --memory 16G --disk 50GKubernetes Cluster Deployment (Helm)
Section titled “Kubernetes Cluster Deployment (Helm)”helm install colabbio-tenant-slidelab ./cb-devops/cluster/charts/mcp-stack \ --set-file vfsConfig=./cb-specs/catalog/sources/slidelab-abmil-vfs.yaml \ --set-file studyConfig=./cb-specs/catalog/pipelines/slidelab-abmil-study.yaml \ -n colabbio-dev