Conversation
Preserve legacy lock operations and generated client signatures while tracking cleanup lock ownership and table generation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow authorized table admins to create and directly unlock matching cleanup locks without an additional SYSTEM_ADMIN requirement. Keep task-one lock identity guards and legacy behavior unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep TIER3_AUTO_CLEANUP as optional lock metadata and add opt-in per-client SYSTEM_ACTION header propagation. Defer lock enforcement, guarded unlock, and owner/generation checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Normalize omitted and null reasons while preserving unknown-request rejection. Add compatibility coverage and authenticated generated-client HTTP integration tests without changing lock enforcement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Return HTTP 423 only for cleanup lock access denials so catalog load, refresh, and tableExists retain the reason and recovery guidance. Preserve legacy and malformed 400 behavior, generic 404 handling, authorization ordering, and lifecycle controls. Cover REST reads and writes, error-body preservation, and real catalog and exception-mapping regressions across both Java and Spark runtime variants. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 tasks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use SYSTEM_ONLY with SYSTEM/USER action-type declarations, and apply LEGACY defaults only to active locks. Cover serialization and client/server compatibility without changing enforcement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve owner and generation guards, metadata-only status, and active-only legacy defaults while adopting SYSTEM_ONLY and action-type declarations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Merge the guarded lifecycle update, evaluate SYSTEM and USER declarations after authorization, and preserve SYSTEM_ONLY denial propagation and generic unlock guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Omit the header for ordinary requests and reject unsupported explicit values. Remove the unused USER constant and the requested catalog comments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Forward-merge the updated client contract and reject explicit USER values only at the existing post-authorization SYSTEM_ONLY access check. Preserve raw declarations for auditing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
Enforce
SYSTEM_ONLYlocks usingX-OpenHouse-Action-Typewithout granting additional privileges.Changes
Require a
SYSTEMdeclaration for otherwise-authorized data reads and writes under an activeSYSTEM_ONLYlock. An absent declaration returns HTTP 423; other supplied values, includingUSER, unknown, blank, padded, and old boolean declarations, return HTTP 400 when this access check is reached. Preserve existing ACL and legacy-lock checks, protect lock metadata, and surface HTTP 423 with generic authorized-unlock guidance rather than hiding the denial as a missing table.Testing Done
436 service, Java, and Spark cases passed across both runtime variants, covering declaration parsing and authorization order, SDK/HTTP metadata and snapshot writes, catalog load/refresh/tableExists, denial propagation without commit retries, and legacy 400/404 behavior.
Additional Information
Stack 2/4; depends on #737. Targets
main, so the draft includes unmerged predecessors. Review only this increment.SYSTEMis case-insensitive. Validation remains at the existing post-authorization active-SYSTEM_ONLYaccess check, not global request middleware. Automated deletion, SQL unlock, and deployment are separate.Generated with GitHub Copilot CLI.