Files

57 lines
1.6 KiB
C#

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);
}
}