Документированы два крупнейших изменения сессии 2026-08-04/05: - Неймспейс-миграция @snollajs→@snolla (17 пакетов, 8 сайтов) - Admin-api embed в pilonuxt /admin/api, retire стека 25 Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
---
|
||
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 на прод-импорт.
|