Compare commits
2 Commits
fea9fd4f53
...
e3f9d24621
| Author | SHA1 | Date | |
|---|---|---|---|
| e3f9d24621 | |||
| c588326c28 |
@@ -1,45 +1,37 @@
|
|||||||
---
|
---
|
||||||
_last_updated_: 2026-05-30T15:00:00+03:00
|
_last_updated_: 2026-05-31T12:00:00+03:00
|
||||||
session_id: 2026-05-30-vehicles-loader-0.4.0-deploy
|
session_id: 2026-05-31-vehicles-loader-verify-email-fix
|
||||||
---
|
---
|
||||||
|
|
||||||
# Next session handoff
|
# Next session handoff
|
||||||
|
|
||||||
_Сессия: деплой `vehicles-loader 0.4.0` (progress-logging) на прод СТО Стайер. Build здесь →
|
_Сессия: live-verify прогона `vehicles-loader 0.4.0` на проде СТО Стайер + находка/фикс email-бага.
|
||||||
push в `docker.stostayer.ru` → на хосте клиента pull + re-tag `:latest`=0.4.0. **Деплой выполнен,
|
Таска `vehicles-loader-progress-deploy` закрыта 🟢. Прод стабилен, ничего не висит._
|
||||||
осталась только live-verify** на боевом прогоне таймера — он по природе требует changed-выгрузки,
|
|
||||||
а сегодняшняя уже импортнута на 0.3.0. User выбрал ждать natural 06:20 (не форсить baseline)._
|
|
||||||
|
|
||||||
## ГЛАВНОЕ для след. сессии — live-verify (после 06:21 MSK Sun 2026-05-31)
|
|
||||||
|
|
||||||
Таймер `vehicles-loader.timer` next trigger = **Sun 2026-05-31 06:21:36 MSK**. После него:
|
|
||||||
|
|
||||||
```
|
|
||||||
plink -ssh -P 20435 -batch victor@new.stostayer.ru -pw '<pass stostayer/client ssh_pass>' \
|
|
||||||
"echo '<ssh_pass>' | sudo -S journalctl -u vehicles-loader.service --since '2026-05-31 06:00' --no-pager"
|
|
||||||
```
|
|
||||||
(docker/journalctl на хосте — через `sudo -S`, victor не в docker/adm-группе; `-batch` чтобы plink не висел на host-key промпте — ключ уже закэширован.)
|
|
||||||
|
|
||||||
**Acceptance to confirm (закрывает таску 🟢):**
|
|
||||||
- В логе видно движение: `▶ <phase> — start`, периодический батч-прогресс (`manufacturers: 18/183 …`), `✓ <phase> — done: N rows`, per-model `delete-sweep`. **НЕ тишина** после трёх `Total …`.
|
|
||||||
- Прогон шёл на 0.4.0 (не skipped-unchanged) — т.е. 1С перезаписала файл в 6:00 и checksum разошёлся.
|
|
||||||
- `importRun` новый `ok`-ряд (MariaDB `stostayer`, creds `pass stostayer/client`).
|
|
||||||
- Email-отчёт ушёл (попутно закрывает остаток email-SEND из `vehicles-loader-image-distribution`).
|
|
||||||
|
|
||||||
Если прогон оказался `skipped-unchanged` (1С не обновила файл) → подождать след. суток ИЛИ обсудить с user форс baseline-reset.
|
|
||||||
|
|
||||||
## Recent commits
|
## Recent commits
|
||||||
|
|
||||||
- `b8a07fee` tasks(vehicles-loader-progress-deploy): 0.4.0 deployed, verify pending 06:21
|
- `c588326c` tasks(vehicles-loader-progress-deploy): close 🟢 — verify ok + email-recipient fix
|
||||||
- `7ec62009` tasks(vehicles-loader-progress-deploy): new task — deploy 0.4.0 + live-verify
|
|
||||||
|
|
||||||
## Состояние деплоя (что уже сделано)
|
## Что сделано (verify прогона Sun 31.05 06:21→07:53 MSK)
|
||||||
|
|
||||||
- Образ `docker.stostayer.ru/vehicles-loader:0.4.0` собран здесь (811MB, digest `f2e10b1f0…`), запушен.
|
- ✅ Progress-logging 0.4.0 работает: журнал показал движение по всем фазам (▶/батчи/✓/delete-sweep),
|
||||||
- На хосте: `vehicles-loader:latest` → `0f8a4dd46236` = 0.4.0; `0.3.0` (`5407c0563e44`) retained для rollback (re-tag обратно если регресс).
|
НЕ тишина. `Finished … Deactivated successfully` (exit 0). `importRun id=4 ok`, `reportJson errors:[]`.
|
||||||
- timer `enabled`, `active (waiting)`.
|
- ✅ **Email-баг починен:** `STOSTAYER_MAIL_TO=site@stostayer.ru` (отчёт слался сам себе) →
|
||||||
|
`vitya.kuznetsov@gmail.com` в `/etc/stostayer/vehicles-loader.env` на хосте (бэкап
|
||||||
|
`vehicles-loader.env.bak.20260531`). `FROM=site@stostayer.ru` без изменений (SMTP-аккаунт релея).
|
||||||
|
Доставка на gmail подтверждена тест-письмом (`ACCEPTED=[gmail]`, `250 queued as 8732C122F18`).
|
||||||
|
**Подхватится автоматом на след. прогоне 06:21 — отдельно проверять не нужно** (но если хочешь
|
||||||
|
100% — глянь, что боевой отчёт за 01.06 реально упал в gmail).
|
||||||
|
|
||||||
## Открытые треки (перенос, ещё живые)
|
## Follow-up'ы по vehicles-loader (НЕ блокеры, живут в `stostayer.new`, не в .admin)
|
||||||
|
|
||||||
|
| Что | Деталь |
|
||||||
|
|---|---|
|
||||||
|
| units-фаза медленная | 1h 31m на 100529 rows (vehicles 3884 за 3с для сравнения). Кандидат — батч-инсёрт / индексы. Весь прогон = практически только units. |
|
||||||
|
| generation `unmatched:51` | 51 поколение не сматчилось при импорте. Не ошибка, но проверить — не теряем ли данные. |
|
||||||
|
| `config/default.json` дефолт `to` | всё ещё `site@stostayer.ru` (прод перекрыт env, но дефолт вводит в заблуждение). Выровнять в репо `stostayer.new`. |
|
||||||
|
|
||||||
|
## Открытые треки (.admin, перенос — ещё живые)
|
||||||
|
|
||||||
| Трек | Готовность | Entry-point |
|
| Трек | Готовность | Entry-point |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -49,17 +41,17 @@ plink -ssh -P 20435 -batch victor@new.stostayer.ru -pw '<pass stostayer/client s
|
|||||||
|
|
||||||
## Спроси user'а
|
## Спроси user'а
|
||||||
|
|
||||||
- (deploy) Ничего блокирующего — verify автоматом по таймеру. Если хочешь форс-проверку раньше 31.05 — нужен baseline-reset (внеплановое email клиенту).
|
- (vehicles-loader) Делать ли follow-up'ы (units-perf / generation-unmatched / default.json)? Все три —
|
||||||
|
в репо `stostayer.new`, не в .admin. Не срочные.
|
||||||
|
|
||||||
## Не делать (preemptive guards)
|
## Не делать (preemptive guards)
|
||||||
|
|
||||||
- **Не форсить baseline-reset** vehicles-loader без явного запроса — шлёт клиенту внеплановое email-письмо.
|
- **Не форсить baseline-reset** vehicles-loader без явного запроса — шлёт клиенту внеплановое email.
|
||||||
- **Не возвращать `:9200` / stateful-порты на `0.0.0.0`** без IP-allowlist (books VDS, ransom-бот).
|
- **Не возвращать `:9200` / stateful-порты на `0.0.0.0`** без IP-allowlist (books VDS, ransom-бот).
|
||||||
- **Не `ssh + docker compose up -d`** на VDS Portainer-stacks — только Portainer API (искл. traefik/portainer).
|
- **Не `ssh + docker compose up -d`** на VDS Portainer-stacks — только Portainer API (искл. traefik/portainer).
|
||||||
- **branch ahead от origin** — push без явного grant'а (Rule 4). Этой сессии grant НЕ давали.
|
- **branch ahead от origin** — push без явного grant'а (Rule 4). Этой сессии grant НЕ давали.
|
||||||
|
|
||||||
## Memory updates за сессию
|
## Memory updates за сессию
|
||||||
|
|
||||||
- (нет нового на этом раунде) — схема деплоя и обе инфра-гочи уже в `stostayer.new/.wiki/concepts/client-infra-access.md` + `vehicles-loader-docker-deploy.md`.
|
- (нет нового на этом раунде) — email-фикс зафиксирован в task-файле + STATUS.md, схема деплоя и
|
||||||
</content>
|
инфра-гочи уже в `stostayer.new/.wiki/concepts/client-infra-access.md`.
|
||||||
</invoke>
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# Admin Task Board
|
# Admin Task Board
|
||||||
|
_Updated: 2026-05-31 — 🟢 `vehicles-loader-progress-deploy` **closed**: live-verify прогона Sun 31.05 06:21→07:53 MSK прошёл — progress-logging показывает движение по всем фазам (▶/батчи/✓/delete-sweep), НЕ тишина; exit 0; `importRun id=4 ok`, `reportJson errors:[]`. **Попутно найден+починен email-баг:** `STOSTAYER_MAIL_TO=site@stostayer.ru` (слалось само себе) → `vitya.kuznetsov@gmail.com` в host env (бэкап `.bak.20260531`); доставка на gmail подтверждена тест-письмом (`250 queued`). Follow-up'ы (не блокеры): units-фаза 1h31m на 100k rows = узкое место; generation `unmatched:51`; репо `config/default.json` дефолт `to` всё ещё site@ (прод перекрыт env)._
|
||||||
_Updated: 2026-05-30 — 🟡 `vehicles-loader-progress-deploy`: деплой 0.4.0 ВЫПОЛНЕН (build здесь → push `docker.stostayer.ru` → host pull + re-tag `:latest`=0.4.0, 0.3.0 retained). Acceptance #1 ✅. Verify-окно = natural (user-выбор, не форсим baseline → клиент без внепланового email). timer next trigger Sun 2026-05-31 06:21 MSK → live-verify journalctl в след. сессию. Open Q #1 (push кода) снят: `a74ef73` уже в origin/master._
|
_Updated: 2026-05-30 — 🟡 `vehicles-loader-progress-deploy`: деплой 0.4.0 ВЫПОЛНЕН (build здесь → push `docker.stostayer.ru` → host pull + re-tag `:latest`=0.4.0, 0.3.0 retained). Acceptance #1 ✅. Verify-окно = natural (user-выбор, не форсим baseline → клиент без внепланового email). timer next trigger Sun 2026-05-31 06:21 MSK → live-verify journalctl в след. сессию. Open Q #1 (push кода) снят: `a74ef73` уже в origin/master._
|
||||||
_Updated: 2026-05-30 — заведена ⚪ `vehicles-loader-progress-deploy` (handoff из stostayer.new). Progress-logging 0.4.0 зашипан в коде (stostayer.new `a74ef73`, 24/24 теста); ops-follow-up — rebuild образа той же схемой (build здесь → push `docker.stostayer.ru` → host pull+re-tag) и снять `journalctl` с боевого прогона (закрывает не-верифицированный 5-й критерий «journalctl показывает движение»). Попутно добивает остаток email-SEND из `vehicles-loader-image-distribution`._
|
_Updated: 2026-05-30 — заведена ⚪ `vehicles-loader-progress-deploy` (handoff из stostayer.new). Progress-logging 0.4.0 зашипан в коде (stostayer.new `a74ef73`, 24/24 теста); ops-follow-up — rebuild образа той же схемой (build здесь → push `docker.stostayer.ru` → host pull+re-tag) и снять `journalctl` с боевого прогона (закрывает не-верифицированный 5-й критерий «journalctl показывает движение»). Попутно добивает остаток email-SEND из `vehicles-loader-image-distribution`._
|
||||||
_Updated: 2026-05-29 — 🟢 `vehicles-loader-image-distribution` **closed**: канал поставки = собственный registry клиента `docker.stostayer.ru`, build у нас (verdaccio-депы запекаются → клиенту verdaccio не нужен), без Portainer (oneshot + systemd-timer). Доки финализированы (stostayer.new `e55cfba`). Открытие `pass stostayer/client` показало свою инфру клиента (Portainer+registry) → развилка A/B пересмотрена. Фактический prod-деплой — follow-up, ждёт grant'а._
|
_Updated: 2026-05-29 — 🟢 `vehicles-loader-image-distribution` **closed**: канал поставки = собственный registry клиента `docker.stostayer.ru`, build у нас (verdaccio-депы запекаются → клиенту verdaccio не нужен), без Portainer (oneshot + systemd-timer). Доки финализированы (stostayer.new `e55cfba`). Открытие `pass stostayer/client` показало свою инфру клиента (Portainer+registry) → развилка A/B пересмотрена. Фактический prod-деплой — follow-up, ждёт grant'а._
|
||||||
@@ -24,14 +25,11 @@ _Updated: 2026-05-26 — заведена `bookva-tenant-cutover-prep` ⚪ (7-st
|
|||||||
|
|
||||||
_Updated: 2026-05-25 (`iis-migration-to-ruvds` 🟢 closed Phase 1 per user decision — 9/24 hostnames live на RUVDS, source IIS оставлен running. `migrate-elasticsearch-to-books-vds` 🟢 closed ранее сегодня. 16 IIS hostnames + LE renewal pipeline + decommission — descoped в Closure note, не отдельные tracker tasks.)_
|
_Updated: 2026-05-25 (`iis-migration-to-ruvds` 🟢 closed Phase 1 per user decision — 9/24 hostnames live на RUVDS, source IIS оставлен running. `migrate-elasticsearch-to-books-vds` 🟢 closed ранее сегодня. 16 IIS hostnames + LE renewal pipeline + decommission — descoped в Closure note, не отдельные tracker tasks.)_
|
||||||
|
|
||||||
## 🟡 [vehicles-loader-progress-deploy] — задеплоить vehicles-loader **0.4.0** (прогресс-логирование) на прод клиента + live-verify journalctl. Handoff из stostayer.new (код-таска `vehicles-loader-progress-logging` 🟢 closed by-inspection, commit `a74ef73`). См. [vehicles-loader-progress-deploy.md](vehicles-loader-progress-deploy.md).
|
## 🟢 [vehicles-loader-progress-deploy] — closed 2026-05-31 — 0.4.0 задеплоен + live-verify прошёл. Прогон Sun 31.05 06:21:48→07:53:14 MSK на changed-выгрузке: журнал показал движение по всем фазам (▶ branches/vehicles/units/delete-sweep, батч-прогресс `manufacturers 18/183…`, `units 3/26…`, `✓ done: N rows`, per-model delete-sweep), НЕ тишина. exit 0, `importRun id=4 ok`, `reportJson errors:[]`. **Email-баг найден+починен:** `STOSTAYER_MAIL_TO` слался сам себе (`site@stostayer.ru`) → исправлен на `vitya.kuznetsov@gmail.com` в host env (бэкап `.bak.20260531`), доставка на gmail подтверждена тест-письмом. Все 4 acceptance ✅. См. [vehicles-loader-progress-deploy.md](vehicles-loader-progress-deploy.md).
|
||||||
|
**Follow-ups (не блокеры, в stostayer.new):** (1) units-фаза 1h31m на 100529 rows — узкое место, батч-инсёрт/индексы; (2) generation `unmatched:51` — проверить не теряем ли данные; (3) `config/default.json` дефолт `to: site@stostayer.ru` выровнять (прод перекрыт env).
|
||||||
**Status:** paused — деплой выполнен, ждём боевого прогона для verify
|
|
||||||
**Where I stopped:** 0.4.0 собран здесь + запушен в `docker.stostayer.ru` + на хосте pull+re-tag `:latest`=0.4.0 (0.3.0 retained). Acceptance #1 ✅. Verify-окно = natural (user). timer next trigger Sun 2026-05-31 06:21:36 MSK.
|
|
||||||
**Next action (след. сессия после 06:21 MSK 31.05):** `ssh victor@new.stostayer.ru:20435` → `sudo journalctl -u vehicles-loader.service --since '2026-05-31 06:00'` — убедиться что видно ▶/батч-прогресс/✓/delete-sweep (не тишина), importRun новый `ok`-ряд, email ушёл → закрыть 🟢.
|
|
||||||
**Blocker (soft):** push stostayer.new master ИЛИ build из локального дерева (commit `a74ef73` пока локальный).
|
|
||||||
**Branch:** n/a
|
**Branch:** n/a
|
||||||
<!-- created-by: vitya@stostayer.new-session / 2026-05-30 / handoff: stostayer.new/.tasks/vehicles-loader-progress-logging.md -->
|
<!-- created-by: vitya@stostayer.new-session / 2026-05-30 / handoff: stostayer.new/.tasks/vehicles-loader-progress-logging.md -->
|
||||||
|
<!-- closed-by: vitya@.admin-exec / 2026-05-31 / live-verify journalctl прошёл + email-recipient баг починен+verified -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -32,13 +32,13 @@ pull + re-tag), затем дождаться/прогнать sync и снят
|
|||||||
- [x] **На хосте клиента** (ssh `victor@new.stostayer.ru:20435`, docker через `sudo -S`):
|
- [x] **На хосте клиента** (ssh `victor@new.stostayer.ru:20435`, docker через `sudo -S`):
|
||||||
`docker pull …:0.4.0` (digest совпал) + `docker tag …:0.4.0 vehicles-loader:latest`.
|
`docker pull …:0.4.0` (digest совпал) + `docker tag …:0.4.0 vehicles-loader:latest`.
|
||||||
`:latest` теперь `0f8a4dd46236` = 0.4.0; 0.3.0 (`5407c0563e44`) оставлен под rollback.
|
`:latest` теперь `0f8a4dd46236` = 0.4.0; 0.3.0 (`5407c0563e44`) оставлен под rollback.
|
||||||
- [ ] Дождаться планового прогона — **systemd timer next trigger `Sun 2026-05-31 06:21:36 MSK`**
|
- [x] Плановый прогон отстрелял **Sun 2026-05-31 06:21:48 → 07:53:14 MSK** на changed-выгрузке
|
||||||
(timer `enabled`, `active (waiting)`). Verify-окно выбрано user'ом = natural 06:20
|
(не skipped — 1С перезаписала файл в 6:00, checksum разошёлся).
|
||||||
(не форсим baseline-reset — клиент не получает внепланового email). На unchanged будет
|
- [x] **Live-verify выполнен (2026-05-31):** журнал показал движение по всем фазам —
|
||||||
`skipped-unchanged`; 1С перезапишет файл в 6:00 → 06:21 прогон на changed-выгрузке.
|
`▶ branches/vehicles/units/delete-sweep — start`, батч-прогресс
|
||||||
- [ ] **Live-verify (СЛЕДУЮЩАЯ СЕССИЯ после 06:21 MSK 31.05):**
|
(`manufacturers: 18/183 … 183/183`, `units: 3/26 … 26/26`), `✓ … done: N rows`,
|
||||||
`journalctl -u vehicles-loader.service --since '2026-05-31 06:00'` — видны
|
per-model `delete-sweep … 0 — выгрузка полная`. **НЕ тишина.** `Finished … Deactivated
|
||||||
`▶ … start`, периодический батч-прогресс, `✓ … done`, per-model delete-sweep.
|
successfully` = exit 0. `importRun id=4 ok`, `reportJson errors:[]`.
|
||||||
|
|
||||||
## Acceptance criteria
|
## Acceptance criteria
|
||||||
|
|
||||||
@@ -51,6 +51,17 @@ pull + re-tag), затем дождаться/прогнать sync и снят
|
|||||||
|
|
||||||
## Decisions log
|
## Decisions log
|
||||||
|
|
||||||
|
- 2026-05-31: **CLOSED 🟢.** Live-verify прогона 06:21→07:53 MSK прошёл (см. Pending ops actions).
|
||||||
|
Progress-logging работает как задумано. units-фаза = 1h 31m на 100529 rows (узкое место,
|
||||||
|
кандидат на оптимизацию — follow-up, не блокер). generation `unmatched:51` — глянуть отдельно.
|
||||||
|
- 2026-05-31: **email-баг найден и починен.** 4-й acceptance («email ушёл») валился молча:
|
||||||
|
`STOSTAYER_MAIL_TO=site@stostayer.ru` в `/etc/stostayer/vehicles-loader.env` — отчёт слался
|
||||||
|
сам себе, а не user'у. Отправка отрабатывала успешно (потому прогон и `ok`), адресат неверный.
|
||||||
|
Фикс: `STOSTAYER_MAIL_TO=vitya.kuznetsov@gmail.com` (бэкап `vehicles-loader.env.bak.20260531`),
|
||||||
|
`FROM=site@stostayer.ru` без изменений (это и есть SMTP-аккаунт релея `mail.stostayer.ru`).
|
||||||
|
Доставка подтверждена тест-письмом из контейнера: `ACCEPTED=[gmail]`, `250 queued as 8732C122F18`.
|
||||||
|
Хвост: в репо `config/default.json` дефолт `to` всё ещё `site@stostayer.ru` (прод перекрыт env) —
|
||||||
|
опц. выровнять в `stostayer.new`.
|
||||||
- 2026-05-30: **build+push+host-deploy выполнены.** Образ 0.4.0 собран здесь, запушен в
|
- 2026-05-30: **build+push+host-deploy выполнены.** Образ 0.4.0 собран здесь, запушен в
|
||||||
`docker.stostayer.ru`, на хосте pull + re-tag `:latest` → 0.4.0. 0.3.0 retained для rollback.
|
`docker.stostayer.ru`, на хосте pull + re-tag `:latest` → 0.4.0. 0.3.0 retained для rollback.
|
||||||
- 2026-05-30: open question #1 (push кода) снят — `a74ef73` оказался **уже в origin/master**
|
- 2026-05-30: open question #1 (push кода) снят — `a74ef73` оказался **уже в origin/master**
|
||||||
|
|||||||
Reference in New Issue
Block a user