viirya opened a new pull request, #14:
URL: https://github.com/apache/spark-connect-gateway/pull/14

   ### What changes were proposed in this pull request?
   
   Part of importing the Spark Connect Gateway reference implementation into
   `apache/spark-connect-gateway` as a series of small, bottom-up PRs (tracked 
in
   the do-not-merge reference PR #1).
   
   This adds the `scg-proxy` crate — the gRPC proxy core of the gateway, and the
   crate that ties the previously imported layers together. It contains:
   
   - **handler** — a `SparkConnectService` implementation that forwards every 
RPC to
     a backend chosen by routing + session affinity, stamping the authenticated
     identity onto the forwarded request
   - **dial** — a per-backend tonic `Channel` cache, so the dial cost isn't 
paid per
     RPC
   - **outbound** — the credentials the gateway presents on the gateway→backend 
hop
   - **config_filter** — withholds backend-only secrets from `Config` RPC 
responses
   
   `scg-proxy` depends on `scg-routing`, `scg-auth`, `scg-genproto`,
   `scg-observability`, `scg-tenant`, `scg-ratelimit`, and `scg-audit`. Its 
examples
   and integration tests additionally use `scg-store-memory`, `scg-store-redis`,
   `scg-pool-static`, and `scg-healthcheck` as dev-dependencies — all of which 
are
   already in the workspace, which is why this PR lands after them.
   
   It is imported complete: src, all integration tests (forwarding, auth, audit,
   tenant, ratelimit, observability/tracing, multi-tenant e2e, clone-session,
   outbound-token), and all examples (ha_smoke, drain_smoke, load, e2e_client,
   fake_collector).
   
   ### Why are the changes needed?
   
   Implements the reference gateway from the approved SPIP (SPARK-58455), 
imported
   one reviewable piece at a time.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   `cargo fmt --all --check`, `cargo clippy --workspace --all-targets -- -D 
warnings`,
   `cargo build --workspace`, and `cargo test --workspace` all pass locally: 201
   tests pass, 10 Redis/testcontainer tests are `#[ignore]` so no Docker is 
needed
   in CI. Note `--all-targets` compiles all of this crate's examples and 
integration
   test binaries, which is why its four dev-dependency crates had to land first.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Yes, co-authored with Claude Code.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to