Files
admin/.wiki/concepts/admin-api-embed-pilonuxt.md
vitya 543b10a464 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>
2026-08-05 00:24:42 +03:00

2.0 KiB
Raw Blame History

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 на прод-импорт.