Skip to Content
РуководстваPolicy-квоты

Policy-квоты

Для чего это

Policy-квоты предназначены для ограничений, которые ваш продукт проверяет локально без runtime-запросов в BillBill:

  • срок хранения документов;
  • максимальное число guest-пользователей;
  • включение/отключение feature-флагов.

Чем отличаются от metered-метрик

  • Metered metrics: usage отправляется в BillBill, участвует в биллинге и может отклоняться по лимиту.
  • Policy quotas: BillBill хранит конфигурацию, а проверка выполняется у вас (в потребителе), без записи metric events.

Иерархия

product defaults -> plan overrides

  1. На продукте задается базовый набор квот.
  2. На плане задаются переопределения конкретных кодов.
  3. Потребитель получает quota/resolve snapshot и кэширует его локально.

Рекомендованный формат значения

Чтобы избежать magic numbers, используйте связку:

  • valueType: count | bytes | duration | bool | string | json
  • value: строковое сериализованное значение
  • policyState: active | unlimited | disabled

Пример:

  • хранить 30 дней: valueType=duration, value=2592000, policyState=active
  • хранить вечно: policyState=unlimited
  • запретить хранение: valueType=duration, value=0, policyState=active

Кэширование snapshot у потребителя

  • Используйте pull-модель обновления (например, раз в 5 минут).
  • Обновляйте snapshot вне расписания при смене плана/подписки.
  • Используйте etag/version из ответа, чтобы дешево определять изменения.