Repository navigation
feat(semantic-layer): define credential readiness and backend errors in the SDK - #45554
Open
mikebridge wants to merge 32 commits into
Open
mikebridge wants to merge 32 commits into
mikebridge wants to merge 32 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #45554 +/- ##
==========================================
+ Coverage 84.73% 84.78% +0.04%
==========================================
Files 3069 3075 +6
Lines 205819 206892 +1073
Branches 48408 48475 +67
==========================================
+ Hits 174403 175409 +1006
- Misses 28122 28179 +57
- Partials 3294 3304 +10
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Keep bulk-validation uniqueness assertions and transport error coverage together. Move the transport contract into master's consolidated provider guide and update its isolated schema example.
Preserve bounded bulk-validation assertions alongside typed provider failures. Carry transport and readiness contracts into the consolidated extension guide, including an explicitly unresolved static-schema test.
mikebridge
marked this pull request as ready for review
October 23, 2026 23:35
mikebridge
requested review from
michael-s-molina,
rusackas and
villebro
as code owners
October 23, 2026 23:35
Keep the provider transport upgrade note and both incoming MCP notes.
sadpandajoe
reviewed
Oct 26, 2026
Reject userinfo in prepared redirect destinations before Requests can replace the caller Authorization header. Keep configured first-hop handling unchanged and verify the original headers at the HTTP adapter.
Retain safe typed transport messages alongside generic metadata error masking; preserve incoming namespace bootstrap changes.
Exercise hostless URL preparation and missing preparation output before adapter I/O. Pin the invalid-url category and early rejection so the provider transport coverage gate covers both defensive branches.
sadpandajoe
reviewed
Oct 26, 2026
…vidence Bring the parent transport fixes into the SDK boundary branch for Joe's redirect review (4383703142). Retain readiness and safe schema errors when merging. Capture typed failures at DEBUG (4383703150) while preserving the separate unknown-fault diagnostic policy, and document the required factory transport argument (4383703155).
sadpandajoe
reviewed
Oct 27, 2026
Merge Apache master acd92db, retaining injected provider transport and typed-error normalization through discovery classification. Treat an empty saved configuration as resolved; required fields remain provider validation, with red-first runtime choices coverage for Joe's r4394388612. Replace broad private log assertions with exact injected sentinels for r4394388617. Require TLS 1.2 in the remaining test context and explicitly annotate the schema configuration local.
Treat an explicit empty configuration object like equivalent default-only settings while retaining dictionary validation and write permission checks. Cover writer/read-only, empty/nonempty objects and non-object payloads through the preview route, without saved-secret lookup. Addresses review thread r4397335672.
sadpandajoe
reviewed
Oct 28, 2026
Address review thread r4405395077: retain the view id and layer UUID in structure/runtime failure events so operators can locate the failing object without logging configuration. Preview has no persisted target and records absent identifiers explicitly. Preserve typed-failure secrecy and unknown-fault DEBUG diagnostics, with route-level regression coverage.
Preserve the conformance-kit documentation alongside transport and readiness guidance. Adapt the newly merged static-schema isolation probe to the required SDK keywords, with an inert transport and a caught-I/O regression test. Retain upstream connection metadata and the existing provider failure protections.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
SUMMARY
Builds on #45553; review that first. This PR includes its commits until it merges.
TL;DR: Give providers explicit credential readiness and a typed backend-failure contract.
Background and problem: Semantic providers currently have to recognize the host's secret placeholder to decide whether schema discovery is safe, and lack an SDK error for backend execution faults. This change adds a required
SemanticCredentialReadinessenum to both schema hooks and a fixed-messageSemanticBackendError.What this changes: The host derives readiness from raw configuration before partial validation can discard unresolved fields. Preview payloads cannot assert readiness or recover saved credentials. Transport errors are reconstructed from validated failure/status fields and a freshly sanitized label; subclass formatters cannot supply public text. Typed backend failures return generic guidance without logging their causes or tracebacks. Unknown exceptions retain their type at ERROR and full diagnostic chain at DEBUG in server logs only.
Host and provider schema overrides must upgrade together.
UPDATING.mdand the provider author guide describe the required arguments and error contract. The translation template also includes two strings already introduced by the transport prerequisite.BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Not applicable: SDK and backend boundary changes only.
TESTING INSTRUCTIONS
With the repository Python environment and local
superset-core/srconPYTHONPATH:Final candidate results: 1,958 semantic-layer tests passed at 100.00% coverage, 635 supplemental SDK/command/network/MCP tests passed, and 13 SDK conformance tests passed. Changed-file pre-commit (including MyPy) passed; POT drift passed before the merge. The independent macOS export run needed a test-only sentinel rename because the word "private" also matches
/private/tmptraceback paths; the author checkout passed unchanged. This test portability follow-up remains open. Added cases cover masked nested preview configuration, spoofed readiness, saved-runtime authority, required SDK arguments, safe transport errors, suppressed sensitive causes, chart cache admission, values lookup and the MCP error envelope.No live provider or deployment validation is claimed. Provider schema overrides must be updated together with the host.
Follow-ups: prove each provider blocks discovery for unresolved readiness; consider rejecting literal secret placeholders during create/import; validate status fields in the transport SDK constructor in addition to host boundary validation. Also make malformed transport-error handling explicit at metadata endpoints so it does not rely on the outer error wrapper and produce an extra host-only ERROR traceback. These follow-ups are not implemented by this PR.
ADDITIONAL INFORMATION
SEMANTIC_LAYERS