start/stop/restart van systemd units gaan nu via de host-helper
(/run/podman-helper.sock) in plaats van directe systemctl subprocess
vanuit de container. Hiermee wordt de user namespace isolatie omzeild
die D-Bus calls vanuit de container onbetrouwbaar maakt.
- common.py: _helper_call(action, unit) toegevoegd
- app_system.py: /{action}/{unit} route gebruikt helper voor start/stop/restart
- app_containers.py: container_action() gebruikt helper
- daemon-reload en is-active blijven subprocess (read-only, werkt al)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
run() stond identiek in app.py en app_system.py. Verplaatst naar
common.py als single source of truth; beide modules importeren
nu de centrale versie.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
De route @router.post("/api/<action>/<unit>") gebruikte Flask-syntaxis
die nooit matcht in FastAPI. Dead code verwijderd.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Drie endpoints gebruikten os.path.join zonder validatie, waardoor een
aanvaller buiten WORKLOADS_DIR kon lezen/schrijven. Vervangen door de
bestaande _files_safe_join() helper die al door alle /files/ endpoints
werd gebruikt.
Endpoints: /workloads/read/, /workloads/save-file, /workloads/deploy/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
/api/pods-dashboard genereerde onterecht 'pod<basename>' entries voor .container Quadlet-bestanden, wat leidde tot lege nep-pods zoals 'podn8n' in de WebUI.
Alleen echte pod-workloads (.pod, evt. .kube) mogen nog een Source:"systemd" pod-row opleveren.
Geen endpoint- of schemawijzigingen. Alleen filtering in control/app_pods.py aangepast.
- Containers kolom toont nu uitsluitend het numerieke aantal containers
- Shared network namespace wordt bepaald via expliciete isShared check
- 'shared' badge verplaatst van Containers kolom naar Flags kolom
- Eerdere uitlijnings-experimenten en CSS overrides opgeschoond
- Duidelijke scheiding aangebracht tussen metriek (aantal) en status (shared netns)
Resultaat: semantisch correctere tabel, stabielere layout en betere leesbaarheid.