feat: Enhance server validation in server.js and improve gateway management in ServerManager and FilterManager, ensuring proper gateway configuration for jumphost and exit server types.
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 2m2s

This commit is contained in:
2025-12-06 23:56:08 +07:00
parent d39d9adb2d
commit 7bc5b48af7
3 changed files with 173 additions and 267 deletions
+16
View File
@@ -306,6 +306,22 @@ const serversRoutes = createJsonDataRoutes('servers.json', (server, i) => {
return `Server at index ${i} has invalid type (allowed: ${SERVER_TYPES.join(', ')})`;
}
if (normalizedType === 'jumphost' || normalizedType === 'exit') {
if (!Array.isArray(server.gateways) || server.gateways.length === 0) {
return `Server at index ${i} must have gateways for type ${normalizedType}`;
}
const primaries = server.gateways.filter(g => g && g.primary);
if (primaries.length !== 1) {
return `Server at index ${i} must have exactly one primary gateway`;
}
for (let j = 0; j < server.gateways.length; j++) {
const gw = server.gateways[j] || {};
if (!gw.name || String(gw.name).trim().length === 0) {
return `Server at index ${i} gateway at index ${j} is missing name`;
}
}
}
// Нормализуем тип, чтобы в S3 всегда лежали одинаковые значения
server.type = normalizedType;
return null;