57 lines
1.6 KiB
C#
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);
|
|
}
|
|
} |