GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [connectors] Register schema-declared credentials before initialization by bestouff · Pull Request #7801 · feldera/feldera

Conversation

@bestouff

@bestouff bestouff commented Nov 3, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Part of feldera/cloud#2136. Stacked on #7788 (cloud-2136-manager).

Inline credentials in known connector fields can appear in dependency diagnostics. This registers schema-declared credentials before transport validation and raw Avro format parsing, so production logs and error responses replace matching values with [REDACTED].

  • Connector modules declare canonical credential paths and supported aliases; transport dispatch is exhaustive. Operational values and safe Debug projections remain unchanged.
  • Every Secret reference remains registered, including references in public or unknown fields. References take precedence over generic credential markers in either initialization order.
  • The eight-byte floor and token boundaries remain. Short values stay protected at recognized sources; unknown inline fields and further transformations remain outside the registry guarantee. SQL/configuration in bundles stays unchanged.

Validation: 298 type tests, 74 adapter tests, 4 observability tests, 10 transport/error/controller/panic tests, 3 engine regressions, and 47 manager tests pass. Clippy passes with warnings denied across all five affected crates. Tests exercise real transport constructors, text/JSON logging, error responses, malformed format parsing, aliases, provenance, collisions, and short values. Negative validation passes: disconnecting visitation fails both transport and engine tests; skipping reference registration fails the public/free-form field integration test; disabling provenance precedence fails its unit test. Enterprise/Fremont validation passed; results are recorded in feldera/cloud#2160.

Coverage includes Kafka JWT assertion PEM/passphrase options from bundled librdkafka 2.12.1, token-only URL userinfo, and the controller-to-transport path with short credentials and a reference in a public field. The new declaration tests fail against the old visitors.

The final pushed tree passes all 436 targeted tests, formatting, and Clippy with warnings denied.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
mythical-fred-oss[bot]
mythical-fred-oss Bot reviewed Nov 3, 2026
View reviewed changes
Comment thread crates/feldera-types/src/transport/kafka.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

mythical-fred-oss[bot]
mythical-fred-oss Bot reviewed Nov 3, 2026
View reviewed changes
Comment thread crates/feldera-types/src/sensitive.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@mythical-fred-oss

mythical-fred-oss Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

What I ran

Check Result
cargo test -p feldera-types --lib -- sensitive secret_redaction secret_resolver 31 passed
cargo test -p dbsp_connectors --lib -- transport_registration_precedes_diagnostics short_rejected_value_stays_out 2 passed
cargo test -p static-connectors -- format_credentials (engine test) passed
pre-commit run --files <changed files> (clippy, fmt, machete, OpenAPI, docs) passed
QA: Kafka JWT-bearer assertion key options (.pem, .passphrase) failed, 0 values visited (see inline comment)
QA: a boundary-rejected match followed by a valid match, including multibyte text passed

Gates: tests, docs and changelog are included. No unsafe code, no new dependencies, no CI changes. The commit message is fine.

Missing (medium):

  • No test for a token-only userinfo URL (https://<token>@host); see inline comment.
  • No test for the two Kafka assertion keys; see inline comment.
  • Nothing covers a config whose credential values are shorter than 8 bytes, or whose only Secret reference sits in a non-credential field, going through resolve_connector_config → input_transport_config_to_endpoint. That path registers the config twice, which is idempotent by design, but no test pins it.

The rest looks solid. Fix the two inline items and this is good to go.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bestouff
bestouff force-pushed the cloud-2136-credentials branch 2 times, most recently from 4eb1a35 to ed877d3 Compare November 3, 2026 17:49
@bestouff
bestouff marked this pull request as ready for review November 3, 2026 18:45
@bestouff
bestouff requested a review from mihaibudiu November 3, 2026 18:45
mythical-fred-oss[bot]
mythical-fred-oss Bot reviewed Nov 3, 2026
View reviewed changes
Comment thread crates/feldera-types/src/transport/postgres.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

mythical-fred-oss[bot]
mythical-fred-oss Bot reviewed Nov 3, 2026
View reviewed changes
Comment thread crates/feldera-types/src/transport/redis.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@mythical-fred-oss

mythical-fred-oss Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

What I ran (debug build):

Command Result
cargo test --locked -p feldera-types -- sensitive secret_redaction 24 passed
cargo test --locked -p dbsp_connectors --features with-kafka --lib -- credential_registration transport_registration short_rejected 3 passed
Scratch QA tests on Postgres and Redis registration (not committed) 2 gaps confirmed, see the inline comments

Gates: tests are present, there is no unsafe code and no new dependencies, and docs and the changelog are updated. I saw no flaky patterns.

Missing tests (medium):

  • A Postgres libpq keyword URI where the diagnostic quotes only the password. This currently leaks.
  • A Postgres or Redis URI without credentials. It currently comes out as [REDACTED], which makes connection errors non-actionable.
  • redact() now scans every registered value linearly whenever a match fails the token-boundary check. No test or benchmark covers a line with many near-miss matches against a large registry.

Pitfall (medium): the docs table says "Connection strings" are covered. Once the keyword-string fix lands, the docs should say that only the password part of a connection string is masked.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bestouff
bestouff added this pull request to stack #7791 November 3, 2026 19:51
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from ed877d3 to 53174ab Compare November 3, 2026 20:27
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from 53174ab to 6aee48b Compare November 5, 2026 15:55
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from 6aee48b to 4f23ea8 Compare November 5, 2026 17:00
@bestouff bestouff mentioned this pull request Nov 5, 2026
[types,connectors] Show library errors through a sanitizing wrapper #7857
Open
@bestouff
bestouff force-pushed the cloud-2136-credentials branch 2 times, most recently from 175bc3d to cc6b977 Compare November 12, 2026 12:51
@bestouff bestouff mentioned this pull request Nov 12, 2026
[types,connectors] Show resolved secrets in diagnostics as references #7787
Open
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from cc6b977 to cbb7d61 Compare November 12, 2026 13:46
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from cbb7d61 to 66ba0ba Compare November 12, 2026 14:10
@bestouff
[connectors] Register schema-declared credentials before initialization
501860d
Visit known transport and raw Avro credential fields before validation or
format parsing. Keep every Secret reference registered, including values
in public and unknown fields, and give references precedence over generic
credential markers in either initialization order.

Preserve operational configuration and allowlisted Debug output. Cover
aliases, short-value source sanitization, overlapping registrations, JSON
key collisions, real transport construction, logging, error responses,
and the engine format-failure path. Document the matching and bundle
limits.

Signed-off-by: Xavier Bestel <[email protected]>
@bestouff
bestouff force-pushed the cloud-2136-credentials branch from 66ba0ba to 501860d Compare November 12, 2026 14:34

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mythical-fred-oss mythical-fred-oss[bot] mythical-fred-oss[bot] left review comments
@mihaibudiu mihaibudiu Awaiting requested review from mihaibudiu

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@bestouff
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.