upload volledige repo

This commit is contained in:
kodi
2026-03-11 09:39:41 +01:00
commit ce420cbb0e
110 changed files with 5660 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
# STEP1_5_CONSOLIDATION.md
## Doel
Consolidatie van stap 1 t/m 5 (backend skeleton, path_guard, unit tests, browse endpoint, golden tests).
## 1. Test-run context
Tests draaien vanuit repository root met:
- `PYTHONPATH=webui`
Definitieve testcommando's voor deze fase:
- `PYTHONPATH=webui python3 -m unittest discover -s webui/backend/tests/unit -p "test_*.py" -v`
- `PYTHONPATH=webui python3 -m unittest discover -s webui/backend/tests/golden -p "test_*.py" -v`
- `PYTHONPATH=webui python3 -m unittest discover -s webui/backend/tests -p "test_*.py" -v`
## 2. Minimale dependencies voor stap 1-5
Vastgelegd in:
- `webui/backend/requirements.txt`
Benodigd voor deze fase:
- FastAPI app + browse endpoint
- unit tests
- golden tests
Dependencies:
- `fastapi==0.111.0`
- `starlette==0.37.2`
- `pydantic==2.12.5`
- `httpx==0.27.2`
- `anyio==4.4.0`
- `sniffio==1.3.1`
## 3. Minimale wijzigingen in deze fase
Functioneel gewijzigde bestanden:
- `webui/backend/app/api/routes_browse.py`
- `webui/backend/app/dependencies.py`
- `webui/backend/app/main.py`
Testmatig gewijzigde bestanden:
- `webui/backend/tests/golden/test_api_browse_golden.py`
- `webui/backend/tests/golden/test_api_errors_golden.py`
Waarom golden tests van TestClient naar `httpx.ASGITransport` zijn omgezet:
- In deze omgeving blokkeerde de TestClient-runner op sync execution pad.
- `httpx.ASGITransport` voert requests in-memory tegen de ASGI app uit zonder die blokkade.
- Dit is een testuitvoerbaarheidsfix, geen API-contractwijziging.
Waarom async wijzigingen nodig waren:
- Error-pad en dependency-pad moesten async blijven om runtime-blokkade in deze omgeving te vermijden.
- De wijzigingen zijn intern uitvoeringsgericht; het HTTP-contract blijft gelijk.
## 4. Contractbehoud (expliciet)
Door deze consolidatiestap is niets gewijzigd aan:
- endpointpad: `GET /api/browse`
- query parameters: `path`, `show_hidden`
- response shape: `path`, `directories[]`, `files[]` met dezelfde velden
- error codes: o.a. `invalid_root_alias`, `path_traversal_detected`, `path_not_found`, `path_type_conflict`
- hidden files policy: default hidden uit, optioneel via `show_hidden=true`
## 5. Scopebevestiging
Niet geïmplementeerd in deze consolidatiestap:
- rename
- mkdir
- delete
- copy
- move
- tasks/worker
- frontend