feat(server): expand server types to include BGP and DNS; enhance validation for required fields and tunnel requirements in server configuration
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m25s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m25s
This commit is contained in:
+14
-4
@@ -301,10 +301,14 @@ app.post('/api/ip-ranges', writeLimiter, ipRangesRoutes.post);
|
||||
// === JSON DATA ROUTES (используют фабрики) ===
|
||||
|
||||
// Servers
|
||||
const SERVER_TYPES = ['jumphost', 'exit'];
|
||||
const SERVER_TYPES = ['jumphost', 'exit', 'bgp', 'dns'];
|
||||
const TYPES_NEED_TUNNEL = ['jumphost', 'exit']; // Типы, которым нужен туннель
|
||||
const TYPES_NEED_GATEWAYS = ['jumphost', 'exit']; // Типы, которым нужны gateways
|
||||
|
||||
const serversRoutes = createJsonDataRoutes('servers.json', (server, i) => {
|
||||
if (!server.ip || !server.dns || !server.country || !server.provider || !server.tunnel) {
|
||||
return `Server at index ${i} is missing required fields`;
|
||||
// Базовые обязательные поля
|
||||
if (!server.ip || !server.dns || !server.country || !server.provider) {
|
||||
return `Server at index ${i} is missing required fields (ip, dns, country, provider)`;
|
||||
}
|
||||
|
||||
const normalizedType = String(server.type || '').toLowerCase();
|
||||
@@ -312,7 +316,13 @@ const serversRoutes = createJsonDataRoutes('servers.json', (server, i) => {
|
||||
return `Server at index ${i} has invalid type (allowed: ${SERVER_TYPES.join(', ')})`;
|
||||
}
|
||||
|
||||
if (normalizedType === 'jumphost' || normalizedType === 'exit') {
|
||||
// Туннель обязателен только для jumphost и exit
|
||||
if (TYPES_NEED_TUNNEL.includes(normalizedType) && !server.tunnel) {
|
||||
return `Server at index ${i} (${normalizedType}) requires tunnel type`;
|
||||
}
|
||||
|
||||
// Gateways обязательны только для jumphost и exit
|
||||
if (TYPES_NEED_GATEWAYS.includes(normalizedType)) {
|
||||
if (!Array.isArray(server.gateways) || server.gateways.length === 0) {
|
||||
return `Server at index ${i} must have gateways for type ${normalizedType}`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user