Skip to content

Commit e2b2c18

Browse files
committed
fix(webapp): keep log projection writes off read replicas
1 parent feafde8 commit e2b2c18

2 files changed

Lines changed: 5 additions & 16 deletions

File tree

apps/webapp/app/env.server.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2075,8 +2075,8 @@ const EnvironmentSchema = z
20752075
// Keep reads on v1 until the scheduled v2 projector has enough history.
20762076
LOGS_SEARCH_TABLE_VERSION: z.enum(["v1", "v2"]).default("v1"),
20772077

2078-
// Scheduled logs-search projection. Disabled by default. LOGS_CLICKHOUSE_URL must reach both
2079-
// the task_events_v2 source and task_events_search_v2 destination tables.
2078+
// Scheduled logs-search projection. Disabled by default. LOGS_CLICKHOUSE_URL, or the
2079+
// CLICKHOUSE_URL fallback, must reach both source and destination tables and allow writes.
20802080
LOGS_SEARCH_PROJECTOR_ENABLED: BoolEnv.default(false),
20812081
LOGS_SEARCH_PROJECTOR_PREVIEW_ENABLED: BoolEnv.default(false),
20822082
LOGS_SEARCH_PROJECTOR_MAX_WINDOWS_PER_TICK: z.coerce.number().int().min(1).max(20).default(5),
@@ -2105,10 +2105,7 @@ const EnvironmentSchema = z
21052105
AI_FEATURES_ENABLED: z.string().default("0"),
21062106

21072107
// Logs page ClickHouse URL (for logs queries)
2108-
LOGS_CLICKHOUSE_URL: z
2109-
.string()
2110-
.optional()
2111-
.transform((v) => v ?? process.env.CLICKHOUSE_READER_URL ?? process.env.CLICKHOUSE_URL),
2108+
LOGS_CLICKHOUSE_URL: z.string().optional(),
21122109

21132110
// Query page ClickHouse limits (for TSQL queries)
21142111
QUERY_CLICKHOUSE_URL: z

apps/webapp/app/services/clickhouse/clickhouseFactory.server.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,7 @@ const defaultLogsClickhouseClient = singleton(
3838
);
3939

4040
function initializeLogsSearchProjectorClickhouseClient() {
41-
if (!env.LOGS_CLICKHOUSE_URL) {
42-
throw new Error("LOGS_CLICKHOUSE_URL is not set");
43-
}
44-
45-
const url = new URL(env.LOGS_CLICKHOUSE_URL);
41+
const url = new URL(env.LOGS_CLICKHOUSE_URL ?? env.CLICKHOUSE_URL);
4642
url.searchParams.delete("secure");
4743

4844
return new ClickHouse({
@@ -84,11 +80,7 @@ function getLogsListClickhouseSettings() {
8480
}
8581

8682
function initializeLogsClickhouseClient() {
87-
if (!env.LOGS_CLICKHOUSE_URL) {
88-
throw new Error("LOGS_CLICKHOUSE_URL is not set");
89-
}
90-
91-
const url = new URL(env.LOGS_CLICKHOUSE_URL);
83+
const url = new URL(env.LOGS_CLICKHOUSE_URL ?? env.CLICKHOUSE_READER_URL ?? env.CLICKHOUSE_URL);
9284
url.searchParams.delete("secure");
9385

9486
return new ClickHouse({

0 commit comments

Comments
 (0)