using FictionArchive.Service.Shared.Extensions; namespace FictionArchive.API; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Services.AddHealthChecks(); #region Fusion Gateway // Register header propagation service to forward Authorization header to subgraphs builder.Services.AddHttpClient("Fusion") .AddHeaderPropagation(); builder.Services.AddHeaderPropagation(opt => { opt.Headers.Add("Authorization"); }); builder.Services .AddFusionGatewayServer() .ConfigureFromFile("gateway.fgp") .CoreBuilder.ApplySaneDefaults(); builder.Services.AddOidcAuthentication(builder.Configuration); #endregion var allowedOrigin = builder.Configuration["Cors:AllowedOrigin"] ?? "http://localhost:4321"; builder.Services.AddCors(options => { options.AddPolicy("AllowFictionArchiveOrigins", policyBuilder => { policyBuilder.WithOrigins(allowedOrigin) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); }); var app = builder.Build(); app.UseCors("AllowFictionArchiveOrigins"); app.MapHealthChecks("/healthz"); app.UseHeaderPropagation(); app.MapGraphQL(); app.RunWithGraphQLCommands(args); } }