Compare commits

...

8 Commits

Author SHA1 Message Date
5299c7d048 chore: pilonuxt deploy — tag 515ab99 (admin-api 0.10.1 save-whitelist fix) 2026-08-07 20:34:30 +03:00
768ffe3851 chore: pilonuxt deploy — tag 6552e37 (admin-api 0.10.0 + batch-info + OpenAPI) 2026-08-07 19:48:20 +03:00
03607d0d6e meta(handoff): flat-fields wave CLOSED; session end
- 7 sites @snolla/snolla→web redeployed
- admin-api 0.4.0 (flat fields) + client 0.5.2 + schema-gen 0.2.1 published
- pilorama98 0db46e1 live: loader flat + catalog + yml/short_description
- admin-api 0.5.0 (validation) published, not deployed to pilorama98
- coordinator role active: snolla ↔ pilorama98
2026-08-07 13:03:23 +03:00
615d78932b chore: pilonuxt deploy — tag 2c069de (admin-api 0.4.0 flat fields + каталог + loader) 2026-08-07 10:51:49 +03:00
e3f2541056 chore: pilonuxt deploy — tag 782de35 (каталог: Скандинавская доска + обновлённый Половой шпунт) 2026-08-07 09:38:13 +03:00
66e1c7b718 chore: sync pilonuxt compose — add S3 endpoint/region/bucket env 2026-08-05 16:15:13 +03:00
8ebd05e4a7 chore: sync pilonuxt compose — admin-api embed env (JWT/DATABASE_URL/S3), tag 1b88cd5 2026-08-05 16:14:36 +03:00
9e2332a53c ops(labtools): bump to cad2b36 (@snolla/snolla → @snolla/web 0.43.2)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-05 15:57:18 +03:00
3 changed files with 39 additions and 43 deletions

View File

