Архивация списков #13
@@ -21,21 +21,14 @@ const string CorsPolicyName = "Frontend";
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Заменяет собой встроенных провайдеров логирования: все ILogger<T> в приложении
|
||||
// (включая наши логи в ListPartitioning) идут через Serilog в оба синка ниже.
|
||||
// ReadFrom.Configuration — чтобы Logging:LogLevel в appsettings продолжал работать
|
||||
// как обычно, без второй, серилоговской системы настройки уровней рядом с ним.
|
||||
builder.Host.UseSerilog((context, services, configuration) => configuration
|
||||
.ReadFrom.Configuration(context.Configuration)
|
||||
.Enrich.FromLogContext()
|
||||
.WriteTo.Console()
|
||||
// Один файл на календарный месяц (rollOnFileSizeLimit не включаем — ротация
|
||||
// только по времени). retainedFileCountLimit: null — логи не подчищаются
|
||||
// автоматически, ротацией места на диске занимается инфраструктура хоста.
|
||||
.WriteTo.File(
|
||||
"logs/log-.txt",
|
||||
rollingInterval: RollingInterval.Month,
|
||||
retainedFileCountLimit: null));
|
||||
retainedFileCountLimit: 6));
|
||||
|
||||
builder.Services.Configure<ForwardedHeadersOptions>(options =>
|
||||
{
|
||||
@@ -59,8 +52,6 @@ builder.Services.AddApprovalRouteApplication();
|
||||
builder.Services.Configure<RemindersOptions>(builder.Configuration.GetSection("Reminders"));
|
||||
builder.Services.Configure<ListPartitioningOptions>(builder.Configuration.GetSection("ListPartitioning"));
|
||||
|
||||
// Hangfire на том же Postgres, что и остальные данные. Свои таблицы он создаёт сам
|
||||
// (схема hangfire) при старте — отдельной EF-миграции для них не нужно.
|
||||
builder.Services.AddHangfire(configuration => configuration
|
||||
.SetDataCompatibilityLevel(CompatibilityLevel.Version_180)
|
||||
.UseSimpleAssemblyNameTypeSerializer()
|
||||
@@ -68,8 +59,6 @@ builder.Services.AddHangfire(configuration => configuration
|
||||
.UsePostgreSqlStorage(postgres =>
|
||||
postgres.UseNpgsqlConnection(builder.Configuration.GetConnectionString("Postgres"))));
|
||||
|
||||
// Воркер живёт в процессе API: задач мало (создание списка — редкое событие), и
|
||||
// отдельный хост под них был бы лишней инфраструктурой.
|
||||
builder.Services.AddHangfireServer();
|
||||
builder.Services.AddApprovalRouteAuth(builder.Configuration);
|
||||
builder.Services.AddScoped<ICurrentUser, CurrentUserAccessor>();
|
||||
@@ -126,9 +115,6 @@ app.UseCors(CorsPolicyName);
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
|
||||
// Свой Basic Auth, а не схемы из AuthSetup: дашборд Hangfire открывается прямо в
|
||||
// браузере без похода за токеном Entra, ему нужна отдельная, простая проверка.
|
||||
// Логин/пароль — в конфигурации (Hangfire:Dashboard), см. appsettings.json.
|
||||
app.UseHangfireDashboard("/hangfire", new DashboardOptions
|
||||
{
|
||||
Authorization =
|
||||
|
||||
Reference in New Issue
Block a user