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

55 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 на прод-импорт.