v1.0.89: Sonnet Round 3 — PG connection string, migrations, map-fixed UI, pytest
This commit is contained in:
@@ -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, детальный план
|
||||
|
||||
### Результаты анализа
|
||||
|
||||
Reference in New Issue
Block a user