Files
nexus/backend/Program.cs
T
AzuTear f5552218bc
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s
feat: ship agent-first mission control v0.2.57
2026-07-31 22:39:47 +02:00

47 lines
1.6 KiB
C#

using Nexus.Api.Extensions;
using System.Reflection;
var builder = WebApplication.CreateBuilder(args);
var isOpenApiGeneration =
Assembly.GetEntryAssembly()?.GetName().Name == "GetDocument.Insider";
if (isOpenApiGeneration)
{
// The build-time mock host never accepts traffic. It still constructs the
// auth services, so use an ephemeral contract-only signing value.
builder.Configuration["Jwt:Key"] =
"openapi-contract-generation-only-000000000000000000";
}
// --- Service Registration ---
builder.Services.AddNexusAuth(builder.Configuration);
builder.Services.AddNexusRateLimiting();
builder.Services.AddNexusForwardedHeaders(builder.Configuration);
builder.Services.AddNexusSwagger();
builder.Services.AddNexusDatabase(builder.Configuration);
builder.Services.AddNexusHttpClients(builder.Configuration);
builder.Services.AddNexusApplicationServices(
includeHostedServices: !isOpenApiGeneration);
builder.Services.AddNexusRepositories();
builder.Services.AddNexusHealthChecks(builder.Configuration);
builder.Services.AddNexusPlatform(builder.Configuration);
builder.Services.AddControllers();
var app = builder.Build();
// Build-time OpenAPI extraction constructs the host without a database. The
// flag is supplied only by the project target; normal application starts keep
// the migration and seed gate mandatory.
if (!isOpenApiGeneration)
{
// --- Database Migration & Seeding ---
await app.EnsureDatabaseAsync();
}
// --- Middleware Pipeline ---
app.UseNexusPipeline(app.Environment);
app.MapMcp("/mcp");
app.MapOpenApi("/openapi/{documentName}.json");
app.MapControllers();
app.Run();