Files
admin/.tasks/NEXT_SESSION.md
vitya 10e80dc036 tasks(books-ops-mcp-host-promote): 🟢 closed + host-stacks compose canonical
Stack 26 (books-ops-mcp) in-place PUT в host-level compose без container churn.
Stack 43 (bookva-ops-mcp) deleted. 2 Gitea secrets revoked.

New canonical: `host-stacks/books-vds/ops-mcp.compose.yml` (management-plane,
manual Portainer updates как traefik/portainer).

Design locks: location=.admin/host-stacks, deploy=manual Portainer,
MariaDB scope=slovo's only (Option A), config path unchanged.

Companion commits: `victor/books ae3ab14`, `victor/bookva-overlay 50f5bbb`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 14:04:15 +03:00

8.4 KiB
Raw Blame History

_last_updated_, session_id
_last_updated_ session_id
2026-05-27T00:30:00+03:00 2026-05-26-ops-mcp-host-promote-CLOSED

Next session handoff

Recent commits

  • victor/books ae3ab14 — feat(deploy): ops-mcp host-promote — drop tenant pipeline (deploy.yml + delete ops-mcp.compose.yml)
  • victor/bookva-overlay 50f5bbb — chore(deploy): drop ops-mcp.compose.yml (host-promoted в .admin)
  • victor/bookva-overlay 437d024 — fix(deploy): bookva-ops-mcp idle-stub command (interim, теперь obsolete)
  • .admin × 2 — tasks books-ops-mcp-host-promote 🟢 closed + handoff refresh + new host-stacks/books-vds/ops-mcp.compose.yml
  • .wiki b2528fb — wiki(concepts): ingest 3 generic ops-gotchas from bookva tenant-split (manual write, MCP commitFile bug)
  • victor/books c434230 — deploy.yml: auto-deploy default tenant=slovo → all (symmetric rollout active)
  • victor/bookva-overlay 2862279 — traefik labels: entrypoints=https + certresolver=letsEncrypt (books-VDS instance naming)
  • victor/bookva-overlay 5474b10 — elasticsearch.compose.yml: add reindex.remote.whitelist=elasticsearch:9200
  • victor/bookva-overlay b324e12 — add bookva-minio + external port-bind для bookva-db
  • victor/bookva-overlay 8bffd68 — *.compose.yml: drop depends_on (per-stack model)
  • victor/bookva-overlay 2b20a3e — api.compose.yml: remove traefik (internal-only per design v3)
  • victor/bookva-overlay 93c2ea2 — mongo.compose.yml: pin mongo:4.2 (WT format compat)
  • victor/bookva-overlay 23eb374 — db.compose.yml: pin mariadb:10.6 (cp -a parity)
  • victor/bookva-overlay 264373d — .env.example: design v3 hostnames
  • victor/bookva-overlay 5b173de — config-templates align to prod shape + design v3 hostname
  • victor/books 75ea320 — feat(deploy): web.compose.yml embed-api env switch
  • victor/books 2f7b539 — fix(ci): rename secrets.GITEA_TOKEN → BOOKVA_OVERLAY_TOKEN
  • .admin × 5 — task progress, closure, NEXT_SESSION refreshes

What's LIVE сейчас

  • bookseller.kzntsv.site → bookva-web (embed-api), 200 OK, login-gate active (id=1=pobeda2003, id=2=vitya)
  • bookva.kzntsv.site → books-web (slovo, embed-api тоже), 200 OK, fallback к books-api stack для legacy paths
  • books.kzntsv.site → books-api (legacy stack), ещё running 24-48h soak до shutdown micro-task
  • 10 bookva Portainer stacks all ACTIVE (db/mongo/es/minio/api/web/scheduler/task-runner/ops-mcp/ntfy). bookva-ozon-mcp пока не создан (image отсутствует в registry).
  • External admin endpoints:
    • mysql -h 89.253.255.133 -P 33306 -uroot -p${BOOKS_DB_ROOT_PASSWORD} books
    • S3 client → http://89.253.255.133:9001, AKIA same as books (см. pass books-vds/full-env)
  • Auto-deploy симметричный — push в victor/books master → build → deploy.yml tenant=all → PUT slovo (22/23/24/26) + bookva (47/45/46/43)

Open треки

