From 622aabf38411cd8f125be04d77486ae2a42ef59a Mon Sep 17 00:00:00 2001 From: Yves Gugger Date: Sun, 21 Dec 2025 12:41:36 +0100 Subject: [PATCH] fix: Add dig to Docker, fix admin sync endpoints - Added dnsutils (dig) to backend Dockerfile for DNS zone transfers - Fixed admin zone sync endpoints with correct imports - AsyncSessionLocal instead of async_session_maker --- backend/Dockerfile | 2 ++ backend/app/api/admin.py | 17 +++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index a14ad00..6ac8443 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -12,8 +12,10 @@ RUN groupadd -r pounce && useradd -r -g pounce pounce WORKDIR /app # Install system dependencies +# dnsutils provides 'dig' for DNS zone transfers (AXFR) RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ + dnsutils \ && rm -rf /var/lib/apt/lists/* # Install Python dependencies diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py index 848f60d..810f93f 100644 --- a/backend/app/api/admin.py +++ b/backend/app/api/admin.py @@ -1743,11 +1743,12 @@ async def trigger_switch_sync( from app.services.zone_file import ZoneFileService async def run_sync(): - zf = ZoneFileService() - from app.database import async_session_maker - async with async_session_maker() as session: - result = await zf.sync_all_zones(session) - return result + from app.database import AsyncSessionLocal + async with AsyncSessionLocal() as session: + zf = ZoneFileService() + for tld in ["ch", "li"]: + await zf.run_daily_sync(session, tld) + return {"status": "complete"} background_tasks.add_task(run_sync) @@ -1770,9 +1771,9 @@ async def trigger_czds_sync( from app.services.czds_client import CZDSClient async def run_sync(): - client = CZDSClient() - from app.database import async_session_maker - async with async_session_maker() as session: + from app.database import AsyncSessionLocal + async with AsyncSessionLocal() as session: + client = CZDSClient() result = await client.sync_all_zones(session) return result