Skip to content

chore: clickhouse v2 writes#4267

Merged
chronark merged 14 commits intomainfrom
clickhouse-v2-writes
Nov 12, 2025
Merged

chore: clickhouse v2 writes#4267
chronark merged 14 commits intomainfrom
clickhouse-v2-writes

Conversation

@chronark
Copy link
Collaborator

@chronark chronark commented Nov 7, 2025

  • chore: switch clickhouse reads to new tables
  • revert: version
  • revert: version
  • fix: billable_ratelimits_per_month_v2 to default
  • chore: add default database everywhere
  • [autofix.ci] apply automated fixes
  • wip

@vercel
Copy link

vercel bot commented Nov 7, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
dashboard Ready Ready Preview Comment Nov 12, 2025 11:20am
1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
engineering Ignored Ignored Preview Nov 12, 2025 11:20am

@changeset-bot
Copy link

changeset-bot bot commented Nov 7, 2025

⚠️ No Changeset found

Latest commit: c5fa5ce

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@chronark chronark changed the title clickhouse v2 writes chore: clickhouse v2 writes Nov 7, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 7, 2025

📝 Walkthrough

Walkthrough

Replace V1 ClickHouse schemas and buffer APIs with unified v2 types (schema.ApiRequest, schema.KeyVerification, schema.Ratelimit); add zen.InstanceInfo to metrics middleware and populate Region; update ClickHouse client, noop, handlers, tests, and route registration to new Buffer* methods and types.

Changes

