Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    1. Docs
    2. /API
    3. /Admin API

    Updated Jul 10, 20266 min listen

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Docs
    2. /API
    3. /Admin API

    Updated Jul 10, 20266 min listen

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Docs
    2. /API
    3. /Admin API

    Updated Jul 10, 20266 min listen

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Admin API

    Filter with Founder / Developer in the docs sidebar. Legacy copy claimed 12 endpoints, fabricated GET /api/admin/users list/search, GET /api/admin/analytics, IP whitelisting, and admin-only rate limits — none verified in this tree. Below matches app/api/admin/**/route.ts as of v1.6.4.

    Admin routes power the Admin console (/admin/*): user roles, entity moderation, verification desk, store order status, platform branding/AI settings, ProcessConductor pipelines, Web3 desk tools, and Email AI-CRM. All browser calls use Auth.js session cookies on the same origin — see API reference.

    Access tiers

    GuardRolesTypical routes
    isPlatformAdmin()admin, superadminUsers, orders, moderation, verification queue
    isSuperadmin() / requireSuperadminApi()superadmin onlyPlatform settings, processes, Web3 desk, branding save
    Service-layer checksAdmin in domain serviceEntity moderation queue, verification actions
    requireEmailAdmin()Platform admin + email CRM/api/admin/email/*

    SSOT: features/auth/user-role.ts — lowercase roles (visitor … superadmin).

    What operators control via Admin API

    These HTTP handlers back buttons in the admin UI — you rarely call them manually unless automating ops.

    Admin console

    Role-aware three-pane nav, Security hub tabs, Email CRM shell — UI SSOT for these APIs.

    User desk

    View one user, change role, manual verification badge, delete account (not self), Payments tab (membership + wallet top-up ledger).

    Trust & safety

    Security hub (fraud / verification / events), entity moderation queue, KYC procedures.

    Store ERP

    Auth pattern

    Admin route handler

    There is no verified global admin rate-limit middleware in app/api/admin/*. Add edge rate limits in your reverse proxy if needed.

    Route inventory (verified)

    Users & roles

    MethodPathAuthNotes
    GET/api/admin/users/[id]Platform adminSingle user JSONB doc; passwords stripped
    GET/api/admin/users/[id]/paymentsPlatform adminLedger rows via paymentTransactionService.listByUserId — default purposes membership_upgrade, wallet_topup; query ?limit= (max 100), ?purposes=a,b
    DELETE

    Related documentation

    API index

    Session auth model and domain map.

    Email AI-CRM API

    All /api/admin/email/* routes.

    Security model

    RBAC layers and confidential tiers.

    Monitoring

    Admin analytics and error ingest.

    Wallet API — oracle

    Admin API

    Filter with Founder / Developer in the docs sidebar. Legacy copy claimed 12 endpoints, fabricated GET /api/admin/users list/search, GET /api/admin/analytics, IP whitelisting, and admin-only rate limits — none verified in this tree. Below matches app/api/admin/**/route.ts as of v1.6.4.

    Admin routes power the Admin console (/admin/*): user roles, entity moderation, verification desk, store order status, platform branding/AI settings, ProcessConductor pipelines, Web3 desk tools, and Email AI-CRM. All browser calls use Auth.js session cookies on the same origin — see API reference.

    Access tiers

    GuardRolesTypical routes
    isPlatformAdmin()admin, superadminUsers, orders, moderation, verification queue
    isSuperadmin() / requireSuperadminApi()superadmin onlyPlatform settings, processes, Web3 desk, branding save
    Service-layer checksAdmin in domain serviceEntity moderation queue, verification actions
    requireEmailAdmin()Platform admin + email CRM/api/admin/email/*

    SSOT: features/auth/user-role.ts — lowercase roles (visitor … superadmin).

    What operators control via Admin API

    These HTTP handlers back buttons in the admin UI — you rarely call them manually unless automating ops.

    Admin console

    Role-aware three-pane nav, Security hub tabs, Email CRM shell — UI SSOT for these APIs.

    User desk

    View one user, change role, manual verification badge, delete account (not self), Payments tab (membership + wallet top-up ledger).

    Trust & safety

    Security hub (fraud / verification / events), entity moderation queue, KYC procedures.

    Store ERP

    Auth pattern

    Admin route handler

    There is no verified global admin rate-limit middleware in app/api/admin/*. Add edge rate limits in your reverse proxy if needed.

    Route inventory (verified)

    Users & roles

    MethodPathAuthNotes
    GET/api/admin/users/[id]Platform adminSingle user JSONB doc; passwords stripped
    GET/api/admin/users/[id]/paymentsPlatform adminLedger rows via paymentTransactionService.listByUserId — default purposes membership_upgrade, wallet_topup; query ?limit= (max 100), ?purposes=a,b
    DELETE

    Related documentation

    API index

    Session auth model and domain map.

    Email AI-CRM API

    All /api/admin/email/* routes.

    Security model

    RBAC layers and confidential tiers.

    Monitoring

    Admin analytics and error ingest.

    Wallet API — oracle

    Admin API

    Filter with Founder / Developer in the docs sidebar. Legacy copy claimed 12 endpoints, fabricated GET /api/admin/users list/search, GET /api/admin/analytics, IP whitelisting, and admin-only rate limits — none verified in this tree. Below matches app/api/admin/**/route.ts as of v1.6.4.

    Admin routes power the Admin console (/admin/*): user roles, entity moderation, verification desk, store order status, platform branding/AI settings, ProcessConductor pipelines, Web3 desk tools, and Email AI-CRM. All browser calls use Auth.js session cookies on the same origin — see API reference.

    Access tiers

    GuardRolesTypical routes
    isPlatformAdmin()admin, superadminUsers, orders, moderation, verification queue
    isSuperadmin() / requireSuperadminApi()superadmin onlyPlatform settings, processes, Web3 desk, branding save
    Service-layer checksAdmin in domain serviceEntity moderation queue, verification actions
    requireEmailAdmin()Platform admin + email CRM/api/admin/email/*

    SSOT: features/auth/user-role.ts — lowercase roles (visitor … superadmin).

    What operators control via Admin API

    These HTTP handlers back buttons in the admin UI — you rarely call them manually unless automating ops.

    Admin console

    Role-aware three-pane nav, Security hub tabs, Email CRM shell — UI SSOT for these APIs.

    User desk

    View one user, change role, manual verification badge, delete account (not self), Payments tab (membership + wallet top-up ledger).

    Trust & safety

    Security hub (fraud / verification / events), entity moderation queue, KYC procedures.

    Store ERP

    Auth pattern

    Admin route handler

    There is no verified global admin rate-limit middleware in app/api/admin/*. Add edge rate limits in your reverse proxy if needed.

    Route inventory (verified)

    Users & roles

    MethodPathAuthNotes
    GET/api/admin/users/[id]Platform adminSingle user JSONB doc; passwords stripped
    GET/api/admin/users/[id]/paymentsPlatform adminLedger rows via paymentTransactionService.listByUserId — default purposes membership_upgrade, wallet_topup; query ?limit= (max 100), ?purposes=a,b
    DELETE

    Related documentation

    API index

    Session auth model and domain map.

    Email AI-CRM API

    All /api/admin/email/* routes.

    Security model

    RBAC layers and confidential tiers.

    Monitoring

    Admin analytics and error ingest.

    Wallet API — oracle

    Advance order status: new → paid → processing → shipped → completed / canceled.

    Email AI-CRM

    Threads, drafts, tasks, analytics — separate admin email namespace.

    Platform analytics

    Dashboard at /admin/analytics — not a monolithic /api/admin/analytics route.

    Typical operator scenarios

    • Inspect payments — Admin → Users → Eye → Payments tab loads GET /api/admin/users/{id}/payments (membership_upgrade + wallet_topup from payment_transactions).
    • Promote a member to confidential — admin UI → PUT /api/admin/users/{id}/role or legacy POST /api/admin/set-user-role.
    • Clear verification backlog — /admin/security?tab=verification (legacy /admin/verification redirects here) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).
    • Pause an abusive entity — moderation queue → POST /api/admin/entity-moderation/block with entityId + reason.
    • Rebrand clone colors — superadmin settings form → POST /api/admin/whitelabel/save (redirects to admin settings).
    • Set RING/USD oracle rate — Web3 desk → POST /api/admin/web3/settings with { "ringPerUsd": "..." }; persisted in platform_settings web3 namespace.

    Superadmin-only changes (AI keys, branding JSON, manual pipeline runs, RING oracle rate) affect every user — restrict superadmin role count on production clones.

    /api/admin/users/[id]
    Platform admin
    Cannot delete self
    PUT/api/admin/users/[id]/rolePlatform adminBody: { "role": "member" }
    PUT/api/admin/users/[id]/verificationAdmin manual verificationBody: { "isVerified": true, ... }
    POST/api/admin/set-user-rolePlatform adminLegacy: { "uid", "role" }; blocks admin self-demotion

    Not implemented: GET /api/admin/users list/search — use Admin UI server loaders or DatabaseService in custom tooling.

    Payments tab UI: features/auth/components/admin-user-detail-sheet.tsx (opened from admin-user-manager.tsx Eye button) fetches /api/admin/users/${user.id}/payments?limit=50.

    Moderation & verification

    MethodPathNotes
    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

    Store

    MethodPathBody
    POST/api/admin/orders/[id]/status{ "status": "processing" } — enum: new, paid, processing, shipped, completed, canceled

    Platform settings (superadmin)

    MethodPathNotes
    GET/api/admin/platform-settings?namespace=ai|brandingRead namespace
    PUT/api/admin/platform-settingsJSON body: { namespace, data, secrets? }
    POST/api/admin/whitelabel/saveForm POST → branding colors → redirect
    POST/api/admin/saveLegacy branding save (JSON redirect)

    Persistence (verified): features/admin/platform-settings/platform-settings-service.ts reads and writes the platform_settings collection through db() from @/lib/database — not a private pg.Pool. Namespaces ai and branding use readDoc / updateDoc / createDoc with in-process namespace cache (platform-settings-cache.ts).

    EnvEffect
    PLATFORM_SETTINGS_DISABLE_DB=trueReads return defaults / null; writes throw — use for CI or env-only clones

    importPlatformSettingsFromEnv() seeds ai and branding from env + ring-config.json on first boot when DB rows are missing.

    ProcessConductor (superadmin)

    MethodPathNotes
    GET/api/admin/processesLists pipelines
    POST/api/admin/processes/[id]/runManual pipeline trigger
    GET/api/admin/processes/[id]/historyRun history

    Cron equivalents use /api/cron/* + CRON_SECRET — see ProcessConductor docs in Monitoring.

    Web3 desk (superadmin)

    MethodPathNotes
    GET/api/admin/web3/settingsOracle rate, desk config, audit log, gas reserve
    POST/api/admin/web3/settings{ "ringPerUsd": "..." }
    GET/api/admin/web3/gas-reserveSolana fee-payer balance

    Oracle persistence: features/wallet/services/ring-token-oracle.ts stores ringPerUsd and audit rows in platform_settings doc id web3 via the same db() API. When PLATFORM_SETTINGS_DISABLE_DB=true, reads fall back to RING_ORACLE_DEFAULT_RATE (or 100) and writes are blocked.

    Email AI-CRM (platform admin)

    Full route table: Email AI-CRM API — threads, drafts, tasks, contacts, GET /api/admin/email/analytics?range=7d.

    Maintenance (superadmin, use with care)

    MethodPathPurpose
    POST/api/admin/migrate-usersOne-off user migration helper — not for routine ops

    Analytics (not under /api/admin)

    MethodPathAuth
    GET/api/analytics/platform-statsPlatform admin
    GET/api/analytics/web-vitals?scope=platformPlatform admin
    GET/api/analytics/errorsPlatform admin

    UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).

    Example — change role

    1. 1

      Authenticate as admin in browser

      Sign in with an admin or superadmin account.

    2. 2

      PUT role

    3. 3

      Verify

      Re-fetch user or open Admin → Users; role is lowercase in users.data.role.

    Member-facing desk quotes; admin rate via Web3 desk above.

    Advance order status: new → paid → processing → shipped → completed / canceled.

    Email AI-CRM

    Threads, drafts, tasks, analytics — separate admin email namespace.

    Platform analytics

    Dashboard at /admin/analytics — not a monolithic /api/admin/analytics route.

    Typical operator scenarios

    • Inspect payments — Admin → Users → Eye → Payments tab loads GET /api/admin/users/{id}/payments (membership_upgrade + wallet_topup from payment_transactions).
    • Promote a member to confidential — admin UI → PUT /api/admin/users/{id}/role or legacy POST /api/admin/set-user-role.
    • Clear verification backlog — /admin/security?tab=verification (legacy /admin/verification redirects here) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).
    • Pause an abusive entity — moderation queue → POST /api/admin/entity-moderation/block with entityId + reason.
    • Rebrand clone colors — superadmin settings form → POST /api/admin/whitelabel/save (redirects to admin settings).
    • Set RING/USD oracle rate — Web3 desk → POST /api/admin/web3/settings with { "ringPerUsd": "..." }; persisted in platform_settings web3 namespace.

    Superadmin-only changes (AI keys, branding JSON, manual pipeline runs, RING oracle rate) affect every user — restrict superadmin role count on production clones.

    /api/admin/users/[id]
    Platform admin
    Cannot delete self
    PUT/api/admin/users/[id]/rolePlatform adminBody: { "role": "member" }
    PUT/api/admin/users/[id]/verificationAdmin manual verificationBody: { "isVerified": true, ... }
    POST/api/admin/set-user-rolePlatform adminLegacy: { "uid", "role" }; blocks admin self-demotion

    Not implemented: GET /api/admin/users list/search — use Admin UI server loaders or DatabaseService in custom tooling.

    Payments tab UI: features/auth/components/admin-user-detail-sheet.tsx (opened from admin-user-manager.tsx Eye button) fetches /api/admin/users/${user.id}/payments?limit=50.

    Moderation & verification

    MethodPathNotes
    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

    Store

    MethodPathBody
    POST/api/admin/orders/[id]/status{ "status": "processing" } — enum: new, paid, processing, shipped, completed, canceled

    Platform settings (superadmin)

    MethodPathNotes
    GET/api/admin/platform-settings?namespace=ai|brandingRead namespace
    PUT/api/admin/platform-settingsJSON body: { namespace, data, secrets? }
    POST/api/admin/whitelabel/saveForm POST → branding colors → redirect
    POST/api/admin/saveLegacy branding save (JSON redirect)

    Persistence (verified): features/admin/platform-settings/platform-settings-service.ts reads and writes the platform_settings collection through db() from @/lib/database — not a private pg.Pool. Namespaces ai and branding use readDoc / updateDoc / createDoc with in-process namespace cache (platform-settings-cache.ts).

    EnvEffect
    PLATFORM_SETTINGS_DISABLE_DB=trueReads return defaults / null; writes throw — use for CI or env-only clones

    importPlatformSettingsFromEnv() seeds ai and branding from env + ring-config.json on first boot when DB rows are missing.

    ProcessConductor (superadmin)

    MethodPathNotes
    GET/api/admin/processesLists pipelines
    POST/api/admin/processes/[id]/runManual pipeline trigger
    GET/api/admin/processes/[id]/historyRun history

    Cron equivalents use /api/cron/* + CRON_SECRET — see ProcessConductor docs in Monitoring.

    Web3 desk (superadmin)

    MethodPathNotes
    GET/api/admin/web3/settingsOracle rate, desk config, audit log, gas reserve
    POST/api/admin/web3/settings{ "ringPerUsd": "..." }
    GET/api/admin/web3/gas-reserveSolana fee-payer balance

    Oracle persistence: features/wallet/services/ring-token-oracle.ts stores ringPerUsd and audit rows in platform_settings doc id web3 via the same db() API. When PLATFORM_SETTINGS_DISABLE_DB=true, reads fall back to RING_ORACLE_DEFAULT_RATE (or 100) and writes are blocked.

    Email AI-CRM (platform admin)

    Full route table: Email AI-CRM API — threads, drafts, tasks, contacts, GET /api/admin/email/analytics?range=7d.

    Maintenance (superadmin, use with care)

    MethodPathPurpose
    POST/api/admin/migrate-usersOne-off user migration helper — not for routine ops

    Analytics (not under /api/admin)

    MethodPathAuth
    GET/api/analytics/platform-statsPlatform admin
    GET/api/analytics/web-vitals?scope=platformPlatform admin
    GET/api/analytics/errorsPlatform admin

    UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).

    Example — change role

    1. 1

      Authenticate as admin in browser

      Sign in with an admin or superadmin account.

    2. 2

      PUT role

    3. 3

      Verify

      Re-fetch user or open Admin → Users; role is lowercase in users.data.role.

    Member-facing desk quotes; admin rate via Web3 desk above.

    Advance order status: new → paid → processing → shipped → completed / canceled.

    Email AI-CRM

    Threads, drafts, tasks, analytics — separate admin email namespace.

    Platform analytics

    Dashboard at /admin/analytics — not a monolithic /api/admin/analytics route.

    Typical operator scenarios

    • Inspect payments — Admin → Users → Eye → Payments tab loads GET /api/admin/users/{id}/payments (membership_upgrade + wallet_topup from payment_transactions).
    • Promote a member to confidential — admin UI → PUT /api/admin/users/{id}/role or legacy POST /api/admin/set-user-role.
    • Clear verification backlog — /admin/security?tab=verification (legacy /admin/verification redirects here) → POST /api/admin/verification/procedures/{n}/{action} (approve, reject, request-info, under-review).
    • Pause an abusive entity — moderation queue → POST /api/admin/entity-moderation/block with entityId + reason.
    • Rebrand clone colors — superadmin settings form → POST /api/admin/whitelabel/save (redirects to admin settings).
    • Set RING/USD oracle rate — Web3 desk → POST /api/admin/web3/settings with { "ringPerUsd": "..." }; persisted in platform_settings web3 namespace.

    Superadmin-only changes (AI keys, branding JSON, manual pipeline runs, RING oracle rate) affect every user — restrict superadmin role count on production clones.

    /api/admin/users/[id]
    Platform admin
    Cannot delete self
    PUT/api/admin/users/[id]/rolePlatform adminBody: { "role": "member" }
    PUT/api/admin/users/[id]/verificationAdmin manual verificationBody: { "isVerified": true, ... }
    POST/api/admin/set-user-rolePlatform adminLegacy: { "uid", "role" }; blocks admin self-demotion

    Not implemented: GET /api/admin/users list/search — use Admin UI server loaders or DatabaseService in custom tooling.

    Payments tab UI: features/auth/components/admin-user-detail-sheet.tsx (opened from admin-user-manager.tsx Eye button) fetches /api/admin/users/${user.id}/payments?limit=50.

    Moderation & verification

    MethodPathNotes
    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

    Store

    MethodPathBody
    POST/api/admin/orders/[id]/status{ "status": "processing" } — enum: new, paid, processing, shipped, completed, canceled

    Platform settings (superadmin)

    MethodPathNotes
    GET/api/admin/platform-settings?namespace=ai|brandingRead namespace
    PUT/api/admin/platform-settingsJSON body: { namespace, data, secrets? }
    POST/api/admin/whitelabel/saveForm POST → branding colors → redirect
    POST/api/admin/saveLegacy branding save (JSON redirect)

    Persistence (verified): features/admin/platform-settings/platform-settings-service.ts reads and writes the platform_settings collection through db() from @/lib/database — not a private pg.Pool. Namespaces ai and branding use readDoc / updateDoc / createDoc with in-process namespace cache (platform-settings-cache.ts).

    EnvEffect
    PLATFORM_SETTINGS_DISABLE_DB=trueReads return defaults / null; writes throw — use for CI or env-only clones

    importPlatformSettingsFromEnv() seeds ai and branding from env + ring-config.json on first boot when DB rows are missing.

    ProcessConductor (superadmin)

    MethodPathNotes
    GET/api/admin/processesLists pipelines
    POST/api/admin/processes/[id]/runManual pipeline trigger
    GET/api/admin/processes/[id]/historyRun history

    Cron equivalents use /api/cron/* + CRON_SECRET — see ProcessConductor docs in Monitoring.

    Web3 desk (superadmin)

    MethodPathNotes
    GET/api/admin/web3/settingsOracle rate, desk config, audit log, gas reserve
    POST/api/admin/web3/settings{ "ringPerUsd": "..." }
    GET/api/admin/web3/gas-reserveSolana fee-payer balance

    Oracle persistence: features/wallet/services/ring-token-oracle.ts stores ringPerUsd and audit rows in platform_settings doc id web3 via the same db() API. When PLATFORM_SETTINGS_DISABLE_DB=true, reads fall back to RING_ORACLE_DEFAULT_RATE (or 100) and writes are blocked.

    Email AI-CRM (platform admin)

    Full route table: Email AI-CRM API — threads, drafts, tasks, contacts, GET /api/admin/email/analytics?range=7d.

    Maintenance (superadmin, use with care)

    MethodPathPurpose
    POST/api/admin/migrate-usersOne-off user migration helper — not for routine ops

    Analytics (not under /api/admin)

    MethodPathAuth
    GET/api/analytics/platform-statsPlatform admin
    GET/api/analytics/web-vitals?scope=platformPlatform admin
    GET/api/analytics/errorsPlatform admin

    UI: /admin/analytics → getPlatformAnalytics() (features/analytics/services/get-platform-analytics.ts).

    Example — change role

    1. 1

      Authenticate as admin in browser

      Sign in with an admin or superadmin account.

    2. 2

      PUT role

    3. 3

      Verify

      Re-fetch user or open Admin → Users; role is lowercase in users.data.role.

    Member-facing desk quotes; admin rate via Web3 desk above.