meta(handoff): loader-migration + admin-api deploy CLOSED; handoff на next session
Эта сессия: координация loader-migrate-to-admin-api-client завершена (identity PASS + прод-импорт через API, 0 ошибок), admin-api стек 25 LIVE. Coord-таска финал. Handoff пишет на следующий разворот: MinIO-retire (≈05.08) + kreknin-ремонт + вернуть бэкапы. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,69 +1,52 @@
|
||||
---
|
||||
_last_updated_: 2026-08-04T11:50:00Z
|
||||
session_id: 2026-08-04-minio-config-flip-sweep
|
||||
prev_session_id: 2026-08-03-minio-split-track-a-done
|
||||
_last_updated_: 2026-08-04T16:35:00Z
|
||||
session_id: 2026-08-04-loader-admin-api-coord
|
||||
prev_session_id: 2026-08-04-minio-config-flip-sweep
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## 2026-08-04 — MinIO config sweep DONE: устаревшие `minio.kzntsv.site` → `minio.vds.kzntsv.site` в конфигах проектов. Крекнин ждёт Алексея. Retire старых minio-данных — окно до 2026-08-05.
|
||||
## 2026-08-04 — Координация loader-миграции + деплой admin-api ЗАВЕРШЕНЫ. Остались MinIO-retire (≈ 05.08) и kreknin-ремонт.
|
||||
|
||||
### 0. MinIO config sweep (эта сессия) — ✅ DONE, запушено
|
||||
Флипнул устаревшие endpoint-ссылки `minio.kzntsv.site` → `minio.vds.kzntsv.site` (CMS-медиа авторитетно на vds):
|
||||
- `pilorama98.ru` apps/loader/config/default.json (`1f55fdd`)
|
||||
- `artmone.pro` apps/web/config/default.example.json (`fb5237d`); **default.json gitignored → локально только**
|
||||
- `MoreThenCms` fileStorageClients-s3.sample.config, 6 endpoint (`54f9f4c6`)
|
||||
- `emspb.ru` deploy/README.md (`63e7a16`)
|
||||
- `snolla` framework defaults 3 файла (app/content-api/admin-api) (`a1640f9`) + **inbox-письмо snolla отправлено** (учёт при следующем publish)
|
||||
- `.admin` host-stacks compose comments ×5 (`9fbc44c3`)
|
||||
- `modulair-rag/.env` — **gitignored, локально** (endpoint→vds + bucket→modulair-rag, сверено с прод-стеком 15)
|
||||
### Эта сессия (loader/admin-api) — ✅ ВСЁ ЗАКРЫТО
|
||||
- **Координация `loader-migrate-to-admin-api-client`** (pilorama98): identity PASS на staging
|
||||
(229/3327), прод-импорт через API **выполнен** (224 строки, 0 ошибок, ~2070 API-вызовов чисто).
|
||||
Таска pilorama98 🟢 done. Мои роли: координатор + ревьюер (обе стороны) — закрыты.
|
||||
- **Деплой admin-api**: стек 25 LIVE (`admin-api.vds.kzntsv.site`, образ `ca0dfa3`, LE, ключ проходит).
|
||||
ESM-гоча (extensionless imports) починена snolla. Compose source-of-truth закоммичен (`cd76ce8f`).
|
||||
- **Infra**: ApiKeys DDL на обоих проде (vds + stostayer); MoreThenCms прод-лог 10ГБ→1ГБ (SIMPLE
|
||||
recovery — кап-риск Express снят); staging `MoreThenCmsStaging` создана + staging admin-api 4732.
|
||||
- Ключ pilorama98 `sk_6a83…` — **не ротировать** (решение vitya). Memory: `admin-api-vds-deploy`,
|
||||
`morethencms-simple-recovery-log-shrink`.
|
||||
|
||||
**НЕ флипал (проверено mc, корректны):** books packages/config (16), books-tools, docker/infobox books-*, slovo-overlay config-templates, modules-db (.env*, бакет `modules` на books-vds — вне сплита), bookva-overlay composes.
|
||||
**Наблюдения:** books-vds shared держит полные копии CMS-медиа (дубли vds); на vds typo-бакет `atrmone`.
|
||||
**Закрыто:** morethencms-s3-filestorage-provider (по оператору «сделано давно»).
|
||||
### 1. Retire старых minio-данных — ⏳ окно ≈ до 2026-08-05 (из прошлой сессии)
|
||||
- `rm -rf /usr/docker/minio/data` (12G, shared 2020) + `docker volume rm bookva-minio-data` —
|
||||
ТОЛЬКО после подтверждения стабильности (live GREEN держится с 2026-08-03). Rollback = PUT стек 30/49.
|
||||
|
||||
### 1. MinIO split Track A — ЗАКРЫТ (live GREEN, прозрачный апгрейд)
|
||||
Оба инстанса books-vds переведены `RELEASE.2020-07-13` → `RELEASE.2025-09-07T16-13-09Z` (тот же digest что vds minio, креды `AKIAJ2…` не тронуты):
|
||||
- **shared `minio` (стек 30, minio.kzntsv.site):** зеркало 17 бакетов → `/usr/docker/minio/data-new`, Portainer swap, traefik/imgproxy/books-api/task-runner/job-scheduler — GREEN. Rollback: старый `/usr/docker/minio/data` жив.
|
||||
- **`bookva-minio` (стек 49):** зеркало `books` (38692 obj) → том **`bookva-minio-data-new`** (rename НЕдоступен — старый docker daemon прячет `volume rename`; имя осталось `-new`). bookva-api/task-runner GREEN. Rollback: `bookva-minio-data` (2020) + 2020 image.
|
||||
- **Бэкап-скрипт обновлён** (репо + хост `/opt/stacks/backup/run.sh`) на новые пути: `/usr/docker/minio/data-new`, `/var/lib/docker/volumes/bookva-minio-data-new`.
|
||||
- Gotchas записаны в runbook Track A (§ прогресс): mc multipart-баг → `--disable-multipart`; параллельные зеркала → транзиентные сбои на 3.8G хосте → **последовательно + retry**; CRLF compose → `tr -d '\r'`; 2025 minio на kernel 3.10 (CentOS 7 EOL) — WARN о perf, работает.
|
||||
### 2. kreknin-repair-md3-rebuild — ⚪ ждёт (из прошлой сессии)
|
||||
- Rescue done (2026-08-02). Осталось: power-off → перетык SATA → Repair md3 → scrub. **Бэкапы
|
||||
(vds+books-vds) ВЫКЛЮЧЕНЫ с 31.07 — вернуть после ремонта** (критичный хвост). Всё:
|
||||
`.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`.
|
||||
|
||||
### 2. Retire старых данных — ⏳ ЧЕРЕЗ 48ч (≈ 2026-08-05)
|
||||
Старые 2020-данные держать как откат до ~2026-08-05, потом:
|
||||
- `rm -rf /usr/docker/minio/data` (12G, shared 2020) — ТОЛЬКО после подтверждения стабильности.
|
||||
- `docker volume rm bookva-minio-data` (2020) — после подтверждения.
|
||||
- До этого: rollback = Portainer PUT стека 30/49 на 2020 image + старый путь/том.
|
||||
|
||||
### 3. Крекнин-ремонт — ЗАВТРА (2026-08-04, координация с Алексеем)
|
||||
План: `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`. Power-off → перетык SATA → Repair md3 → scrub → VMM. **Бэкапы выключены с 31.07** (vds-backup 05:00 + books-vds-backup 06:00) — **вернуть после ремонта** (критичный хвост). Rescue `/mnt/rescue` не отключать. Примечание: бэкап-скрипт books-vds уже указывает на новые minio-пути — ок.
|
||||
|
||||
### 4. Кэш тасков стейл — refresh ОТЛОЖЕН
|
||||
projects-meta tasks.json sync 2026-07-22 (stale). `meta_restart_poller force=false` отказал (4 активных агента). НЕ force-restart пока агенты заняты.
|
||||
### 3. Дефолтные/опциональные (из прошлой сессии)
|
||||
- P3 imgproxy stack 29 retire / A3 bookva-дубли — опционально.
|
||||
- Кэш тасков refresh (projects-meta) — отложен; `meta_restart_poller` не force-restart пока агенты заняты.
|
||||
|
||||
### Спроси user'а
|
||||
- Retire старых minio-данных: подтвердить через ~48ч (или сделать это самому, если GREEN держится).
|
||||
- books-vds imgproxy (стек 29) — вывести из эксплуатации? (P3; сейчас imgproxy.kzntsv.site → vds, books-vds imgproxy читает minio:9000, кажется мёртвым грузом).
|
||||
- A3: чистка bookva-дублей в shared `books` (минор, не срочно).
|
||||
|
||||
### Открытые треки
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| Retire старых minio-данных (48ч) | ⏳ до 2026-08-05 | `minio-split-cutover-runbook` §P3 |
|
||||
| kreknin-repair-md3-rebuild | завтра | `.tasks/kreknin-repair-md3-rebuild.md` |
|
||||
| Бэкапы (vds+books-vds) вернуть | после kreknin-ремонта | cron на хостах |
|
||||
| P3 imgproxy stack 29 retire / A3 дубли | опционально | runbook §P3 |
|
||||
| Кэш тасков refresh | отложен | `meta_restart_poller` после освобождения агентов |
|
||||
- Retire старых minio-данных (подтвердить ~2026-08-05).
|
||||
- Запуск kreknin-ремонта (координация с Алексеем).
|
||||
|
||||
### Не делать (preemptive guards)
|
||||
- **НЕ force-restart поллера** пока активные агенты.
|
||||
- **НЕ лезть в snolla-код самому** — через snolla-сессию (.admin деплоит).
|
||||
- НЕ трогать rescue-диск; НЕ забыть вернуть бэкапы после ремонта.
|
||||
- НЕ удалять старые minio-данные до 48ч окна (и без подтверждения).
|
||||
- НЕ PS для Portainer (кириллица); креды → `pass`.
|
||||
- **НЕ ротировать** API-ключ pilorama98 `sk_6a83…` (решение vitya).
|
||||
- **НЕ трогать** прод admin-api (стек 25) — работает; staging 4732 жив для dev.
|
||||
- НЕ удалять старые minio-данные до окна и без подтверждения; НЕ вернуть бэкапы до kreknin-ремонта.
|
||||
- НЕ лезть в snolla-код самому — через snolla-сессию (.admin деплоит).
|
||||
- НЕ PS для Portainer (кириллица); креды → `pass`; стеки через Portainer, не ssh compose.
|
||||
|
||||
### Коммиты сессии (.admin)
|
||||
- `scripts/books-vds-backup-daily-kreknin/{run.sh,README.md}`, `.wiki/entities/books-vds.md`, `.wiki/concepts/minio-split-cutover-runbook.md` — Track A done + пути бэкапа на новые тома. (с этим хэндоффом).
|
||||
- `cd76ce8f` feat(admin-api) — деплой admin-api (стек 25). `27de23ea` meta(admin) — координатор
|
||||
loader (ApiKeys DDL). (с этим хэндоффом — status-обновления coord-таски).
|
||||
|
||||
### Memory updates
|
||||
- `books-vds-minio-upgraded-2025-volume-names` — новые пути живых данных (data-new, bookva-minio-data-new), rename недоступен, mc `--disable-multipart`, последовательные зеркала.
|
||||
### Memory updates за сессию
|
||||
- `admin-api-vds-deploy` — деплой + ESM-гоча + первый консьюмер.
|
||||
- `morethencms-simple-recovery-log-shrink` — SIMPLE recovery + MoreThenCmsStaging.
|
||||
|
||||
@@ -32,6 +32,27 @@
|
||||
|
||||
## Текущий статус
|
||||
|
||||
- 🟢 **2026-08-04T16:30Z — ПРОД-ИМПОРТ ЧЕРЕЗ API ВЫПОЛНЕН, ВСЁ ЗАКРЫТО.**
|
||||
pilorama98: exit 0, 224 rows, products 224 update/0 create, pages 32, price-tables 25.
|
||||
Прод admin-api: ~2070 API-вызовов, 0 ошибок (только внешние 401-пробы на /, /robots.txt).
|
||||
Read-back: 229 products, контент на месте. Миграция 100% (координация + ревью + деплой + прод).
|
||||
- 🟢 **2026-08-04T16:17Z — МИГРАЦИЯ ЗАВЕРШЕНА. Таска pilorama98 🟢 done.**
|
||||
Все acceptance 1–4 выполнены (identity PASS, bin/* через store, TDD 105/105, ключ gitignored).
|
||||
baseUrl переключён на прод `https://admin-api.vds.kzntsv.site`. **Координация закрыта.**
|
||||
Остаётся операционный шаг: реальный прод-импорт (`node bin/index.js`, store:api) — решение
|
||||
vitya; рекомендация — через identity-check против прод-эндпоинта.
|
||||
- 🟢 **2026-08-04T16:16Z — ротация ключа: РЕШЕНО не ротировать** (vitya: «на ключ похуй»,
|
||||
риск приватного Gitea принят). Ключ `sk_6a83…` остаётся. Вопрос закрыт.
|
||||
- 🟢 **2026-08-04T15:42Z — IDENTITY PASS ✅, миграция по коду ЗАКРЫТА.**
|
||||
- Ошибки (оператор прав): (1) 400 на числовом sku → `String()` с null-guard; (2) toLegacyTag
|
||||
без content → 86 breadcrumbs-diff. Пофикшены (665006f, 105/105).
|
||||
- identity-check.js харнесс ревьюнут (оба пути→staging, полевой diff content, --fresh).
|
||||
**PASS: 229 products / 3327 variants идентичны** (API vs DB). Acceptance №1 закрыт.
|
||||
- Прод-cutover: admin-api прод жив (`https://admin-api.vds.kzntsv.site`), pilorama98
|
||||
переключает baseUrl; staging-PASS достаточно, прод-прогон опционален.
|
||||
- 🟢 **2026-08-04T15:36Z — ДЕПЛОЙ admin-api LIVE на vds.** `admin-api.vds.kzntsv.site`
|
||||
(стек 25, образ ca0dfa3 ESM-фикс). /health ok, LE-серт выдан, ключ pilorama98 проходит.
|
||||
Prod-эндпоинт для loader'а после identity. Compose source-of-truth закоммичен (cd76ce8f).
|
||||
- 🔵 **2026-08-04T15:26Z — деплой admin-api: стек 25 создан, блокер в Dockerfile.**
|
||||
- Образ `admin-api:e1540de` собран+запушен. Стек 25 (`admin-api.vds.kzntsv.site`, env 8/8,
|
||||
proxy-сеть, mem_limit 512m) создан. **Контейнер крашится**: ESM `ERR_MODULE_NOT_FOUND`
|
||||
|
||||
Reference in New Issue
Block a user