Gymterview
middle

Какие ограничения и лимиты существуют в Jira Cloud API?

При работе с Jira Cloud API необходимо учитывать многочисленные ограничения, которые влияют на архитектуру приложения: rate limiting, пагинацию, Forge-лимиты.

Rate Limiting

Тип Лимит Описание
Per-user ~100 requests/min Зависит от эндпоинта и плана
Per-app (Connect) ~500 requests/min На один Jira site
Per-app (Forge) ~100 requests/min Product API calls
Concurrent 10 Одновременные запросы от приложения

Пагинация

Эндпоинт Max maxResults Default
/search (JQL) 100 50
/project 50 50
/user/search 1000 50
/board/{id}/issue 100 50

Forge-специфичные лимиты

Ресурс Лимит
Invocation timeout 25 секунд (sync), 55 секунд (async)
Memory 512 MB
Payload size 6 MB (request/response)
Storage key-value 32 KB per key
Storage total 50 GB per app per site
Entity Storage queries 50 per invocation
External fetch 20 секунд timeout
Console log 4 KB per invocation
Deploy size 250 MB

Обработка rate limiting

Пример
// Java (Connect/Integration)
@Component
public class RateLimitedJiraClient {

    private final RetryTemplate retryTemplate;

    public RateLimitedJiraClient(RestClient restClient) {
        this.retryTemplate = RetryTemplate.builder()
                .maxAttempts(5)
                .retryOn(RateLimitException.class)
                .exponentialBackoff(1000, 2.0, 30000)
                .build();
    }
}

Частые ошибки

  • Цикл из 1000 REST-запросов по одному — мгновенно упираемся в rate limit
  • Игнорирование пагинации — получение первых 50 результатов как будто это все
  • Хранение >32KB в одном ключе Storage — ошибка записи
  • Синхронная обработка тяжёлой логики в 25-секундном окне Forge

Как используется в 2026

  • Atlassian постепенно увеличивает лимиты, но базовые ограничения остаются
  • Forge Async Events позволяют обходить 25s лимит через цепочку invocations
  • Atlassian рекомендует batch/bulk подход: минимум API-вызовов, максимум данных за вызов
  • Мониторинг usage и rate limits через Atlassian Developer Console

На собеседовании: покажите знание конкретных цифр: 100 requests/min per user, maxResults=100 для /search, 25s timeout Forge. Retry-After header — ваш друг. Архитектура Cloud-приложения должна учитывать лимиты с самого начала. Используйте bulk-операции вместо одиночных запросов в цикле.