Skip to content

[gateway] Validate configuration and redact secrets - #3970

Draft
beryllw wants to merge 7 commits into
apache:mainfrom
beryllw:codex/gateway-config-validation-3969
Draft

[gateway] Validate configuration and redact secrets#3970
beryllw wants to merge 7 commits into
apache:mainfrom
beryllw:codex/gateway-config-validation-3969

Conversation

@beryllw

@beryllw beryllw commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add typed flat-YAML configuration for clusters, security, request limits, and native client tuning
  • validate supported client.* values and cross-field constraints before listener binding, while rejecting acknowledgement, retry, idempotence, and static authorization-identity overrides
  • keep the documented legacy service-credential last-wins behavior with one redacted deprecation warning per cluster, and redact users, tokens, accounts, passwords, and service secrets from diagnostics

Test Plan

  • cargo test
  • cargo clippy --all-targets --all-features -- -D warnings
  • RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
  • cargo fmt --check

Stacked on and depends on #3963. The branch is based directly on beryllw/fluss:gateway-g1-foundation; the overlapping foundation commits will disappear from this PR diff when #3963 merges.

Closes #3969.

🤖 AI-assisted changes - reviewed by human developer

beryllw and others added 7 commits August 12, 2026 20:09
Introduces fluss-gateway as an independent Cargo workspace with library and executable entry points: strict configuration with stable exit codes, the shared error envelope, request-id/body-size/deadline middleware, the FIP-49 GET /health endpoint, REST and metrics listeners, task supervision with SIGTERM draining, and the OpenAPI 3.1 document generated from the typed router.

Co-authored-by: gstamatakis95 <126914070+gstamatakis95@users.noreply.github.com>
…uster harness

Covers the shared HTTP contract over a real listener, the compiled binary's startup, health, SIGTERM draining and exit codes, and a self-test of the fixed-version dockerized Fluss cluster harness that later capabilities reuse for their end-to-end suites.

Co-authored-by: gstamatakis95 <126914070+gstamatakis95@users.noreply.github.com>
Runs the gateway workspace's build, unit tests, license headers, formatting, clippy and rustdoc, checks the checked-in OpenAPI document for drift and validates it externally, and runs the end-to-end suite in a job that fails rather than skipping silently when a selected scenario cannot start.

Co-authored-by: gstamatakis95 <126914070+gstamatakis95@users.noreply.github.com>
… rename the harness job

Co-authored-by: gstamatakis95 <126914070+gstamatakis95@users.noreply.github.com>
Add typed cluster, security, request-limit, and client-option configuration on top of the Gateway runtime foundation. Validate native-client values and cross-field constraints before startup, protect Gateway-owned write guarantees, retain warned legacy credential precedence, and redact credential surfaces from diagnostics and process errors.\n\nCloses apache#3969.
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.

[FIP-49][gateway] Validate Gateway configuration, restrict Fluss client options, and redact secrets

1 participant