Трек Готовность Entry-point
books-ops-mcp-host-promote 🟢 closed — see Recent commits below n/a
books-api-shutdown (NEW micro-task) 24-48h soak ends ~2026-05-27/28. docker stop books-api через Portainer TBD .tasks/books-api-shutdown.md
bookva-ozon-mcp-image-build (NEW micro-task) image books-ozon-mcp:master не в registry — нужен build pipeline в victor/books TBD .tasks/bookva-ozon-mcp-image-build.md
bookva-tenant-cutover task не понадобилась — cutover de-facto произошёл в этой сессии (Step 6 descoped по решению user'а) n/a — manual heads-up учредителю Bookva
bookva-minio-https-dns (optional) reg.ru A bookva-minio.kzntsv.site → 89.253.255.133 + push.bookseller.kzntsv.site → 89.253.255.133 для traefik HTTPS вместо port-bind reg.ru DNS UI
mariadb-mongo-upgrade-chain (eventual post-cutover) bookva-db 10.6 → 10.11, bookva-mongo 4.2 → 4.4 → 5 → 6 → 7 chain. Когда usage стабилизируется TBD
stateful-split-volume-copy bookva-side done; slovo-side scope deferred (отдельный slovo-cutover) .tasks/stateful-split-volume-copy.md
infra-inventory books VDS теперь 14 stacks (+ bookva-minio + 9 bookva) — момент удачный для ingest factsheet .tasks/infra-inventory.md
books-bookva-user-whitelist-gathering login-gate уже applied (id=1+2 only) — таска осталась только для verification списка от учредителя Bookva post-cutover .tasks/books-bookva-user-whitelist-gathering.md
books-vds-bookva-bootstrap 🔵 blocked on Phase 4 (Rusonyx или другой VDS для Bookva billing). Long-term — bookva сейчас на shared books VDS .tasks/books-vds-bookva-bootstrap.md
books-dns-cutover-bookva 🔵 blocked on books-vds-bookva-bootstrap .tasks/books-dns-cutover-bookva.md

Спроси user'а

  • Multi-tenant DB observability через ops-mcp (deferred design call) — нужно ли видеть bookva-db / bookva-mongo через MCP? Если да — extend lib (per-tenant pool array) ИЛИ drop DB tools оставив только docker.
  • Manual heads-up учредителю Bookva (Step 6 substitute) — отправить ей сообщение «Bookva теперь на https://bookseller.kzntsv.site, login те же». Когда?
  • books-api-shutdown через 24-48ч — ad-hoc через Portainer или tracker task?
  • bookva-ozon-mcp-image-build — нужен build в victor/books CI? Сейчас image отсутствует, bookva-ozon-mcp stack не создан. Если service не используется — skip навсегда?
  • bookva-minio creds rotation — сейчас AKIA same as books-minio. Rotate в отдельную task'у когда стабилизируется?
  • slovo-overlay parity audit.env.example и templates вероятно stale similarly to bookva pre-fix. Audit перед slovo-cutover task?

Не делать (preemptive guards)

  • Не stop bookva-{db,mongo,es,minio,api,web,scheduler,task-runner,ops-mcp,ntfy} — все LIVE на bookseller.kzntsv.site, любой stop = production outage Bookva tenant'а.
  • Не editing config volumes через alpine — source of truth = bookva-overlay/config-templates/. Edit → commit → push → re-populate.
  • Не stop books-api до явного soak end (~2026-05-27/28) + user sign-off. Внешние callers всё ещё на https://books.kzntsv.site/*.
  • Не push без grant в next session — auto-push grant был session-only per Rule 4. В этой сессии user grant'нул на «делай авто-push» — следующая session требует нового grant.
  • Не trust DNS wildcard kzntsv.site — wildcard → 94.19.247.14 (Windows IIS), НЕ books VDS 89.253.255.133. Новые subdomains требуют explicit A-records в reg.ru.
  • Не restore /backups/books-{db,mongo}-pre-split-20260526-*.tar.gz unless rollback. Manual cleanup после 7+ дней.

Memory updates / wiki ingests

Ingested в shared wiki ~/projects/.wiki/concepts/:

  • gitea-reserved-secret-prefix — GITEA_* / GITHUB_* prefix reserved (PUT → 400)
  • mongo-wt-format-major-version-incompat — Mongo 4→7 crash exit 62, chain upgrade FCV
  • portainer-per-stack-depends-on-pitfall — cross-stack depends_on "undefined service"

Local memory updates за сессию (не ingested, books-specific):

  • DNS wildcard kzntsv.site → 94.19.247.14 (Windows IIS, не books-vds)
  • bookva passwords plaintext в DB (varchar(45), TODO bcrypt в login.post.js)
  • books-vds traefik instance naming: entrypoints=https + certresolver=letsEncrypt (case-sensitive)
  • Embed-api auth gate в books-web identical к books-api (401 без token, 401 invalid JWT)
  • Multi-tenant MinIO design: separate container vs bucket-split. User выбрал separate container (zero-config-change в apps).

Pass / Reference

  • pass entry gitea/victor-books-ci-bookva-overlay (PAT scope=read:repository) — backup для BOOKVA_OVERLAY_TOKEN secret в victor/books.
  • pass entry books-vds/full-env — BOOKS_PORTAINER_URL+API_KEY, BOOKS_DB_ROOT_PASSWORD, MINIO_ACCESS_KEY.
  • Backups на books VDS — /backups/books-{db,mongo}-pre-split-20260526-*.tar.gz.
  • Reference: bookva-tenant-cutover-prep § Closure note + Post-closure follow-up — full session trace.