♻️ refactor

This commit is contained in:
Fred KISSIE
2026-09-18 21:04:56 +02:00
parent 67f45023db
commit d06a261cd6
+34 -49
View File
@@ -1,56 +1,54 @@
import { import {
db, db,
targetHealthCheck,
domains, domains,
aiProviders,
resourceAiProviders,
siteResources,
siteNetworks,
exitNodes, exitNodes,
redirects resources,
siteNetworks,
siteResources,
sites,
targetHealthCheck,
targets
} from "@server/db"; } from "@server/db";
import regionalCache from "@server/lib/cache";
import config from "@server/lib/config";
import logger from "@server/logger";
import { import {
and, and,
desc,
eq, eq,
inArray, inArray,
or,
isNull,
ne,
isNotNull, isNotNull,
desc, isNull,
or,
sql sql
} from "drizzle-orm"; } from "drizzle-orm";
import logger from "@server/logger"; import {
import config from "@server/lib/config"; AI_GATEWAY_CLIENT_IP_MIDDLEWARE_NAME,
import { resources, sites, targets } from "@server/db"; AI_GATEWAY_TRUST_MIDDLEWARE_RESOURCE,
import { applyPathRewriteMiddleware } from "./middleware"; AI_GATEWAY_TRUST_MIDDLEWARE_SITE_RESOURCE,
import { sanitize, encodePath, validatePathRewriteConfig } from "./utils"; buildAiGatewayClientIpMiddleware,
import regionalCache from "@server/lib/cache"; buildAiGatewayHostHeaderMiddleware,
import { TargetWithSite } from "./types"; buildAiGatewayRouterAndService,
buildAiGatewayTrustMiddlewares,
getAiGatewayHost
} from "./aiGatewayMiddlewares";
import {
buildBrowserGatewayConfig,
buildBrowserGatewayResourcesMap
} from "./browserGateway";
import { buildWildcardTls } from "./certResolver"; import { buildWildcardTls } from "./certResolver";
import { buildHostRule, appendPathMatch, computeRoutePriority } from "./rule"; import { buildCustomHeadersMiddleware } from "./headersMiddleware";
import { import {
buildHttpLoadBalancerServers, buildHttpLoadBalancerServers,
buildStickySessionCookie, buildStickySessionCookie,
buildTcpUdpLoadBalancerServers, buildStickySessionIp,
buildStickySessionIp buildTcpUdpLoadBalancerServers
} from "./loadBalancer"; } from "./loadBalancer";
import { buildCustomHeadersMiddleware } from "./headersMiddleware"; import { applyPathRewriteMiddleware } from "./middleware";
import { import { appendPathMatch, buildHostRule, computeRoutePriority } from "./rule";
AI_GATEWAY_TRUST_MIDDLEWARE_RESOURCE,
AI_GATEWAY_TRUST_MIDDLEWARE_SITE_RESOURCE,
AI_GATEWAY_CLIENT_IP_MIDDLEWARE_NAME,
getAiGatewayHost,
buildAiGatewayTrustMiddlewares,
buildAiGatewayClientIpMiddleware,
buildAiGatewayHostHeaderMiddleware,
buildAiGatewayRouterAndService
} from "./aiGatewayMiddlewares";
import {
buildBrowserGatewayResourcesMap,
buildBrowserGatewayConfig
} from "./browserGateway";
import { buildSiteResourceAliasCertPlaceholders } from "./siteResourceAlias"; import { buildSiteResourceAliasCertPlaceholders } from "./siteResourceAlias";
import { TargetWithSite } from "./types";
import { encodePath, sanitize, validatePathRewriteConfig } from "./utils";
const redirectHttpsMiddlewareName = "redirect-to-https"; const redirectHttpsMiddlewareName = "redirect-to-https";
const badgerMiddlewareName = "badger"; const badgerMiddlewareName = "badger";
@@ -132,18 +130,12 @@ export async function getTraefikConfig(
// Domain cert resolver fields // Domain cert resolver fields
domainCertResolver: domains.certResolver, domainCertResolver: domains.certResolver,
preferWildcardCert: domains.preferWildcardCert, preferWildcardCert: domains.preferWildcardCert
// redirects
redirectMatchPath: redirects.matchPath,
redirectPathMatchType: redirects.pathMatchType,
redirectPriority: redirects.priority
}) })
.from(sites) .from(sites)
.innerJoin(targets, eq(targets.siteId, sites.siteId)) .innerJoin(targets, eq(targets.siteId, sites.siteId))
.innerJoin(resources, eq(resources.resourceId, targets.resourceId)) .innerJoin(resources, eq(resources.resourceId, targets.resourceId))
.leftJoin(domains, eq(domains.domainId, resources.domainId)) .leftJoin(domains, eq(domains.domainId, resources.domainId))
.leftJoin(redirects, eq(resources.resourceId, redirects.resourceId))
.leftJoin( .leftJoin(
targetHealthCheck, targetHealthCheck,
eq(targetHealthCheck.targetId, targets.targetId) eq(targetHealthCheck.targetId, targets.targetId)
@@ -175,13 +167,6 @@ export async function getTraefikConfig(
) )
.orderBy(desc(targets.priority), targets.targetId); // stable ordering .orderBy(desc(targets.priority), targets.targetId); // stable ordering
console.dir(
{
resourcesWithTargetsAndSites
},
{ depth: null }
);
// Group by resource and include targets with their unique site data // Group by resource and include targets with their unique site data
const resourcesMap = new Map(); const resourcesMap = new Map();