@@ -1,62 +1,47 @@
--- ---
_last_updated_: 2026-08-05T00:40:00Z _last_updated_: 2026-08-07T13:00:00Z
session_id: 2026-08-05-admin-namespace-migration-embed session_id: 2026-08-07-admin-flat-fields-wave
prev_session_id: 2026-08-04-admin-s2-review prev_session_id: 2026-08-05-admin-namespace-migration-embed
--- ---
# Next session handoff # Next session handoff
## Главное за сессию ## Главное за сессию
Эпик surface-normalization ЗАКРЫТ. Namespace-миграция ВЫПОЛНЕНА. Admin-api embed в pilonuxt ЗАВЕРШЁН. Эпик **flat-fields** ЗАКРЫТ. `fields[]` убран — поля в корне объекта. Loader мигрирован.
- **S2+S3 review:** APPROVE (клиент 34/34, сервер 424/424, schema-gen 19/19) - **@snolla/snolla → @snolla/web** — 7 сайтов пересобраны и передеплоены (вторая волна ренеймов)
- **Namespace-миграция:** `@snollajs/*` → `@snolla/*`, 14+ пакетов на Verdaccio. Все 8 сайтов бампнуты (7 руками + pilorama98). Stostayer заморожен. - **Content-Type гейтинг** — vendor-Accept (`application/vnd.snolla.admin+json`) только для web-админки. Default = корневые поля. Save: `Content` без vendor → 400.
- **Admin-api embed:** pilonuxt `e95d2d9`, `/admin/api/health` 200, стек 25 retire. - **fields[] → корневые поля** — admin-api 0.4.0 (read/write flat), client 0.5.2 (index-signature), schema-gen 0.2.1 (генератор flat). Вся тройка published+pushed.
- **Loader:** адаптирован под camelCase-wire 0.2.0, dry-run 224/0/224. Ждёт vitya на прод-импорт. - **Loader → flat root fields** — pilorama98 `0db46e1` в проде. Тесты 105/105. yml_category_id + short_description для required-полей.
- **Content-валидация** — admin-api 0.5.0 published (snolla), НЕ развёрнута на пилораме.
## Коммиты сессии (в других репо)
| Репо | SHA | Что |
|---|---|---|
| labtools.ru | `cec15a2` | namespace bump |
| emspb.ru | `2ddd44c` | namespace bump |
| labtools.pro | `45006e2` | namespace bump |
| tandemmebel.ru | `423d1b0` | namespace bump |
| kupimknigi.spb.ru | `af00733` | namespace bump |
| on.snolla.com | `d892053` | namespace bump |
| maljarka.tandemmebel.ru | `7a37c29` | namespace bump |
| pilorama98.ru | `e95d2d9` | embed admin-api + namespace bump |
| pilorama98.ru | `325daa9` | prisma postinstall fix |
| pilorama98.ru | `b3e86db` | loader camelCase adaptation |
| snolla | `d9313e3` | S3 F1/F2 fix |
| snolla | `f37d736` | S2 F1-F3 fix |
## Open треки ## Open треки
| Трек | Готовность | Entry-point | | Трек | Готовность | Entry-point |
|---|---|---| |---|---|---|
| loader прод-импорт | ⚪ ready, ждёт vitya | pilorama98 loader | | admin-api 0.5.0 (валидация) → пилорама | published, ждёт волны | бамп в apps/web + деплой |
| minio-retire старых данных (12G) | окно ~05.08 истекло — уточнить у vitya | из handoff 2026-08-04 | | yml_category_id — маппинг для YML-фида | эмпирически сверен, нужен production-тест | loader `bin/index.js` + фид |
| kreknin-repair-md3-rebuild | ⚪ ждёт Алексея | `.tasks/kreknin-repair-md3-rebuild.md` | | Коллизия `description` (контент-поле ↔ колонка) | на snolla/schema-gen | при следующей встрече |
| P3 imgproxy stack 29 retire / A3 bookva-дубли | опционально | из handoff | | Loader прод-импорт (живой) | НЕ запускался после 0.4.0 | решение vitya |
## Спросить user'а ## Спроси user'а
- Запускать loader прод-импорт или ждать? - Деплоить admin-api 0.5.0 (валидация) на пилораму сейчас или со следующей фичей?
- minio-retire — окно ушло, переносим? - Запускать живой импорт loader'а через новый flat API?
- kreknin — есть ли новости от Алексея?
## Не делать (preemptive guards) ## Не делать (preemptive guards)
- НЕ деплоить стек 25 — удалён. Admin-api только через pilonuxt `/admin/api`. - НЕ слать vendor-Accept из loader'а — это только для web-админки snolla
- НЕ возвращать admin-api в отдельный контейнер. - НЕ деплоить admin-api 0.5.0 без проверки required-полей (79/229 продуктов были без yml_category_id)
- НЕ рассылать директивы другим сессиям без сверки с vitya. - Portainer PUT: НЕ использовать `Env:[]` — очищает секреты. Всегда fetch + re-supply.
- НЕ ротировать `sk_6a83…`. - НЕ ротировать `sk_6a83…`
- НЕ трогать stostayer (заморожен). - НЕ слать директивы другим сессиям без сверки с vitya
## Memory updates за сессию ## Memory updates за сессию
- `snolla-namespace-wins` — новый: `@snolla` выживает, `@snollajs/*` → `@snolla/*` - `snolla-namespace-wins` — подтверждён: вторая волна ренеймов (@snolla/snolla→web)
- `admin-api-vds-deploy` — обновлён: стек 25 retire, admin-api в pilonuxt - `admin-api-vds-deploy` — обновлён: стек 25 retire, admin-api в pilonuxt
- `no-cross-session-cancels-without-vitya` — подтверждён - `portainer-env-empty-clears-secrets` — новый: Portainer PUT с Env:[] = потеря всех секретов
- `admin-api-content-gating-vendor-accept` — новый: vendor-Accept = web-admin only, default = flat fields
- `piloruxt-build-needs-generated-dir` — новый: src/generated/ gitignored, нужно scp перед docker build

