meta(handoff): labtools cylindrical root-cause found in snolla code — task posted (content-page-linked-products-hydration) + inbox letter
This commit is contained in:
@@ -1,58 +1,46 @@
|
|||||||
---
|
---
|
||||||
_last_updated_: 2026-08-02T10:00:00Z
|
_last_updated_: 2026-08-03T10:05:00Z
|
||||||
session_id: 2026-08-02-kreknin-rescue-sdd-restore
|
session_id: 2026-08-03-labtools-cylindrical-rootcause-handoff
|
||||||
prev_session_id: 2026-07-31-maljarka-restore-variantcache-labtools
|
prev_session_id: 2026-08-02-kreknin-rescue-sdd-restore
|
||||||
---
|
---
|
||||||
|
|
||||||
# Next session handoff
|
# Next session handoff
|
||||||
|
|
||||||
## Эта сессия — kreknin rescue + sdd/VM-volume restore. ДЕЛА ЗАВЕРШЕНЫ (кроме физики). См. `.tasks/kreknin-repair-md3-rebuild.md`
|
## Эта сессия — labtools.ru cylindrical: root-cause найден в коде snolla, таска поставлена. Крекнин-ремонт не тронут (ждёт координации).
|
||||||
|
|
||||||
User: «срочная разовая задача — Алексей продул синологию компрессором, проблемы с дисками». **Xpenology** (обычный ПК-корпус, DSM 7.1.1), пром-компрессор снёс SATA-кабели.
|
### 1. labtools.ru cylindrical — 🔵 → корень найден, отдано snolla. ✅ сделано
|
||||||
|
Симптом (live): `/products/press-forms/cylindrical` — 8 карточек `href=""`/`src=""`. `cylindrical.liquid:30-31` единственный из 9 читает Linked-item accessor `product_link.product.item` (остальные 8 — прямой `product`, работают). НЕ v3-регрессия (v2-образ 0.42.1 тоже пустой).
|
||||||
|
|
||||||
### 1. Диагноз (диск-раскладка, Xpenology = НЕ настоящий Synology, обычные SATA-кабели)
|
**Корень в коде snolla:** `packages/core/lib/viewModels/contentPages.js` `getPageViewModel` зовёт `fillViewModel(...)` **БЕЗ `fillOpts`** → `viewModels/index.js:696` `resolveLinkedItem = async () => null` → у `linkedItemEditorTemplate`-полей `buildLinkedItemField` даёт `{id,title,link,item}` с `item:null` → `.product.item` пуст. Образец фикса: ecommerce.js:107-117 + blogs.js:142 (это фикс `blog-related-hydration` core 0.13.6).
|
||||||
| Диск | Порт | Модель | Роль | Статус |
|
|
||||||
|---|---|---|---|---|
|
|
||||||
| sda | ata1 | WD40EFPX 4TB | md3 slot 3 | жив, **213 UDMA CRC + линк 6→1.5 Gbps = кабель** (CRC не растёт при чтении) |
|
|
||||||
| sdb | — | WD-WX32D12L8HTE 4TB | md3 slot 0 | **не определяется** = отвал кабеля (не доказан мёртвым) |
|
|
||||||
| sdc | ata3 | WD40EFAX 4TB SMR | md3 slot 1 | жив; WRITE FPDMA bursts **только при ручном трясе кабелей** (09:58, 12:09), без тряса стабилен |
|
|
||||||
| sdd | ata4 | Kingston SA400S37 120G SSD | md2 raid1 = **VMM-том /volume2** | восстановлен |
|
|
||||||
|
|
||||||
md3 = `/volume1` (btrfs, все бэкапы), degraded `[_UU]`, держится на sda+sdc. **Массив за 2 суток чтения — 0 новых ошибок.**
|
**Сделано:**
|
||||||
|
- Таска `victor/snolla/content-page-linked-products-hydration` (ready, needs-claude) — закоммичена в snolla `.tasks/STATUS.md`
|
||||||
|
- Инбокс-письмо: `snolla/.claude-inbox/2026-08-03T09-53-51Z-admin.md`
|
||||||
|
- Локальная доска `.admin/.tasks/STATUS.md` — 🔵 запись связана с таской snolla
|
||||||
|
|
||||||
### 2. sdd / VM-том восстановлен ✅ (сделано 2026-07-31)
|
**Хвост:** ждать релиз core → передеплой стека 17 (labtools, Portainer) → смоук cylindrical (8 непустых href/src). Тему НЕ править (parity движка), прод-стек 17 healthy.
|
||||||
DSM выкинул sdd из md2 при загрузочной тряске (07:47) → `/volume2` ушёл в **ro** (btrfs transient EIO). Восстановление: DSM Storage Manager → **Repair пула** → sdd вернулся (но `faulty active sync`) → затем в DSM на /volume2 кнопка **«Преобразовать в чтение/запись»** → **rw**, scrub 53GiB 0 ошибок. VMM-виртуалки целы (`@Repository`, `vdsm_repo.conf`).
|
|
||||||
**Урок: «Convert to read/write» в DSM снимает ro после transient EIO — без mdadm-ручнины.**
|
|
||||||
|
|
||||||
### 3. Rescue полный ✅ — USB 2TB WD20EARX отформатирован в один btrfs, смонтирован `/mnt/rescue`
|
### 2. Крекнин-ремонт — НЕ в этой сессии, открыто (⚪, из прошлого хэндоффа). Подробности: `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`
|
||||||
Все `.tar` (GNU tar **`--numeric-owner`**, хардлинки preserved):
|
- **Ремонт:** power-off (graceful) → перетык SATA (sda/sdc свежие кабели, sdb питание+data) → power-on → если sdb ожил → DSM Storage Manager Repair md3 → ребилд (мониторить `/proc/mdstat`, не трогать кабели) / sdb дохлый → 4TB замена → `btrfs scrub /volume1` → проверить VMM.
|
||||||
- `/mnt/rescue/netbackup/`: `diskstation_1.hbk.tar` **430G** (мёртвая синка = безвозвратное), `windows-host.tar` 160G, `vds-kzntsv.tar` 84G, `ruvds-iis.tar` 62G, `books-vds.tar` 24G, `openwrt.tar` 20K
|
- **Вернуть бэкапы** (шаг 8): vds-kzntsv `/etc/cron.d/vds-backup` 05:00 + books-vds `/etc/cron.d/books-vds-backup` 06:00 — раскомментировать строки `#DISABLED-kreknin-sick`, снять `.bak.20260731`, прогнать ручной rsync green. **Бэкапы выключены с 31.07 — это критичный хвост.**
|
||||||
- `/mnt/rescue/userdata/`: `docker.tar` 130G (rc=1 — файлы менялись при чтении, архив валиден), `homes.tar` 118G, `work.tar` 32G, `downloads.tar` 25G, `documents.tar` 5.9G
|
- Rescue-диск `/mnt/rescue` (1.1TB, полная копия) — НЕ отключать до конца ремонта.
|
||||||
- Итого 1.1TB / 726G free. Скрипты и логи: `/mnt/rescue/copy-combined.sh`, `copy*.log`.
|
|
||||||
- **Урок: GNU tar `--numeric-ids` — НЕ GNU-флаг (это bsdtar), падает rc=64 unrecognized option.**
|
|
||||||
|
|
||||||
### 4. Ежедневные бэкапы DISABLED ⚠️ — ВЕРНУТЬ после ремонта (шаг 8 repair-таски)
|
|
||||||
- vds-kzntsv: `/etc/cron.d/vds-backup` (05:00, `/opt/stacks/backup/scripts/run.sh`) — строка закомментирована `#DISABLED-kreknin-sick`, бэкап `.bak.20260731`
|
|
||||||
- books-vds: `/etc/cron.d/books-vds-backup` (06:00, `/opt/stacks/backup/run.sh`) — тоже, бэкап `.bak.20260731`
|
|
||||||
- Остальные источники (ruvds-iis 22.07, windows-host 08.06, openwrt 12.06) — не ежедневные, не трогал.
|
|
||||||
|
|
||||||
### 5. Задача на ремонт создана: `.tasks/kreknin-repair-md3-rebuild.md` ⚪
|
|
||||||
План: power-off (graceful `synopoweroff`) → перетык SATA (sda/sdc **свежие кабели**, sdb питание+data, sdd контакт) → power-on → все диски в `/dev/sd?`, sda 6 Gbps, CRC не растёт → **sdb ожил** → DSM Storage Manager → **Repair md3** → ребилд (мониторить `/proc/mdstat`, НЕ трогать кабели до конца) / **sdb дохлый** → 4TB замена → `btrfs scrub /volume1` → проверить VMM → **вернуть бэкапы** → ручной rsync-прогон green → снять `.bak.20260731`.
|
|
||||||
|
|
||||||
### Спроси user'а
|
### Спроси user'а
|
||||||
- **Когда power-off для перетыка кабелей?** (координация с Алексеем). План готов, данные спасены — риск cold-start приемлем.
|
- **Когда power-off для перетыка кабелей kreknin?** (координация с Алексеем). План готов, данные спасены.
|
||||||
- Rescue-диск `/mnt/rescue` — судьба после ремонта (оставить как доп. копию / отключить)?
|
- Rescue-диск `/mnt/rescue` после ремонта — оставить как доп. копию / отключить?
|
||||||
|
|
||||||
### Открытые треки (из прошлых сессий)
|
### Открытые треки
|
||||||
- `labtools.ru cylindrical` — передан workshop (victor/snolla), ждёт их фикс Linked-item VM. Prod stack 17 не тронут. 🔵 на доске.
|
- `labtools.ru cylindrical` → таска `victor/snolla/content-page-linked-products-hydration` (ready). Ждём релиза core.
|
||||||
- `on-snolla-vds-migration` — помечен ⚪ ready на доске, но on.snolla LIVE с 07-20 → **обновить на closed**.
|
- `on-snolla-vds-migration` — помечен ⚪ ready на доске, но on.snolla LIVE с 07-20 → **обновить на closed** (не забыть).
|
||||||
- MinIO split Track A (books-vds 2020→2025 full migration) — variant-cache bucket создан, остальное TODO.
|
- MinIO split Track A (books-vds 2020→2025) — variant-cache bucket создан, остальное TODO.
|
||||||
|
- Кросс-проектный кэш тасков стейл (последний sync 2026-07-22) — при обзоре «что ещё» освежить.
|
||||||
|
|
||||||
### Не делать (preemptive guards)
|
### Не делать (preemptive guards)
|
||||||
- **Ребутить kreknin пока sda-кабель не зафикшен** — cold-start риск, что sda не поднимется → md3 умрёт. (Данные спасены, но ребилд — стрессовый момент: кабели зафиксировать ДО Repair md3.)
|
- **Ребутить kreknin пока sda-кабель не зафикшен** — cold-start риск, что md3 умрёт. Кабели зафиксировать ДО Repair md3.
|
||||||
- **НЕ трогать/отключать rescue-диск пока ремонт не закончен** — единственная полная копия.
|
- **НЕ трогать/отключать rescue-диск пока ремонт не закончен.**
|
||||||
- **НЕ забыть вернуть бэкапы** (vds-backup + books-vds-backup раскомментировать).
|
- **НЕ забыть вернуть бэкапы** (vds-backup + books-vds-backup раскомментировать).
|
||||||
- НЕ PS для Portainer (кириллица), креды → `pass`. kreknin: `pass kreknin/full-env` (vitya / Pryakhin9), ключ `id_ed25519_kreknin`.
|
- **НЕ править тему labtools** для cylindrical — parity движка, фикс на стороне snolla.
|
||||||
|
- НЕ PS для Portainer (кириллица), креды → `pass`. kreknin: `pass kreknin/full-env`, ключ `id_ed25519_kreknin`.
|
||||||
|
|
||||||
### Коммиты сессии (.admin)
|
### Коммиты сессии (.admin)
|
||||||
- (этот хэндофф + wiki entity `kreknin-synology` §Диски/Инцидент/Ремонт/Rescue/План + `STATUS.md` board line + `.tasks/kreknin-repair-md3-rebuild.md`)
|
- (не коммичено: `.tasks/STATUS.md` изменён — связать 🔵 cylindrical с таской snolla. Закоммитить с хэндоффом.)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Admin Task Board
|
# Admin Task Board
|
||||||
|
_Updated: 2026-08-03 — 🔵 **[labtools.ru cylindrical] → таска `victor/snolla/content-page-linked-products-hydration` (ready) + инбокс-письмо.** Корень найден в коде: `contentPages.js getPageViewModel` зовёт `fillViewModel` БЕЗ `fillOpts` → `resolveLinkedItem=()=>null` (index.js:696) → linked-item `item:null` → `product_link.product.item` пуст. Образец: ecommerce.js:107-117 / blogs.js:142 (blog-related-hydration core 0.13.6). Ждём релиз core → передеплой стека 17 (labtools) + смоук. Детали: таска snolla + `.claude-inbox/snolla`._
|
||||||
_Updated: 2026-08-02 — ⚪ **[kreknin-repair-md3-rebuild] заведена.** Xpenology kreknin деградед после продувки компрессором 2026-07-31: sdb выпал (md3 `[_UU]`), кабели sda/sdc срыв. **Rescue полный DONE 2026-08-02** (USB 2TB `/mnt/rescue`, 1.1TB: netbackup/*.tar включая diskstation_1.hbk 430G + userdata 5 шар Алексея), массив за 2 суток чтения — 0 новых ошибок. sdd/VM-том восстановлен (md2, `/volume2` rw). **Ежедневные бэкапы DISABLED** (vds-kzntsv 05:00 + books-vds 06:00, cron закомментированы, `.bak.20260731`). Осталось: power-off → перетык SATA (sda/sdc свежие, sdb питание+data) → Repair md3 (реборн) → вернуть бэкапы. Всё: `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`._
|
_Updated: 2026-08-02 — ⚪ **[kreknin-repair-md3-rebuild] заведена.** Xpenology kreknin деградед после продувки компрессором 2026-07-31: sdb выпал (md3 `[_UU]`), кабели sda/sdc срыв. **Rescue полный DONE 2026-08-02** (USB 2TB `/mnt/rescue`, 1.1TB: netbackup/*.tar включая diskstation_1.hbk 430G + userdata 5 шар Алексея), массив за 2 суток чтения — 0 новых ошибок. sdd/VM-том восстановлен (md2, `/volume2` rw). **Ежедневные бэкапы DISABLED** (vds-kzntsv 05:00 + books-vds 06:00, cron закомментированы, `.bak.20260731`). Осталось: power-off → перетык SATA (sda/sdc свежие, sdb питание+data) → Repair md3 (реборн) → вернуть бэкапы. Всё: `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`._
|
||||||
_Updated: 2026-07-31 (3) — 🔵 **labtools.ru /products/press-forms/cylindrical — пустые product-cards → handoff workshop (victor/snolla).** User: «куда картинки делись?». НЕ v3-регрессия (v2 0.42.1 образ `566d41c` throwaway-staging тоже пустые). `cylindrical.liquid` единственный использует Linked-item accessor `product_link.product.item` (.NET-паттерн), остальные 8 шаблонов — прямой `product` (работает). Вывод владельца архитектуры: **snolla неправильно рендерит viewModel типа Linked item** — фикс на стороне victor/snolla. Мой фикс (прямой `product`) откат: `victor/labtools.ru` коммиты `5ae87fd`+`ec9eb1e`(revert), gitea master = оригинал `0dc0b4e`. Prod stack 17 НЕ тронут (healthy). Воспроизведение: `https://labtools.ru/products/press-forms/cylindrical` — cards с пустыми href/src. Файл-якорь: `victor/labtools.ru/apps/web/views/cylindrical.liquid:30-31`. См. NEXT_SESSION.md._
|
|
||||||
_Updated: 2026-07-31 (2) — 🟢 **variant-cache bucket fix.** maljarka portfolio фото 500 → root cause: v3 minio-split перевёл сайты на vds MinIO 2025, но `variant-cache` bucket не создали там (был только на старом minio.kzntsv.site/books-vds 2020). snolla sharp-pipeline (`variantCache.js` DEFAULT_NAMESPACE=`variant-cache`) → NoSuchBucket → 500 на ALL sharp gallery-images ВСЕХ 6 v3 сайтов с 2026-07-30 (тихо — v3-gate проверял theme CSS из `themes` bucket (themeFiles, без sharp), не gallery-image URLs). Fix: `mc mb vds/variant-cache` (пустой, кэш регенерируем). После: maljarka portfolio 34/34 → 200 image/webp, full-size 920x600 200, tandemmebel logs NoSuchBucket ушли. **minio-split Track A gap** — при endpoint-flip проверять ВСЕ runtime-buckets (`galleries`/`themes`/`assets`/`variant-cache`), и gate должен хитить gallery-image URL. Memory `variant-cache-bucket-missing-on-vds-2025`._
|
_Updated: 2026-07-31 (2) — 🟢 **variant-cache bucket fix.** maljarka portfolio фото 500 → root cause: v3 minio-split перевёл сайты на vds MinIO 2025, но `variant-cache` bucket не создали там (был только на старом minio.kzntsv.site/books-vds 2020). snolla sharp-pipeline (`variantCache.js` DEFAULT_NAMESPACE=`variant-cache`) → NoSuchBucket → 500 на ALL sharp gallery-images ВСЕХ 6 v3 сайтов с 2026-07-30 (тихо — v3-gate проверял theme CSS из `themes` bucket (themeFiles, без sharp), не gallery-image URLs). Fix: `mc mb vds/variant-cache` (пустой, кэш регенерируем). После: maljarka portfolio 34/34 → 200 image/webp, full-size 920x600 200, tandemmebel logs NoSuchBucket ушли. **minio-split Track A gap** — при endpoint-flip проверять ВСЕ runtime-buckets (`galleries`/`themes`/`assets`/`variant-cache`), и gate должен хитить gallery-image URL. Memory `variant-cache-bucket-missing-on-vds-2025`._
|
||||||
_Updated: 2026-07-31 — 🟢 **[maljarka-vds-restore] CLOSED.** `maljarka.tandemmebel.ru` восстановлен как 7-й сайт тиража snolla на VDS. Сайт был потерян 2026-07-21 при декоммишне RUVDS IIS (единственный публичный хост maljarka; в v3 тираж не входила, осталась на RUVDS). DNS перебросили на VDS, но `Host()`-правила + snolla-app с siteId `A2476738` не было → traefik 404. Аудит 21.07 «VDS=200» = false-positive с локального IIS воркстейшна. **Контент цел** в shared `MoreThenCms` DB (5 Pages, 4 StaticPages, тема Reversal `4881FC7F` уже в MinIO themes bucket). Восстановление = клон `victor/on.snolla.com` → `victor/maljarka.tandemmebel.ru` (snolla 0.43.2/aws-sdk v3), swap siteId `A2476738`+siteUrl, `layout.liquid` **byte-identical** рендеру локального .NET-admin (43730B, sha256 match, `{{ item.content }}` inline — content пуст), error-страницы Reversal-бренд. Build на VDS (`7f03d67`, digest df4e3642, regen yarn.lock под переименованный workspace), throwaway-staging :5081 gate GREEN (byte-parity `/`, 4 staticpages 200 sizes==DB, theme asset 200 103320B, unpublished 404 parity), Portainer стек **Id 23** (node create-stack, НЕ PS — кириллица), env 8/8 shared, mem_limit 512m, `Host(maljarka.tandemmebel.ru)`. DNS уже VDS → LE issued on first hit (CN=maljarka.tandemmebel.ru, YR1, до 2026-10-29). Live smoke GREEN: `/` 200 43730B byte-identical, title «Малярка от Тандеммебель», 4 staticpages 200, theme asset 200, robots/sitemap 200. **Тираж 7/7**: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22)/maljarka(23). Runbook: `maljarka-vds-deploy-runbook`. Rollback = образ-тег в registry (RUVDS DECOMM, не DNS)._
|
_Updated: 2026-07-31 — 🟢 **[maljarka-vds-restore] CLOSED.** `maljarka.tandemmebel.ru` восстановлен как 7-й сайт тиража snolla на VDS. Сайт был потерян 2026-07-21 при декоммишне RUVDS IIS (единственный публичный хост maljarka; в v3 тираж не входила, осталась на RUVDS). DNS перебросили на VDS, но `Host()`-правила + snolla-app с siteId `A2476738` не было → traefik 404. Аудит 21.07 «VDS=200» = false-positive с локального IIS воркстейшна. **Контент цел** в shared `MoreThenCms` DB (5 Pages, 4 StaticPages, тема Reversal `4881FC7F` уже в MinIO themes bucket). Восстановление = клон `victor/on.snolla.com` → `victor/maljarka.tandemmebel.ru` (snolla 0.43.2/aws-sdk v3), swap siteId `A2476738`+siteUrl, `layout.liquid` **byte-identical** рендеру локального .NET-admin (43730B, sha256 match, `{{ item.content }}` inline — content пуст), error-страницы Reversal-бренд. Build на VDS (`7f03d67`, digest df4e3642, regen yarn.lock под переименованный workspace), throwaway-staging :5081 gate GREEN (byte-parity `/`, 4 staticpages 200 sizes==DB, theme asset 200 103320B, unpublished 404 parity), Portainer стек **Id 23** (node create-stack, НЕ PS — кириллица), env 8/8 shared, mem_limit 512m, `Host(maljarka.tandemmebel.ru)`. DNS уже VDS → LE issued on first hit (CN=maljarka.tandemmebel.ru, YR1, до 2026-10-29). Live smoke GREEN: `/` 200 43730B byte-identical, title «Малярка от Тандеммебель», 4 staticpages 200, theme asset 200, robots/sitemap 200. **Тираж 7/7**: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22)/maljarka(23). Runbook: `maljarka-vds-deploy-runbook`. Rollback = образ-тег в registry (RUVDS DECOMM, не DNS)._
|
||||||
_Updated: 2026-07-20 (2) — 🟢 **[snolla-local-admin-restore] CLOSED.** Локальный .NET-админ поднят: selective tar-copy `C:\sites\snolla\` ~100MB с RUVDS (исключил stale App_Data 8.76GB — assets/galleries/themes теперь в MinIO), Web.config уже → `mssql.kzntsv.site,1433` Catalog=MoreThenCms (user `snolla`) + 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-safe): AppPool `snolla` (.NET v4.0, AppPoolIdentity, recycle@200MB), IIS site `*:80` catch-all, ACL `IIS AppPool\snolla:(OI)(CI)(M)`, hosts-override `127.0.0.1 <6 aliases>.snolla.com`, FW block inbound 80. Smoke GREEN: `tandemmebel/labtools/labtoolspro/emspb/kupimknigi/on .snolla.com/admin/account/login` → 200, реальная MoreThenCms-логинформа (`<title>SNOLLA</title>`, `<form action="/admin/login">`). **Unblocks [on-snolla-vds-migration]** (Task B — админ для контент-инспекции готов). МинIO upload-acceptance = ручной follow-up оператора. RUVDS SSH через plink `-hostkey SHA256:r/vSKU5WzH4B8T7RiXyXlg0D8XZ9hlBxzmdrPzuPWzE` (креды `pass show ruvds-iis/full-env`)._
|
_Updated: 2026-07-20 (2) — 🟢 **[snolla-local-admin-restore] CLOSED.** Локальный .NET-админ поднят: selective tar-copy `C:\sites\snolla\` ~100MB с RUVDS (исключил stale App_Data 8.76GB — assets/galleries/themes теперь в MinIO), Web.config уже → `mssql.kzntsv.site,1433` Catalog=MoreThenCms (user `snolla`) + 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-safe): AppPool `snolla` (.NET v4.0, AppPoolIdentity, recycle@200MB), IIS site `*:80` catch-all, ACL `IIS AppPool\snolla:(OI)(CI)(M)`, hosts-override `127.0.0.1 <6 aliases>.snolla.com`, FW block inbound 80. Smoke GREEN: `tandemmebel/labtools/labtoolspro/emspb/kupimknigi/on .snolla.com/admin/account/login` → 200, реальная MoreThenCms-логинформа (`<title>SNOLLA</title>`, `<form action="/admin/login">`). **Unblocks [on-snolla-vds-migration]** (Task B — админ для контент-инспекции готов). МинIO upload-acceptance = ручной follow-up оператора. RUVDS SSH через plink `-hostkey SHA256:r/vSKU5WzH4B8T7RiXyXlg0D8XZ9hlBxzmdrPzuPWzE` (креды `pass show ruvds-iis/full-env`)._
|
||||||
|
|||||||
Reference in New Issue
Block a user