Repository navigation
fix(sdk): integrate management compatibility into main - #24
Merged
Merged
Conversation
… listings Arc's three database listing endpoints carried no authentication at all. They now require read permission and, where the server restricts reads per database, a grant covering the database being listed. handle_response_error mapped both 401 and 403 onto ArcAuthenticationError, so a caller could not tell "re-authenticate" from "this token lacks a permission" — and 403 is not one condition either. Arc answers it for a token with no read permission, for a token whose grants do not cover the database asked for, for a licence-gated feature, and for its own permission data being unreadable, distinguishing them only by message. ArcAuthenticationError now means 401 only. Added: - ArcPermissionError: the token does not carry the permission the endpoint requires. - ArcScopedAccessError: Arc's per-database denial. The token may read, but not what was asked for. Carries the refused database on .database — empty or "*" when the call asked for every database, since Arc refuses databases.list() for a tenant-scoped token rather than returning a filtered list, matching SHOW DATABASES. A normal state, not a fault to retry. - ArcPermissionDataUnavailableError: Arc could not load the token's grants and failed closed. A server-side fault that says nothing about the token, so it is checked before the scoped shape and never reported as one. All subclass ArcPermissionError, which subclasses ArcAuthenticationError, so existing except blocks that caught 403 as an authentication failure keep working. Matching is by stable message fragment and covers both the read middleware's wording and the handler gates', so a change to the permission word cannot reclassify one refusal as another; an unrecognised 403 falls back to ArcPermissionError. Docstrings on list/get/list_measurements, sync and async, document which exception each refusal raises.
…ility fix(management): align retention and continuous-query contracts
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Oct 30, 2026
4 tasks done
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
fix/sdk-transport-safetyinto current main, including the CQ/retention compatibility fix from fix(management): align retention and continuous-query contracts #21 and its permission, retry and buffering dependencies.replace()for Arc 26.09.3, sparse updates for newer servers, and flat CQ response decoding. Preserve the current main history; the integrated tree matches the source branch.Test plan
e83bb1eand pinned maina63f4a8, sync and async.fix/sdk-transport-safety.