Cassandra: ExtendDB w/Cassandra uses plain-text between ExtendDB server and Cassandra node
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Start with Cargo.toml:68 and crates/storage-cassandra/src/engine.rs to trace the Cassandra session setup, then read the config definitions and PostgreSQL SSL settings for the existing configuration pattern. Review devtools/cassandra-node and the two named Cassandra deployment guides for the integration and documentation work. Done means a configured TLS connection passes an integration test, plaintext remains the default, and the guides explain the option.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The ExtendDB server connects to a Cassandra backend plain TCP only (i.e. no TLS). There is currently no option to enable TLS, so the application credentials and all item data cross the network in clear text. This is acceptable only on a trusted, isolated network. Surfaced in the docs PR (#412) review; the docs now state the limitation, and this issue tracks adding encryption.
cdrs-tokio is declared with features = ["derive"] and no TLS feature (Cargo.toml:68). The ExtendDB engine builds the session with NodeTcpConfigBuilder + TcpSessionBuilder (crates/storage-cassandra/src/engine.rs) which results in a the plaintext connection. There is no config key to enable encryption.
Mitigation involves:
- Dependency change. cdrs-tokio's TLS is a Cargo feature (rust-tls) that pulls in rustls and a different node config builder (NodeRustlsConfigBuilder), requiring a rustls::ClientConfig.
- Second engine path. engine.rs needs a TLS branch that builds the session via the rustls config builder when TLS is configured, leaving the existing plaintext path as the default.
- New config surface. A [storage.cassandra.tls] block: enable flag, CA bundle path, optional client certificate (for mutual TLS), and a verify mode.
- Test infrastructure. devtools/cassandra-node starts a plaintext node; verifying this needs a TLS-enabled node (server cert, and the client trusting it), which we don't set up today.
Proposed approach:
- Add an optional [storage.cassandra.tls] config block; absent = plaintext (unchanged default, so local dev is untouched).
- When present, enable the cdrs-tokio TLS feature and build the session through NodeRustlsConfigBuilder with a rustls::ClientConfig assembled from the configured CA / client cert / verify mode.
- Mirror the PostgreSQL sslmode story in the config and docs (CA bundle, verify-full equivalent).
- Extend devtools/cassandra-node (or add a sibling) to start a TLS node for the integration test, and add a test that connects over TLS.
Done when:
- A [storage.cassandra.tls] config enables an encrypted connection to a TLS-enabled Cassandra node, verified by an integration test.
- Plaintext remains the default when the block is absent (local dev unchanged).
- docs/cassandra-setup.md and docs/manuals/11-deployment-guide.md are updated to document the TLS option and drop the current "unencrypted, trusted network only" caveat (or scope it to the plaintext default).
- Ngôn ngữ chính
- Rust
- Star
- 517
- Fork
- 60
- Merge trung bình
- 2 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 25
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ExtendDB/extenddb
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 2 ngày
-
[storage.cassandra] accepts unknown keys silentlyCó thể đã có người làm @LeeroyHannigan đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
ExtendDB/extenddb#540 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của ExtendDB/extenddb
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
C-bug needs-triage O-UEFI T-libs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug priority: P3 ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
shep-pm/shep-kelpie#1332 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
ramensoftware/windhawk#1156 · 2 bình luận ·
-
area/cli complexity:trivial good first issue Stellar Wave test
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Externalize-Labs/externalize#23 ·
Maintainer thường phản hồi trong vòng 1 ngày