Updates - #65
Merged
Merged
Updates#65
Conversation
A plain `POST [type]` carrying only control parameters (_format, _pretty, _summary, _elements) was mis-handled as a conditional create: the store re-derived conditionality from the raw UrlQuery and ran an unfiltered type search, returning a pre-existing resource (200) or 412 instead of creating. Add a single shared predicate FhirCandle.Search.Common.QueryContainsSearchParameters that reports whether a query carries a real (non-control, non-result) search parameter, and gate DoInstanceCreate's conditional trigger on the resolved interaction plus that predicate. Conditional create via If-None-Exist or a resolved TypeCreateConditional with real criteria is unchanged (incl. 412 on multi-match). Also refactor FhirRequestContext.hasQueryParameters to reuse the predicate (DRY, behavior-preserving). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Control-only query params on a PUT were mis-handled as a conditional update: the store ran an unfiltered type search off the raw UrlQuery. Gate the conditional-update branch of DoInstanceUpdate on the resolved InstanceUpdateConditional interaction, and (since the REST controller hard-sets that interaction for any non-empty query) reject a control-only conditional update with 400 before searching. Plain instance PUT with control params is now a normal update. Also re-gate the strict-mode URL-id-regex and PUT-on-missing checks on the interaction rather than UrlQuery emptiness, so a control-only query no longer suppresses them (strict PUT-on-missing again returns 404). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
A type-level DELETE with no real search criteria (empty or control-only query) resolved to TypeDeleteConditional and ran an unfiltered "match everything" search. Reject such requests with 400 in DoTypeDelete before searching, so a control-param-only or criteria-less DELETE [type] no longer risks deleting every resource of the type. Conditional deletes with real criteria are unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add DetermineInteraction parse-lock cases pinning that control-only POST/PUT queries do not resolve as conditional operations, and an R4 FromIssues pointer test reproducing issue #62 (POST Organization?_pretty=true&_format=json with pre-existing organizations must return 201 Created). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the four published-but-unrecorded NuGet versions (v2026.526.2054/#50, v2026.527.1737/#52, v2026.528.2036/#58, v2026.623.2024/#60) as reverse-chronological entries above v2026.415.1643, with grouped thematic bullets and external-contributor credit. The relocated issue #40 backport-IG link fix is written into v2026.528.2036. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the stale issue #41 backport-IG bullet (which actually shipped in v2026.528.2036 as the #40 fix) with the four genuinely-unreleased post-#60 dev store fixes: type-level delete search criteria, conditional update interaction gating, control-only POST create handling, and the control-only write parse-lock (issue #62). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Fix #62
Update dependencies