Жизненный цикл подписки

Жизненный цикл подписки A lifecycle diagram generated by Archify. 01 / Рабочий путь 02 / Ограничения вендора 03 / Остановка Подключается · онбординг в Ainima · Рабочий путь Подключается онбординг в Ainima Активна · участвует в выдаче · Рабочий путь Активна участвует в выдаче Обновление токена · в Ainima, single-flight · Рабочий путь Обновление токена в Ainima, single-flight Cooldown · окно, модель, функция · Ограничения вендора Cooldown окно, модель, функция Исчерпан кредит · insufficient_quota · Ограничения вендора Исчерпан кредит insufficient_quota Отключена · оператор · Остановка Отключена оператор Нужно переподключение · нужно, оператор · Остановка Нужно переподключение нужно, оператор подключено 429 с областью reset / ревалидация ≥ раз в час токен истекает / 401 успех: запись по поколению RT неизвестный исход оператор переподключает оператор insufficient_quota ревалидация 429/503 от token endpoint Legend начало в работе ограничение рабочее требует оператора отключено

Рабочий путь

  • • Подключается → Активна после успешного онбординга
  • • Активна ⇄ Cooldown: 429 с областью (окно, модель, функция, кредиты) выводит из выдачи пару «подписка + область»
  • • Reset вендора — подсказка: ревалидация при reset и не реже раза в час, потолок 7 суток + 1 ч

Обновление токена

  • • Single-flight: запись claim в журнал до отправки refresh; успех — условная запись по поколению refresh token (в Ainima)
  • • 429/503 от token endpoint: refresh не повторяется сразу, «нужно переподключение» не ставится, подписка в Cooldown
  • • Неизвестный исход, refresh_token_reused, invalid_grant после перечитывания: «Нужно переподключение»

Не меняет состояние

  • • 403 шлюза клиента или edge вендора: состояние не меняется, алерт оператору
  • • Обрыв потока после первого байта и 5xx или connect_timeout до первого байта состояние не меняют: повтор в пуле один раз, резерв при обрыве уходит в hold
  • • insufficient_quota: отдельное состояние «Исчерпан кредит вендора», не Cooldown