Files
admin/.tasks/NEXT_SESSION.md

55 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
_last_updated_: 2026-05-25T11:30:00+03:00
session_id: 2026-05-25-es-windows-to-books-vds
---
# Next session handoff
## Recent commits
- `tasks(migrate-elasticsearch-to-books-vds): 🟢 closed — 3 indices Windows→books VDS` (`3246dabb`) — session close.
- `tasks(NEXT_SESSION): finalize handoff at session close` (`97757b89`) — prev session close.
- `tasks(books-vds-stacks-to-portainer): close 🟢 — 6 stacks migrated SSH-compose → Portainer` (`86c44c3d`)
- `scripts(books-vds-portainer-migration): Phase 1 adapter ready` (`141efe97`)
- `tasks(books-vds-stacks-to-portainer): Phase 0 probe complete, +imgproxy scope` (`bfb942cd`)
## Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| `stateful-split-volume-copy` ⚪ | not started; lean playbook готов, fits real books VDS (89.253.255.133) | `.tasks/stateful-split-volume-copy.md` |
| `iis-migration-to-ruvds` 🟡 | soak (kupimknigi + emspb DNS flipped 2026-05-24, 22 pending DNS swaps) | `.tasks/iis-migration-to-ruvds.md` |
| `infra-inventory` ⚪ | ready, не начат — **books VDS factsheet ещё свежее после ES migration**, готов к ingest в admin-detailed runbook | `.tasks/infra-inventory.md` |
| `books-bookva-user-whitelist-gathering` ⚪ | ready, long-lead gathering (email-based) | `.tasks/books-bookva-user-whitelist-gathering.md` |
| `books-vds-bookva-bootstrap` 🔵 | blocked on tenant-split Phase 4 | `.tasks/books-vds-bookva-bootstrap.md` |
| `books-dns-cutover-bookva` 🔵 | blocked on books-vds-bookva-bootstrap | `.tasks/books-dns-cutover-bookva.md` |
| `books-stateful-split-execution` 🔵 | blocked on dev-prep + per-tenant-backup-and-observability в victor/books | `.tasks/STATUS.md` |
## Спроси user'а
- **Decommission Windows ES** — когда выключаем `elasticsearch` container на windows host + удаляем traefik label `elasticold.kzntsv.site`? Source оставлен running per request, но это transient: live load теперь = 0 hits (verified 5 min post-cutover), кэш на windows host практический balast. Trigger момент — на user'е.
- **Rollback retention** — `.bak-pre-es-migration-2026-05-25` файлы в `/opt/books/{api,task-runner,job-scheduler}/config/` стоит держать до decommission момента или дольше?
- **kreknin snapshot `pre-migration-2026-05-25`** (только read_me, 4.8kb) — оставить до retention rotation или явно удалить как «полезность нулевая»?
- **Какую таску брать следующей?** Хорошие кандидаты: `infra-inventory` (books VDS теперь fully documented + ES populated — момент удачный), `iis-migration-to-ruvds` (DNS TTL для 22 hostnames), `stateful-split-volume-copy` (lean playbook готов).
## Не делать (preemptive guards)
- **Не выключать Windows ES** (`docker stop elasticsearch` на windows host) без user'ского явного решения — это decommission step, отдельная задача.
- **Не редактировать `/opt/books/<svc>/config/default.json`** напрямую без `cp <file>.bak-<date>` перед — bind-mounted, change live для приложения; восстановление только через .bak копии.
- **Не удалять `reindex.remote.whitelist`** из target ES env в Portainer stack 33 — harmless idle, может пригодиться для будущих re-imports.
- **Не push без grant** — auto-push grant был session-only (Rule 4). Next session start = ask-mode again.
- **Не migrate traefik / portainer** на books VDS — management plane, recreate ломает access.
- **Не trust `https://elasticsearch.kzntsv.site/`** без basicAuth — endpoint behind traefik middleware `elasticsearch-auth`, user `books`. Pwd живёт в `/opt/books/api/config/default.json` (не в pass entry yet).
## Memory updates за сессию
- **Учить:** `pass show books-vds/full-env` НЕ содержит ES basicAuth pwd. Pwd живёт в самих consumer configs `/opt/books/<svc>/config/default.json` (key `elasticsearch.auth.password`). Source basicAuth hash = target basicAuth hash → один password покрывает оба endpoint'а.
- **Учить:** `path.repo` + `reindex.remote.whitelist` — это **static** ES settings, требуют env vars + container restart. НЕ показываются в `_cluster/settings?include_defaults=true` (только dynamic settings). Verify через `docker inspect <container> --format '{{range .Config.Env}}{{println .}}{{end}}'`.
- **Учить:** ES `_reindex` from remote НЕ поддерживает `slices` (manual или auto). Single-threaded scroll → bulk. Для 700mb / 820k docs over public network — ~5 мин. Для 105k docs products (мелкие 549 bytes/doc) — ~25 мин (per-doc HTTP overhead). artmone 2621 docs — 25s (sync).
- **Учить:** ES `_search` `total` capped по умолчанию `track_total_hits=10000` в 7.x. Для accurate count — `?track_total_hits=true` или просто `/<index>/_count`.
- **Учить:** Portainer-managed stack env update через `PUT /api/stacks/<id>?endpointId=1` с body `{stackFileContent, env, prune, pullImage}`. Recreate происходит автоматически. Verify по `docker inspect ... StartedAt` change.
- **Учить:** `python3` НЕ работает в git-bash на windows (запускает Windows Store launcher → exit 49, печатает "Python"). `python` — works (PATH'е есть Python 3.13). При heredoc + `2>&1` всё иногда падает silently — лучше прямой `python -c "..."` или `python <<'PY'`.
- **Учить:** Windows PS `Invoke-WebRequest` НЕ имеет `-SkipCertificateCheck` в 5.1. PS 7 имеет. На этой машине — PS 5.1, поэтому для self-signed/auth checks использовать curl через bash.
- **Reference:** task chronology — [[.tasks/migrate-elasticsearch-to-books-vds]] § Closure note (rollback recipe + decommission notes).
- **Reference:** books VDS entity wiki [[.wiki/entities/books-vds]] обновлён 2026-05-25 — stack 33 теперь reflects env additions + ES indices populated note в Making-of-history.