Files
admin/.tasks/NEXT_SESSION.md
2026-05-28 20:12:11 +03:00

4.6 KiB
Raw Blame History

_last_updated_, session_id
_last_updated_ session_id
2026-05-28T20:30:00+03:00 2026-05-28-restore-es-indices-books-vds-closure

Next session handoff

Сессия: восстановили 3 ES индекса на canonical (books VDS stack 33) через snapshot restore + добавили 2 preventive control'а против повтора. Таска 🟢 closed. Wiki concept + closure note записаны.

Recent commits

  • 48a5cf39 tasks(restore-es-indices-books-vds): closed — snapshot restore + 2 preventive controls
  • e9b0a9ed docs(tasks): restore-elasticsearch-indices-books-vds — заведение таски на prod outage
  • 068f7b26 docs(iis-migration): owner DNS-flip instructions (labtools, tandemmebel)
  • 11554d45 wiki(ingest): vds-kzntsv network-stack mismatch RCA + ifupdown anti-pattern
  • dacc39a1 tasks(modulair-rag-vds-redeploy): follow-ups #1-3 done

Что закрыли в эту сессию

  • Restore (46 сек): POST /_snapshot/kreknin/daily-2026-05-25/_restore с indices=epz,products,artmone. Counts == source (820604/105922/2621), green.
  • RCA: 5 индексов удалены через ES API DELETE _all 2026-05-26 10:21 UTC, 1ч 11мин после создания bookva-es. Best guess — оператор в cutover-prep попал на canonical вместо internal-only bookva-es:9200. Caller identity unrecoverable (audit/accessLog отсутствовали).
  • Control #1: action.destructive_requires_name=true env var на stack 33 — wildcard/_all DELETE теперь 400. By-name работает. Verified.
  • Control #2: Traefik JSON accessLog в /letsencrypt/access.log — будущие DELETE с IP/user/method/path в логе. Restart traefik сделан, log файл генерится.
  • Wiki: concepts/es-destructive-delete-incident-2026-05-26.md (recovery runbook + preventive controls + cross-refs). Index + log обновлены.

Open треки

Трек Готовность Entry-point
books-bookva-user-whitelist-gathering ready — gathering от учредителя Bookva .tasks/STATUS.md line ~221
stateful-split-volume-copy ready — maintenance window 510 мин .tasks/STATUS.md line ~97
infra-inventory ready — two-tier (public + admin) .tasks/STATUS.md line ~150
books-stateful-split-execution 🔵 blocked — deps в victor/books .tasks/STATUS.md line ~250
books-vds-bookva-bootstrap 🔵 blocked — Bookva billing + provision .tasks/STATUS.md line ~161
books-dns-cutover-bookva 🔵 blocked — после books-vds-bookva-bootstrap .tasks/STATUS.md line ~191

Активных 🔴 / 🟡 нет.

Спроси user'а

  • Logrotate для access.log (~3050 MB/day, disk free 63G): отдельная micro-task сейчас, или отложить до первого ощутимого роста? Записан как follow-up в task closure + wiki concept, но не оформлен.
  • pass books-vds/full-env comment outdated — в нём ещё написано «NOT Portainer-managed: elasticsearch, mongo, minio, books-db…». На самом деле migration 25.05 (books-vds-stacks-to-portainer) их мигрировала. Поправить при следующем pass-edit. Сейчас?
  • stack33-put-2026-05-28.json в .scratch/ — он gitignore'нут (transient drop). Если хочется keep как audit artefact — нужно отдельно архивировать.

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

  • Не снимать action.destructive_requires_name=true на canonical ES. Если ОЧЕНЬ нужен wildcard DELETE — сначала остановиться и подумать на каком endpoint.
  • Не использовать ssh + docker compose up -d на VDS для управления Portainer stacks — anti-pattern из CLAUDE.md. Только Portainer API / UI (как делали PUT stack 33 в эту сессию).
  • Никогда не делиться elasticsearch.kzntsv.site между slovo и bookva. Bookva-es сейчас internal-only через docker network — это правильно. Если когда-нибудь нужен external — отдельный hostname.
  • branch ahead by 1 commit от origin/master — push без explicit user grant (project-discipline Rule 4). Сейчас в working tree 2 unpushed commit'а: e9b0a9ed + 48a5cf39.

Memory updates за сессию

(нет на этом раунде — ничего не сохраняли в ~/.claude/projects/.../memory/)