Working on making blueprints work

This commit is contained in:
Owen
2025-09-14 20:33:06 -07:00
parent 08d6183c9b
commit 7a66163216
3 changed files with 8 additions and 6 deletions

View File

@@ -107,7 +107,7 @@ export async function updateProxyResources(
enabled: targetData.enabled,
internalPort: internalPortToCreate,
path: targetData.path,
pathMatchType: targetData.pathMatchType
pathMatchType: targetData["path-match"]
})
.returning();
@@ -333,7 +333,7 @@ export async function updateProxyResources(
port: targetData.port,
enabled: targetData.enabled,
path: targetData.path,
pathMatchType: targetData.pathMatchType
pathMatchType: targetData["path-match"]
})
.where(eq(targets.targetId, existingTarget.targetId))
.returning();
@@ -424,7 +424,7 @@ export async function updateProxyResources(
validateRule(rule);
await trx.insert(resourceRules).values({
resourceId: existingResource.resourceId,
action: rule.action.toUpperCase(),
action: getRuleAction(rule.action),
match: rule.match.toUpperCase(),
value: rule.value,
priority: index + 1 // start priorities at 1

View File

@@ -14,7 +14,7 @@ export const TargetSchema = z.object({
enabled: z.boolean().optional().default(true),
"internal-port": z.number().int().min(1).max(65535).optional(),
path: z.string().optional(),
pathMatchType: z.enum(["exact", "prefix", "regex"]).optional().nullable()
"path-match": z.enum(["exact", "prefix", "regex"]).optional().nullable()
});
export type TargetData = z.infer<typeof TargetSchema>;

View File

@@ -348,7 +348,9 @@ export async function getTraefikConfig(
}
let rule = `Host(\`${fullDomain}\`)`;
let priority = 100;
if (resource.path && resource.pathMatchType) {
priority += 1;
// add path to rule based on match type
if (resource.pathMatchType === "exact") {
rule += ` && Path(\`${resource.path}\`)`;
@@ -368,7 +370,7 @@ export async function getTraefikConfig(
middlewares: routerMiddlewares,
service: serviceName,
rule: rule,
priority: 100,
priority: priority,
...(resource.ssl ? { tls } : {})
};
@@ -380,7 +382,7 @@ export async function getTraefikConfig(
middlewares: [redirectHttpsMiddlewareName],
service: serviceName,
rule: rule,
priority: 100
priority: priority
};
}