v1.0.89: Sonnet Round 3 — PG connection string, migrations, map-fixed UI, pytest

This commit is contained in:
2026-07-27 22:25:36 +04:00
parent f802956257
commit 3eac8b2dff
+26
View File
@@ -1,5 +1,31 @@
# История разработки app-autotest
## v1.0.89 (27.07.2026) — Sonnet Round 3: практические вопросы
### 1. PostgreSQL connection string
- `os.getenv("DATABASE_URL")` — никакого service discovery
- Инжектится через `jsonEnv` параметры pythonk8s-сервиса (как NUBES_API_TOKEN)
- Порядок: создать PostgreSQL-инстанс в Nubes → взять host/port/user/pass из state_out → собрать DSN → jsonEnv → деплой
### 2. Миграции при деплое
- `init_db()` на уровне модуля в app.py, до register_blueprint
- `CREATE TABLE/INDEX IF NOT EXISTS` — идемпотентно, каждый воркер выполнит независимо
- PostgreSQL обрабатывает конкурентный DDL корректно
- Никаких ручных шагов при деплое
- `DROP COLUMN` — не идемпотентно, осторожно
### 3. Multi-service UI (map-fixed)
- `dataDescriptor` уже в API-ответе — инфраструктура готова
- `map` (свободный): textarea + JSON-валидация (как сейчас)
- `map-fixed`: таблица подполей с отдельными input/select из dataDescriptor
- Бэкенд не меняется — paramValue всегда строка
- Изменения только во фронте: showParams() + сбор подполей в JSON перед отправкой
### 4. Тесты
- pytest для чистых функций без моков: `_find_uid`, `_uid_from_location`, `_with_prefix`, слияние params, tracker
- Структура: `tests/conftest.py`, `test_utils.py`, `test_tracker.py`, `test_get_params.py`
- Роуты с Flask test client + mock HttpClient — отложить (высокая стоимость мокирования)
## v1.0.89 (27.07.2026) — Sonnet Round 2: PostgreSQL, auth.py, детальный план
### Результаты анализа