Skip to content

Match SYSTEM_ONLY lock reasons - #737

Draft
yeilho wants to merge 17 commits into
linkedin:mainfrom
yeilho:iye/tier3-lock-lifecycle
Draft

yeilho wants to merge 17 commits into
linkedin:mainfrom
yeilho:iye/tier3-lock-lifecycle

Conversation

@yeilho

@yeilho yeilho commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add reason-matched SYSTEM_ONLY lock creation/update and unlock, building on #726.

Changes

Keep existing LOCK_ADMIN authorization and server-derived caller identity. Match active lock reasons when SYSTEM_ONLY is involved, preserve normal lock message/expiry updates, and retain the legacy unlock SDK signature. The reason-targeted endpoint needs only database, table, and reason: no caller-supplied UUID, expected owner, or principal. Protect active locks during policy replacement without adding owner tracking or inactive-lock preservation rules.

Testing Done

  • Local code review completed.
  • Added and updated tests for the changes made.

80 targeted lifecycle, policy-protection, controller, generated-client, and compatibility cases passed on this branch. The cumulative stack passed 124 selected cases, including authorization and Spark 3.1/3.5 coverage. Native API generation confirms the reason-only unlock signature and no separate lock-status operation or response schema. Spotless passed.

Additional Information

Stack 1/4; #726 is already merged. Includes main at 4ffabcc2 without rewriting history. Review only this increment.

Read/write enforcement is separate. This PR does not add a lock-status API or change table deletion.

Generated with GitHub Copilot CLI.

yeilho and others added 6 commits September 10, 2026 10:00
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>
yeilho and others added 3 commits September 17, 2026 09:56
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>
@yeilho yeilho changed the title Guard cleanup lock lifecycle and expose lock status Guard SYSTEM_ONLY lock lifecycle and expose status Sep 18, 2026
yeilho and others added 6 commits September 21, 2026 11:19
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>
Preserve the reviewed lifecycle additions on top of the landed SYSTEM-only contract and retain upstream changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require matching recorded owner and table generation for every active reason-targeted unlock. Remove the unused recovery API wording and verify missing identities cannot bypass the checks.

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>
@yeilho yeilho changed the title Guard SYSTEM_ONLY lock lifecycle and expose status Match SYSTEM_ONLY lock reasons and expose status Sep 23, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@yeilho yeilho changed the title Match SYSTEM_ONLY lock reasons and expose status Match SYSTEM_ONLY lock reasons Sep 23, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant