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-операции вместо одиночных запросов в цикле.