Repository navigation
Release v22.108.0
Summary
Commands under read protection On now keep their validation errors whatever severity threshold a caller sends, and the read-protection analyzers, test helpers and docs say exactly what Arc does.
Added
- A documentation snippet of a protected command for the Cratis documentation site (#3324)
Changed
ShouldAdmitDecisionReadsOfandShouldAdmitDecisionReadsInalso check commands declaredOn, the read models their validators take, and per-stream read models (#3330)
Fixed
- ARCCHR0032 no longer reports
[ReadProtection(ReadProtectionMode.On)]on a[ProtectedDecision]command as redundant:Onchanges how validators are built, protects plain read-model parameters and changes theReadChangedrefusal (#3330) - A read through an unsupported reducer now names what made it unprotectable instead of telling you to wait for reducer support (#3330)
- The docs explain that refusal messages with status 500 reach clients only in Development or with
ExposeExceptionDetails, show how a frontend handlesReadChangedandReadIncompletethroughreasonDetail, and correct the monthly-limit query and the overbooking repair examples (#3330)
Security
- A command declared with read protection
Onblocks onErrorandUnknownvalidation results from validators,Provide()andHandle(), even when the caller sends a more permissiveX-Allowed-Severity; callers can still accept warnings and information. An explicit[BlockOnValidationSeverity]still takes precedence, andOffandMeasureare unchanged: under those modes, declare[BlockOnValidationSeverity(ValidationResultSeverity.Error)]on commands whose validators must not be skipped (#3332)