T91.Server.App 1.0.62

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

T91.Server.App

OIDC/JWT auth, Swagger, CORS, RabbitMQ, Kafka, REST client, and scope infrastructure for T91 .NET 10 microservices.

Full documentation: GitHub README

Installation

dotnet add package T91.Server.App

Registration

builder.RegisterCurrentScope()       // BaseCurrentScope → HttpCurrentScope (scoped)
       .RegisterOIDC()               // Keycloak-compatible JwtBearer
       .RegisterSwagger()
       .AddCorsPolicy()
       .RegisterKafka()              // IKafkaConnectionRegistry, IKafkaPublisher
       .RegisterRmq()                // IRmqConnectionRegistry, IRmqPublisher
       .RegisterDateTimeConversion() // IDateTimeZoneConverter
       .RegisterCache();             // ICacheService (Redis → Postgres → Null)

builder.Services.AddKafkaConsumer<MyKafkaConsumer>();
builder.Services.AddRmqConsumer<MyRmqConsumer>();

Current Scope

BaseCurrentScope / HttpCurrentScope implement ICurrentScope and ISettableCurrentScope. HTTP requests read context from headers (X-TenantId, X-UserId, X-UserName, Authorization, X-Timezone). Message broker consumers populate it from message headers via ISettableCurrentScope.SetX(...).

Kafka

  • IKafkaPublisher.PublishAsync(config, payload, key?, context?, ct) — propagates ICurrentScope as message headers automatically.
  • BaseKafkaConsumer<T> — abstract BackgroundService with outer reconnect loop, in-memory retry, and DLQ forwarding to {topic}.dlq. HandleAsync receives a fresh DI scope with tenant context pre-populated.
  • Pass context: services.GetRequiredService<ICurrentScope>() when publishing from inside a consumer to forward tenant headers.

RabbitMQ

  • IRmqPublisher.PublishAsync(endpoint, payload, context?, ct) — propagates ICurrentScope as AMQP headers.
  • BaseRmqConsumer<T> — abstract BackgroundService with reconnect loop, per-message retry via republish, and dead-letter exchange ({queue}.dead.exchange).

REST Client (BaseRestAPI)

Extend BaseRestAPI<TCurrentScope> for typed inter-service HTTP clients. PrepareHeadersAsync auto-forwards X-TenantId, X-UserId, X-UserName, and Authorization on every request. All instances share a single connection pool via a static SocketsHttpHandler.

Config Sections

Key Binds to
OIDC OIDCConfig
RMQ:Connections Dictionary<string, string> (name → AMQP URL)
Kafka:Connections Dictionary<string, KafkaConfigure>
Cache CacheConfig
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 (1)

Showing the top 1 NuGet packages that depend on T91.Server.App:

Package Downloads
T91.Server.DB

Database library for T91

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.62 120 5/9/2026
1.0.58 99 5/3/2026
1.0.52 107 5/2/2026
1.0.51 97 5/1/2026
1.0.50 119 4/22/2026
1.0.3 390 10/11/2024
1.0.2 178 10/11/2024
1.0.1 185 10/6/2024
1.0.0 198 9/30/2024