# 2026-07-21 — CRUD-стенд: три приложения + PG ## Сделано ### Провайдер - TEST 5.1.16, DEV 3.1.13 — fix: modify only if `hasServiceParamChanges` (не дёргает API при смене только git_revision) - Шаблон — sequential modify→redeploy вместо if-else ### TEST_STAND/CRUD — рефакторинг - `LUCEE/` → `CRUD/` (папка переименована) - `nubes_postgres.npg_lucee` → `nubes_postgres.main_pg` - Файлы: `nubes_postgres_lucee.tf` → `postgres.tf`, `userUNDdb.tf` → `postgres_user_db.tf` - Добавлены: `flask.tf`, `nodejs.tf` - `locals.tf` — каждая строка с комментарием - `terraform.tfvars.example` — только нужные поля с пояснениями - `README.md` — для нового пользователя (где брать токен, как запускать) ### DEV_STAND/CRUD — аналог TEST - Те же файлы, провайдер `nubes-dev`, версия `3.1.13` - `locals.tf` — каждая строка с комментарием - `terraform.tfvars.example` — только нужные поля ### Приложения (три репо) | Репо | Хеш | Что | |---|---|---| | `tfluceecrud` | `8268568` | Убран `DROP TABLE` → `CREATE TABLE IF NOT EXISTS` | | `tfflaskcrud` | `54746e9` | `init_db()` на уровне модуля (gunicorn) | | `tfnodejscrud` | `809d30b` | `app.listen` вне `initDB.then()`, SSL в Pool | Все три — идентичный SQL, одна таблица `crud_items`, Nubes design. ### Баги исправлены 1. **Lucee DROP TABLE** — при каждом старте приложения таблица дропалась, данные терялись 2. **Flask init_db** — только в `__main__`, под gunicorn таблица не создавалась 3. **Node.js startup** — `app.listen` внутри `.then()` — если PG не ответил, сервер не стартовал 4. **Node.js SSL** — `PGSSLMODE` не передавался в `json_env` ### Известное ограничение PG+user+DB и приложения нельзя создать за один apply — `vault_secrets["users"]` не заполнен на момент создания приложений. Два apply. Подробнее в README.