Release v20.65.4
Summary
Cratis.Chronicle, Cratis.Chronicle.AspNetCore and Cratis.Chronicle.Testing are updated from 16.9.1 to 16.10.0, picking up 16.9.2, 16.9.3, 16.9.4 and 16.10.0.
Added
- Chronicle 16.9.2:
ComplianceMetadataActionFailedreplaces the bareInvalidOperationExceptionwhen applying or releasing compliance metadata fails. On a failed release it names the property, the subject the value was released under, and explains that the value was encrypted under a different subject, pointing at CHR0038 — rather than surfacing only the underlying OpenSSLoaep decoding error. - Chronicle 16.10.0:
[Replay]on a reactor handler method, marking it as the one to run while the observer is replaying. Only the marked handler runs during a replay; an event type without one behaves exactly as before. (Cratis/Chronicle#845) - Chronicle 16.10.0:
IEventStore.IdentitieswithRename(subject, name), exposing the identity renaming the kernel already supported to the .NET client. (Cratis/Chronicle#1684) - Chronicle 16.10.0:
[JsonSchemaType(typeof(T))]on a type, overriding how it is represented in the JSON schema generated for events and read models. Compliance metadata and nullability are preserved. (Cratis/Chronicle#1470) - Chronicle 16.10.0:
AddCratisChronicleMongoDB()for Aspire, provisioning a MongoDB container that initiates itself as a single-node replica set and hands back adirectConnectionconnection string. (Cratis/Chronicle#3400) - Chronicle 16.10.0:
IReactorMiddleware.BeforeInvokeandAfterInvokeoverloads that receive theReactorIdof the reactor observing the event. Chronicle calls these; they default to the existing overloads, so a middleware written against the previous interface keeps working unchanged. (Cratis/Chronicle#1009) - Chronicle 16.10.0:
CompliancePropertyNotFoundInSchema, thrown when a property being applied or released has no counterpart in the schema. The message names the property path, the compliance subject, and the properties the schema does declare. (Cratis/Chronicle#690) - Chronicle 16.10.0: An overview on the
cratis/chronicleDocker Hub repository covering the published tag variants, ports, quick start and the environment variables that configure the server. (Cratis/Chronicle#1277)
Changed
Cratis.Chronicle,Cratis.Chronicle.AspNetCoreandCratis.Chronicle.Testingare updated to16.10.0- Chronicle 16.9.2:
CHR0038now also reports the fluentbuilder.Join<TEvent>(_ => _.On(...))form, not just the model-bound[Join<TEvent>]attribute. A[PII]value counts as reaching the read model through an explicit.Set(...).To(...)mapping or through AutoMap matching an identically named property. - Chronicle 16.10.0: Registering event types on connect issues one read and one bulk write for the whole batch instead of several round trips per event type, so startup no longer scales its database round trips with the number of event types. (Cratis/Chronicle#984)
Fixed
- Chronicle 16.9.3:
CHR0038no longer reports a fluent join when AutoMap cannot carry the value across —[NoAutoMap]on the read model, and[NoAutoMap]on the target property of a positional record, were both still reported. Since the rule is an error, each was a build break on correct code. - Chronicle 16.9.4: Two links in the concepts docs pointed at
/arc/backend/chronicle/aggregates/aggregate-root.md, which no longer exists — the Arc page isdefining-an-aggregate-root.md. This was breaking the Documentation site's internal-links check. - Chronicle 16.10.0: Reading back a job whose request was not yet assigned no longer fails with a
NullReferenceException, losing the status and progress the job state was written to record. (Cratis/Chronicle#3541) - Chronicle 16.10.0: Reducer failures are written to the client log. A reducer method that throws was reported to the kernel as a failed observation without ever appearing in the client's own log. (Cratis/Chronicle#1395)
- Chronicle 16.10.0: Applying or releasing compliance metadata for a property the schema does not declare no longer fails with a bare
Sequence contains no matching element. (Cratis/Chronicle#690) - Chronicle 16.10.0: Applying or releasing compliance metadata no longer fails when a schema flattened across inheritance declares the same property name more than once. (Cratis/Chronicle#690)