Sylin.Koan.Data.Abstractions
1.0.27
dotnet add package Sylin.Koan.Data.Abstractions --version 1.0.27
NuGet\Install-Package Sylin.Koan.Data.Abstractions -Version 1.0.27
<PackageReference Include="Sylin.Koan.Data.Abstractions" Version="1.0.27" />
<PackageVersion Include="Sylin.Koan.Data.Abstractions" Version="1.0.27" />
<PackageReference Include="Sylin.Koan.Data.Abstractions" />
paket add Sylin.Koan.Data.Abstractions --version 1.0.27
#r "nuget: Sylin.Koan.Data.Abstractions, 1.0.27"
#:package Sylin.Koan.Data.Abstractions@1.0.27
#addin nuget:?package=Sylin.Koan.Data.Abstractions&version=1.0.27
#tool nuget:?package=Sylin.Koan.Data.Abstractions&version=1.0.27
Sylin.Koan.Data.Abstractions
Provider-neutral contracts shared by Koan's Entity runtime, data connectors, and modules that need to negotiate data behavior without activating a provider or host.
Applications normally receive this package through Sylin.Koan or Sylin.Koan.App. Reference it directly when
implementing a repository/adapter, declaring data capabilities, or consuming the contracts without Data Core.
Install
dotnet add package Sylin.Koan.Data.Abstractions
Meaningful use
An adapter implements IDataRepository<TEntity,TKey> and, when applicable, IQueryRepository<TEntity,TKey>.
It advertises only behavior it proves through the shared capability model:
var capabilities = DataCaps.Describe(repository, repository.GetType().Name);
var canStreamByPages = capabilities.Has(DataCaps.Query.ProviderBoundedPaging);
QueryDefinition carries the structured candidate filter, sort, projection, page, partition, and count intent.
RepositoryQueryResult<TEntity> reports which axes the provider actually handled. Consumers negotiate those facts;
they do not infer guarantees from an adapter name.
Receipts are executable truth. A result reports handled filter, sort, page, projection, and count work separately;
CountResult.Execution distinguishes exact, optimized-exact, and fast/estimate execution. Data rejects an impossible
or incomplete receipt and never replays a dispatched query or mutation to repair one.
Entity mutation contracts follow the same rule:
MutationResult<TEntity,TKey>reports insert, update, delete, missing, or conflict plus commit outcome.BatchResultreports realized atomicity and, when the created native batch earnsCompleteItemOutcomes, one outcome per builder call in logical call order.RequireAtomicrejects before deferred loads, Lifecycle callbacks, or provider dispatch unless both the adapter claim and the created native execution seam prove atomicity.GetManyreturns exactly one slot per requested identity, preserving order and duplicates and usingnullfor missing or invisible records.
Adapters also consume one provider-neutral source and failure vocabulary:
DataSourcePlancarries the immutableStorageLifecycle,DataSourceAccess, route identity, and redacted connection identity compiled by Data Core.DataOperationEffectproves whether dispatch is a read, data write, storage/admin action, or unknown.IDataFailureClassifiertranslates native exception types/codes intoDataFailureKind,DataCommitOutcome, retry disposition, and replay disposition. Message text is never a classifier.IDataNativeEvidenceSinkrecords restricted native type/code evidence and returns only an opaque bounded reference to public channels.IAdapterFactory.DescribeClaimsdeclares adapter capabilities and non-source profiles. ForIDataSourceIntegrationFactory, the pureDescribeSource(source)descriptor automatically contributes the registered-read, record-result, and granular inspection profiles it supports. The resultingDataClaimSetsupplies the exact references used by execution diagnostics and conformance tooling.
Source-only adapters implement IDataSourceIntegrationFactory; they do not manufacture an Entity repository.
IDataSourceInspectorAdapter supplies bounded, source-bound container inspection, while IDataSourceIntegration
executes immutable registered read plans. Both return the same neutral record contracts:
RecordSetpreserves field order, duplicate names, missing versus null, nested neutral values, completion, and deterministic byte accounting.INeutralRecordReaderconverts one provider result channel incrementally; another channel rejects instead of being discarded.OperationPlankeeps effect, result kind, delivery, binding, read lane, parameters, timeout, and bounds independent.IDataSourceNativeInspectoris the only marker admitted by the explicit native-inspection probe; the raw common adapter is not exposed as a policy bypass.
Aggregate mapping uses the same provider-neutral posture. MappingDescriptor contains one StorageAddress, complete
single/composite identity, logical MappingPath values, physical PhysicalPath locations, value shape, direction,
generation, authority, and optional IDataMappingCodec. MappedRecord preserves missing versus present-null values,
and MappingReceipt identifies the exact compiled plan/bindings used. These contracts contain no SQL column, BSON,
JSON-column, table, or provider SDK type.
The package also owns the canonical provider-neutral PatchPayload<TKey> operation. HTTP JSON Patch, Merge Patch,
MCP, or another projection must normalize its protocol into that operation before entering Data.
Boundaries and failures
- This package is inert vocabulary. It does not register Data Core, elect a provider, open storage, create schemas,
or expose
Entity<T>statics. - It has no ASP.NET Core dependency. Media types, JSON Patch documents, controllers, and HTTP errors belong to Web.
ProviderBoundedPagingpromises bounded candidate pages and a complete order, not cursor resumption, snapshot isolation, or mutation-safe traversal.- A provider capability is insufficient without its matching native seam and execution receipt. Stronger behavior rejects before work when either half is absent.
- Unsupported optional behavior must reject or negotiate honestly; adapters must not approximate a stronger guarantee silently.
- A capability token is a claim, not proof. Provider conformance tests must exercise every advertised behavior.
- Native exception evidence remains adapter-owned and restricted. Data owns the stable public failure kind, commit outcome, retry disposition, replay disposition, and safe corrective facts.
See TECHNICAL.md for query ownership, capability semantics, and adapter compatibility rules.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Console (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Newtonsoft.Json (>= 13.0.4)
- Sylin.Koan.Core (>= 1.0.33 && < 2.0.0)
NuGet packages (54)
Showing the top 5 NuGet packages that depend on Sylin.Koan.Data.Abstractions:
| Package | Downloads |
|---|---|
|
Sylin.Koan.Data.Core
Entity data runtime for Koan: provider election, routing, lifecycle, queries, paging, relationships, and canonical operations. |
|
|
Sylin.Koan.Web
Controller-first ASP.NET Core projection for Koan Entities with health, startup composition, and redacted runtime facts. |
|
|
Sylin.Koan.Data.Vector.Abstractions
Provider-neutral Koan vector contracts for search repositories, adapter factories, schemas, queries, matches, capabilities, and export shapes. |
|
|
Sylin.Koan.Data.Relational
Shared schema governance, SQL translation, and command mechanics for Koan relational Data providers. |
|
|
Sylin.Koan
Tested Koan foundation bundle: core runtime, Entity data, local Communication, and the JSON connector. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.27 | 0 | 8/30/2026 |
| 1.0.26 | 45 | 8/30/2026 |
| 1.0.24 | 383 | 8/28/2026 |
| 1.0.23 | 198 | 8/28/2026 |
| 1.0.22 | 189 | 8/28/2026 |
| 1.0.20 | 227 | 8/28/2026 |
| 1.0.19 | 281 | 8/27/2026 |
| 1.0.17 | 79 | 8/27/2026 |
| 1.0.16 | 76 | 8/26/2026 |
| 1.0.15 | 741 | 8/25/2026 |
| 1.0.14 | 1,025 | 8/24/2026 |
| 1.0.12 | 335 | 8/23/2026 |
| 1.0.11 | 1,151 | 8/22/2026 |
| 1.0.2 | 1,323 | 8/20/2026 |
| 1.0.0 | 827 | 8/14/2026 |
| 0.21.1 | 297 | 8/14/2026 |
| 0.21.0 | 382 | 7/30/2026 |
| 0.20.5 | 222 | 7/24/2026 |
| 0.20.4 | 1,396 | 7/22/2026 |
| 0.20.3 | 478 | 7/21/2026 |
Code signing policy: https://github.com/sylin-org/koan-framework/blob/main/CODE_SIGNING_POLICY.md.