From 863b11be28791c05e60359580c7959fa9641b033 Mon Sep 17 00:00:00 2001 From: vitya Date: Mon, 20 Jul 2026 10:11:19 +0300 Subject: [PATCH] =?UTF-8?q?meta(handoff):=20write=20NEXT=5FSESSION=20?= =?UTF-8?q?=E2=80=94=20Task=20A=20DONE,=20Task=20B=20unblocked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- .tasks/NEXT_SESSION.md | 78 +++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 43 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index 1664fc9..77b18a3 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,65 +1,57 @@ --- -_last_updated_: 2026-07-20T07:00:00Z -session_id: 2026-07-20-snolla-local-admin-on-snolla-design -prev_session_id: 2026-07-13-tandemmebel-8df10ee-deploy +_last_updated_: 2026-07-20T10:15:00Z +session_id: 2026-07-20-snolla-local-admin-restore-done +prev_session_id: 2026-07-20-snolla-local-admin-on-snolla-design --- # Next session handoff -## Эта сессия — design: SNOLLA local admin restore + on.snolla.com → VDS +## Эта сессия — Task A DONE (local .NET admin restored) -Спека написана и закоммичена: `.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md` -(commit `b1b0092c`). Две таски заведены в `.tasks/` + board-entries в STATUS.md. +🟢 **[snolla-local-admin-restore] ЗАКРЫТА.** Локальный catch-all IIS-сайт `snolla` поднят. +Спека: `.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md` (commit `b1b0092c`). +Tаска: `.tasks/snolla-local-admin-restore.md` (as-built). Коммиты: `b1b0092c` (design), +`d4278e79` (handoff), `c196964d` (Task A done + scripts). -**Task A — snolla-local-admin-restore** (⚪ ready): -Восстановить локальный catch-all IIS-сайт `snolla` (снесён 2026-06-08 при decommission -windows-recovery-host) копированием `C:\sites\snolla\` с RUVDS (текущий прод-админ с уже -применённым MinIO drop-in). Conn → `mssql.kzntsv.site:1433` Catalog=MoreThenCms. Доступ -`.snolla.com/admin` через hosts-override, **один AppPool**, binding `*:80` + FW block -inbound. Развилка адресации confirmed оператором (catch-all+hosts, не per-port). +### As-built (отличия от спеки) +- **Selective copy ~100MB** (НЕ 8.76GB): tar-over-SSH исключил stale `App_Data/{assets,galleries,themes,uploadCache}` + `bin.old`. Команда в task-файле. +- **Repoint НЕ нужен** — RUVDS Web.config уже на `mssql.kzntsv.site,1433;Catalog=MoreThenCms;User Id=snolla;Password=fXkH4@8O%3pc` (тот же snolla SQL-user что stostayer.old) + MinIO S3 drop-in с **реальными ключами** (placeholder_count=0). +- Elevated setup: `scripts/local-snolla-admin-restore/setup-local-snolla-admin.ps1` (ASCII-only — PS5.1 BOM-less ломается на Cyrillic/em-dash байтах, урок). Запуск: `Start-Process -Verb RunAs` (UAC-клик). +- **Smoke GREEN**: `tandemmebel/labtools/labtoolspro/emspb/kupimknigi/on .snolla.com/admin/account/login` → 200, реальная MoreThenCms-логинформа (`SNOLLA`, `
`). +- Catch-all routing: `appSettings primaryDomain=snolla.com primaryAlias=on` (default-site=on.snolla.com "Internal Site"), siteId из Host-header (нет siteId в appSettings). +- RUVDS SSH: plink `-hostkey SHA256:r/vSKU5WzH4B8T7RiXyXlg0D8XZ9hlBxzmdrPzuPWzE`, креды `pass show ruvds-iis/full-env` (password auth, RUVDS_IIS_PASS). PS-команды через `-EncodedCommand` (UTF-16LE base64) — stdin-`powershell -Command -` виснет. +- hosts: marker `# snolla-local-admin` → `127.0.0.1 <6 aliases>.snolla.com`. FW `block-inbound-80-snolla-local`. -**Task B — on-snolla-vds-migration** (⚪ ready, blocked by A): -on.snolla.com (siteId `B9ECDB50-2B93-4CE5-B238-A9918B3F9CF7`, alias `on`, Title "Internal Site", -culture `en`) с RUVDS IIS → VDS Node snolla-app 0.42.1. Исходников нет → реконструкция -Liquid-шаблонов из боевого `https://on.snolla.com/` + локального админа (Task A). По рецепту -`tandemmebel-vds-deploy-runbook` (cutover) + `snolla-live-prod-inplace-image-bump` (gate). - -### Addresses + siteIds (из MoreThenCms DB, read-only tedious-проб, SA из `pass mssql-vds/sa-password`) -Скрипт `.tmp/dbprobe-sites.mjs` (gitignored). Адреса = `.snolla.com/admin`: -- tandemmebel.snolla.com (tandemmebel.ru, 78080707-F6E0-4330-BA30-7922354C2CEF) -- labtools.snolla.com (labtools.ru, D375C419-D787-4FCC-8934-A3B9DC951006) -- labtoolspro.snolla.com (labtools.pro, 663F9410-A6CC-4651-9A5C-62844A313957) -- emspb.snolla.com (emspb.ru, 96EBC481-D26A-47BE-B660-13D49E7D0A61) -- kupimknigi.snolla.com (kupimknigi.spb.ru, E924A354-0377-4E1E-80C6-2EB0194AA55F) -- on.snolla.com (on.snolla.com, B9ECDB50-2B93-4CE5-B238-A9918B3F9CF7) +### MinIO upload-acceptance (ручной follow-up оператора) +Логин в админку → залить тест-ассет → проверить объект в `minio.kzntsv.site` bucket=assets. S3-провайдер был admin-self-test green на RUVDS, Web.config 1:1 → должно работать. Креды админа см. open Q ниже. ## Recent commits +- c196964d feat(snolla-local-admin): RESTORE DONE — local .NET admin live (6 /admin URLs) +- d4278e79 meta(handoff): write NEXT_SESSION — snolla local admin + on-snolla design - b1b0092c design(snolla): local .NET admin restore + on.snolla.com VDS migration -- a02c4b86 wiki: ingest de-vds-3xui source chronicle + gitignore .tmp/.tasks/.lock -- 543ded79 wiki: de-vds-3xui real RF-client confirmed ## Open треки | Трек | Готовность | Entry-point | |---|---|---| -| snolla-local-admin-restore (Task A) | ⚪ ready — ждёт SSH RUVDS verify + DB-креды | `.tasks/snolla-local-admin-restore.md`; spec §Task A. Шаг 0: read-only SSH RUVDS (`pass show ruvds-iis/full-env`) — проверить C:\sites\snolla\ + MinIO drop-in в Web.config. | -| on-snolla-vds-migration (Task B) | ⚪ ready, blocked by A | `.tasks/on-snolla-vds-migration.md`; spec §Task B. | -| vehicles-loader 0.4.1 runtime verify | 🔴 active — deployed, verify pending (просрочено с 07-14) | SSH `new.stostayer.ru:20435` (victor, `pass stostayer/client`), проверить importRun status=ok + counts. Откат: `docker tag .../vehicles-loader:0.4.0 vehicles-loader:latest`. | -| books-vds → vds-kzntsv консолидация | оценено, НЕ хватает ресурсов | RAM/disk на .94 не лезет. Решение за user. | +| **on-snolla-vds-migration (Task B)** | ⚪ ready, **unblocked** (Task A done) | `.tasks/on-snolla-vds-migration.md`; spec §Task B. Шаг 1: реконструкция Liquid из боевого `on.snolla.com` + локального админа. Нужны: repo-name, admin-креды. | +| vehicles-loader 0.4.1 runtime verify | 🔴 active — просрочено с 07-14 | SSH `new.stostayer.ru:20435`, проверить importRun. Откат: tag 0.4.0. | +| books-vds → vds-kzntsv консолидация | оценено, не лезет по RAM/disk | Решение за user. | ## Спроси user'а -- **Spec review** — `b1b0092c` / `.wiki/concepts/snolla-local-admin-and-on-snolla-migration-design.md`. Ок? После approve → writing-plans (план в `.tasks/.md` по дисциплине, не docs/superpowers/). -- **Task A first step:** дать добло на read-only SSH RUVDS (verify source + MinIO state)? -- **Open Q из spec:** (1) имя репо для on.snolla.com (`victor/on-snolla`?); (2) MoreThenCms DB app-аккаунт + путь в `pass` (SA есть `mssql-vds/sa-password`, но админ юзает app-аккаунт — завести/найти?); (3) включать все ~60 сайтов в локальный админ или только тираж(5)+on.snolla.com. -- **books-vds консолидация**: свежий VDS / апгрейд .94 / оставить на EOL CentOS .133? +- **Push?** `c196964d` (Task A done) на origin/master? (Rule 4 — "пушни и продолжай" было разовое для design-коммита, не standing auto-push). +- **Task B repo name** — `victor/on-snolla`? `victor/on.snolla.com`? +- **Admin-креды** для локального админа (чтобыbrowse контент-дерево on.snolla.com через /admin) — есть в `pass`? Или в DB `MoreThenCms.dbo.Accounts`? (Логин-форма живёт на `/admin/account/login`.) +- **Task B стартовать сейчас** или pause? (Реконструкция = итеративная dev-работа: Liquid-шаблоны из HTML + DB-контент, build на VDS, cutover.) ## Не делать (preemptive guards) -- **НЕ SSH-action на RUVDS без добла** — user уже раз отверг tool-call на RUVDS-SSH (хочет явное подтверждение); read-only verify — только после ок. -- **НЕ деплоить vehicles-loader** из кода без rateDiff (`85ca936`). Verify `rateDiff.js`/`replaceGroup.js` в образе. -- **НЕ retry-push** в `docker.stostayer.ru` (бан VPN-IP, инцидент 2026-06-17). -- **НЕ netplan** на vds-kzntsv; **НЕ сжимать** books на .94 (RAM/disk). -- **НЕ ставить URL Rewrite rule** локальному админу (нет traefik → `:port` leak, см. cms-server-port-leak-fix). -- **pull перед работой** — admin на master `b1b0092c` (local, не push'нуто — спросить перед push по Rule 4). +- **НЕ пушить без добла** (Rule 4). +- **НЕ SSH-action на RUVDS без добла** (read-only verify уже сделан; дальше — только если нужно). +- **НЕ ставить URL Rewrite rule** локальному админу (нет traefik → `:port` leak). +- **НЕ деплоить vehicles-loader** без rateDiff; **НЕ retry-push** в docker.stostayer.ru; **НЕ netplan** на vds-kzntsv; **НЕ сжимать** books на .94. +- **hosts override активен** — `on.snolla.com` → 127.0.0.1 теперь (боевой on.snolla.com доступен только через `--resolve ...:443:80.64.31.36` или off-hosts). ## Memory updates за сессию -- (пока не сохранял — если design approved, возможно memory: «SNOLLA admin addressing = .snolla.com/admin catch-all IIS, siteId из dbo.Sites by alias»; и обновить windows-recovery-host entity — планируется восстановление snolla IIS-сайта локально) \ No newline at end of file +- (candidate) **PS5.1 BOM-less .ps1 ломается на UTF-8 Cyrillic/em-dash** — cp1251 0x94=`"` байт ломает string-терминаторы; BOM-less PS-скрипты = ASCII-only. +- (candidate) **SNOLLA admin addressing = `.snolla.com/admin`** catch-all IIS, siteId из dbo.Sites по alias (primaryAlias `on` = default). DB user `snolla` работает на MoreThenCms+stostayer catalogs. +- Обновить entity `windows-recovery-host.md`: IIS-сайт `snolla` восстановлен 2026-07-20 (локальный админ-хаб, не прод — прод на RUVDS). \ No newline at end of file