Tapis.Core.Infrastructure 1.0.13

dotnet add package Tapis.Core.Infrastructure --version 1.0.13
                    
NuGet\Install-Package Tapis.Core.Infrastructure -Version 1.0.13
                    
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="Tapis.Core.Infrastructure" Version="1.0.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tapis.Core.Infrastructure" Version="1.0.13" />
                    
Directory.Packages.props
<PackageReference Include="Tapis.Core.Infrastructure" />
                    
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 Tapis.Core.Infrastructure --version 1.0.13
                    
#r "nuget: Tapis.Core.Infrastructure, 1.0.13"
                    
#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 Tapis.Core.Infrastructure@1.0.13
                    
#: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=Tapis.Core.Infrastructure&version=1.0.13
                    
Install as a Cake Addin
#tool nuget:?package=Tapis.Core.Infrastructure&version=1.0.13
                    
Install as a Cake Tool

Tapis.Core.Infrastructure

ASP.NET Core middleware, EF Core audit/concurrency interceptorları, Refit ürün API client'ları, permission attribute'ları, TapisExceptionHandler, IServiceExceptionHandler uygulaması ve isteğe bağlı Elasticsearch ILogger sağlayıcısı (AddTapisElasticsearch).

Tapis.Core.Shared üzerine ProjectReference.

1.0.4'ten itibaren Guid damga üreten VersiyonSaveChangesInterceptor ve modelBuilder.ConfigureVersiyonluEntities() uzantısı kaldırıldı: damga PostgreSQL'in xmin sistem sütunu (PERSISTENCE-STANDARDS §8).

Yerine modelBuilder.ConfigureXminConcurrency() geldi. Ürün DbContext'i bunu OnModelCreating sonunda, kendi yapılandırmalarından sonra çağırır:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    // ... ürünün kendi yapılandırmaları
    modelBuilder.ConfigureXminConcurrency();
}

Uzantı tabloya eşlenmiş her entity'ye xmin gölge özelliğini concurrency token olarak bağlar; owned, anahtarsız ve türetilmiş TPH tiplerini atlar. Satıra yeni bir sütun eklenmez — xmin PostgreSQL'in zaten tuttuğu sistem sütunudur.

1.0.5: eşleme EF'in standart mekanizmasıyla kurulur — gölge uint xmin özelliği IsRowVersion() olur, Npgsql 7+ convention'ı onu xmin/xid'e eşler (sütun adı ve tipi elle verilmez). Özellik gölge kalır: CLR özelliği olsaydı nesne eşleyiciler istemci damgasını CurrentValue'ya yazar ve kontrol sessizce kapanırdı. Uzantı yalnız Npgsql üzerinde çağrılır (if (Database.IsNpgsql())); yalnız PostgreSQL desteklenir. Paket Npgsql'e bağımlı değildir.

1.0.6: modelBuilder.ConfigureTurkishCaseInsensitive() — Türkçe, büyük/küçük harfe duyarsız ICU collation'ı (tr_ci = tr-TR-u-ks-level2, deterministic: false) modele ekler ve tabloya eşlenmiş her metin özelliğine atar; eski SQL Server TURKISH_CI_AS davranışının PostgreSQL karşılığıdır. PostgreSQL 18+ gerekir (nondeterministic collation ile LIKE/strpos). Harf farkının anlam taşıdığı teknik değerler yapılandırmada .HarfDuyarli() ile işaretlenir. Bu kolonlarda ILIKE ve regex desteklenmez; düz Contains/StartsWith yeterlidir.

if (Database.IsNpgsql())
{
    modelBuilder.ConfigureXminConcurrency();
    modelBuilder.ConfigureTurkishCaseInsensitive();
}

Bu sürümden itibaren paket Npgsql.EntityFrameworkCore.PostgreSQL (10.0.0) paketine bağımlıdır (HasCollation).

Audit interceptor (AuditSaveChangesInterceptor) ve IServiceExceptionHandler değişmedi.

