AACSearch / руководство
Организация и биллинг
Команда и роли, использование, планы и кредиты, API-ключи, безопасность, SSO, SCIM, аудит и профиль.
Команда и роли
/dashboard/team показывает участников организации и ожидающие приглашения.
Участники отсортированы в порядке owner → admin → member.
| Роль | Что она может |
|---|---|
| Member | Просматривать всё; изменять ничего не может. |
| Admin | Управлять всем, кроме биллинга, настроек безопасности и ролей. |
| Owner | Всё, включая биллинг, безопасность и роли. |
Владелец или администратор может пригласить коллегу по email с ролью admin или member — право владения передаётся, а не выдаётся приглашением, поэтому в диалоге приглашения его нет. Ожидающее приглашение можно отозвать, а ссылку для его принятия — скопировать. Участники и приглашения загружаются одним окном до 200 строк, без пагинации.
Смена роли участника ограничена: нельзя изменить собственную роль, роль
приглашения или повысить до владельца без явного подтверждения «Move ownership»,
которое может выполнить только владелец. При удалении самого себя действие
называется Leave и возвращает вас на Overview. Участника, чья роль включает
owner, с этого экрана удалить нельзя вовсе — действие не отображается, поэтому
сначала нужно передать право владения; собственная защита API последнего
владельца показывается как встроенная ошибка, когда сервер отклоняет запрос.
Пользовательские роли
/dashboard/team/roles назначает роли, а владельцам позволяет их определять.
Сначала на экране перечислены участники с элементом Assign roles, затем
каталог ролей. Встроенные роли показаны только для чтения вместе с наборами
разрешений (или «Every permission»). У пользовательской роли есть имя, которое не
может быть owner, admin или member (строчные латинские буквы, цифры, - и
_), необязательное описание, набор разрешений, сгруппированных по домену и
действию, — требуется хотя бы одно, — и необязательное ограничение конкретными
коллекциями через запятую: роль, ограниченная коллекциями, может записывать
только в них. При удалении роли её обладатели возвращаются к роли member.
Использование
/dashboard/usage показывает текущий период; в заголовке — название тарифа,
дата сброса и, если API приостановлен, предупреждающий бейдж API paused.
Экран начинается со статуса сервиса
и уведомлений о достижении 50%, 80% и 100% квоты запросов, а также прогноза,
если при текущей интенсивности квота исчерпается до сброса. Окно
переключается между 7, 30 и 90 днями.
Карточки счётчиков показывают использованные и оставшиеся API-запросы, записи
(документы во всех коллекциях), баланс кредитов и прогнозируемый итог за период
с оценкой числа дней до исчерпания. Составная диаграмма разбивает использование
на поиск, индексацию, AI и прочее, с экспортом в CSV (недоступен, пока ряд пуст;
файл называется usage-<first-date>.csv); списки с индикаторами прогресса
детализируют использование по типу операции и по функциям, расходующим кредиты.
В футере — ссылки на экран смены тарифа, пополнение кредитов и счета. Во время
загрузки каждая карточка отображается как скелетон; при ошибке загрузки
показывается уведомление «Could not load usage», а пустые периоды отмечены
«No request data yet.» и «No credit spend in this window.»
Тарифы, использование и биллинг
Существует три тарифа. Цены хранятся у платёжного провайдера и показываются при оформлении; консоль перечисляет, что входит в каждый тариф:
| Тариф | Запросов / месяц | Включённые кредиты | Возможности |
|---|---|---|---|
| Free | 1,000 | 1,000 | Поиск, синонимы, стоп-слова. Карта не требуется. |
| Starter | 5,000 | 10,000 | Всё из Free, а также курирование, правила поиска, аналитика и рекомендации. |
| Pro | 50,000 | 100,000 | Всё, включая эксперименты, ассистентов, голосовой поиск, поиск по изображениям, семантический поиск и поиск на естественном языке. |
Квота запросов проверяется на каждом запросе к /v1 ещё до прокси движка, и API
отвечает 429, как только лимит периода исчерпан. Кредиты оплачивают AI-операции — реплики ассистента,
голосовой поиск, поиск по изображениям и семантический поиск, эмбеддинги,
предложения синонимов — и начисляются при первой активации подписки (или при
открытии кошелька бесплатной организации).
/dashboard/billing/upgrade сравнивает тарифы по возможностям, с вкладками
помесячной и годовой оплаты, и повышает или понижает тариф через платёжного
провайдера. Текущий тариф отмечен обводкой карточки и бейджем Current в
сравнении; кнопка карточки Free недоступна («Current plan» или
«Cancel the subscription to return here»). Кнопка заранее знает, повышение это
или понижение, и требует роли владельца или администратора. Примечание гласит:
«Prices are shown at checkout. Unsure which plan fits? Write to support from the
Support screen.»
Кошелёк и кредиты
/dashboard/billing показывает баланс кредитов и постраничный журнал операций.
Каждая запись — пополнение, списание за использование или корректировка, с
указанием основания и баланса после операции. Для пополнения доступны два
провайдера: Stripe (карта, USD, $1–5,000) и Robokassa (RUB,
₽100–500,000), у каждого есть предустановленные суммы и произвольная сумма,
оценка «≈ N credits» и возврат в консоль со статусом, который показывается на
странице (?topup=…, и ?plan=… при оформлении тарифа).
Точное количество кредитов фиксирует API при оформлении.
Экран ссылается на Usage — кнопкой в заголовке и карточкой «Looking for request meters?», — содержит встроенный раздел Invoices с пятью последними счетами и ссылкой View all, а также карточку Service status:
- Pause API / Resume API — переключатель, доступный только владельцу, который
приостанавливает организацию; после этого каждый запрос с её ключами получает
ответ
402, но ничего не удаляется. - Состояние исчерпанной квоты (
429до сброса периода) со ссылкой на повышение тарифа. - Состояние пустого кошелька: AI-операции отвечают
402, а поиск продолжает работать.
Состояние подписки
Уведомления на экране биллинга (и, в более компактном виде, на всех остальных экранах дашборда) охватывают три состояния, требующих внимания:
- Trial — сколько дней осталось, с действием для добавления способа оплаты.
- Past due — платёж не прошёл; тариф продолжает работать, пока провайдер повторяет попытки, а обновление карты восстанавливает его.
- Canceled — организация возвращена на бесплатный уровень (поиск, синонимы, стоп-слова) и может оформить подписку заново.
/dashboard/billing/payment-failed — отдельный экран для неоплаченной
задолженности: он объясняет, что провайдер прекратил повторные попытки, что
каждый запрос получает ответ 402, что ничего не удалено, и даёт ссылки на
обновление карты и на неоплаченные счета. Неоплаченные счета перечислены с
номером, датой выставления и суммой задолженности и ведут на страницу счёта;
оплата одного из них возобновляет работу API.
Если проблем с оплатой нет, экран сообщает «No payment issue right now», а в
его футере есть ссылки на все счета и на Support.
Счета и способы оплаты
/dashboard/billing/invoices показывает последние счета (до лимита API в 100)
с номером, датой, статусом и суммой к оплате — а также показатель
«X outstanding» для открытых, частично оплаченных счетов — и ссылки на
размещённый счёт и PDF, если провайдер их опубликовал. Страница счёта
показывает статус, дату выставления, расчётный период, действия View on Stripe
и Download PDF (недоступны, если документа нет), а также позиции с
периодом и количеством, промежуточный итог, налог (если он ненулевой), итог и
сумму задолженности, если она есть.
Страница счёта повторно проверяется на принадлежность организации, поэтому
идентификатор счёта другой организации не будет найден.
Способы оплаты (карты) находятся на экране биллинга: платёжная система, последние четыре цифры, бейджи «по умолчанию» и «истёк срок», а добавление и управление открывают платёжный портал провайдера. Изменять их могут только владельцы и администраторы.
Настройки
/dashboard/settings — собственная конфигурация организации с вкладками
General, API keys, Security, SSO, SCIM и Danger zone.
General
Название, slug и URL логотипа, с предпросмотром логотипа (если URL не работает
или пуст, показываются инициалы организации) рядом с названием и
slug. Slug должен соответствовать
^[a-z0-9]+(?:-[a-z0-9]+)*$, а его доступность проверяется при сохранении,
а не во время ввода; консоль различает «уже занят» и «не удалось
проверить». Несохранённые изменения защищены от потери. Сохранять могут только
владельцы и администраторы.
API-ключи
/dashboard/settings/api-keys создаёт и отзывает ключи, которыми
аутентифицируется API тенанта. Экран доступен только владельцам и
администраторам — участник вместо списка ключей видит состояние «Not authorized».
- Scope —
search(безопасно использовать в браузере: поиск, рекомендации, события и AI для посетителей) илиfull(только на сервере, любые операции). См. API-ключи, области доступа и кредиты. - Expiry — необязательная дата, применяемая в конце выбранного дня, чтобы «истекает сегодня» не означало «уже истёк».
- Restrictions — для каждого ключа: коллекции, к которым он имеет доступ, принудительный фильтр (ACL документа, объединяемый через AND с каждым поиском), поля, которые он может указывать, разрешённые IP-адреса или диапазоны CIDR, разрешённые источники (origins) и лимит запросов в минуту поверх квоты организации.
- В таблице показаны метка, префикс ключа, область доступа, сводка ограничений, даты создания и истечения, а также последнее использование (с IP). Меню каждой строки позволяет изменить Restrictions, выполнить Rotates — ротацию ключа (новый секрет сразу заменяет старый и показывается один раз) — или Revokes — отозвать ключ после подтверждения. Строки можно выбрать для массового действия Revoke selected.
- Полный секрет показывается один раз — при создании или ротации; после этого хранится только префикс. Отозванные ключи переносятся в отдельную таблицу аудита (метка, ключ, область доступа, дата отзыва) без действий.
Security
Три настройки уровня организации, изменяемые владельцами:
- Список разрешённых IP для консоли (по одному адресу или CIDR на строку; пустое значение означает любой адрес; ваш текущий адрес должен быть включён).
- Максимальный срок сессии в часах (пустое значение означает без ограничений).
- Срок хранения журнала аудита в днях (пустое значение хранит записи бессрочно; более старые записи удаляются ежесуточно ночью).
Срок сессии или хранения, не являющийся целым числом не меньше 1, отклоняется. Вкладка начинается с раздела Single sign-on & SCIM, который лишь ссылается на вкладки SSO и SCIM — сами настройки находятся там, а не здесь.
SSO
/dashboard/settings/sso показывает, какие провайдеры входа есть в развёртывании,
в виде четырёх бейджей — OIDC · <providerId> (или off), Google on/off, GitHub on/off и
Password · on. OIDC, Google и GitHub
настраиваются для всего развёртывания через переменные окружения API, а не для
отдельной организации, а SAML-провайдер подключается через OIDC. Когда OIDC
включён, вкладка показывает
callback URL, который нужно зарегистрировать у провайдера идентификации (Okta,
Entra ID, Auth0, Keycloak и аналогичных); в противном случае сообщается, что в
этом развёртывании он не настроен.
Владелец может сделать SSO обязательным, что запрещает вход по паролю для всех
участников — переключатель недоступен, пока ни один провайдер не настроен и
настройка выключена. Чтобы добавить провайдера, обратитесь в поддержку; то же
касается сопоставления членства по домену email на уровне развёртывания.
SCIM
/dashboard/settings/scim предоставляет участников из провайдера идентификации
по SCIM 2.0 по адресу {API_URL}/scim/v2 (он показан в карточке с кнопкой
копирования и подсказками для Okta, Entra ID и OneLogin). Владельцы создают
именованные bearer-токены (токен показывается один раз) и могут их отзывать;
отзыв немедленно останавливает синхронизацию.
Таблица показывает префикс каждого токена, дату создания и последнего
использования — отозванный токен остаётся в списке с датой отзыва. Панель
недавней активности показывает последние 20 операций предоставления из журнала
аудита. Показателя «последняя полная синхронизация» нет — последнее
использование является наиболее близким реальным сигналом.
Danger zone
/dashboard/settings/danger содержит два действия уровня организации:
- Export organization data — загрузка JSON с участниками, метаданными API-ключей (без секретов), вебхуками, коннекторами, хостингом, биллингом и историей аудита. Доступно владельцам и администраторам.
- Delete organization — требует ввести название организации и доступно только владельцу; после этого консоль сбрасывает активную организацию и возвращает на Overview. Действия передачи здесь нет; право владения передаётся через выбор роли на экране Team.
Журнал аудита
/dashboard/admin/audit-log показывает недавнюю активность организации —
последние 200 записей, по 25 на страницу. Каждая строка показывает время (точная
метка времени при наведении), действие, исполнителя, объект и просмотр
метаданных. Для неизвестных исполнителей показывается исходный идентификатор и
пометка, что они больше не являются участниками; системные изменения отмечены
«system».
Записи можно фильтровать по тексту действия, объекта и исполнителя, а также
переключателем Destructive, который отбирает действия удаления, изъятия,
отзыва, отключения, паузы, приостановки, отката, сброса и очистки (с их
количеством). В заголовке показано число записей и показатель «N of M»,
/ переводит фокус в фильтр (с подсказкой клавиши), а Esc очищает его;
при фильтре без совпадений предлагается Clear filters и отображается
состояние «Nothing matches». Кнопка в заголовке открывает Admin resources.
Читать журнал может любой участник.
Профиль
Ваша учётная запись доступна через меню аватара.
- General (
/dashboard/profile) — полное имя и URL изображения профиля (загрузки нет; очистка возвращает инициалы). Email здесь доступен только для чтения, а для неподтверждённой учётной записи есть действие Resend verification email. - Security (
/dashboard/profile/security) — смена пароля (минимум 15 символов, с встроенной проверкой совпадения и длины) с возможностью выйти на всех остальных устройствах, и список активных сессий с операционной системой и браузером, а также IP-адресом для всех сессий, кроме текущей. Завершение другой сессии требует подтверждения; для текущей сессии действие называется Sign out и возвращает на страницу входа. Раздел Two-factor authentication позволяет самостоятельно включить вход через приложение-аутентификатор: ввести пароль, отсканировать QR-код, подтвердить код и сохранить одноразовые резервные коды; отключение снова требует пароль. Это самостоятельная настройка без принуждения на уровне организации. - Danger (
/dashboard/profile/danger) — удаление собственной учётной записи с подтверждением паролем. Единственного владельца организации нельзя удалить, пока право владения не передано.
Устаревшие маршруты
/dashboard/wallet, /dashboard/quota, /dashboard/api-keys и
/dashboard/assistant сохранены как перенаправления на Billing, Usage, API keys и
Chat playground соответственно, поэтому старые ссылки продолжают работать.