Goldpath.Data 0.1.0-preview.8

This is a prerelease version of Goldpath.Data.
dotnet add package Goldpath.Data --version 0.1.0-preview.8
                    
NuGet\Install-Package Goldpath.Data -Version 0.1.0-preview.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Goldpath.Data" Version="0.1.0-preview.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Goldpath.Data" Version="0.1.0-preview.8" />
                    
Directory.Packages.props
<PackageReference Include="Goldpath.Data" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Goldpath.Data --version 0.1.0-preview.8
                    
#r "nuget: Goldpath.Data, 0.1.0-preview.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Goldpath.Data@0.1.0-preview.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Goldpath.Data&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Goldpath.Data&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Tool

Goldpath.Data

Data-path floor of the Goldpath enterprise asset: the keyset cursor-pagination executor, the save-contributor seam Ring B modules plug into, and money/time-safe model conventions. Provider-neutral — Npgsql/SqlServer/Oracle are wired by the template from the manifest.

Getting started

builder.AddGoldpathData<WebApplicationBuilder, OrdersDbContext>(o => o.UseNpgsql(connectionString));

public class OrdersDbContext : DbContext
{
    protected override void ConfigureConventions(ModelConfigurationBuilder b)
        => b.ApplyGoldpathConventions();          // string 256, decimal 18,4, TenantId conversion

    protected override void OnModelCreating(ModelBuilder b)
        => b.ApplyGoldpathModelDefaults();        // enums stored as strings
}

Configuration

Deliberately minimal — conventions are the configuration. Explicit per-property settings always win over the defaults.

Advanced

Keyset pagination (the executor of the Goldpath.ApiDefaults wire contract — never OFFSET):

Page<OrderDto> page = await db.Orders
    .Where(o => o.Status == OrderStatus.Confirmed)
    .Select(o => new OrderDto(o.Id, o.CreatedAt, ...))
    .ToPageAsync(request, o => o.CreatedAt, o => o.Id, cancellationToken: ct);   // (timestamp, id) canonical pair
  • Ordering is applied BY the executor from the key selectors — a mismatched manual order-by (the classic skipped-rows bug) cannot happen.
  • Keys must be unique (single) or unique-together (pair). 1–2 keys, per-key direction.
  • Projection rule: project with member-init records/types (new Dto { X = o.X }). Positional-constructor projections cannot be traced back to columns by EF, so the keyset ORDER BY fails to translate (found by the golden-path walking skeleton).
  • A tampered/invalid cursor throws GoldpathInvalidCursorException → map to HTTP 400 (the golden-path template wires this mapping).

Save-contributor seam (for Ring B modules, not application code): implement IEntitySaveContributor, register it, and every save runs it over Added/Modified/Deleted entries with GoldpathSaveContext (clock + tenant). AuditTrail/SoftDelete/MultiTenancy attach here.

Migrations (RFC D1): Development auto-migrates (template wiring); every other environment applies the CI-produced dotnet ef migrations bundle artifact as an explicit pipeline step. Runtime Migrate() outside Development is forbidden (GP0302).

Providers

Chosen in the manifest (providers.db), wired by the template: postgresql (Npgsql), sqlserver, oracle. This package references only Microsoft.EntityFrameworkCore.Relational.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on Goldpath.Data:

Package Downloads
Goldpath.Jobs

L2 of the Goldpath execution ladder: scheduled and long-running work on a CLUSTERED Quartz.NET persistent store (exactly-once firing, misfire handling, automatic failover) with the Goldpath run model on top - chunked/checkpointed/resumable runs, per-item failure isolation, live progress and deadline prediction, completion chaining. The qrtz_ schema ships as EF model contributions, so the store never escapes migration discipline (jobs RFC D2).

Goldpath.AuditTrail

Ring B audit for the Goldpath enterprise asset: entity-level change logging in the SAME transaction as the change (stamps + old→new rows via the Data save-contributor seam) composed with Mediant's command-level [Auditable] audit — one correlated story: the command says why, the entity rows say exactly what.

Goldpath.MultiTenancy

Ring B multi-tenancy for the Goldpath enterprise asset: tenant resolution (header/subdomain, fail-closed), a global query filter on every IMultiTenant entity, automatic tenant stamping, and a cross-tenant write guard that treats violations as security events. Explicit Bypass()/Use() scopes for admin and background flows. Shared-db isolation; the messaging seam propagates tenants since Phase 1.

Goldpath.Notification

Transactional notifications for the Goldpath enterprise asset: one domain event becomes one message with enterprise discipline - durable evidence rows (who/when/what answered by query, template-hash proof after body retention), idempotent send (a required unique dedup key; a retry storm cannot double-send), claim-before-send semantics with repair-queue replay, culture-aware code templates, and channel seams (email via MailKit + webhook shipped; SMS pluggable). Sending runs on Goldpath.Jobs (notification RFC D1-D7).

Goldpath.Bulk

File/set intake for the Goldpath enterprise asset (L3 of the execution ladder): content-addressed same-database file store, CSV parsing behind a format seam, typed per-row validation with a value-free report, an audited approve/reject gate, and execution of approved batches as Goldpath.Jobs runs - chunked, checkpointed, resumable, with row failures isolated into the repair queue and claim-before-side-effect semantics (bulk RFC D1-D7).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.8 160 9/7/2026
0.1.0-preview.7 128 9/1/2026
0.1.0-preview.6 417 8/4/2026
0.1.0-preview.5 120 7/28/2026
0.1.0-preview.4 114 7/27/2026
0.1.0-preview.3 99 7/25/2026
0.1.0-preview.2 105 7/13/2026
0.1.0-preview.1 271 7/13/2026