This document explains how Light Mode now handles multiple schema families.
Light Mode currently supports two schema profiles:
nomad-simulationsbam-masterdata
Each profile defines:
- its fixed Light Mode branch
- its default base namespace
- its default package
- its default root section
When Light Mode starts:
- Open the
Workspacepanel. - Pick a schema family first.
- If the selected schema is not available locally, use the schema load/update action while online.
- Once the profile is available, choose a package and root section.
- Click
Build graph. - Start editing only after the graph is loaded.
If the selected schema is unavailable and the machine is offline:
- the profile remains selectable
- package loading will not succeed
- the app should show an explicit failure instead of silently falling back
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -e .
cd web
npm install
$env:VITE_LIGHT_MODE='true'
npm run build
cd ..
schema-studiocd web
npm run tauri:dev- Start
schema-studio. - Confirm the
Workspacepanel shows bothnomad-simulationsandbam-masterdata. - Select
nomad-simulations. - Build a graph and confirm the default root works.
- Switch to
bam-masterdata. - Build a graph and confirm the BAM root works.
- Build the frontend:
cd web
$env:VITE_LIGHT_MODE='true'
npm run build
cd ..- Build the backend sidecar:
.\.venv\Scripts\python.exe scripts\build_light_mode_backend.py- Start Tauri:
cd web
npm run tauri:dev- Verify:
- the app window opens
- schema family selection is visible before graph building
- switching between BAM and NOMAD updates the workspace
- building each graph works
- closing the app stops the backend
- Rebuild the frontend and backend sidecar.
- Build the installer:
cd web
npm run tauri:build- Install the MSI.
- Launch the installed app and repeat the BAM/NOMAD selection checks.
The desktop sidecar build must bundle both schema families. That is why the PyInstaller build now collects:
nomad_simulationsbam_masterdata- supporting NOMAD runtime data
The next product decision is still how to handle profile loading when a schema family is not installed yet:
- require a manual online load step
- keep bundling both profiles in desktop builds
- add a hybrid "bundled fallback + online refresh" flow