Some checks failed
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Public / Build + push Public (push) Has been cancelled
Docker Public / Deploy Public on stage (push) Has been cancelled
1. TD-3 Mapster — Application/Mapping/MapsterConfig.cs с
TypeAdapterConfig для Product, Counterparty + collections.
ProductsController.List/Get/GetInternalAsync + CounterpartiesController.
List/Get переведены на .ProjectToType<TDto>(MapsterConfig.Config).
Inline Projection-Expression удалён.
2. SSO scaffold — Microsoft.AspNetCore.Authentication.Google + .MicrosoftAccount
пакеты, условная регистрация в Program.cs (только если ClientId задан).
ExternalAuthController с GET /api/auth/external/{provider} (Challenge или
503 если не настроено), /callback (501 с email — invite-flow TODO),
/providers (булевый список). docs/sso.md инструкция.
3. Stale-data cleanup — HousekeepingJobs расширен:
PruneOrgAuditLogAsync (>90д из Cleanup:OrgAuditLogDays),
PruneDraftsAsync (Supply/RetailSale/Demand старше 30д),
PruneRevokedRefreshTokensAsync (raw SQL DELETE из OpenIddictTokens).
3 новых cron'a в HangfireJobsConfigurator (03:00-03:20 UTC).
4. DB VACUUM automation — DatabaseMaintenanceJobs.VacuumTopTablesAsync:
pg_total_relation_size → топ-5 таблиц → VACUUM (ANALYZE) per table
с замером времени. Default cron еженедельно вс 04:00 UTC.
5. Disk usage monitoring — DiskMonitoringJob ежечасно: DriveInfo.AvailableFreeSpace
на пути из Monitoring:DiskPaths (default "/opt,/var/lib/docker").
<1GB → Telegram-alert на Monitoring:SuperAdminTelegramChatIds.
Anti-spam cooldown 6h. Gauge food_market_disk_free_bytes{mount}.
6. Performance regression detection — ~/nightly-perf-check.sh после
nightly-verify. Парсит /metrics, считает db_avg_ms, сравнивает с
baseline в ~/.fm-watchdog/perf-baseline.json. Δ>30% → Telegram alert
+ baseline НЕ обновляется (sliding window).
7. Public-site analytics placeholder — Astro BaseLayout рендерит
gtag/Yandex.Metrika только если задан PUBLIC_GA_ID / PUBLIC_YM_ID;
иначе <script data-id="REPLACE_ME" data-doc="docs/analytics.md">
маркер. docs/analytics.md с инструкцией подключения.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
79 lines
4.3 KiB
XML
79 lines
4.3 KiB
XML
<Project>
|
|
<PropertyGroup>
|
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- ASP.NET Core 8 -->
|
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.3.0" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.SignalR" Version="1.2.0" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.11" />
|
|
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.9.0" />
|
|
|
|
<!-- EF Core 8 + PostgreSQL -->
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.11" />
|
|
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
|
|
|
|
<!-- OpenIddict 5 (aligned to .NET 8 LTS) -->
|
|
<PackageVersion Include="OpenIddict.AspNetCore" Version="5.8.0" />
|
|
<PackageVersion Include="OpenIddict.EntityFrameworkCore" Version="5.8.0" />
|
|
|
|
<!-- Identity -->
|
|
<PackageVersion Include="Microsoft.AspNetCore.Identity" Version="2.3.1" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.11" />
|
|
|
|
<!-- App services -->
|
|
<PackageVersion Include="CsvHelper" Version="33.0.1" />
|
|
<PackageVersion Include="Minio" Version="6.0.5" />
|
|
<PackageVersion Include="ClosedXML" Version="0.104.2" />
|
|
<PackageVersion Include="MailKit" Version="4.10.0" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.DataProtection" Version="8.0.11" />
|
|
<PackageVersion Include="MediatR" Version="12.4.1" />
|
|
<PackageVersion Include="FluentValidation" Version="11.11.0" />
|
|
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="11.11.0" />
|
|
<PackageVersion Include="Mapster" Version="7.4.0" />
|
|
<PackageVersion Include="Mapster.DependencyInjection" Version="1.0.1" />
|
|
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.3" />
|
|
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
|
|
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
|
|
|
|
<!-- Image processing (Sprint 14: variants thumb/medium + WebP) -->
|
|
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.6" />
|
|
|
|
<!-- Background jobs -->
|
|
<PackageVersion Include="Hangfire.AspNetCore" Version="1.8.17" />
|
|
<PackageVersion Include="Hangfire.PostgreSql" Version="1.20.10" />
|
|
|
|
<!-- Observability / Prometheus -->
|
|
<PackageVersion Include="prometheus-net.AspNetCore" Version="8.2.1" />
|
|
|
|
<!-- POS: local storage + API client -->
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.11" />
|
|
<PackageVersion Include="Refit" Version="7.2.22" />
|
|
<PackageVersion Include="Refit.HttpClientFactory" Version="7.2.22" />
|
|
<PackageVersion Include="Polly" Version="8.5.0" />
|
|
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
|
|
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
|
<PackageVersion Include="System.IO.Ports" Version="8.0.0" />
|
|
|
|
<!-- Testing -->
|
|
<PackageVersion Include="xunit" Version="2.9.3" />
|
|
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.1" />
|
|
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
|
<PackageVersion Include="FluentAssertions" Version="7.0.0" />
|
|
<PackageVersion Include="NSubstitute" Version="5.3.0" />
|
|
<PackageVersion Include="coverlet.collector" Version="6.0.3" />
|
|
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.11" />
|
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.11" />
|
|
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.1.0" />
|
|
</ItemGroup>
|
|
</Project>
|