Перейти к содержимому
supastack
Обзор документации
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/modules/observability.md (or send Accept: text/markdown).

Аудит, аналитика и ошибки

Понимайте активность с контекстом воркспейса и очищенными данными событий.

Задать вопрос об этом руководстве
Открыть в

Найдите полезную информацию, когда действие не удалось

Наблюдаемость означает наблюдение за тем, что делает ваше приложение. Начните с терминала, на котором работает ваш веб-сервер: повторите одно неудачное действие и прочитайте первую ошибку и любой идентификатор корреляции, метку, связывающую сообщения из одного и того же запроса. Поделитесь командой, временем и устраненной ошибкой при обращении за помощью; не делитесь файлами .env или токенами.

Для размещенных отчетов об ошибках следуйте разделу «Работоспособность и операции», чтобы настроить поддерживаемые параметры мониторинга в apps/web/.env.local или на панели мониторинга среды хоста. Сохраните и перезапустите сервер. Запустите сбой контролируемого теста в тестовой среде и убедитесь, что он появляется в правильном контексте рабочей области. Настраиваемый мониторинг не подтверждает получение события.

ALERT_WEBHOOK_URL — это дополнительный пункт назначения HTTPS для оповещений о сбоях доставки заданий и терминалов через веб-перехватчик. Если вам это нужно, создайте совместимую входящую конечную точку и сохраните ее URL на стороне сервера; в противном случае оставьте его пустым. Попросите агента смоделировать один сбой и подтвердить ровно одно оповещение без каких-либо секретов в его тексте. Не инициируйте платную работу или сбои в учетных записях клиентов для этого теста.

Ведите аудит-лог воркспейса

Записи аудита фиксируют изменения вроде обновлений конфигурации провайдеров внутри воркспейса. Разрешайте аутентифицированный воркспейс до чтения или записи этих записей и сохраняйте эту область при добавлении продуктовых событий.

Записывайте действие и идентификаторы, нужные для его понимания. Креденшелы провайдеров и другие чувствительные значения должны оставаться вне полезной нагрузки аудита и логов.

Захватывайте продуктовые события

Пакет наблюдаемости предоставляет адаптер AnalyticsClient и значения AnalyticsEvent в области воркспейса. Каждое событие несёт имя, отдельную идентичность, workspaceId и необязательные свойства.

Используйте createObservability для маршрутизации событий через настроенный клиент аналитики. Структурированные свойства очищаются до доставки; держите чувствительный свободный текст также вне имён событий и значений свойств.

Сообщайте об ошибках с безопасным контекстом

ErrorClient захватывает исключения с тегами workspaceId и структурированным дополнительным контекстом. Общий слой наблюдаемости очищает исключения и редактирует чувствительный контекст до пересылки настроенному клиенту.

Используйте локальные адаптеры для проверки захваченных событий и исключений без вызова провайдера мониторинга. Тестируйте, что теги воркспейса остаются и креденшелы удалены, до включения внешнего назначения.

Отслеживание запроса по задачам, заданиям и веб-перехватчикам

Границы входа создают идентификатор корреляции corr_<uuid>, который связывает исходный запрос с работой, которую он запускает. При отправке AI-задачи идентификатор отмечается в полезных данных задачи и событии ai_task_submit, каждый получатель веб-перехватчика для выставления счетов создает один веб-перехватчик для каждого запроса, а планировщик создает один для каждого отправленного задания.

Один и тот же идентификатор используется в свойствах событий job.completed и ai_task_completed, дополнительных функциях captureException, полезной нагрузке реестра webhook_event и каждой мета полезной нагрузки webhook_delivery — поэтому он попадает в подписанное тело, которое получает подписчик. Отсутствующие или неправильно сформированные идентификаторы допускаются: потребитель создает новый идентификатор вместо того, чтобы отклонять старые строки.

Оповещение о реальных сбоях

Установите для ALERT_WEBHOOK_URL любую конечную точку HTTPS, которая принимает JSON POST в форме {текст, имя, серьезность, контекст}; входящий веб-перехватчик в стиле Slack работает как есть. Оповещения выполняются по принципу «выпустил и забыл» с пятисекундным тайм-аутом, при неудачной доставке регистрируется одно консольное предупреждение, а оповещение выдает сигнал, пока переменная не установлена.

