Repository navigation
JasperFx 2.77.0
Highlights
IDocumentStoreDiagnostics grows up (#870, #927)
The store-agnostic document diagnostics contract that CritterWatch uses:
- Filtering:
DocumentQueryOptionsgainsWhere,OrderBy,Arguments(Dynamic LINQ text, per #869) andIncludeSoftDeleted. If a store can't apply a filter, it must throw the newDocumentCriteriaNotSupportedExceptioninstead of returning an unfiltered page. - Store identity: new
SubjectURI, which pairs withIDocumentStoreUsageSource.Subjectso a console can target the main store or an ancillary one. - Defined behaviour:
- Soft-deleted rows are excluded by default.
- In a hierarchy, results are limited to the requested type.
- A null, empty or whitespace tenant means the default tenant (
DocumentQueryOptions.NormalizeTenantId). - Text ids are converted to the stored id type.
- Tenant-aware loads: new
LoadDocumentAsync(type, id, tenantId)returns aStoredDocument.LoadDocumentJsonAsyncnow forwards to it. - Metadata in results:
StoredDocumentrows (version, last modified, created, tenant, deleted and deleted-at, .NET type) are onDocumentQueryResult.Documents. - Write sibling: new
IDocumentStoreDiagnosticsWritersaves from JSON and deletes, with an expected-version check and a tenant. - Descriptors:
DocumentStoreUsage.SerializerCasing, plus structuredIndexesandDuplicatedFieldsonDocumentMappingDescriptor. - Compliance: new
DocumentStoreDiagnosticsCompliancesuite, withSoftDeleted<T>()andAddSubClass<TRoot, TSub>()onDocumentComplianceConfig.
⚠️ Breaking for implementers:IDocumentStoreDiagnostics.SubjectandLoadDocumentAsyncare abstract on purpose, so Marten, Polecat and Fisher all adopt the contract in the same wave. Tracking issues: JasperFx/marten#5543, JasperFx/polecat#706, JasperFx/fisher#364.
Also in this release
ShardState.LastUpdated(#924, #926): the progression row'slast_updatednow flows throughAllProjectionProgress, which gives a signal for whether a shard is still alive.- Compliance: pins the phantom
ProjectionDeletedon the async-daemon path (#917, #925). This is the deferred half of #893. - Source generator: simple-typed single-argument constructors are kept out of the generated
EventTypes(marten#3942, #923).
Packages
- JasperFx
- JasperFx.Events
- JasperFx.Events.ComplianceTests
- JasperFx.Events.SourceGenerator
- JasperFx.SourceGenerator
- JasperFx.Aspire
- JasperFx.Events.MicrosoftExtensionsAI
All seven are at 2.77.0. JasperFx.RuntimeCompiler is versioned independently and is unchanged.
Full Changelog: V2.76.1...V2.77.0