Predictor X

Аутентификация и токены

В Предиктор Икс есть три типа токенов — для браузера, CLI и демона. Разбираемся, когда какой использовать.

В Предиктор Икс есть три типа токенов, по одному для каждого контекста: веб-интерфейс в браузере, командная строка (CLI) со скриптами и демон. Все три представляют вас, но их области действия и сроки жизни различаются.

Три типа токенов

ТокенФорматГде используетсяСрок жизни
JWT cookiepredictorx_auth cookie (HttpOnly)Веб-браузер30 дней
Личный токен доступа (PAT)Начинается с prdx_CLI, скрипты, прямые API-запросыПо умолчанию бессрочный; при создании через API можно указать expires_in_days
Токен демонаНачинается с mdt_Связь демона с серверомУправляется самим демоном

В повседневной работе вы будете взаимодействовать только с первыми двумя. Токен демона создается и обновляется автоматически командой predictorx daemon login — о нем вам думать не нужно.

К чему дает доступ каждый токен

Маршрут APIJWT cookiePATТокен демона
/api/user/* (действия пользователя)
/api/workspaces/:id/* (уровень рабочего пространства)
/api/daemon/* (только для демона)
WebSocket /ws (push в реальном времени)✓ (cookie)✓ (аутентификация через первое сообщение)

PAT открывает доступ практически ко всему — он представляет «вас целиком». Токен демона может выполнять только то, что нужно демону: получать задачи и сообщать о результатах.

Оба могут обращаться к /api/daemon/*, но их полномочия различаются. PAT представляет всего пользователя — после аутентификации он видит все рабочие пространства, к которым у вас есть доступ. Токен демона привязан к конкретному рабочему пространству при создании и может взаимодействовать только с ресурсами внутри этого пространства. В продакшене используйте для демона именно токен демона — не используйте PAT в качестве «быстрого решения», иначе вы предоставите демону гораздо больше прав, чем ему необходимо.

Вход в систему

Email + код подтверждения

  1. Введите свой email; сервер отправит 6-значный код.
  2. Введите код; сервер выдаст JWT-cookie (для браузера) или обменяет его на PAT (для CLI).

Для тех, кто использует self-hosting: оставляйте PREDICTORX_DEV_VERIFICATION_CODE пустым в публичных инстансах. Если вы зададите фиксированный тестовый код, любой, кто сможет запросить код, сможет войти в систему с этим значением, пока APP_ENV не переведен в режим production. См. Настройка аутентификации при self-hosting.

Google OAuth

Нажмите Sign in with Google и пройдите стандартную процедуру OAuth. Для self-hosting требуется настройка GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET и redirect URI — см. Настройка аутентификации при self-hosting.

Создание, просмотр и отзыв PAT

Создать PAT можно двумя способами:

  • Веб-интерфейс: Настройки (Settings) → Personal Access Tokens → New token
  • CLI: predictorx login создает токен автоматически, если локальный PAT отсутствует

Полный текст PAT отображается только один раз при создании. После обновления страницы или закрытия диалогового окна увидеть его снова будет невозможно.

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

Просмотр существующих PAT (название, дата создания, дата последнего использования — не сам токен) доступен в разделе Settings → Personal Access Tokens.

Отзыв PAT: нажмите Revoke в списке. Отзыв вступает в силу немедленно — следующий запрос с этим токеном будет отклонен с ошибкой 401.

Выход из системы удаляет только локальный токен

Когда вы выполняете predictorx auth logout или нажимаете «Выйти» в веб-интерфейсе:

  • Локальный токен удаляется — CLI удаляет PAT из ~/.predictorx/config.json, браузер удаляет cookie.
  • PAT остается валидным на сервере — если кто-то получил ваш PAT до того, как вы вышли из системы (например, скопировав его на другую машину), они по-прежнему могут его использовать.

Если вы подозреваете, что ваш PAT был скомпрометирован, не ограничивайтесь выходом из системы. Перейдите в Settings → Personal Access Tokens и отозвите (revoke) токен. Только отзыв немедленно аннулирует скомпрометированный токен.

Следующие шаги