Fix PATCH authorization, data correctness, attachments, and invitations - #147
Merged
Conversation
Resolve enum widening data loss, portable null equality and inequality, stable offset ordering, descending JSON sort directions, and id range filters. Add one shared storage contract across PostgreSQL, SurrealDB, and SQL Server.
Add a default-unsupported conditional field update to all storage adapters and the dynamic bridge. Preserve unrelated fields and PostgreSQL revisions, reject stale snapshots and normalize missing file state. Exercise concurrent clears, replacement rejection, stale completion and first uploads through the shared backend contract.
Exercise narrowing an enum while replacing its removed default on all storage adapters. Removed values must become null while retained values stay unchanged.
rrrodzilla
marked this pull request as ready for review
September 9, 2026 22:08
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.
This PR fixes PATCH writes that returned success without saving field-authorized changes, together with six issues across queries, migrations, attachments, CEL verification, and generated invitations.
entity file clear, retaining object bytes under storage lifecycle rules and rejecting required fields.The new atomic field API defaults to an unsupported error for custom backends until they implement it; upload confirmation, scan completion, and clearing use it to avoid overwriting concurrent changes. Package versions are aligned for these API changes, including CLI 0.41.0. The invitation implementation targets the current generated React site, which replaced the old generated admin UI.
Validation: 2,459 workspace tests passed, with eight marked integration tests skipped in that run. The #148 regression reproduced the pre-fix 200-without-persistence bug. Nine live PostgreSQL HTTP tests passed, including conditional JSON PATCH read-back and stale-revision rejection; authorization-error tests verify 403 with an unchanged delta. The shared PostgreSQL live and SurrealDB tests passed separately, including changed enum defaults and concurrent attachment writes. All 28 Kani harnesses passed locally and in CI. Generated-site build, lint, and four invitation browser tests passed. All-target Clippy passed with warnings denied for the default, PostgreSQL, and SQL Server configurations. All six PR checks passed: Kani, Windows MSSQL build, PostgreSQL authorization/concurrency, site E2E, and SQL Server 2019/2022.
Closes #140
Closes #141
Closes #142
Closes #120
Closes #115
Closes #81
Closes #148