You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
A command that receives a wrong-typed value for a Guid-, number-, or enum-backed concept property now returns 400 Bad Request instead of 500.
Omitting a required (non-nullable) concept from a command now returns 400 Bad Request identifying the field, instead of 500.
A command that depends on a must-exist read model which does not exist for its identifier now returns 400 Bad Request instead of a 500 that revealed the read model type.
A query filter that throws no longer crashes the whole query into a 500, and a denied query can no longer be turned into a 500 by a later filter.
Out-of-range or hostile paging on an observable query no longer overflows into a server error.
Changed
Query filters now short-circuit on the first blocking verdict, and authorization filters run before other query filters, so an unauthorized-and-invalid query consistently returns 403 Forbidden.
An observable query that has not yet produced its first result is now reported as not ready (202 Accepted, no exception, new isReady flag on the query result) rather than an error-shaped result, so callers no longer read a pending query as a crash.
Behavior change: a command carrying a non-nullable concept property that arrives null is now rejected with 400 Bad Request. Previously such a command could succeed if its handler never dereferenced the value. Declare the concept nullable (Concept?) to keep it optional; the event source key is exempt.
Added
IAuthorizationQueryFilter for marking a query filter to be evaluated before other query filters.