Files
webmanager-mvp/project_docs/FILE_INFO_V1_DESIGN.md
2026-03-12 11:45:56 +01:00

5.1 KiB

File Info v1 Design

1. Doel

File info voegt nu waarde toe omdat de huidige UI sterk gericht is op navigatie en acties, maar nog weinig context geeft over het geselecteerde item zelf. Een compacte read-only infomodal helpt bij controle vóór rename/move/delete, bij het onderscheiden van vergelijkbare items, en bij snelle inspectie van een directory of bestand zonder de workspace te verlaten.

Dit past goed binnen de dual-pane workflow zolang het een lichte, tijdelijke overlay blijft en geen extra paneel of blijvende schermruimte vraagt.

2. Startgedrag

Aanbevolen v1-gedrag:

  • Mac: Cmd+Enter
  • Windows/Linux: Ctrl+Enter
  • Alleen actief bij exact 1 geselecteerd item
  • Geen extra zichtbare knop in topbar of functiebalk in v1

Reden:

  • De interface blijft rustig
  • De feature blijft beschikbaar voor power users
  • Het voorkomt nieuwe visuele drukte in de bestaande workspace

Latere uitbreiding:

  • Een functiebalkknop zoals Info of F9 kan later logisch zijn, maar hoort niet in deze slice

3. Scope

In scope voor v1:

  • Exact 1 file
  • Exact 1 directory
  • Read-only modal
  • Geen acties vanuit de modal
  • Geen thumbnails
  • Geen preview, edit of playback in deze modal

Niet in scope:

  • Multi-select info
  • Bestandsinhoud tonen
  • Directory tree analyse
  • Checksums/hashes
  • ACL/permissions-editor

4. Minimale informatievelden

Aanbevolen minimale velden in v1:

  • name
  • path
  • type
  • size
  • modified
  • root
  • extension voor files waar zinvol
  • content_type voor files waar zinvol
  • owner
  • group

Toelichting:

  • name, path, type, modified en root zijn bijna altijd nuttig
  • size is nuttig voor files; voor directories alleen als veilig/goedkoop beschikbaar
  • extension is nuttig voor file-context
  • content_type is nuttig als lichte afgeleide metadata, niet als zware contentanalyse
  • owner/group is nuttig voor troubleshooting op mounted storage

5. Directory-info

Veilige v1-richting voor directories:

  • Toon:
    • naam
    • pad
    • type = directory
    • modified time
    • root/context
    • owner/group indien beschikbaar
  • Toon niet standaard:
    • recursieve grootte
    • totale child count via diepe scan

Aanbeveling:

  • Geen recursieve directorygrootte in v1
  • Geen child count tenzij die goedkoop via directe listing kan worden opgehaald en duidelijk als shallow count wordt gelabeld

Motivatie:

  • Grote trees kunnen duur zijn
  • Dit verhoogt regressierisico en latentie zonder kernwaarde voor v1

6. Backend-impact

Aanbevolen backendrichting:

  • Nieuw read-only endpoint, bijvoorbeeld:
    • GET /api/files/info?path=...

Herbruik bestaande infrastructuur:

  • path_guard voor alle padvalidatie
  • bestaande whitelist/root containment
  • bestaande not-found/type/security foutmapping
  • bestaande filesystem-adapter voor stat-achtige metadata

Veiligheidsmodel:

  • Alleen metadata lezen
  • Geen filesystem-mutatie
  • Geen directory traversal buiten whitelist
  • Geen volgen van escapes buiten toegestane roots

Waarschijnlijk benodigde backendvelden in response:

  • name
  • path
  • type
  • size
  • modified
  • root
  • extension
  • content_type
  • owner
  • group

7. Frontend-impact

Aanbevolen UI-richting:

  • Aparte info-modal
  • Geen hergebruik van de tekst-viewer of edit-modal
  • Zelfde lichte modalstructuur als bestaande modals, voor consistentie

Gedrag:

  • Open via Cmd+Enter of Ctrl+Enter
  • Sluiten via X en Escape
  • Terwijl modal open is, geen paneelkeyboardnavigatie
  • Geen interferentie met gewone Enter

Samenwerking met bestaande openflows:

  • Gewoon Enter blijft directory openen en video openen waar nu al afgesproken
  • Cmd/Ctrl+Enter wordt exclusief voor File Info
  • Daardoor blijft bestaand open-gedrag intact

8. Regressierisico

Belangrijkste risico's:

  • Keyboardconflict met bestaand Enter
  • Focusconflict met bestaande modals
  • Onbedoeld openen bij multi-select of lege selectie
  • Verwarring met bestaande view/edit/video flows

Laag-risico aanpak:

  • Alleen reageren bij exact 1 selectie
  • Alleen Cmd/Ctrl+Enter, niet gewone Enter
  • Eigen modal-open check in de globale keyboard handler
  • Geen wijziging aan bestaande browse/selectie/open-directory logica

9. Teststrategie

Backend golden tests:

  • file info success
  • directory info success
  • path not found
  • traversal blocked
  • invalid root alias
  • file/directory response shape

UI smoke/regressietests:

  • info-modal container aanwezig
  • keyboard wiring voor Cmd/Ctrl+Enter aanwezig
  • geen extra zichtbare knop toegevoegd in functiebalk/topbar

Handmatige validatie:

  • Exact 1 file geselecteerd -> info opent
  • Exact 1 directory geselecteerd -> info opent
  • Multi-select -> niets doen
  • Lege selectie -> niets doen
  • Escape sluit modal
  • Gewone Enter blijft bestaande open-semantiek houden

10. Aanbeveling

Aanbevolen v1-richting met laag regressierisico:

  • Nieuw read-only endpoint GET /api/files/info?path=...
  • Aparte compacte info-modal
  • Alleen openen via Cmd+Enter op Mac en Ctrl+Enter op Windows/Linux
  • Alleen bij exact 1 geselecteerd item
  • Directory-info beperkt houden tot goedkope metadata
  • Geen zichtbare extra knop in deze fase

Dit levert een bruikbare infofunctie op zonder de huidige dual-pane workflow, keyboardflow of bestaande modals onnodig te verstoren.