feat (docs): voeg Swagger UI toe op /docs, lokaal gebundeld
- Swagger UI v5.32.1 lokaal in assets/swagger-ui/ (geen CDN, offline bruikbaar) - webui/html/docs/index.html: custom pagina die /api/openapi.json laadt met requestInterceptor zodat Try it out via same-origin werkt - Link toegevoegd aan dashboard "Snel acties": API docs ↗ (opent in nieuw tabblad) - Docstrings toegevoegd aan destructieve endpoints (app_containers, app_images): container stop/restart, image remove (batch + single), image prune geven nu ⚠️-waarschuwingen in de Swagger UI beschrijving - Backend rebuild nodig voor docstrings zichtbaar in spec Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -572,6 +572,15 @@ def init_containers_router(
|
||||
|
||||
@router.post("/containers/{action}/{name}")
|
||||
def container_action(action: str, name: str):
|
||||
"""
|
||||
Voer een actie uit op een container.
|
||||
|
||||
- **start** — Start de container (of bijbehorende systemd-unit).
|
||||
- **stop** — ⚠️ Destructief: stopt de container direct.
|
||||
- **restart** — ⚠️ Destructief: herstart de container direct.
|
||||
|
||||
Gebruikt systemd als de container een beheerde unit heeft; anders Podman API direct.
|
||||
"""
|
||||
if action not in ("start", "stop", "restart"):
|
||||
return {"error": "Invalid action"}, 400
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@ def init_images_router(session, podman_api_base: str) -> APIRouter:
|
||||
# --- STAP 2: remove selected (batch) ---
|
||||
@router.post("/remove")
|
||||
def remove_images(req: ImageRemoveRequest):
|
||||
"""⚠️ Destructief: verwijdert één of meerdere images permanent. Niet terug te draaien."""
|
||||
# Libpod heeft batch remove via query params (images=...).
|
||||
url = f"{podman_api_base}/libpod/images/remove"
|
||||
params = {
|
||||
@@ -91,6 +92,7 @@ def init_images_router(session, podman_api_base: str) -> APIRouter:
|
||||
force: bool = Query(False),
|
||||
ignore: bool = Query(False),
|
||||
):
|
||||
"""⚠️ Destructief: verwijdert één image permanent op basis van naam of ID."""
|
||||
url = f"{podman_api_base}/libpod/images/remove"
|
||||
params = {
|
||||
"images": [image_ref],
|
||||
@@ -104,6 +106,7 @@ def init_images_router(session, podman_api_base: str) -> APIRouter:
|
||||
# --- STAP 2: prune (dangling default, all=true => unused) ---
|
||||
@router.post("/prune")
|
||||
def prune_images(all: bool = Query(False)):
|
||||
"""⚠️ Destructief: verwijdert dangling images (standaard) of alle ongebruikte images (`all=true`)."""
|
||||
url = f"{podman_api_base}/libpod/images/prune"
|
||||
params = {"all": str(all).lower()}
|
||||
resp = session.post(url, params=params)
|
||||
|
||||
Reference in New Issue
Block a user