Отправленные оповещения — job.failed (предупреждение — обработчик задания сгенерировал или тип задания неизвестен) и webhook.delivery_failed (критическое — только когда исходящая доставка достигает сбоя терминала после последней попытки; обычные повторные попытки остаются без ответа, и каждая строка доставки выдает предупреждение не более одного раза).

Измеряйте продолжительность и транслируйте структурированные журналы

serverObservability.measure рассчитывает время асинхронной операции и генерирует аналитическое событие <name>.duration, переносящее значение periodMs — в случае успеха или неудачи, без маскировки исходной ошибки. Выполнение задания ai.task.execute уже завершено, поэтому продолжительность выполнения задачи попадает в настроенный клиент аналитики.

serverObservability.logger записывает одну строку JSON для каждой записи в стандартный вывод с базовыми полями среды и службы; общий уровень редактирования удаляет секреты до того, как будет выдана какая-либо строка.

Часто задаваемые вопросы

14 вопросов

Что такое supastack?

supastack — модульная основа для создания SaaS-продуктов с AI. Она объединяет общую инфраструктуру, чтобы вы могли сосредоточиться на продуктовых функциях.

Поддерживает ли он web и mobile?

Да. supastack включает приложения Next.js и Expo как отправные точки для web- и мобильных интерфейсов.

Какая аутентификация включена?

Better Auth покрывает e-mail/пароль, OTP и социальный вход. Личные воркспейсы провижинируются вместе с аккаунтом, чтобы продуктовые записи были ограничены с первого дня.

Как он поддерживает AI?

supastack включает настраиваемый мультипровайдерный AI, учёт использования, бюджеты и зашифрованную поддержку bring-your-own-key.

Как обрабатываются подписки?

Для продуктов на ките Stripe-биллинг, подписки и права доступа образуют основу платного доступа. Секреты провайдеров остаются только на сервере.

Где живёт мой продуктовый код?

Продуктовые функции остаются в отдельном коде, а продукт настраивает и интегрирует модули основы supastack.

Как устроены цены supastack?

Кит — разовая покупка с пожизненными обновлениями: один фреймворк за $249 (временная стартовая цена — скидка $100 от стандартной цены $349) или все фреймворки (Next.js, iOS, Android) за $499 (временная стартовая цена — скидка $100 от стандартной цены $599), плюс $75 за каждое дополнительное место разработчика. Без подписки на кит. Оплата на этом сайте доставляет лицензионный ключ по e-mail, доступ к репозиторию — через приглашение GitHub.

Как воркспейсы ограничивают мои данные?

Записи пользователей ограничены по workspaceId. Идентичность, права доступа, AI-использование, события биллинга и записи аудита остаются внутри границы личного воркспейса.

Как работают фоновые задачи?

Trigger.dev — явный рантайм задач. Контракт JobRunner обещает только enqueue, status и cancel — семантика workflow остаётся специфичной для Trigger.dev и явной.

Чем почта отличается от рассылок?

Транзакционная почта покрывает продуктовые сценарии вроде уведомлений о завершении. Холодные рассылки и кампании — забота продукта, вне почтового модуля этого кита.

Как работают покупки в мобильном приложении?

Мобильное приложение поддерживает нативные покупки и восстановление через RevenueCat, а сервер проверяет доступ. Настройте аккаунты магазинов и завершите тестирование на устройствах перед публикацией. Веб-оплата остается отдельной.

Где хранятся ключи AI-провайдеров?

Bring-your-own-key креденшелы зашифрованы и остаются только на сервере. Ключи удаляются из логов; использование и бюджеты видны на уровне воркспейса.

Какие способы оплаты принимает оформление заказа?

Оформление заказа на Stripe принимает карты, а после включения кошельков в аккаунте Stripe может также предлагать Alipay и WeChat Pay — удобно для покупателей из Китая. Авторизации кошельков подтверждаются асинхронно, поэтому страница лицензии обновляется, как только платёж завершается.

Могу ли я получить возврат средств?

После получения доступа к репозиторию supastack остается вашим навсегда, поэтому возврат средств невозможен. Но будьте уверены: вы получаете полный исходный код с пожизненными обновлениями для создания и запуска неограниченного числа продуктов для себя или клиентов. Вы лишь не можете перепродавать код или распространять репозиторий как стартовый набор или шаблон.

RU
Тема