diff --git a/src/modules/parcel-sync/services/eterra-client.ts b/src/modules/parcel-sync/services/eterra-client.ts index a0d1f73..11d507d 100644 --- a/src/modules/parcel-sync/services/eterra-client.ts +++ b/src/modules/parcel-sync/services/eterra-client.ts @@ -59,7 +59,7 @@ type ProgressCallback = (downloaded: number, total?: number) => void; const BASE_URL = "https://eterra.ancpi.ro/eterra"; const LOGIN_URL = `${BASE_URL}/api/authentication`; -const DEFAULT_TIMEOUT_MS = 40_000; +const DEFAULT_TIMEOUT_MS = 120_000; const DEFAULT_PAGE_SIZE = 1000; const PAGE_SIZE_FALLBACKS = [500, 200]; const MAX_RETRIES = 2; diff --git a/src/modules/parcel-sync/services/sync-service.ts b/src/modules/parcel-sync/services/sync-service.ts index 3f68df9..29438d3 100644 --- a/src/modules/parcel-sync/services/sync-service.ts +++ b/src/modules/parcel-sync/services/sync-service.ts @@ -54,6 +54,8 @@ export async function syncLayer( /** When true, don't set terminal status (done/error) on progress store. * Used when syncLayer runs as a sub-step of a larger export flow. */ isSubStep?: boolean; + /** Override the default HTTP timeout for the eTerra client (ms). */ + timeoutMs?: number; }, ): Promise { const jobId = options?.jobId; @@ -103,7 +105,9 @@ export async function syncLayer( try { push({ phase: "Conectare eTerra", downloaded: 0 }); - const client = await EterraClient.create(username, password); + const client = await EterraClient.create(username, password, { + timeoutMs: options?.timeoutMs, + }); // Get UAT geometry for spatial-filtered layers let uatGeometry;