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