Handle badger config correctly

This commit is contained in:
Owen 2025-08-14 20:30:07 -07:00
parent 2c96eb7851
commit f9184cf489
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
2 changed files with 59 additions and 35 deletions

View file

@ -213,9 +213,34 @@ export class TraefikConfigManager {
}
}
logger.debug(
`Successfully retrieved traefik config: ${JSON.stringify(traefikConfig)}`
);
const badgerMiddlewareName = "badger";
traefikConfig.http.middlewares[badgerMiddlewareName] = {
plugin: {
[badgerMiddlewareName]: {
apiBaseUrl: new URL(
"/api/v0",
`http://${
config.getRawConfig().server.internal_hostname
}:${config.getRawConfig().server.internal_port}`
).href,
userSessionCookieName:
config.getRawConfig().server.session_cookie_name,
// deprecated
accessTokenQueryParam:
config.getRawConfig().server
.resource_access_token_param,
resourceSessionRequestParam:
config.getRawConfig().server
.resource_session_request_param
}
}
};
// logger.debug(
// `Successfully retrieved traefik config: ${JSON.stringify(traefikConfig)}`
// );
return { domains, traefikConfig };
} catch (error) {
@ -313,9 +338,9 @@ export class TraefikConfigManager {
return [];
}
logger.debug(
`Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains`
);
// logger.debug(
// `Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains`
// );
return response.data.data;
} catch (error) {

View file

@ -8,6 +8,8 @@ import { orgs, resources, sites, Target, targets } from "@server/db";
import { build } from "@server/build";
let currentExitNodeId: number;
const redirectHttpsMiddlewareName = "redirect-to-https";
const badgerMiddlewareName = "badger";
export async function traefikConfigProvider(
_: Request,
@ -43,7 +45,32 @@ export async function traefikConfigProvider(
}
}
const traefikConfig = await getTraefikConfig(currentExitNodeId);
let traefikConfig = await getTraefikConfig(currentExitNodeId);
traefikConfig.http.middlewares[badgerMiddlewareName] = {
plugin: {
[badgerMiddlewareName]: {
apiBaseUrl: new URL(
"/api/v0",
`http://${
config.getRawConfig().server.internal_hostname
}:${config.getRawConfig().server.internal_port}`
).href,
userSessionCookieName:
config.getRawConfig().server.session_cookie_name,
// deprecated
accessTokenQueryParam:
config.getRawConfig().server
.resource_access_token_param,
resourceSessionRequestParam:
config.getRawConfig().server
.resource_session_request_param
}
}
};
return res.status(HttpCode.OK).json(traefikConfig);
} catch (e) {
logger.error(`Failed to build Traefik config: ${e}`);
@ -132,37 +159,9 @@ export async function getTraefikConfig(exitNodeId: number): Promise<any> {
return {};
}
const badgerMiddlewareName = "badger";
const redirectHttpsMiddlewareName = "redirect-to-https";
const config_output: any = {
http: {
middlewares: {
[badgerMiddlewareName]: {
plugin: {
[badgerMiddlewareName]: {
apiBaseUrl: new URL(
"/api/v1",
`http://${
config.getRawConfig().server
.internal_hostname
}:${config.getRawConfig().server.internal_port}`
).href,
userSessionCookieName:
config.getRawConfig().server
.session_cookie_name,
// deprecated
accessTokenQueryParam:
config.getRawConfig().server
.resource_access_token_param,
resourceSessionRequestParam:
config.getRawConfig().server
.resource_session_request_param
}
}
},
[redirectHttpsMiddlewareName]: {
redirectScheme: {
scheme: "https"