From d7cd0f05ffde1f8065c1a94b33c6fca44f0f3424 Mon Sep 17 00:00:00 2001 From: Pierre Date: Sat, 21 Feb 2026 18:46:51 +0100 Subject: [PATCH] bugfix on webdav url retriving --- packages/meta-sort-core/src/index.ts | 4 ++-- packages/meta-sort-core/src/kv/IKVClient.ts | 5 ++++- packages/meta-sort-core/src/kv/LeaderClient.ts | 13 ++++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/meta-sort-core/src/index.ts b/packages/meta-sort-core/src/index.ts index 55c2be5..b31e94c 100644 --- a/packages/meta-sort-core/src/index.ts +++ b/packages/meta-sort-core/src/index.ts @@ -178,9 +178,9 @@ process.on('SIGINT', async () => { if (existsSync(config.CONTAINER_PLUGINS_CONFIG)) { console.log('[Startup] Initializing container plugins...'); try { - // Get webdavUrl from meta-core via LeaderClient + // Get webdavUrlInternal from meta-core via LeaderClient (for container-to-container access) const leaderInfo = kvManager?.getLeaderInfo(); - const webdavUrl = leaderInfo?.webdavUrl; + const webdavUrl = leaderInfo?.webdavUrlInternal ?? leaderInfo?.webdavUrl; if (webdavUrl) { console.log(`[Startup] WebDAV URL from meta-core: ${webdavUrl}`); } else { diff --git a/packages/meta-sort-core/src/kv/IKVClient.ts b/packages/meta-sort-core/src/kv/IKVClient.ts index d5dbc54..2fb90ee 100644 --- a/packages/meta-sort-core/src/kv/IKVClient.ts +++ b/packages/meta-sort-core/src/kv/IKVClient.ts @@ -155,9 +155,12 @@ export interface LeaderLockInfo { /** Redis connection URL (e.g., redis://10.0.1.50:6379) */ redisUrl: string; - /** WebDAV URL for file access */ + /** WebDAV URL for file access (external, via nginx/HTTPS) */ webdavUrl: string; + /** WebDAV URL for internal container-to-container access (direct to port 9000) */ + webdavUrlInternal: string; + /** Timestamp when leadership was acquired */ timestamp: number; diff --git a/packages/meta-sort-core/src/kv/LeaderClient.ts b/packages/meta-sort-core/src/kv/LeaderClient.ts index 2e3372d..e6350dc 100644 --- a/packages/meta-sort-core/src/kv/LeaderClient.ts +++ b/packages/meta-sort-core/src/kv/LeaderClient.ts @@ -29,6 +29,7 @@ export interface URLsResponse { apiUrl: string; redisUrl: string; webdavUrl: string; + webdavUrlInternal: string; isLeader: boolean; } @@ -117,6 +118,7 @@ export class LeaderClient { apiUrl: urls.apiUrl, redisUrl: urls.redisUrl, webdavUrl: urls.webdavUrl, + webdavUrlInternal: urls.webdavUrlInternal, timestamp: Date.now(), pid: 0 // Unknown for remote leader }; @@ -136,13 +138,22 @@ export class LeaderClient { } /** - * Get WebDAV URL from leader info + * Get WebDAV URL from leader info (external, via nginx/HTTPS) */ async getWebdavUrl(): Promise { const info = await this.getLeaderInfo(); return info?.webdavUrl ?? null; } + /** + * Get internal WebDAV URL from leader info (direct to port 9000) + * Use this for container-to-container communication + */ + async getWebdavUrlInternal(): Promise { + const info = await this.getLeaderInfo(); + return info?.webdavUrlInternal ?? null; + } + /** * Get meta-core API URL from leader info */