Концепции, ценность и типичные сценарии клонирования — меньше кода.
Концепции, ценность и типичные сценарии клонирования — меньше кода.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Фильтруйте по Founder / Developer в боковом меню. В старых версиях упоминались 12 конечных точек, придуманные маршруты GET /api/admin/users (список/поиск), GET /api/admin/analytics, IP whitelisting и отдельное ограничение по частоте для админов — ничего из этого не подтверждено в репозитории. Ниже перечислено то, что реально доступно в app/api/admin/**/route.ts начиная с v1.6.4.
Админ-маршруты обслуживают консоль администратора (/admin/*): роли пользователей, модерация сущностей, верификационное управление, статусы заказов, бренд/AI настройки платформы, пайплайны ProcessConductor, инструменты Web3-деска и Email AI-CRM. Все браузерные запросы используют Auth.js session cookies на том же домене — см. API reference.
| Проверка | Роли | Обычные маршруты |
|---|---|---|
isPlatformAdmin() | admin, superadmin | Пользователи, заказы, модерация, верификация |
isSuperadmin() / requireSuperadminApi() | только superadmin | Настройки платформы, процессы, Web3-деск, сохранение бренда |
| Проверки в сервисе | Админ в доменном сервисе | Очередь модерации, действия по верификации |
requireEmailAdmin() | Админ платформы + email CRM | /api/admin/email/* |
SSOT: features/auth/user-role.ts — роли в нижнем регистре (visitor … superadmin).
Эти HTTP-обработчики поддерживают кнопки в UI администратора — вручную вы редко их вызываете, только для автоматизации.
Трёхпанельная навигация с учётом ролей, вкладки Security hub, оболочка Email CRM — основной UI для всех этих API.
Просмотр и редактирование одного пользователя, смена роли, ручная выдача бейджа верификации, удаление аккаунта (не своего), вкладка Платежи (членство + пополнение счёта).
Панель безопасности (антифрод / верификация / события), очередь модерации, процедуры KYC.
Фильтруйте по Founder / Developer в боковом меню. В старых версиях упоминались 12 конечных точек, придуманные маршруты GET /api/admin/users (список/поиск), GET /api/admin/analytics, IP whitelisting и отдельное ограничение по частоте для админов — ничего из этого не подтверждено в репозитории. Ниже перечислено то, что реально доступно в app/api/admin/**/route.ts начиная с v1.6.4.
Админ-маршруты обслуживают консоль администратора (/admin/*): роли пользователей, модерация сущностей, верификационное управление, статусы заказов, бренд/AI настройки платформы, пайплайны ProcessConductor, инструменты Web3-деска и Email AI-CRM. Все браузерные запросы используют Auth.js session cookies на том же домене — см. API reference.
| Проверка | Роли | Обычные маршруты |
|---|---|---|
isPlatformAdmin() | admin, superadmin | Пользователи, заказы, модерация, верификация |
isSuperadmin() / requireSuperadminApi() | только superadmin | Настройки платформы, процессы, Web3-деск, сохранение бренда |
| Проверки в сервисе | Админ в доменном сервисе | Очередь модерации, действия по верификации |
requireEmailAdmin() | Админ платформы + email CRM | /api/admin/email/* |
SSOT: features/auth/user-role.ts — роли в нижнем регистре (visitor … superadmin).
Эти HTTP-обработчики поддерживают кнопки в UI администратора — вручную вы редко их вызываете, только для автоматизации.
Трёхпанельная навигация с учётом ролей, вкладки Security hub, оболочка Email CRM — основной UI для всех этих API.
Просмотр и редактирование одного пользователя, смена роли, ручная выдача бейджа верификации, удаление аккаунта (не своего), вкладка Платежи (членство + пополнение счёта).
Панель безопасности (антифрод / верификация / события), очередь модерации, процедуры KYC.
Фильтруйте по Founder / Developer в боковом меню. В старых версиях упоминались 12 конечных точек, придуманные маршруты GET /api/admin/users (список/поиск), GET /api/admin/analytics, IP whitelisting и отдельное ограничение по частоте для админов — ничего из этого не подтверждено в репозитории. Ниже перечислено то, что реально доступно в app/api/admin/**/route.ts начиная с v1.6.4.
Админ-маршруты обслуживают консоль администратора (/admin/*): роли пользователей, модерация сущностей, верификационное управление, статусы заказов, бренд/AI настройки платформы, пайплайны ProcessConductor, инструменты Web3-деска и Email AI-CRM. Все браузерные запросы используют Auth.js session cookies на том же домене — см. API reference.
| Проверка | Роли | Обычные маршруты |
|---|---|---|
isPlatformAdmin() | admin, superadmin | Пользователи, заказы, модерация, верификация |
isSuperadmin() / requireSuperadminApi() | только superadmin | Настройки платформы, процессы, Web3-деск, сохранение бренда |
| Проверки в сервисе | Админ в доменном сервисе | Очередь модерации, действия по верификации |
requireEmailAdmin() | Админ платформы + email CRM | /api/admin/email/* |
SSOT: features/auth/user-role.ts — роли в нижнем регистре (visitor … superadmin).
Эти HTTP-обработчики поддерживают кнопки в UI администратора — вручную вы редко их вызываете, только для автоматизации.
Трёхпанельная навигация с учётом ролей, вкладки Security hub, оболочка Email CRM — основной UI для всех этих API.
Просмотр и редактирование одного пользователя, смена роли, ручная выдача бейджа верификации, удаление аккаунта (не своего), вкладка Платежи (членство + пополнение счёта).
Панель безопасности (антифрод / верификация / события), очередь модерации, процедуры KYC.
Изменение статуса заказа: new → paid → processing → shipped → completed / canceled.
GET /api/admin/users/{id}/payments (назначения: membership_upgrade, wallet_topup из payment_transactions).PUT /api/admin/users/{id}/role или наследованный POST /api/admin/set-user-role./admin/security?tab=verification (старый /admin/verification перенаправляет сюда) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).POST /api/admin/entity-moderation/block с entityId и reason.POST /api/admin/whitelabel/save (редирект на настройки).POST /api/admin/web3/settings с { "nativePerMainCurrency": "..." }; хранится в коллекции platform_settings в namespace web3.Изменения только для superadmin (AI-ключи, JSON бренда, запуск пайплайнов вручную, курс RING) влияют на всех пользователей — ограничьте количество ролей superadmin в боевых клонах.
/api/admin/users/[id] |
| Админ платформы |
| Самостоятельное удаление невозможно |
| PUT | /api/admin/users/[id]/role | Админ платформы | Body: { "role": "member" } |
| PUT | /api/admin/users/[id]/verification | Ручная верификация | Body: { "isVerified": true, ... } |
| POST | /api/admin/set-user-role | Админ платформы | Устарело: { "uid", "role" }; запрещает самопонижение |
НЕ реализовано: GET /api/admin/users (список/поиск) — используйте UI администратора или DatabaseService для своих инструментов.
UI для вкладки Платежи: компонент features/auth/components/admin-user-detail-sheet.tsx (открывается из admin-user-manager.tsx по кнопке-глаз), делает запрос /api/admin/users/${user.id}/payments?limit=50.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/entity-moderation | { items: EntityModerationQueueItem[] } |
| POST | /api/admin/entity-moderation/block | { entityId, reason } |
| GET | /api/admin/verification/queue | { success, queue } |
| POST | /api/admin/verification/procedures/[procedureNumber]/[action] | approve | reject | request-info | under-review |
| Метод | Путь | Тело запроса |
|---|---|---|
| POST | /api/admin/orders/[id]/status | { "status": "processing" } (enum: new, paid, processing, shipped, completed, canceled) |
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/platform-settings?namespace=ai|branding | Чтение namespace |
| PUT | /api/admin/platform-settings | JSON body: { namespace, data, secrets? } |
| POST | /api/admin/whitelabel/save | POST формы → цвета бренда → редирект |
| POST | /api/admin/save | Устарело: сохранение бренда (JSON, редирект) |
Персистентность: сервис features/admin/platform-settings/platform-settings-service.ts читает/записывает коллекцию platform_settings через db() из @/lib/database. Namespace ai и branding используют методы readDoc / updateDoc / createDoc и кэшируются модулем platform-settings-cache.ts.
| Env | Эффект |
|---|---|
PLATFORM_SETTINGS_DISABLE_DB=true | Чтение — дефолты/пусто, запись — ошибка. Для тестов/clone без БД. |
importPlatformSettingsFromEnv() подхватывает настройки из env и ring-config.json при отсутствии строк в БД.
| Метод | Путь | Назначение |
|---|---|---|
| GET | /api/admin/processes | Список пайплайнов |
| POST | /api/admin/processes/[id]/run | Ручной запуск пайплайна |
| GET | /api/admin/processes/[id]/history | История запусков |
Кроны используют /api/cron/* + CRON_SECRET — подробнее см. ProcessConductor в Monitoring.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/web3/settings | Курс оракула, настройка, аудит-лог, газ-резерв |
| POST | /api/admin/web3/settings | { "nativePerMainCurrency": "..." } |
| GET | /api/admin/web3/gas-reserve | Баланс fee-payer Solana |
Хранение курса оракула: сервис features/wallet/services/native-token-oracle.ts хранит nativePerMainCurrency и аудит в документе platform_settings id web3 (через db()). Если PLATFORM_SETTINGS_DISABLE_DB=true — чтение из RING_ORACLE_DEFAULT_RATE (100), запись блокируется.
Полная таблица маршрутов: Email AI-CRM API — потоки, черновики, задачи, контакты, GET /api/admin/email/analytics?range=7d.
| Метод | Путь | Назначение |
|---|---|---|
| POST | /api/admin/migrate-users | Разовая миграция пользователей — не используйте как рутину |
/api/admin)| Метод | Путь | Авторизация |
|---|---|---|
| GET | /api/analytics/platform-stats | Админ платформы |
| GET | /api/analytics/web-vitals?scope=platform | Админ платформы |
| GET | /api/analytics/errors | Админ платформы |
В UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).
Войдите под аккаунтом с ролью admin или superadmin.
Обновите пользователя или откройте Admin → Users; роль будет в нижнем регистре в users.data.role.
Котировки для пользователей; админский rate см. в Web3-деске выше.
Изменение статуса заказа: new → paid → processing → shipped → completed / canceled.
GET /api/admin/users/{id}/payments (назначения: membership_upgrade, wallet_topup из payment_transactions).PUT /api/admin/users/{id}/role или наследованный POST /api/admin/set-user-role./admin/security?tab=verification (старый /admin/verification перенаправляет сюда) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).POST /api/admin/entity-moderation/block с entityId и reason.POST /api/admin/whitelabel/save (редирект на настройки).POST /api/admin/web3/settings с { "nativePerMainCurrency": "..." }; хранится в коллекции platform_settings в namespace web3.Изменения только для superadmin (AI-ключи, JSON бренда, запуск пайплайнов вручную, курс RING) влияют на всех пользователей — ограничьте количество ролей superadmin в боевых клонах.
/api/admin/users/[id] |
| Админ платформы |
| Самостоятельное удаление невозможно |
| PUT | /api/admin/users/[id]/role | Админ платформы | Body: { "role": "member" } |
| PUT | /api/admin/users/[id]/verification | Ручная верификация | Body: { "isVerified": true, ... } |
| POST | /api/admin/set-user-role | Админ платформы | Устарело: { "uid", "role" }; запрещает самопонижение |
НЕ реализовано: GET /api/admin/users (список/поиск) — используйте UI администратора или DatabaseService для своих инструментов.
UI для вкладки Платежи: компонент features/auth/components/admin-user-detail-sheet.tsx (открывается из admin-user-manager.tsx по кнопке-глаз), делает запрос /api/admin/users/${user.id}/payments?limit=50.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/entity-moderation | { items: EntityModerationQueueItem[] } |
| POST | /api/admin/entity-moderation/block | { entityId, reason } |
| GET | /api/admin/verification/queue | { success, queue } |
| POST | /api/admin/verification/procedures/[procedureNumber]/[action] | approve | reject | request-info | under-review |
| Метод | Путь | Тело запроса |
|---|---|---|
| POST | /api/admin/orders/[id]/status | { "status": "processing" } (enum: new, paid, processing, shipped, completed, canceled) |
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/platform-settings?namespace=ai|branding | Чтение namespace |
| PUT | /api/admin/platform-settings | JSON body: { namespace, data, secrets? } |
| POST | /api/admin/whitelabel/save | POST формы → цвета бренда → редирект |
| POST | /api/admin/save | Устарело: сохранение бренда (JSON, редирект) |
Персистентность: сервис features/admin/platform-settings/platform-settings-service.ts читает/записывает коллекцию platform_settings через db() из @/lib/database. Namespace ai и branding используют методы readDoc / updateDoc / createDoc и кэшируются модулем platform-settings-cache.ts.
| Env | Эффект |
|---|---|
PLATFORM_SETTINGS_DISABLE_DB=true | Чтение — дефолты/пусто, запись — ошибка. Для тестов/clone без БД. |
importPlatformSettingsFromEnv() подхватывает настройки из env и ring-config.json при отсутствии строк в БД.
| Метод | Путь | Назначение |
|---|---|---|
| GET | /api/admin/processes | Список пайплайнов |
| POST | /api/admin/processes/[id]/run | Ручной запуск пайплайна |
| GET | /api/admin/processes/[id]/history | История запусков |
Кроны используют /api/cron/* + CRON_SECRET — подробнее см. ProcessConductor в Monitoring.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/web3/settings | Курс оракула, настройка, аудит-лог, газ-резерв |
| POST | /api/admin/web3/settings | { "nativePerMainCurrency": "..." } |
| GET | /api/admin/web3/gas-reserve | Баланс fee-payer Solana |
Хранение курса оракула: сервис features/wallet/services/native-token-oracle.ts хранит nativePerMainCurrency и аудит в документе platform_settings id web3 (через db()). Если PLATFORM_SETTINGS_DISABLE_DB=true — чтение из RING_ORACLE_DEFAULT_RATE (100), запись блокируется.
Полная таблица маршрутов: Email AI-CRM API — потоки, черновики, задачи, контакты, GET /api/admin/email/analytics?range=7d.
| Метод | Путь | Назначение |
|---|---|---|
| POST | /api/admin/migrate-users | Разовая миграция пользователей — не используйте как рутину |
/api/admin)| Метод | Путь | Авторизация |
|---|---|---|
| GET | /api/analytics/platform-stats | Админ платформы |
| GET | /api/analytics/web-vitals?scope=platform | Админ платформы |
| GET | /api/analytics/errors | Админ платформы |
В UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).
Войдите под аккаунтом с ролью admin или superadmin.
Обновите пользователя или откройте Admin → Users; роль будет в нижнем регистре в users.data.role.
Котировки для пользователей; админский rate см. в Web3-деске выше.
Изменение статуса заказа: new → paid → processing → shipped → completed / canceled.
GET /api/admin/users/{id}/payments (назначения: membership_upgrade, wallet_topup из payment_transactions).PUT /api/admin/users/{id}/role или наследованный POST /api/admin/set-user-role./admin/security?tab=verification (старый /admin/verification перенаправляет сюда) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).POST /api/admin/entity-moderation/block с entityId и reason.POST /api/admin/whitelabel/save (редирект на настройки).POST /api/admin/web3/settings с { "nativePerMainCurrency": "..." }; хранится в коллекции platform_settings в namespace web3.Изменения только для superadmin (AI-ключи, JSON бренда, запуск пайплайнов вручную, курс RING) влияют на всех пользователей — ограничьте количество ролей superadmin в боевых клонах.
/api/admin/users/[id] |
| Админ платформы |
| Самостоятельное удаление невозможно |
| PUT | /api/admin/users/[id]/role | Админ платформы | Body: { "role": "member" } |
| PUT | /api/admin/users/[id]/verification | Ручная верификация | Body: { "isVerified": true, ... } |
| POST | /api/admin/set-user-role | Админ платформы | Устарело: { "uid", "role" }; запрещает самопонижение |
НЕ реализовано: GET /api/admin/users (список/поиск) — используйте UI администратора или DatabaseService для своих инструментов.
UI для вкладки Платежи: компонент features/auth/components/admin-user-detail-sheet.tsx (открывается из admin-user-manager.tsx по кнопке-глаз), делает запрос /api/admin/users/${user.id}/payments?limit=50.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/entity-moderation | { items: EntityModerationQueueItem[] } |
| POST | /api/admin/entity-moderation/block | { entityId, reason } |
| GET | /api/admin/verification/queue | { success, queue } |
| POST | /api/admin/verification/procedures/[procedureNumber]/[action] | approve | reject | request-info | under-review |
| Метод | Путь | Тело запроса |
|---|---|---|
| POST | /api/admin/orders/[id]/status | { "status": "processing" } (enum: new, paid, processing, shipped, completed, canceled) |
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/platform-settings?namespace=ai|branding | Чтение namespace |
| PUT | /api/admin/platform-settings | JSON body: { namespace, data, secrets? } |
| POST | /api/admin/whitelabel/save | POST формы → цвета бренда → редирект |
| POST | /api/admin/save | Устарело: сохранение бренда (JSON, редирект) |
Персистентность: сервис features/admin/platform-settings/platform-settings-service.ts читает/записывает коллекцию platform_settings через db() из @/lib/database. Namespace ai и branding используют методы readDoc / updateDoc / createDoc и кэшируются модулем platform-settings-cache.ts.
| Env | Эффект |
|---|---|
PLATFORM_SETTINGS_DISABLE_DB=true | Чтение — дефолты/пусто, запись — ошибка. Для тестов/clone без БД. |
importPlatformSettingsFromEnv() подхватывает настройки из env и ring-config.json при отсутствии строк в БД.
| Метод | Путь | Назначение |
|---|---|---|
| GET | /api/admin/processes | Список пайплайнов |
| POST | /api/admin/processes/[id]/run | Ручной запуск пайплайна |
| GET | /api/admin/processes/[id]/history | История запусков |
Кроны используют /api/cron/* + CRON_SECRET — подробнее см. ProcessConductor в Monitoring.
| Метод | Путь | Примечания |
|---|---|---|
| GET | /api/admin/web3/settings | Курс оракула, настройка, аудит-лог, газ-резерв |
| POST | /api/admin/web3/settings | { "nativePerMainCurrency": "..." } |
| GET | /api/admin/web3/gas-reserve | Баланс fee-payer Solana |
Хранение курса оракула: сервис features/wallet/services/native-token-oracle.ts хранит nativePerMainCurrency и аудит в документе platform_settings id web3 (через db()). Если PLATFORM_SETTINGS_DISABLE_DB=true — чтение из RING_ORACLE_DEFAULT_RATE (100), запись блокируется.
Полная таблица маршрутов: Email AI-CRM API — потоки, черновики, задачи, контакты, GET /api/admin/email/analytics?range=7d.
| Метод | Путь | Назначение |
|---|---|---|
| POST | /api/admin/migrate-users | Разовая миграция пользователей — не используйте как рутину |
/api/admin)| Метод | Путь | Авторизация |
|---|---|---|
| GET | /api/analytics/platform-stats | Админ платформы |
| GET | /api/analytics/web-vitals?scope=platform | Админ платформы |
| GET | /api/analytics/errors | Админ платформы |
В UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).
Войдите под аккаунтом с ролью admin или superadmin.
Обновите пользователя или откройте Admin → Users; роль будет в нижнем регистре в users.data.role.
Котировки для пользователей; админский rate см. в Web3-деске выше.