feat(deploy): healthcheck api и worker, отдельный migrate-сервис, лимит загрузки отчёта
Миграции вынесены из команды api в one-shot сервис migrate, api и worker стартуют после него. /health отвечает 503 при недоступной БД. Отчёт больше MAX_UPLOAD_BYTES (25 МиБ) получает 413, Caddy режет на 30 МБ раньше. Том uploads убран, секреты env_file передаются сервисам явно. В CI добавлена сборка образа бэкенда без push, test_migrations сверяет модели с историей Alembic.
This commit is contained in:
@@ -459,3 +459,16 @@ async def test_pending_rows_are_created_by_the_preview_alone(app, http, auth_hea
|
||||
async with get_sessionmaker()() as session:
|
||||
assert await session.scalar(select(func.count()).select_from(PendingInstrument)) == 1
|
||||
assert await session.scalar(select(func.count()).select_from(Event)) == 0
|
||||
|
||||
|
||||
async def test_oversized_report_is_413(app, http, auth_headers, parser, monkeypatch):
|
||||
from fintracker.config import get_settings
|
||||
|
||||
monkeypatch.setenv("MAX_UPLOAD_BYTES", "1024")
|
||||
get_settings.cache_clear()
|
||||
try:
|
||||
response = await upload(http, auth_headers, b"x" * 2048)
|
||||
finally:
|
||||
monkeypatch.undo()
|
||||
get_settings.cache_clear()
|
||||
assert response.status_code == 413, response.text
|
||||
|
||||
Reference in New Issue
Block a user