Goldpath.Data
0.1.0-preview.8
dotnet add package Goldpath.Data --version 0.1.0-preview.8
NuGet\Install-Package Goldpath.Data -Version 0.1.0-preview.8
<PackageReference Include="Goldpath.Data" Version="0.1.0-preview.8" />
<PackageVersion Include="Goldpath.Data" Version="0.1.0-preview.8" />
<PackageReference Include="Goldpath.Data" />
paket add Goldpath.Data --version 0.1.0-preview.8
#r "nuget: Goldpath.Data, 0.1.0-preview.8"
#:package Goldpath.Data@0.1.0-preview.8
#addin nuget:?package=Goldpath.Data&version=0.1.0-preview.8&prerelease
#tool nuget:?package=Goldpath.Data&version=0.1.0-preview.8&prerelease
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 | Versions 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. |
-
net10.0
- Goldpath.Abstractions (>= 0.1.0-preview.8)
- Goldpath.ApiDefaults (>= 0.1.0-preview.8)
- Mediant (>= 1.4.1)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.9)
-
net8.0
- Goldpath.Abstractions (>= 0.1.0-preview.8)
- Goldpath.ApiDefaults (>= 0.1.0-preview.8)
- Mediant (>= 1.4.1)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.28)
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 |