-
Notifications
You must be signed in to change notification settings - Fork 161
hybrid mode backend v0 #1129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
hybrid mode backend v0 #1129
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed everything up to 0e9906d in 2 minutes and 57 seconds. Click for details.
- Reviewed
2884lines of code in36files - Skipped
0files when reviewing. - Skipped posting
15draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/api/v1/tag.rs:61
- Draft comment:
Avoid unwrapping the optional clickhouse_ro client. Consider handling the None case gracefully rather than using unwrap(). - Reason this comment was not posted:
Comment was on unchanged code.
2. app-server/src/ch/service.rs:52
- Draft comment:
The routing logic based on DeploymentMode is clear. Ensure that any configuration errors from get_workspace_deployment are logged appropriately. - Reason this comment was not posted:
Confidence changes required:50%<= threshold50%None
3. app-server/src/main.rs:105
- Draft comment:
The main function spawns multiple threads and joins them. Consider adding more robust error reporting for thread panics and consider using an async runtime to manage tasks consistently. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. app-server/src/routes/sql.rs:77
- Draft comment:
There are multiple clone and into_inner calls for http_client, db, and cache. Consider reusing references or destructuring earlier to reduce duplication and potential performance impact. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 15% vs. threshold = 50% This comment is suggesting a refactor to reduce "duplication" ofcloneandinto_innercalls. However, in Actix-web, this is the standard pattern for extracting values from web::Data extractors and passing them to other functions. Each parameter needs its owninto_inner()call because they are different types. Theas_ref().clone()pattern for Arc-wrapped types is also idiomatic. There's no actual duplication here - each line is handling a different parameter. The comment seems to misunderstand that this is necessary boilerplate for the web framework being used. Additionally, the performance impact is negligible - these are just Arc clones which only increment reference counts. Could there be a legitimate concern about code organization here? Maybe the function being called has too many parameters and could benefit from a struct to group related dependencies? However, that would be a larger refactor and not about the specificinto_inner()andclone()calls. While grouping parameters into a struct could be a valid refactor, the comment specifically targets thecloneandinto_innercalls as duplication, which is incorrect. These calls are necessary and idiomatic for Actix-web. The comment doesn't provide actionable advice - you can't "reuse references or destructure earlier" in this context without changing the function signature. This comment should be deleted. It misidentifies idiomatic Actix-web code as problematic duplication. Theinto_inner()andclone()calls are necessary for extracting values from web::Data wrappers and are not duplicative - each handles a different parameter. The suggestion is not actionable without context about the called function's signature.
5. app-server/src/sql/mod.rs:165
- Draft comment:
The remove_query_from_error_message helper strips query details to avoid exposing sensitive info. Verify that the regex patterns match all unwanted settings, and consider additional tests to ensure no sensitive query parts leak. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. app-server/src/storage/data_plane.rs:127
- Draft comment:
In get_stream, the response body stream mapping uses unwrap_or_else to return empty bytes on error. Consider logging the error or propagating it instead of silently swallowing it. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% The comment uses the word "Consider" which makes it sound like a suggestion rather than a clear code change requirement. The rules state "Do NOT comment unless there is clearly a code change required" and "Do NOT make speculative comments." This comment is phrased as a suggestion ("Consider logging...") rather than identifying a definite bug or issue. The current implementation might be intentional - streams often need to handle errors gracefully, and returning empty bytes on error could be a valid design choice. Without knowing the broader context of how this stream is used and what the StorageTrait contract expects, it's hard to say definitively that this is wrong. The comment is also somewhat speculative about what the "right" behavior should be. However, silently swallowing errors in a stream could genuinely be problematic for debugging and observability. The comment might be pointing out a real issue where errors would be invisible to users of this API. This could be a legitimate code quality concern rather than just a speculative suggestion. While error handling is important, the comment uses "Consider" which makes it a suggestion rather than identifying a clear bug. The rules explicitly state not to make comments unless there's clearly a code change required. Without seeing how this stream is consumed or what the trait contract expects, we can't definitively say this is wrong. The author may have intentionally chosen this error handling strategy. This falls into the category of "not sure" which means we should delete it per the instructions. This comment should be deleted because it's phrased as a suggestion ("Consider...") rather than identifying a clear bug or required code change. The error handling strategy might be intentional, and without more context about the trait contract and usage patterns, we cannot say definitively that this is incorrect.
7. app-server/src/traces/consumer.rs:104
- Draft comment:
Parallel processing with Rayon is used for heavy span processing. Make sure that all shared state (such as caches or DB connections) used within parallel iterators is thread-safe and performance is acceptable. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
8. app-server/src/traces/spans.rs:900
- Draft comment:
The span attribute parsing and enrichment logic relies on many regex checks and attribute manipulations. Ensure that the regex patterns are well-optimized and add benchmarks if this is performance critical. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
9. app-server/src/storage/mod.rs:33
- Draft comment:
Using enum_delegate to implement StorageTrait is clever. Ensure that the behavior of both Mock and S3 storage is consistent with production usage. - Reason this comment was not posted:
Confidence changes required:50%<= threshold50%None
10. app-server/src/storage/service.rs:45
- Draft comment:
The StorageService routes calls based on deployment mode. Double-check that credentials and endpoint decryption (in data plane code) correctly propagate errors so that callers can handle them. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is asking the PR author to double-check the propagation of errors, which violates the rule against asking the author to double-check things. It does not provide a specific suggestion or point out a specific issue in the code.
11. app-server/src/traces/spans.rs:1045
- Draft comment:
The test suite for span parsing and enrichment is very comprehensive. Consider adding comments on expected behavior for edge cases and potential future changes for maintainability. - Reason this comment was not posted:
Confidence changes required:50%<= threshold50%None
12. app-server/Cargo.lock:3734
- Draft comment:
It looks like the dependency name "indexmap" has been modified to "indexmap 2.11.4" which might be a typographical error. Usually the version is not appended directly in the dependency name. Please verify that this is intended and correct the typo if needed. - Reason this comment was not posted:
Comment looked like it was already resolved.
13. app-server/Cargo.lock:4675
- Draft comment:
Typo Alert: The dependency string "indexmap 2.11.4" seems unusual. Typically, the dependency name should be "indexmap" without the version number in this section. Please verify if the appended version "2.11.4" was intentionally added. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =50%<= threshold50%The comment is pointing out a potential issue with how a dependency is specified, which could be a valid concern if the version number is not typically included in that section. However, it asks the author to verify if the version was intentionally added, which is against the rules. The comment could be rephrased to suggest a correction instead of asking for verification.
14. app-server/src/cache/keys.rs:15
- Draft comment:
Typographical note: There is a potential inconsistency between the constant name and its value. The constant is namedWORKSPACE_DEPLOYMENTS_CACHE_KEY(using 'deployments' plural) while the string value isworkspace_deployment_config(using 'deployment' singular). Please verify the intended naming. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% The comment is asking the PR author to "verify" the naming, which directly violates the rule: "Do NOT ask the PR author to confirm their intention, to explain, to double-check things, to ensure the behavior is intended". While there is a plural/singular inconsistency, this could be intentional - perhaps the key is meant to cache deployment config (singular concept) for a workspace's deployments (plural). Without knowing the actual usage and intent, this is speculative. The comment doesn't definitively say there's an error, it just asks for verification. Could the plural/singular mismatch actually be a real bug that would cause issues? Maybe the string value needs to match something elsewhere in the codebase, and this inconsistency could lead to cache misses or other problems. Even if there could be a real issue, the comment doesn't provide evidence that this is definitely wrong. It's phrased as "please verify" which is explicitly against the rules. If the tool had strong evidence this was wrong (e.g., it should match an existing pattern), it should have stated that definitively rather than asking for verification. This comment should be deleted because it asks the PR author to "verify" the naming rather than pointing out a definite issue. This violates the rule against asking authors to confirm their intention or double-check things.
15. app-server/src/ch/direct.rs:1
- Draft comment:
Typographical consistency: The file’s documentation refers to "ClickHouse" (with an uppercase H) on line 1, but later names (e.g.ClickhouseTraitandDirectClickhouse) use "Clickhouse" (with a lowercase h). Consider standardizing the capitalization throughout the file for consistency. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 15% vs. threshold = 50% This comment is about a minor stylistic inconsistency in capitalization. While technically correct, it falls into the category of "obvious or unimportant" comments. The inconsistency exists because Rust identifiers (struct/trait names) use "Clickhouse" while prose documentation uses "ClickHouse". This is actually quite common - the official product name is "ClickHouse" but code identifiers often simplify it. The comment doesn't point to a bug or logic error, just a minor style preference. According to the rules, I should not make comments that are "obvious or unimportant" and should only comment if there's "clearly a code change required." This is a nitpick about naming consistency that doesn't affect functionality. This could be considered actionable since the author could standardize the capitalization. Some teams do care about consistency in documentation and naming. The inconsistency might confuse readers about whether these refer to the same thing. While it's technically actionable, this is a very minor stylistic issue that doesn't affect code functionality or correctness. The rules explicitly state not to make "obvious or unimportant" comments. Capitalization consistency in comments vs code identifiers is a low-priority issue that most teams would consider unimportant, especially since Rust naming conventions would make "ClickHouse" awkward in identifiers. This comment should be deleted. It's a minor stylistic nitpick about capitalization consistency that falls under "obvious or unimportant" comments. There's no functional issue, and the inconsistency is common when product names differ from code identifier conventions.
Workflow ID: wflow_vRnLmHwVegD7XOct
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed e468be0 in 1 minute and 1 seconds. Click for details.
- Reviewed
16lines of code in1files - Skipped
0files when reviewing. - Skipped posting
1draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/storage/data_plane.rs:92
- Draft comment:
Improvement: Using map_err instead of unwrap_or_default provides better error context. For consistency, consider applying similar error mapping for other places (e.g., in error branches) where response.text() is used. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
Workflow ID: wflow_igJ1FSQb6Ytd3gRk
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 1eb40c0 in 1 minute and 3 seconds. Click for details.
- Reviewed
102lines of code in1files - Skipped
0files when reviewing. - Skipped posting
3draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/api/v1/payloads.rs:18
- Draft comment:
Ensure route path aligns with project-scoped conventions. The PR description mentions a route like/api/v1/projects/{project_id}/payloads/{payload_id}; verify that the current#[get("payloads/{payload_id}")]is correctly nested in the project scope. - Reason this comment was not posted:
Confidence changes required:50%<= threshold50%None
2. app-server/src/api/v1/payloads.rs:32
- Draft comment:
Consider comparing raw byte slices directly instead of converting to a hex string in infer_content_type_from_bytes. This may improve performance and readability. - Reason this comment was not posted:
Confidence changes required:50%<= threshold50%None
3. app-server/src/api/v1/payloads.rs:106
- Draft comment:
Good clean-up: duplicate definitions of get_payload and infer_content_type_from_bytes have been removed to avoid redundancy. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
Workflow ID: wflow_3qoHq5XYAeLbfJTc
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 12e41a0 in 2 minutes and 57 seconds. Click for details.
- Reviewed
152lines of code in3files - Skipped
0files when reviewing. - Skipped posting
9draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/cache/autocomplete.rs:126
- Draft comment:
Explicit type annotation for cache_clone (Arc) seems redundant, since type inference works here. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% This is a code quality/style comment about redundant type annotations. The comment is technically correct - Rust's type inference would work here without the explicit annotation. However, I need to consider: 1) Is this actionable? Yes, it suggests removing the annotation. 2) Is it important? This is debatable - explicit type annotations can sometimes improve code clarity even when not strictly necessary. 3) Does it violate the rules? The rules say "Comments that suggest code quality refactors are good! But only if they are actionable and clear." This fits that criteria. However, the rules also say "Do NOT comment unless there is clearly a code change required" and "Do NOT make comments that are obvious or unimportant." Whether a redundant type annotation needs to be removed is subjective - some teams prefer explicit types for clarity, others prefer minimal annotations. This seems like a minor style preference rather than a clear code issue. The author may have intentionally added the explicit type annotation for clarity or documentation purposes, especially since this variable is used in a spawned async task. The annotation might help readers understand what's being cloned and moved into the closure without having to look up the function signature. While the type annotation may have been intentional, it is objectively redundant from a compilation perspective. However, this is a minor style issue rather than a functional problem. The rules emphasize not making "obvious or unimportant" comments, and whether to include redundant type annotations is largely a style preference that doesn't clearly require a code change. This comment is about a minor style preference regarding redundant type annotations. While technically correct, it's not a clear code issue that requires fixing. The annotation may have been added intentionally for clarity. This falls into the category of "obvious or unimportant" comments that should be removed.
2. app-server/src/main.rs:646
- Draft comment:
New ClickhouseService initialization added. Consider if dereferencing http_client is needed or if http_client.clone() suffices. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. app-server/src/main.rs:775
- Draft comment:
Replaced http_client_for_consumer with ch_service_for_consumer for consumer mode. Ensure all dependent workers use the correct service. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. app-server/src/main.rs:790
- Draft comment:
Within the consumer worker spawn, usage of http_client is replaced by ch_service. Verify that the worker closure is updated accordingly. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =30%<= threshold50%The comment is asking the PR author to verify that the worker closure is updated accordingly after a change in the code. This falls under asking the author to double-check things, which is against the rules. However, it does point out a specific change that might need attention, but it should be rephrased to suggest a specific action or ask for confirmation of intention.
5. app-server/src/traces/consumer.rs:59
- Draft comment:
A new field 'ch_service' is added to SpanHandler. Confirm that this update is propagated to all relevant processing paths. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. app-server/src/traces/consumer.rs:87
- Draft comment:
The #[instrument] skip list is updated to include ch_service; this helps reduce unnecessary logging. Looks good. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is purely informative, explaining what a change does without suggesting any action or improvement. It doesn't ask for confirmation or suggest a specific code change.
7. app-server/src/traces/consumer.rs:89
- Draft comment:
process_spans_and_events_batch now accepts ch_service instead of http_client. Ensure all calls are updated consistently. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%This comment is asking the author to ensure that all calls are updated consistently, which violates the rule against asking the author to ensure something. It does not provide a specific suggestion or ask for a specific test to be written.
8. app-server/src/traces/consumer.rs:185
- Draft comment:
In process_batch, replace http_client with ch_service for ClickHouse insertions. Verify error handling remains robust. - Reason this comment was not posted:
Comment looked like it was already resolved.
9. app-server/src/traces/consumer.rs:358
- Draft comment:
populate_autocomplete_cache still uses the raw clickhouse client. Confirm if this is intentional versus using ch_service for unified handling. - Reason this comment was not posted:
Comment was not on a location in the diff, so it can't be submitted as a review comment.
Workflow ID: wflow_UEByvcezelSrtteb
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 8bcc721 in 1 minute and 31 seconds. Click for details.
- Reviewed
341lines of code in8files - Skipped
0files when reviewing. - Skipped posting
8draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/cache/keys.rs:16
- Draft comment:
New cache key for data plane auth tokens added. Ensure its naming and usage remain consistent across modules. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
2. app-server/src/ch/data_plane.rs:75
- Draft comment:
The generate_auth_token call now requires await and passes cache. Confirm that error propagation from token generation is handled as intended. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
3. app-server/src/ch/service.rs:58
- Draft comment:
Passing cache into DataPlaneClickhouse constructor is consistent with new auth token usage. Ensure similar patterns are maintained across all data plane clients. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
4. app-server/src/data_plane/auth.rs:56
- Draft comment:
Refactored token generation now uses an async cache instead of a static OnceLock. Verify that caching (TTL, insertion errors) is handled gracefully. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
5. app-server/src/sql/data_plane.rs:50
- Draft comment:
Async token generation integration looks proper. Ensure that token refresh and error mapping into SqlQueryError work as expected. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
6. app-server/src/sql/mod.rs:232
- Draft comment:
Passing a cloned cache into get_workspace_deployment ensures consistency; consider reviewing the impact of multiple clone calls on performance if the Cache is sizeable. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
7. app-server/src/storage/data_plane.rs:55
- Draft comment:
The async get_url_and_token function properly decrypts the URL and awaits token generation. Verify that error handling for missing config or decryption failures is sufficient. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
8. app-server/src/storage/service.rs:62
- Draft comment:
StorageService routing logic correctly distinguishes between CLOUD and HYBRID modes. Ensure that the instantiation of DataPlaneStorage consistently passes the cache and http_client. - Reason this comment was not posted:
Confidence changes required:0%<= threshold50%None
Workflow ID: wflow_RV5nZAZ9GXLL2TxL
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed ac06526 in 1 minute and 13 seconds. Click for details.
- Reviewed
26lines of code in2files - Skipped
0files when reviewing. - Skipped posting
2draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/ch/data_plane.rs:27
- Draft comment:
Renamed variant 'Traces' to 'TracesReplacing'. Ensure that downstream consumers and documentation reflect this change. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%The comment is asking the PR author to ensure that downstream consumers and documentation reflect the change. This falls under the rule of not asking the author to ensure behavior is intended or to double-check things. Therefore, this comment should be removed.
2. app-server/src/ch/traces.rs:88
- Draft comment:
Updated to use DataPlaneBatch::TracesReplacing consistently. Verify that all related consumers and client expectations are updated. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%<= threshold50%The comment is asking the PR author to verify that all related consumers and client expectations are updated, which falls under the rule of not asking the author to ensure behavior is intended or to double-check things. This makes the comment not useful according to the given rules.
Workflow ID: wflow_1apYSmh56tacefxe
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed 042ea93 in 1 minute and 5 seconds. Click for details.
- Reviewed
30lines of code in1files - Skipped
0files when reviewing. - Skipped posting
1draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. app-server/src/data_plane/mod.rs:28
- Draft comment:
Good non-critical cache error handling. Consider if cache failures need enhanced monitoring or retry logic if caching is important. - Reason this comment was not posted:
Confidence changes required:33%<= threshold50%None
Workflow ID: wflow_0PTQ8QNqBYcReUFk
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
Note
Introduces hybrid data-plane routing for ClickHouse, SQL, and storage with secure auth and workspace-scoped config.
ClickhouseServiceandStorageServiceto route ops to direct backends or remote data plane based on cachedWorkspaceDeploymentdata_plane::{auth, crypto}; caches configs/tokens via new cache keyssql/ch.rs(direct) orsql/data_plane.rs(remote); APIs now passhttp_client,db, andcachepublish_payloadfor async ingestion; S3 client simplified; streaming and size viaStorageService; new project-scopedGET /api/v1/projects/{project_id}/payloads/{payload_id}ClickhouseInsertableforCHSpan,CHTrace,CHTag; span/tag writes routed throughClickhouseServicereqwest::Clientinmain.rs; updates routes (datasets/parquet, payloads) and workers (span, payload)hex,reqweststreamingWritten by Cursor Bugbot for commit 042ea93. This will update automatically on new commits. Configure here.
Important
Implements hybrid deployment mode with data-plane routing for ClickHouse, SQL, and storage, plus related API and worker refactors.
ClickhouseServiceandStorageServicefor routing operations based onWorkspaceDeploymentmode (CLOUD/HYBRID).data_plane/auth.rs) and AEAD encryption (data_plane/crypto.rs).ClickhouseInsertablefor spans, tags, and traces.DataPlaneClickhouseandDirectClickhousefor data-plane and direct writes.sql::chandsql::data_planefor direct and data-plane queries.execute_sql_queryroutes queries based on deployment mode.StorageServiceto handle direct and data-plane storage.DataPlaneStoragefor data-plane storage operations.GET /api/v1/projects/{project_id}/payloads/{payload_id}endpoint for project-scoped payload access.ClickhouseServiceandStorageServicefor hybrid mode operations.main.rsto initialize new services and handle hybrid mode configurations.Cargo.toml.This description was created by
for 042ea93. You can customize this summary. It will automatically update as commits are pushed.