API Quotas with Header Filters
Filter by Header Quotas enable precise control over API usage by setting limits based on request headers, rather than just URLs. This allows for more flexible quota management, such as distinguishing between environments or customer tiers, ensuring resources are allocated efficiently and tailored to specific needs.
Group Configuration: Production vs. Staging
This configuration defines two user groups, production and staging, with different quota limits. The production group receives a higher quota than the staging group to reflect the greater resource needs of production environments.
/etc/lunar-proxy/quotas/{fileName}.yaml
quotas:
  - id: LimiterMonth
    filter:
      url: api.website.com/* # Or an IP such as X.X.X.X/*
    strategy:
      fixed_window:
        static:
          max: 10000000
          interval: 1
          interval_unit: month
          monthly_renewal:
            day: 1
            hour: 11
            minute: 0
            second: 0
            timezone: UTC
internal_limits:
  - id: ProductionQuota
    parent_id: LimiterMonth
    filter:
      headers:
        - key: x-lunar-consumer-tag
          value: production
    strategy:
      fixed_window:
        static:
          max: 10000
          interval: 1
          interval_unit: day
  - id: StagingQuota
    parent_id: LimiterMonth
    filter:
      headers:
        - key: x-lunar-consumer-tag
          value: staging
    strategy:
      fixed_window:
        static:
          max: 2000
          interval: 1
          interval_unit: day