using StellaOps.Cartographer.Options; var builder = WebApplication.CreateBuilder(args); builder.Configuration .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables("CARTOGRAPHER_"); builder.Services.AddOptions(); builder.Services.AddLogging(); var authoritySection = builder.Configuration.GetSection("Cartographer:Authority"); var authorityOptions = new CartographerAuthorityOptions(); authoritySection.Bind(authorityOptions); CartographerAuthorityOptionsConfigurator.ApplyDefaults(authorityOptions); authorityOptions.Validate(); builder.Services.AddSingleton(authorityOptions); builder.Services.AddOptions() .Bind(authoritySection) .PostConfigure(CartographerAuthorityOptionsConfigurator.ApplyDefaults); // TODO: register Cartographer graph builders, overlay workers, and Authority client once implementations land. var app = builder.Build(); if (!authorityOptions.Enabled) { app.Logger.LogWarning("Cartographer Authority authentication is disabled; enable it before production deployments."); } else if (authorityOptions.AllowAnonymousFallback) { app.Logger.LogWarning("Cartographer Authority allows anonymous fallback; disable fallback before production rollout."); } app.MapGet("/healthz", () => Results.Ok(new { status = "ok" })); app.MapGet("/readyz", () => Results.Ok(new { status = "warming" })); app.Run();