1.0.8: ISistemTanimDbContext ve SistemTanimStore kaldırıldı — Core ürün DbContext'ine bağlı sözleşme taşımaz. Ürün ISistemTanimStore'u (Shared) kendi DbContext'i üzerinden gerçekleştirir; SistemTanim entity'si Shared'da kalır ve ürün DbContext'ine eklenir.

1.0.12: Hata olayı yayıncısı (opt-in). services.AddTanilamaOlayYayini(configuration) çağrılmazsa bağlantı ve hosted service açılmaz. ITanilamaOlayKuyrugu.TryWrite(olay) kullanıcı yolunda senkron çalışır, bekletmez, fırlatmaz; olay sınırlı bellek kanalına girer, arka plan yayıncısı maskeler ve RabbitMQ'ya publisher-confirm ile bırakır (user_id = bağlantı kullanıcısı). Kanal doluysa, olay MaksOlayBayt'ı aşarsa, deneme hakkı bitmişse veya Tanilama:Broker:* (Host, Username, Password, Exchange) eksikse olay düşürülür ve sayılır (Tapis.Core.Tanilama meter'ı); başka kimliğe ya da HTTP'ye yedek yoktur. Uygulama istemcisi topoloji declare etmez. Tüketici Core'da değildir (Master'ın Monitoring klasöründe).

1.0.13: Destek eki köprüsü (opt-in, F2.3). services.AddMasterDestekEkKoprusu(configuration) (Tenancy:MasterUrl/ClientId/ ClientSecret) IMasterDestekEkKoprusuApi'yi kendi named HttpClient'ı ve kendi keyed token sağlayıcısıyla (MasterDestekEkKoprusuServiceCollectionExtensions.TokenProviderKey) kaydeder; token yalnız support.ticket.attachment.read ister. AddMasterDestekKoprusu'nun [write, read] token'ı değişmez: Master bu scope'u client'a vermemişse yalnız ek indirme düşer. EkIndirAsync(MasterDestekTalebiEkIndirDTO) HttpResponseMessage döner (başlıklar önce, gövde tamponlanmaz, 4xx/5xx fırlatmaz). Ürün adapter'ı durumu okur (404 → 404, 429 → 429, token reddi/401/403/taşıma → 503) ve başarılı yanıtı SayanEkAkisi.AcAsync(yanit) ile sarar: akış baytları sayar, DestekEkSinirlari.IndirmeEnFazlaBayt (9.000.000) aşılınca EkBoyutSiniriAsildiException fırlatır, bildirilen Content-Length sınırın üstündeyse hiç okumaz; dispose edilince yanıtı da bırakır (yanıtın ömrü akışa bağlı). HttpResponseMessage ürünün Application port'unu geçmez.

Target Framework

  • .NET 10

Installation

dotnet add package Tapis.Core.Infrastructure
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.13 0 10/3/2026
1.0.12 71 10/2/2026
1.0.11 70 10/1/2026
1.0.10 117 10/1/2026
1.0.9 127 9/30/2026
1.0.8 151 9/26/2026
1.0.7 93 9/26/2026
1.0.6 151 9/25/2026
1.0.5 153 9/21/2026
1.0.4 86 9/20/2026
1.0.3 133 9/5/2026
1.0.2 95 9/1/2026
1.0.0 126 8/28/2026

Destek eki köprüsü (F2.3-1, opt-in, eklemeli): IMasterDestekEkKoprusuApi.EkIndirAsync (POST api/DestekTalebi/UrundenEkIndir, Task<HttpResponseMessage>, gövde tamponlanmaz, 4xx/5xx fırlatmaz); AddMasterDestekEkKoprusu(IConfiguration): ayrı named HttpClient + ayrı keyed IMasterClientTokenProvider, token yalnız support.ticket.attachment.read ister (mevcut AddMasterDestekKoprusu [write, read] token isteği değişmedi); SayanEkAkisi.AcAsync: yanıt gövdesini sayarak 9.000.000 baytta EkBoyutSiniriAsildiException ile keser, Content-Length'e güvenmez, yanıtın ömrünü akışa bağlar. Shared 2.0.13 gerektirir.