Repository navigation
Reject workspace scope mismatches and release 26.10.4 - #84
Merged
Merged
Conversation
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.
Workspace creation currently reaches PostgreSQL with a body
idthat can disagree withX-Workspace-Id. Under the production RLS role, that request fails as HTTP 500. Reject the mismatch at the controller boundary with400 workspace_scope_mismatch, before storage or lifecycle-event publication. Matching creation retains201and its existingWorkspaceSpecresponse.Update the workspace reference and Python/Java SDK instructions to match the actual header scope, list behavior and not-found code. Align server and SDK release metadata at
26.10.4; the locked dependency graph, RLS policies, SDK methods and wire schemas remain unchanged.Validation: 1,219 native unit tests and 52 integration tests pass; three optional backend integrations are skipped. The release metadata passes 23 focused controller/OpenAPI tests, 61 Python SDK tests, 62 Java SDK tests, Ruff and Pyright. Fresh installed-server checks use a non-bypass PostgreSQL role and actual HTTP. Both the published Python SDK
26.10.3and staged26.10.4pass creation, scope, credential and error checks. A separate SDK-only installation verifies201, persisted reads,400, foreign-tenant404, newest-first tenant listing through the configured admin connection, and the SDK version header.Lifecycle events retain their existing best-effort delivery after a successful workspace write. The platform key remains trusted operator authority; this patch does not add tenant-bound key grants.