Files
Musify/Musify.StreamingGateway/Program.cs
T
Admin 3be31a6378 refactor: standardize project names to Musify.* and flatten layout
- Flatten nested per-repo folders into flat Musify.* projects at root
- Rename assemblies/csproj: Domain->Musify.Domain, Application->Musify.Application,
  Infrastructure->Musify.Infrastructure, WebApi->Musify.Api, Worker->Musify.Worker,
  StreamingGateway->Musify.StreamingGateway
- Rename WebApi.* namespaces to Musify.Api.*
- Update all ProjectReference paths and the solution file
- Consolidate stray per-repo dotfiles; add root .gitattributes
- Move flutter client out to _archive
2026-07-05 03:32:48 +02:00

43 lines
1.3 KiB
C#

using Musify.StreamingGateway.Authentication;
using Musify.StreamingGateway.Configuration;
using Musify.StreamingGateway.Middleware;
var builder = WebApplication.CreateBuilder();
builder.Services
.AddOptions<StreamTicketValidationOptions>()
.Bind(builder.Configuration.GetRequiredSection(StreamTicketValidationOptions.SectionName))
.ValidateDataAnnotations()
.ValidateOnStart();
builder.Services.AddSingleton<TicketValidator>();
const string corsPolicy = "media-clients";
var allowedOrigins = builder.Configuration.GetSection("Cors:AllowedOrigins").Get<string[]>() ?? [];
builder.Services.AddCors(options => options.AddPolicy(corsPolicy, policy =>
{
if (builder.Environment.IsDevelopment())
policy.AllowAnyOrigin();
else
policy.WithOrigins(allowedOrigins);
policy.AllowAnyHeader()
.WithMethods("GET", "HEAD")
.WithExposedHeaders("Content-Range", "Accept-Ranges", "Content-Length");
} ));
builder.Services
.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
var app = builder.Build();
app.MapGet("/health", () => Results.Ok("healthy"))
.WithSummary("Health Check Endpoint");
app.UseCors(corsPolicy);
app.UseMiddleware<TicketValidationMiddleware>();
app.MapReverseProxy();
app.Run();