View File

@@ -24,7 +24,7 @@
services: services:
labtools: labtools:
container_name: labtools container_name: labtools
image: registry.kzntsv.site/labtools:d263e1c # git-sha victor/labtools.ru master (core 0.26.6 catalog linked-item provider — cylindrical press-forms hydrated; bump 2026-08-03; prev 0dc0b4e=0.43.2 v3=rollback) image: registry.kzntsv.site/labtools:cad2b36 # git-sha victor/labtools.ru master (@snolla/snolla → @snolla/web 0.43.2; bump 2026-08-05; prev cec15a2)
restart: unless-stopped restart: unless-stopped
mem_limit: 512m # guardrail от runaway: snolla baseline ~100-200M; OOM в контейнере → restart:unless-stopped поднимет. standalone-compose → mem_limit (НЕ deploy.resources — то swarm-only). mem_limit: 512m # guardrail от runaway: snolla baseline ~100-200M; OOM в контейнере → restart:unless-stopped поднимет. standalone-compose → mem_limit (НЕ deploy.resources — то swarm-only).
environment: environment:

View File

@@ -19,18 +19,29 @@
# собственный origin https://pilonuxt.vds.kzntsv.site (SSR self-call на /snolla). # собственный origin https://pilonuxt.vds.kzntsv.site (SSR self-call на /snolla).
# #
# Секреты (MSSQL/SMTP/imgproxy key+salt/siteId) ЗАПЕЧЕНЫ в config/default.json образа # Секреты (MSSQL/SMTP/imgproxy key+salt/siteId) ЗАПЕЧЕНЫ в config/default.json образа
# (решение vitya — образ только в приватном registry). Env-override не настраивали. # (решение vitya — образ только в приватном registry).
# Admin-api env (2026-08-05): JWT_SECRET / DATABASE_URL / S3_* передаются через Portainer
# stack-env. При перекате стека env ОБЯЗАТЕЛЕН (Env:[] очищает секреты — gotcha #10).
services: services:
pilonuxt: pilonuxt:
container_name: pilonuxt container_name: pilonuxt
image: registry.kzntsv.site/pilonuxt:c4e34d4 image: registry.kzntsv.site/pilonuxt:515ab99
restart: unless-stopped restart: unless-stopped
environment: environment:
NODE_ENV: production NODE_ENV: production
TZ: Europe/Moscow TZ: Europe/Moscow
NITRO_HOST: 0.0.0.0 NITRO_HOST: 0.0.0.0
NITRO_PORT: "3000" NITRO_PORT: "3000"
# Admin-api env (2026-08-05, embed в apps/web Nuxt-middleware)
JWT_SECRET: SUz56VIm96HqxLTZhR31BGhrVbAbIZC2R67prRwhzXsywCsd76Qaxlwl93vs9WC9
DATABASE_URL: "sqlserver://mssql.kzntsv.site:1433;database=MoreThenCms;user=snolla;password=fXkH4@8O%3pc;encrypt=true;trustServerCertificate=true"
S3_ENDPOINT: https://minio.vds.kzntsv.site
S3_REGION: us-east-1
S3_FORCE_PATH_STYLE: "true"
S3_ACCESS_KEY_ID: AKIAJ2YJP72W6ZHCRE6Q
S3_SECRET_ACCESS_KEY: 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
THEMES_BUCKET: themes
# CUTOVER 2026-06-15: боевой домен www.pilorama98.ru — аналитика ВКЛ # CUTOVER 2026-06-15: боевой домен www.pilorama98.ru — аналитика ВКЛ
# (дефолт GTM-MNNXFJ6, env не задаём). На smoke-поддомене гасили `""`. # (дефолт GTM-MNNXFJ6, env не задаём). На smoke-поддомене гасили `""`.
networks: networks: