vm-bench/backend
Claus Lohmar 63659e4f93 feat: session GUID isolation for multi-user support
Each browser gets a UUID stored in localStorage, set as a cookie,
and attached to every API call. Files go to session-specific dirs:

  /mnt/converter/in/{guid}/    — uploads, downloads, SCP pulls
  /mnt/converter/out/{guid}/   — converted QCOW2s

Changes:
- base.html: generates UUID via crypto.randomUUID(), stores in
  localStorage + cookie, exposes as window.VM_BENCH_SID
- Frontend: all endpoints accept session_id, _staging() helper
  creates session-aware paths on demand
- JavaScript: session_id appended to all FormData, set as
  X-Session-ID header on raw uploads
- Backend models: JobSubmissionRequest.session_id field added
- Provisioner: _staging_in/_staging_out helpers, source path
  resolution uses session-aware directory
- Converter: extract_if_needed skips re-extraction if dir exists
2026-07-23 09:32:16 +00:00
..
app.py feat: Clone (qm clone) + Copy (re-convert) buttons on completion 2026-07-23 09:02:57 +00:00
converter.py fix: skip re-extraction if source directory already exists 2026-07-23 09:28:02 +00:00
install.sh fix: add unrar-free, use 7z for .zip extraction (more reliable) 2026-07-21 19:37:27 +00:00
models.py feat: session GUID isolation for multi-user support 2026-07-23 09:32:16 +00:00
provisioner.py feat: session GUID isolation for multi-user support 2026-07-23 09:32:16 +00:00
requirements.txt chore: initial commit — vm-bench frontend + backend 2026-07-21 14:53:29 +00:00
vm-bench-backend.service fix: add /usr/sbin to PATH in service files (qm, virt-resize, etc.) 2026-07-21 19:24:13 +00:00