docs(wiki): namespace-consolidation + admin-api-embed concepts

Документированы два крупнейших изменения сессии 2026-08-04/05:
- Неймспейс-миграция @snollajs→@snolla (17 пакетов, 8 сайтов)
- Admin-api embed в pilonuxt /admin/api, retire стека 25

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-05 00:24:42 +03:00
parent 1becee760c
commit 543b10a464
5 changed files with 175 additions and 43 deletions

View File

@@ -0,0 +1,54 @@
---
title: Admin-api embed in pilonuxt — retire standalone container
type: concept
tags: [admin-api, pilonuxt, vds, embed, middleware, nuxt]
related: [[admin-api-surface-normalization]], [[namespace-consolidation-snolla]]
updated: 2026-08-05
---
# Admin-api embed in pilonuxt
Оператор (vitya) постановил 2026-08-04: admin-api должен жить в `apps/web`
как Nuxt-server-middleware, а НЕ отдельным контейнером. По образу `@snolla/content-api`
и `@snolla/forms-api`.
## Архитектура
```
piloruxt (стек 16)
├── /snolla/* → @snolla/content-api (useBase)
├── /snolla-forms/* → @snolla/forms-api (useBase)
└── /admin/api/* → @snolla/admin-api (useBase) ← НОВОЕ
```
## Реализация
- Пакет: `@snolla/admin-api@0.2.0`
- Экспорт: `createAdminMiddleware({prefix})` — Fastify-плагин без `.listen()`
- Маунт: `server/routes/admin/[...].ts` = `useBase('/admin/api', fromNodeMiddleware(createAdminMiddleware({prefix:''})))`
- Конфиг: `JWT_SECRET` + `DATABASE_URL` + `S3_*` в env контейнера (fail-fast в buildApp)
- Prisma: `prisma generate --schema` в Dockerfile (отдельный RUN, не postinstall)
## Деплой
- Образ: `registry.kzntsv.site/pilonuxt:e95d2d9` (2026-08-05)
- Стек: Portainer 16 (pilonuxt)
- Env: `JWT_SECRET`, `DATABASE_URL`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`
## Стек 25 — RETIRED
Старый standalone admin-api (`admin-api.vds.kzntsv.site`, стек 25) удалён из Portainer.
Контейнер `admin-api` остановлен и удалён.
## Smoke (прод)
- `/admin/api/health` → 200 `{"status":"ok"}`
- `/admin/api/stores?siteId=...` → 401 (auth required, правильно)
- `/` → 200
- `/catalog` → 200
- `/snolla/pages` → 200
## Loader
Адаптирован под camelCase-wire 0.2.0. baseUrl → `https://pilorama98.ru/admin`.
Dry-run 224/0/224 PASS. Ждёт vitya на прод-импорт.