diff --git a/HISTORY/2026-07-21_crud_stand_three_apps.md b/HISTORY/2026-07-21_crud_stand_three_apps.md new file mode 100644 index 0000000..4ed7806 --- /dev/null +++ b/HISTORY/2026-07-21_crud_stand_three_apps.md @@ -0,0 +1,40 @@ +# 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.