From fd03c16eca085423267c163137b28ccb60de8db0 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Wed, 25 Feb 2026 00:45:13 +0100
Subject: [PATCH] feat: multi-compose rebuild (Seafile), cancel endpoint, schedule router, project descriptor

---
 app/routers/sync_data.py |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/routers/sync_data.py b/app/routers/sync_data.py
index 46f1089..a51b47b 100644
--- a/app/routers/sync_data.py
+++ b/app/routers/sync_data.py
@@ -28,13 +28,16 @@
     to_env: str,
     db_only: bool,
     uploads_only: bool,
+    dry_run: bool = False,
 ) -> AsyncGenerator[str, None]:
     """Stream sync output via SSE."""
-    args = ["sync", project, "--from", from_env, "--to", to_env, "--yes"]
+    args = ["sync", project, "--from", from_env, "--to", to_env]
     if db_only:
         args.append("--db-only")
     if uploads_only:
         args.append("--uploads-only")
+    if dry_run:
+        args.append("--dry-run")
 
     mode = "db-only" if db_only else ("uploads-only" if uploads_only else "full")
     yield _sse_line({
@@ -58,6 +61,7 @@
     to_env: str = Query(default="int", alias="to"),
     db_only: bool = Query(default=False),
     uploads_only: bool = Query(default=False),
+    dry_run: bool = Query(default=False),
     _: str = Depends(verify_token),
 ) -> StreamingResponse:
     """Sync data backward (prod->int, int->dev) with SSE streaming."""
@@ -67,7 +71,7 @@
             detail=f"Invalid sync path '{from_env} -> {to_env}'. Only adjacent pairs are allowed: prod->int, int->dev.",
         )
     return StreamingResponse(
-        _sync_generator(project, from_env, to_env, db_only, uploads_only),
+        _sync_generator(project, from_env, to_env, db_only, uploads_only, dry_run),
         media_type="text/event-stream",
         headers={
             "Cache-Control": "no-cache",

--
Gitblit v1.3.1