fix: sync global WAF and GeoBlock settings to slave instances
Both "waf" and "geoblock" settings were missing from the sync payload, meaning slaves used their own (potentially unconfigured) values. Per-host WAF was already synced via the proxyHosts table. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,8 @@ export type SyncSettings = {
|
||||
logging: unknown | null;
|
||||
dns: unknown | null;
|
||||
upstream_dns_resolution: unknown | null;
|
||||
waf: unknown | null;
|
||||
geoblock: unknown | null;
|
||||
};
|
||||
|
||||
export type SyncPayload = {
|
||||
@@ -243,7 +245,9 @@ export async function buildSyncPayload(): Promise<SyncPayload> {
|
||||
metrics: await getSetting("metrics"),
|
||||
logging: await getSetting("logging"),
|
||||
dns: await getSetting("dns"),
|
||||
upstream_dns_resolution: await getSetting("upstream_dns_resolution")
|
||||
upstream_dns_resolution: await getSetting("upstream_dns_resolution"),
|
||||
waf: await getSetting("waf"),
|
||||
geoblock: await getSetting("geoblock"),
|
||||
};
|
||||
|
||||
const sanitizedAccessLists = accessListRows.map((row) => ({
|
||||
@@ -398,6 +402,8 @@ export async function applySyncPayload(payload: SyncPayload) {
|
||||
await setSyncedSetting("logging", payload.settings.logging);
|
||||
await setSyncedSetting("dns", payload.settings.dns);
|
||||
await setSyncedSetting("upstream_dns_resolution", payload.settings.upstream_dns_resolution ?? null);
|
||||
await setSyncedSetting("waf", payload.settings.waf ?? null);
|
||||
await setSyncedSetting("geoblock", payload.settings.geoblock ?? null);
|
||||
|
||||
// better-sqlite3 is synchronous, so transaction callback must be synchronous
|
||||
db.transaction((tx) => {
|
||||
|
||||
Reference in New Issue
Block a user