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( const badgerMiddlewareName = "badger";
`Successfully retrieved traefik config: ${JSON.stringify(traefikConfig)}` 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 }; return { domains, traefikConfig };
} catch (error) { } catch (error) {
@ -313,9 +338,9 @@ export class TraefikConfigManager {
return []; return [];
} }
logger.debug( // logger.debug(
`Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains` // `Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains`
); // );
return response.data.data; return response.data.data;
} catch (error) { } catch (error) {

View file

@ -8,6 +8,8 @@ import { orgs, resources, sites, Target, targets } from "@server/db";
import { build } from "@server/build"; import { build } from "@server/build";
let currentExitNodeId: number; let currentExitNodeId: number;
const redirectHttpsMiddlewareName = "redirect-to-https";
const badgerMiddlewareName = "badger";
export async function traefikConfigProvider( export async function traefikConfigProvider(
_: Request, _: 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); return res.status(HttpCode.OK).json(traefikConfig);
} catch (e) { } catch (e) {
logger.error(`Failed to build Traefik config: ${e}`); logger.error(`Failed to build Traefik config: ${e}`);
@ -132,37 +159,9 @@ export async function getTraefikConfig(exitNodeId: number): Promise<any> {
return {}; return {};
} }
const badgerMiddlewareName = "badger";
const redirectHttpsMiddlewareName = "redirect-to-https";
const config_output: any = { const config_output: any = {
http: { http: {
middlewares: { 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]: { [redirectHttpsMiddlewareName]: {
redirectScheme: { redirectScheme: {
scheme: "https" scheme: "https"