Cohort / File(s) Summary
Handler & Route Bindings
go/apps/api/routes/chproxy_metrics/handler.go, go/apps/api/routes/chproxy_ratelimits/handler.go, go/apps/api/routes/chproxy_verifications/handler.go, go/apps/api/routes/v2_ratelimit_limit/handler.go
Update Bind/BindBody target types from V1 variants to unified schemas (schema.ApiRequest, schema.Ratelimit, schema.KeyVerification) and replace deprecated buffer calls (e.g., BufferRequestBufferApiRequest).
Key Verification Logic
go/internal/services/keys/verifier.go
Use schema.KeyVerification for buffering; payload now includes ExternalID, SpentCredits, and Latency (placeholders/TODOs) when calling ClickHouse buffer.
Route Registration & Startup
go/apps/api/routes/register.go, go/apps/api/run.go
Register signature updated to accept zen.InstanceInfo; run.go constructs and passes zen.InstanceInfo{ID, Region} when registering routes.
Metrics Middleware
go/pkg/zen/middleware_metrics.go, go/apps/gw/server/middleware_metrics.go
WithMetrics now accepts InstanceInfo; EventBuffer API and calls updated to BufferApiRequest(schema.ApiRequest); Region set from InstanceInfo; ResponseStatus cast to int32.
ClickHouse Client & Interface
go/pkg/clickhouse/client.go, go/pkg/clickhouse/interface.go, go/pkg/clickhouse/noop.go
Removed V1/V2 processor split and V1 buffer methods; added unified methods BufferApiRequest(schema.ApiRequest), BufferKeyVerification(schema.KeyVerification), BufferRatelimit(schema.Ratelimit); updated processors, flush tables (v2), and Close behavior.
Schema Changes
go/pkg/clickhouse/schema/requests.go, go/pkg/clickhouse/schema/types.go
Deleted V1 schema types (ApiRequestV1, KeyVerificationRequestV1, RatelimitRequestV1) and renamed V2 types to unified names (ApiRequestV2ApiRequest, KeyVerificationV2KeyVerification, RatelimitV2Ratelimit).
Tests & Seeds
go/apps/api/routes/v2_analytics_get_verifications/*_test.go, go/apps/api/routes/v2_ratelimit_limit/200_test.go, go/cmd/dev/seed/verifications.go, go/pkg/clickhouse/*_test.go
Updated tests and seed code to use unified schema types and new buffer method names (KeyVerification / Ratelimit / ApiRequest).
Zen Instance Type
go/pkg/zen/instance.go, go/pkg/zen/middleware_metrics.go
Added zen.InstanceInfo { ID, Region string }; WithMetrics signature updated to accept InstanceInfo and uses Region when buffering events.
Integration Harness Change
go/apps/api/integration/harness.go
API node config now enables pprof and sets profiling credentials (PprofEnabled true; username/password configured).

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant H as API Handler
    participant M as Metrics Middleware (WithMetrics + InstanceInfo)
    participant B as ClickHouse Bufferer (EventBuffer)
    participant P as BatchProcessor (apiRequests / keyVerifications / ratelimits)

    H->>M: pass request context
    M->>M: construct schema.ApiRequest{..., ResponseStatus: int32(...), Region: info.Region}
    M->>B: BufferApiRequest(schema.ApiRequest)
    activate B
    B->>P: enqueue event into v2 batch
    deactivate B
    P->>P: async flush to ClickHouse
    H->>H: return response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas needing extra attention:
    • go/pkg/clickhouse/client.go — batch processor setup, flush targets, and Close semantics.
    • Interface consistency across EventBuffer implementations (noop, client, tests).
    • Middleware changes: propagation of InstanceInfo.Region and ResponseStatus type conversion.
    • Search for any remaining references to removed V1 types.

Possibly related issues

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning PR description is incomplete; missing structured sections like issue reference, type of change selection, testing instructions, and required checklist items per template. Complete description with issue reference, type of change selection, testing details, and verification of required checklist items before merge.
Docstring Coverage ⚠️ Warning Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed Title clearly identifies the main purpose of consolidating ClickHouse schema writes from V1/V2 to unified versions.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch clickhouse-v2-writes

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0d9862e and d38c37d.

📒 Files selected for processing (1)
  • go/apps/api/routes/register.go (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 4190
File: go/internal/services/keys/verifier.go:51-53
Timestamp: 2025-10-30T15:10:52.743Z
Learning: PR #4190 for unkeyed/unkey is focused solely on database schema and query changes for identity-based credits. It adds IdentityCredits and KeyCredits fields to structs and queries, but does not implement the priority enforcement logic in the usagelimiter. The logic implementation is intentionally deferred to a later PR in the stack.
Learnt from: chronark
Repo: unkeyed/unkey PR: 3161
File: go/pkg/clickhouse/schema/databases/002_ratelimits/006_ratelimits_per_day_v1.sql:1-13
Timestamp: 2025-04-22T14:43:11.724Z
Learning: In the unkey project, the SQL files in clickhouse/schema/databases represent the current production schema and shouldn't be modified directly in PRs. Schema changes require dedicated migration scripts.
Learnt from: imeyer
Repo: unkeyed/unkey PR: 3755
File: .github/workflows/job_detect_changes.yaml:111-114
Timestamp: 2025-08-08T16:10:00.224Z
Learning: Repo: unkeyed/unkey — When imeyer writes “make me an issue” on a PR thread, automatically open a thorough GitHub issue (Summary, Impact, Where, Repro, Observed vs Expected, Acceptance Criteria, Validation Plan, Out of Scope, References), include backlinks to the PR and comment, and assign to imeyer.
Learnt from: imeyer
Repo: unkeyed/unkey PR: 3755
File: .github/actions/setup-node/action.yaml:0-0
Timestamp: 2025-08-08T15:10:46.436Z
Learning: Repo: unkeyed/unkey — Preference: If imeyer comments “issue” on a PR thread, automatically open a thorough GitHub issue (Summary, Impact, Where, Observed vs Expected, Acceptance Criteria, Validation Plan, Out of Scope, References), include backlinks to the PR and comment, and assign to imeyer.
Learnt from: chronark
Repo: unkeyed/unkey PR: 3958
File: internal/clickhouse/src/requests.ts:7-8
Timestamp: 2025-09-12T13:25:41.849Z
Learning: In the ClickHouse v2 table migration, the location field was renamed from `colo` to `region` across all tables including `default.api_requests_raw_v2`. The zod insert schemas must be updated accordingly to avoid runtime insert failures.
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 4016
File: go/pkg/clickhouse/migrations/20250925091254.sql:10-10
Timestamp: 2025-09-25T09:18:38.763Z
Learning: In ClickHouse v2 table migrations, the region field should not be carried over from v1 because v1 uses Cloudflare region identifiers while v2 uses AWS region identifiers. These are incompatible data formats, so setting region to empty string in materialized view migrations is the correct approach.
Learnt from: perkinsjr
Repo: unkeyed/unkey PR: 3775
File: apps/dashboard/lib/trpc/routers/api/keys/query-key-usage-timeseries/index.ts:1-1
Timestamp: 2025-08-22T12:48:58.289Z
Learning: The team at Unkey is planning to move from TRPC to calling their v2 API directly. They're comfortable keeping TRPC input schemas imported from app route folders as technical debt since this code will be replaced, rather than refactoring to move schemas to lib/schemas.
🧬 Code graph analysis (1)
go/apps/api/routes/register.go (3)
go/apps/api/routes/services.go (1)
  • Services (17-33)
go/pkg/zen/instance.go (1)
  • InstanceInfo (3-6)
go/pkg/zen/middleware_metrics.go (1)
  • WithMetrics (57-109)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Test Go API Local / Test
  • GitHub Check: Test Packages / Test
  • GitHub Check: Build / Build
  • GitHub Check: Test API / API Test Local
🔇 Additional comments (2)
go/apps/api/routes/register.go (2)

64-64: LGTM! Function signature updated correctly.

The addition of the info zen.InstanceInfo parameter enables the metrics middleware to capture region and instance identification. The signature change aligns with the updated WithMetrics middleware initialization on line 66.


66-66: LGTM! Middleware initialization updated correctly.

The info parameter is now correctly passed to zen.WithMetrics, enabling the metrics middleware to populate the Region field in ClickHouse API request records as part of the v2 migration.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@vercel vercel bot temporarily deployed to Preview – engineering November 7, 2025 09:34 Inactive
@vercel vercel bot temporarily deployed to Preview – dashboard November 7, 2025 09:34 Inactive
@chronark chronark marked this pull request as ready for review November 11, 2025 09:36
@github-actions
Copy link
Contributor

github-actions bot commented Nov 11, 2025

Thank you for following the naming conventions for pull request titles! 🙏

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f3b54eb and 9b4c700.

📒 Files selected for processing (13)
  • go/apps/api/routes/chproxy_metrics/handler.go (2 hunks)
  • go/apps/api/routes/chproxy_ratelimits/handler.go (1 hunks)
  • go/apps/api/routes/chproxy_verifications/handler.go (2 hunks)
  • go/apps/api/routes/register.go (1 hunks)
  • go/apps/api/routes/v2_ratelimit_limit/handler.go (1 hunks)
  • go/apps/api/run.go (2 hunks)
  • go/internal/services/keys/verifier.go (1 hunks)
  • go/pkg/clickhouse/client.go (4 hunks)
  • go/pkg/clickhouse/interface.go (1 hunks)
  • go/pkg/clickhouse/noop.go (1 hunks)
  • go/pkg/clickhouse/schema/requests.go (0 hunks)
  • go/pkg/zen/instance.go (1 hunks)
  • go/pkg/zen/middleware_metrics.go (4 hunks)
💤 Files with no reviewable changes (1)
  • go/pkg/clickhouse/schema/requests.go
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 4190
File: go/internal/services/keys/verifier.go:51-53
Timestamp: 2025-10-30T15:10:52.743Z
Learning: PR #4190 for unkeyed/unkey is focused solely on database schema and query changes for identity-based credits. It adds IdentityCredits and KeyCredits fields to structs and queries, but does not implement the priority enforcement logic in the usagelimiter. The logic implementation is intentionally deferred to a later PR in the stack.
Learnt from: chronark
Repo: unkeyed/unkey PR: 3161
File: go/pkg/clickhouse/schema/databases/002_ratelimits/006_ratelimits_per_day_v1.sql:1-13
Timestamp: 2025-04-22T14:43:11.724Z
Learning: In the unkey project, the SQL files in clickhouse/schema/databases represent the current production schema and shouldn't be modified directly in PRs. Schema changes require dedicated migration scripts.
Learnt from: imeyer
Repo: unkeyed/unkey PR: 3755
File: .github/workflows/job_detect_changes.yaml:111-114
Timestamp: 2025-08-08T16:10:00.224Z
Learning: Repo: unkeyed/unkey — When imeyer writes “make me an issue” on a PR thread, automatically open a thorough GitHub issue (Summary, Impact, Where, Repro, Observed vs Expected, Acceptance Criteria, Validation Plan, Out of Scope, References), include backlinks to the PR and comment, and assign to imeyer.
Learnt from: imeyer
Repo: unkeyed/unkey PR: 3755
File: .github/actions/setup-node/action.yaml:0-0
Timestamp: 2025-08-08T15:10:46.436Z
Learning: Repo: unkeyed/unkey — Preference: If imeyer comments “issue” on a PR thread, automatically open a thorough GitHub issue (Summary, Impact, Where, Observed vs Expected, Acceptance Criteria, Validation Plan, Out of Scope, References), include backlinks to the PR and comment, and assign to imeyer.
Learnt from: chronark
Repo: unkeyed/unkey PR: 3958
File: internal/clickhouse/src/requests.ts:7-8
Timestamp: 2025-09-12T13:25:41.849Z
Learning: In the ClickHouse v2 table migration, the location field was renamed from `colo` to `region` across all tables including `default.api_requests_raw_v2`. The zod insert schemas must be updated accordingly to avoid runtime insert failures.
Learnt from: chronark
Repo: unkeyed/unkey PR: 3161
File: go/pkg/clickhouse/schema/databases/001_verifications/002_raw_key_verifications_v1.sql:31-33
Timestamp: 2025-04-22T14:40:51.459Z
Learning: The ClickHouse table schemas in the codebase mirror the production environment and cannot be modified directly in PRs without careful migration planning.
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 4016
File: go/pkg/clickhouse/migrations/20250925091254.sql:10-10
Timestamp: 2025-09-25T09:18:38.763Z
Learning: In ClickHouse v2 table migrations, the region field should not be carried over from v1 because v1 uses Cloudflare region identifiers while v2 uses AWS region identifiers. These are incompatible data formats, so setting region to empty string in materialized view migrations is the correct approach.
Learnt from: perkinsjr
Repo: unkeyed/unkey PR: 3775
File: apps/dashboard/lib/trpc/routers/api/keys/query-key-usage-timeseries/index.ts:1-1
Timestamp: 2025-08-22T12:48:58.289Z
Learning: The team at Unkey is planning to move from TRPC to calling their v2 API directly. They're comfortable keeping TRPC input schemas imported from app route folders as technical debt since this code will be replaced, rather than refactoring to move schemas to lib/schemas.
Learnt from: perkinsjr
Repo: unkeyed/unkey PR: 3775
File: apps/dashboard/lib/trpc/routers/workspace/onboarding.ts:1-1
Timestamp: 2025-08-22T12:45:07.187Z
Learning: The team at Unkey is planning to move from TRPC to calling their v2 API directly, making current TRPC schema organization temporary. They're comfortable with keeping server input schemas imported from app route folders as technical debt since this code will be replaced.
📚 Learning: 2025-08-27T13:48:54.016Z
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 3841
File: go/pkg/db/queries/key_find_for_verification.sql:15-15
Timestamp: 2025-08-27T13:48:54.016Z
Learning: The pending_migration_id field in FindKeyForVerification is only used internally by get_migrated.go for migration logic and doesn't need to be exposed in KeyVerifier struct or API response DTOs since it's an internal implementation detail.

Applied to files:

  • go/internal/services/keys/verifier.go
📚 Learning: 2025-08-20T10:52:19.334Z
Learnt from: Flo4604
Repo: unkeyed/unkey PR: 3810
File: go/apps/api/routes/chproxy_metrics/handler.go:36-37
Timestamp: 2025-08-20T10:52:19.334Z
Learning: In the Unkey codebase, ClickHouse logging should be controlled explicitly per-handler using s.DisableClickHouseLogging() calls rather than through middleware, to allow for granular control and handler-specific logic around when logging should be disabled.

Applied to files:

  • go/apps/api/routes/v2_ratelimit_limit/handler.go
🧬 Code graph analysis (11)
go/pkg/clickhouse/noop.go (1)
go/pkg/clickhouse/schema/types.go (1)
  • RatelimitV2 (24-36)
go/apps/api/routes/chproxy_ratelimits/handler.go (2)
go/pkg/zen/request_util.go (1)
  • BindBody (10-23)
go/pkg/clickhouse/schema/types.go (1)
  • RatelimitV2 (24-36)
go/apps/api/routes/register.go (1)
go/pkg/zen/middleware_metrics.go (1)
  • WithMetrics (57-109)
go/internal/services/keys/verifier.go (1)
go/pkg/clickhouse/schema/types.go (1)
  • KeyVerificationV2 (6-19)
go/apps/api/routes/v2_ratelimit_limit/handler.go (2)
go/pkg/clickhouse/interface.go (1)
  • ClickHouse (51-60)
go/pkg/clickhouse/schema/types.go (1)
  • RatelimitV2 (24-36)
go/apps/api/routes/chproxy_metrics/handler.go (2)
go/pkg/zen/request_util.go (1)
  • BindBody (10-23)
go/pkg/clickhouse/schema/types.go (1)
  • ApiRequestV2 (41-60)
go/apps/api/routes/chproxy_verifications/handler.go (3)
go/pkg/zen/request_util.go (1)
  • BindBody (10-23)
go/pkg/clickhouse/schema/types.go (1)
  • KeyVerificationV2 (6-19)
go/pkg/clickhouse/interface.go (1)
  • ClickHouse (51-60)
go/pkg/zen/middleware_metrics.go (3)
go/pkg/clickhouse/schema/types.go (1)
  • ApiRequestV2 (41-60)
go/apps/gw/server/middleware_metrics.go (2)
  • WithMetrics (22-90)
  • EventBuffer (12-14)
go/pkg/zen/instance.go (1)
  • InstanceInfo (3-6)
go/pkg/clickhouse/interface.go (1)
go/pkg/clickhouse/schema/types.go (1)
  • RatelimitV2 (24-36)
go/apps/api/run.go (1)
go/pkg/zen/instance.go (1)
  • InstanceInfo (3-6)
go/pkg/clickhouse/client.go (2)
go/pkg/batch/process.go (3)
  • BatchProcessor (21-27)
  • New (84-120)
  • Config (32-60)
go/pkg/clickhouse/schema/types.go (1)
  • RatelimitV2 (24-36)
🪛 GitHub Actions: PR
go/apps/api/routes/register.go

[error] 64-64: syntax error: non-declaration statement outside function body. Command failed: go build -o bin/unkey -ldflags="-X 'github.com/unkeyed/unkey/go/pkg/version.Version=${VERSION}'" ./main.go

🔇 Additional comments (15)
go/apps/api/routes/chproxy_ratelimits/handler.go (1)

51-63: LGTM! Clean migration to V2 schema.

The update from RatelimitRequestV1 to RatelimitV2 is consistent with the PR's migration objective. The binding and buffering logic remains unchanged, only the schema type has been updated.

go/pkg/zen/instance.go (1)

1-6: LGTM! Clean type definition.

The InstanceInfo struct provides a clear way to propagate instance identification and region data through the API routing and middleware layers.

go/internal/services/keys/verifier.go (1)

124-136: LGTM! V2 schema migration is correct.

The migration from BufferKeyVerification to BufferKeyVerificationV2 with the V2 schema type is consistent with the PR objective. All relevant fields are properly mapped to the new schema.

go/apps/api/routes/chproxy_verifications/handler.go (1)

51-63: LGTM! Consistent V2 migration.

The updates to KeyVerificationV2 schema and the BufferKeyVerificationV2 method align with the broader V2 migration across the codebase.

go/apps/api/run.go (1)

294-315: LGTM! Clean integration of InstanceInfo.

The route registration now properly passes instance identification and region data via the new InstanceInfo parameter, enabling region-aware metrics and logging throughout the request lifecycle.

go/apps/api/routes/chproxy_metrics/handler.go (1)

51-63: LGTM! V2 schema migration is correct.

The migration from ApiRequestV1 to ApiRequestV2 and the corresponding update to BufferApiRequest are consistent with the V2 migration pattern across the PR.

go/apps/api/routes/v2_ratelimit_limit/handler.go (1)

288-297: LGTM! Rate limit logging updated to V2 schema.

The migration to RatelimitV2 is consistent with the broader V2 schema adoption across the codebase.

go/pkg/clickhouse/noop.go (1)

28-30: LGTM! No-op implementation correctly updated to V2.

The BufferRatelimit signature now matches the updated interface with schema.RatelimitV2.

go/pkg/zen/middleware_metrics.go (3)

14-16: LGTM! EventBuffer interface updated to V2.

The interface now correctly uses BufferApiRequest(schema.ApiRequestV2) instead of the V1 BufferRequest method.


87-104: LGTM! V2 event buffering properly implemented.

The buffering call now uses:

  • BufferApiRequest with ApiRequestV2 schema
  • Explicit int32 cast for ResponseStatus matching V2 schema definition
  • info.Region to populate region data from InstanceInfo

57-57: LGTM! InstanceInfo parameter added for region tracking.

All callers of zen.WithMetrics have been properly updated. The single call in go/apps/api/routes/register.go:65 correctly passes the new info parameter.

go/pkg/clickhouse/client.go (4)

27-27: LGTM! Struct field migrated to V2.

The ratelimitsV2 field now uses *batch.BatchProcessor[schema.RatelimitV2] instead of the V1 type.


247-249: LGTM! BufferRatelimit method migrated to V2.

The method signature and implementation now use schema.RatelimitV2 and buffer to the V2 processor.


312-312: LGTM! Close method updated for V2 processor.

The Close() method now correctly closes ratelimitsV2 instead of the V1 processor.


144-162: LGTM! Batch processor correctly configured for V2.

The ratelimits batch processor:

  • Uses schema.RatelimitV2 type
  • Flushes to default.ratelimits_raw_v2 table (V2 table name)
  • Maintains appropriate batch sizing and flush intervals

Verification confirms the V2 table default.ratelimits_raw_v2 exists in the ClickHouse schema with the expected columns and indexes.

@graphite-app
Copy link

graphite-app bot commented Nov 11, 2025

Graphite Automations

"Notify author when CI fails" took an action on this PR • (11/11/25)

1 teammate was notified to this PR based on Andreas Thomas's automation.

"Post a GIF when PR approved" took an action on this PR • (11/12/25)

1 gif was posted to this PR based on Andreas Thomas's automation.

@chronark chronark enabled auto-merge November 11, 2025 18:02
@Flo4604 Flo4604 self-requested a review November 11, 2025 21:18
Copy link
Member

@Flo4604 Flo4604 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, we could in theory adjust v1's clickhouse client to send the new fields over too but im not too bothered by it

@vercel vercel bot temporarily deployed to Preview – dashboard November 12, 2025 11:20 Inactive
@graphite-app
Copy link

graphite-app bot commented Nov 12, 2025

Movie gif. Actor Chow Yun-fat leans out of a doorway casually chewing while giving a cool, confident thumbs-up of approval. (Added via Giphy)

@chronark chronark added this pull request to the merge queue Nov 12, 2025
Merged via the queue into main with commit aeaff7e Nov 12, 2025
21 of 22 checks passed
@chronark chronark deleted the clickhouse-v2-writes branch November 12, 2025 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants