Franz.Common.Http.Bootstrap 3.0.0

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

Franz.Common.Http.Bootstrap

Composition root for the standard Franz ASP.NET Core HTTP services and middleware pipeline.

Overview

This package provides two explicit entry points: AddHttpArchitecture(...) for service registration and UseHttpArchitecture() for middleware composition. It centralizes the framework's HTTP defaults without silently configuring an identity provider or tenant membership policy.

Installation

dotnet add package Franz.Common.Http.Bootstrap

Service registration

using Franz.Common.Http.Bootstrap.Extensions;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddHttpArchitecture(
    builder.Environment,
    builder.Configuration,
    typeof(Program).Assembly);

The registration composes common architecture services, HTTP controllers, exact-origin CORS, forwarded-header support, serialization, error strategies, JWT authentication entry-point, header context, API documentation, HTTP identity context, tenant resolution, serializers, and health checks.

Authentication is explicit

AddHttpArchitecture calls AddFranzAuthentication() to expose the authentication builder, but it does not configure a JWT bearer handler or choose an identity provider. Configure the intended scheme explicitly. For symmetric JWTs:

builder.Services
    .AddFranzAuthentication()
    .ConfigureJwtBearer(builder.Configuration);

For OIDC, SAML2, WS-Federation, or Keycloak, use the corresponding provider registration from Franz.Common.Http.Identity. Do not register multiple competing default authentication schemes unless the application explicitly composes them.

Tenant membership is explicit

The bootstrapper registers AddFranzMultiTenancy(), but the application must provide its ITenantStore, at least one ITenantResolver when tenant resolution is required, and an ITenantRequestAuthorizer for authenticated tenant membership. The built-in GUID-claim authorizer is opt-in through AddTenantClaimsAuthorizer(...).

Middleware pipeline

var app = builder.Build();

app.UseHttpArchitecture();
app.Run();

UseHttpArchitecture() composes exception handling, forwarded headers, certificate forwarding, localization, routing, CORS, authentication, tenant resolution, authorization, controller endpoints, API documentation, and health checks in the required order.

Do not add a second UseFranzMultiTenancy() call when using this composed pipeline. The composed endpoint mapping requires authorization for mapped controllers; configure endpoint policies and anonymous endpoints deliberately.

Configuration boundaries

  • Cors is a semicolon-separated list of exact HTTP/HTTPS origins. Wildcards, paths, query strings, fragments, and credentials in an origin are rejected. No configured origins means no cross-origin access is granted.
  • Forwarded headers preserve ASP.NET Core trusted-proxy/network restrictions. Add the actual reverse proxies explicitly through ForwardedHeadersOptions; do not trust arbitrary senders.
  • Symmetric JWT configuration requires issuer, audience, and a secret signing key of at least 32 UTF-8 bytes. Keep secrets in a secret manager.
  • Tenant resolution exclusions are explicit path prefixes; excluded endpoints must be secured independently.

Refit

Refit is not automatically discovered or registered by AddHttpArchitecture. Add the Franz.Common.Http.Refit integration and register typed clients explicitly using its API.

Franz.Common.Http, Franz.Common.Http.Authentication, Franz.Common.Http.Identity, Franz.Common.Http.MultiTenancy, and Franz.Common.Http.Documentation.

License

MIT. See the repository LICENSE.

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
3.0.0 0 11/10/2026
2.3.4 334 11/1/2026
2.3.3 307 10/28/2026
2.3.2 103 10/27/2026
2.3.1 154 10/26/2026
2.3.0 239 7/21/2026
2.2.19 135 7/19/2026
2.2.18 126 7/19/2026
2.2.17 133 7/12/2026
2.2.16 134 7/2/2026
2.2.15 138 6/29/2026
2.2.14 131 6/29/2026
2.2.13 138 6/29/2026
2.2.12 127 6/28/2026
2.2.11 133 6/28/2026
2.2.10 125 6/28/2026
2.2.9 141 6/28/2026
2.2.8 139 6/28/2026
2.2.7 138 6/7/2026
2.2.6 141 6/6/2026
Loading failed