Skip to content

v0.5.497

@yeilho yeilho tagged this 22 Sep 14:37
## Summary

Introduce generic lock-reason metadata and an optional request
action-type declaration. Existing lock enforcement and authorization
remain unchanged.

## Changes

- [x] Client-facing API Changes
- [x] New Features
- [x] Tests

- Add `LEGACY` and `SYSTEM_ONLY` lock classifications. Omitted or null
reasons resolve to `LEGACY` only when `locked=true`; inactive
missing/null reasons remain null, and explicit reasons are preserved.
- Add the optional `action-type` catalog property and
`X-OpenHouse-Action-Type` header in both supported Java catalog
variants. The catalog accepts only `SYSTEM`, case-insensitively, and
emits it in uppercase. An absent property omits the header; other
supplied values, including `USER`, are rejected.
- Preserve compatibility across persisted policies, API serialization,
and generated clients without an unconditional client-side reason
default.

## Testing Done

- [x] Added and updated tests for model compatibility, generated-client
defaults, real client/server round trips, and both Java catalog
variants.
- [x] Local code review completed by GPT-6 Astra and Claude Opus 5.

45 focused generated-SDK/HTTP and Java catalog cases passed on this
revision, including rejection of `USER` and mixed-case variants. Scoped
formatting checks passed. Full-stack regression coverage is recorded in
#740.

# Additional Information

The action declaration does not grant privileges or bypass locks.
Lifecycle, enforcement, audit, maintenance-job adoption, and any
backfill remain separate follow-up work.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Assets 2
Loading