docs(.wiki,.tasks): cms-admin-assets-root-folders-seed — DB seed 15 missing root rows

Admin /admin/assets/<siteId>/getList?path= крашился 500 NullReferenceException
в AssetsJsonViewModelBuilder.cs:22 (model.ParentPath на null) для 15 sites без
root AssetsFolder в Folders table (emspb.ru, pilorama98.ru, labtools.pro,
kupimknigi.spb.ru, sestech.ru, aquamax.spb.ru, artmone.pro, priemka-kvartiry.ru,
profund.spb.ru, ics-artmaterials.com, _voda-indigo.ru + 4 sites с NULL Domain).

Root создавался lazy при first upload — sites которые никогда не использовали
admin assets UI остались без root. Frontend (AssetsAppFunc.cs:66-86) делает
proper null-check → 404, только admin view-model builder упустил.

Fix: idempotent SQL seed (WHERE NOT EXISTS), 15 rows inserted. Inserted
FolderId/OwnerId captured в .tasks/...inserted-rows.txt для atomic revert.
Browser-verified user'ом на pilorama98/emspb.

Долгосрочный TODO: null-guard в AssetsJsonViewModelBuilder.Build (CMS code),
требует recompile DLL — отложено до восстановления build env (vds-kzntsv-bootstrap).
snapshot open issue #8 → resolved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-19 21:21:13 +03:00
parent 5d7a14c7d4
commit ec9177dddb
3 changed files with 95 additions and 3 deletions

View File

@@ -150,7 +150,7 @@ ACL: `IIS AppPool\<site>:(OI)(CI)M` рекурсивно на каждом site
1. ~~**X-Forwarded headers** не передаются от traefik в IIS → CMS делает redirect с `:4443` в URL.~~**RESOLVED 2026-05-19 вечер** через URL Rewrite 2.1 + `<serverVariables>` rule на host IIS. Также закрыл утечку `:8089` в admin SPA после attempt 2 миграции. См. [[cms-server-port-leak-fix]].
2. **rimiz.ru → 404**. CMS-side, не инфра.
3. **ics-artmaterials.com → 404**. Аналогично — CMS-side (`www.ics-artmaterials.com → 301 → ics-artmaterials.com → 404`).
8. **emspb.snolla.com `/admin/assets/<guid>/getList` → 500 NullReferenceException** в `AssetsJsonViewModelBuilder.cs:22` (`model` null). User подтвердил «только этот site». Не в scope port-leak fix; CMS-side bug в storage/Site mapping. Открыт.
8. ~~**emspb.snolla.com `/admin/assets/<guid>/getList` → 500 NullReferenceException**.~~**RESOLVED 2026-05-19 вечер** через DB seed root AssetsFolder rows для 15 sites без них (включая emspb, pilorama98, и др.). Симптом был НЕ site-specific — общий для всех sites которые никогда не использовали admin assets UI. См. [[cms-admin-assets-root-folder-seed]]. Долгосрочный TODO — null-guard в `AssetsJsonViewModelBuilder.Build` (требует recompile DLL, отложено до восстановления build env).
4. **acme.json HTTP-01 renewal** будет фейлить для доменов с DNS не на нашем IP → переезд на DNS-01 через REGRU до истечения сертификатов (~3 месяца).
5. **C:\inetpub\logs\** растёт — нужна ротация.
6. **docker.sock provider в traefik** не работает — но не блокирует (всё через file-provider). См. [[traefik-on-windows-docker-desktop]] Pitfall 3.