dragonflight/services/web-ui/public
Zac Gaetano 5968d4f681 feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing
Implements docs/superpowers/specs/2026-05-31-storage-settings-growing-smb-design.md.

1. Storage warning banner at the top of Settings → Storage (set-once /
   path-change-corrupts-data warning).

2. Growing-files SMB credentials + system CIFS mount (Approach A):
   - settings.js: new global keys growing_smb_mount / growing_smb_username /
     growing_smb_vers; growing_smb_password is write-only (GET returns only
     growing_smb_password_exists; growing_smb_password_clear:true removes it).
   - GrowingSettingsCard: SMB mount/username/password (masked, "saved" state) +
     CIFS version fields.
   - capture Dockerfile: add cifs-utils + util-linux.
   - capture-manager: on growing start, mount //host/share at /growing using a
     root-only credentials file (creds never on the command line); unmount on
     stop; mount failure falls back to S3 streaming so a recording is never lost.
   - recorders.js: pass GROWING_SMB_* env; don't host-bind /growing when a CIFS
     mount is configured (an empty mountpoint is required).

3. Per-recorder growing mode (global toggle removed):
   - Removed the global "capture writes to local SMB share first" checkbox; the
     growing card is now SMB-infrastructure-only.
   - recorders.js reads the per-recorder recorders.growing_enabled column
     (already present from migration 014) instead of the global setting;
     RECORDER_FIELDS += growing_enabled.
   - New-recorder modal: "Growing-files mode" toggle.
   - storage.js overview: "enabled" now means the SMB landing zone is configured
     (mount source set), surfaced as smb_mount; health strip labels updated.

No DB migration required (recorders.growing_enabled exists; new settings are
key/value rows).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 14:50:36 -04:00
..
css fix: remove Google Fonts, fix editor link to :47435, fix page titles 2026-05-18 22:56:51 -04:00
downloads feat(uxp): ship the icon-rail panel redesign as v2.2.2 (recover from redesign branch) 2026-05-29 20:45:29 -04:00
fonts web-ui: wave-1 finish — self-host fonts + multi-stage Dockerfile 2026-05-21 16:32:55 +00:00
img feat(brand): add Wild Dragon logo + favicon 2026-05-18 14:11:29 +00:00
js rip out entire auth/login flow 2026-05-27 03:39:58 +00:00
app.jsx feat(web-ui): MCR page — channels, playlist, transport, preview 2026-05-30 14:02:25 +00:00
auth-gate.jsx ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
data.jsx feat(web-ui): serve UXP (.ccx) plugin, remove legacy ZXP panel 2026-05-29 14:20:46 -04:00
favicon.ico feat(brand): add Wild Dragon logo + favicon 2026-05-18 14:11:29 +00:00
icons.jsx fix(web-ui): restore icon audit fixes on feat/playout-mcr 2026-05-31 13:52:37 -04:00
index.html feat(web-ui): MCR page — channels, playlist, transport, preview 2026-05-30 14:02:25 +00:00
modal-new-recorder.jsx feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing 2026-05-31 14:50:36 -04:00
screens-admin.jsx feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing 2026-05-31 14:50:36 -04:00
screens-asset.jsx fix(mam-api): /stream returns MP4 url + separate hls_url (fixes Premiere import) 2026-05-29 21:44:52 -04:00
screens-auth.jsx feat(mam-api,web-ui): Google OAuth (OIDC) sign-in 2026-05-30 02:51:59 +00:00
screens-editor.jsx ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
screens-home.jsx fix(web-ui): restore home screen icon fixes on feat/playout-mcr 2026-05-31 13:56:19 -04:00
screens-ingest.jsx fix(web-ui): show live download % on YouTube import bar 2026-05-29 19:53:19 -04:00
screens-jobs.jsx feat(jobs): surface playout-stage queue in Jobs screen 2026-05-31 12:06:08 -04:00
screens-library.jsx ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
screens-playout.jsx fix(playout): HLS preview path + live elapsed counter 2026-05-31 13:16:57 -04:00
screens-projects.jsx feat(mam-api,web-ui): per-project RBAC (v2 auth layer) 2026-05-30 02:37:36 +00:00
screens-resources.jsx fix: use external MAM_API_URL for remote capture sidecars; add cluster metrics endpoint and dashboard resource graphs 2026-05-29 01:04:24 +00:00
shell.jsx fix(web-ui): restore nav icon fixes on feat/playout-mcr 2026-05-31 13:54:16 -04:00
styles-asset.css ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
styles-fixes.css fix: use external MAM_API_URL for remote capture sidecars; add cluster metrics endpoint and dashboard resource graphs 2026-05-29 01:04:24 +00:00
styles-modal.css feat(web-ui): Z-AMPP screen + component CSS: styles-modal.css 2026-05-22 08:03:57 -04:00
styles-playout.css fix(playout): silent-audio staging crash, home tiles, channel delete 2026-05-31 12:03:20 -04:00
styles-rest.css ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
styles-screens.css feat(ui): add 'Cancel all failed' button to Jobs screen 2026-05-29 00:02:55 +00:00
styles.css ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
tweaks-panel.jsx Add Z-AMPP UI: visuals + tweaks-panel: tweaks-panel.jsx 2026-05-22 08:13:37 -04:00
visuals.jsx chore: 1.2 ship-prep sweep — close 38 issues 2026-05-27 02:06:14 +00:00