Перейти к содержанию

Post-MVP: отдельный модуль админ-панели

Админ-панель целиком исключена из MVP: не создаются web-интерфейс, admin role, /api/v1/admin endpoints или административный CRUD. Этот документ — только backlog будущего отдельного модуля; его пункты не являются критериями готовности текущего MVP и не должны попадать в проектирование ближайшей БД без отдельного решения.

Операционная устойчивость MVP обеспечивается worker-ами, идемпотентностью, audit events, структурными логами, метриками, alert-ами и проверяемыми runbook-командами. Это не скрытая административная панель.

Доступ

Когда модуль будет включён в scope, минимум понадобятся роли/permissions:

  • support: пользователи, статусы и жалобы без финансовых секретов/документов;
  • practitioner_manager: анкеты, документы, верификация и санкции;
  • content_editor: шаблоны, axes/methodology publication, disclaimers;
  • finance: платежи, refund workflow, reconciliation и settlements;
  • analyst: агрегированные метрики и экспорт без лишних ПДн;
  • super_admin: выдача permissions и критические настройки.

MFA для администраторов, короткая session, IP/device alerts и запрет shared accounts обязательны до production-релиза будущего модуля. Выдача прав, просмотр чувствительных данных и выгрузки аудируются.

Разделы

Dashboard

  • funnel по шагам input→calculation→registration→paywall→payment с UTM/channel/cohort;
  • M2/M3 renewal, MRR/revenue/refunds, CAC input и LTV projection;
  • активные подписки, цели, заявки/повторы консультаций;
  • failed calculations/AI jobs/webhooks/notifications, queue lag и alerts;
  • пилотные ориентиры из PRD и дата свежести каждого виджета.

Метрики должны строиться из versioned событий/финансовых фактов, а не из изменяемых текущих статусов.

Users

  • поиск по точному e-mail/ID, status, consent and entitlement overview;
  • sessions revoke, block/unblock с reason, data export/deletion workflow;
  • история birth profiles и расчётов; raw ПДн показываются только при необходимости;
  • impersonation по умолчанию не делать. Если появится — read-only banner, отдельное permission и полный audit.

Calculation operations

  • artifacts, input/result hash, algorithm/engine/dataset versions и duration;
  • failure code без секретов, безопасный retry того же versioned input;
  • сравнение с новой версией методики без overwrite старого результата;
  • fixtures/верификация и процент расхождений.

Администратор не редактирует долготы, дома, числа или арканы вручную.

AI/content

  • generation jobs, cache hit, model/prompt/policy version, tokens/cost/latency;
  • schema/safety failure, redacted input/output, retry и review/publish/reject;
  • управление draft/published/retired версиями axes mappings, статичных подписей и disclaimers;
  • жалобы пользователя, связь каждого тезиса с evidence refs.

Изменение prompt/axes не переписывает уже опубликованные результаты.

Practitioners/consultations

  • ручное создание/invite, документы в отдельном защищённом viewer, interview notes;
  • approve/reject/suspend с reason, профиль/кейсы/услуги и каталог visibility;
  • заявки по состояниям, отмены/no-show, споры, bypass incidents и санкции;
  • settlement/commission после утверждения юридической модели.

Billing

  • orders, attempts, provider objects, subscriptions, entitlements, refunds и ledger;
  • mismatch queue после webhook/reconciliation;
  • retry только transport-safe операции с тем же idempotency key;
  • refund создаётся через отдельный подтверждаемый workflow;
  • запрет ручного mark succeeded, удаления и произвольного редактирования суммы;
  • CSV/реестры с отдельным export permission и watermark/audit.

Notifications и system health

  • delivery state, template version, provider response, retry/dead-letter;
  • suppression/consent и тестовая отправка только на allowlisted адрес;
  • release version, DB/worker/provider health, queue depth, cron last run;
  • audit log с actor/action/target/reason/requestId и redacted diff.

Возможные endpoints будущего модуля

Base path /api/v1/admin:

  • GET /dashboard/funnel|revenue|operations;
  • GET /users, GET /users/:id, POST /users/:id/block|unblock|revoke-sessions;
  • GET /calculations, POST /calculations/:id/retry;
  • GET /generations, POST /generations/:id/retry|publish|reject;
  • GET/POST/PATCH /content/... с publication transitions;
  • GET/POST/PATCH /practitioners/..., actions approve|reject|suspend;
  • GET /consultations, actions resolve-dispute|mark-no-show по state machine;
  • GET /payments|subscriptions|refunds|reconciliation, POST /refunds/:id/approve;
  • GET /notifications|jobs|audit-log;
  • POST /exports для асинхронной ограниченной выгрузки.

Каждый будущий action endpoint принимает reason, expected current version/state и idempotency key. Массовые действия на первом этапе модуля лучше не давать, кроме безопасных экспортов: цена ошибки выше выигрыша для 30–50 клиентов.