Packs
pack-catalog.json → Apply pack → clinic_settings.pack + features + roleMatrix
Target clinic
clinicCode
Writes to clinic_<code>_settings / clinic_settings
Catalog source
Must be hosted inside Control App.
Mode
Idle
Dry run shows before/after without writing.
Available packs
Select one pack. We will enforce: clinic_settings.pack, clinic_settings.features, clinic_settings.roleMatrix.
Pack Builder IDLE
This edits the in-memory catalog used by this page. To persist, click Download Updated Catalog and replace your pack-catalog.json in GitHub.
Pack Key
lowercase letters/numbers/underscore/hyphen only. No leading underscore.
Label
Display name for the card.
Price
Any string. Keep it simple.
Quick actions
Features
Roles (comma list, auto-sanitized)
What this changes
- Adds/edits packs in the catalog JSON (file-based).
- Apply pack still writes clinic_settings via KITE_CTRL.applyPack().
- gate.js enforces in public app.
Tips
- Keep roles consistent (doctor/supervisor/frontoffice/lab).
- Never create pack keys starting with _.
Raw pack-catalog.json
Preview
Shows Before and After. After is what gets written (unless Dry run).
Before After
Before (clinic_settings)
After (computed)
Rule reminders
✅ pack-catalog.json is the source of truth.
✅ pack.html applies pack → clinic_settings.
✅ gate.js enforces pack/features/roleMatrix in public app.
✅ Control App stays private (no public links).