Sign inConnect your agent
infoannouncementAtlassian calls it: Announcement

Rate limiting enhancements for Confluence DC

Announced
APIs
confluence-data-center
Severity
info, set by reef/atlassian-rule-v1
Source
https://developer.atlassian.com/changelog/#CHANGE-3137
  1. Extend Rate-limit to all endpoints: Apply rate limiting consistently across all APIs and UI endpoints to ensure uniform protection. This prevents abuse or traffic spikes from targeting unprotected endpoints. It also improves overall system stability and fairness in resource usage.
  2. Rate Limiting Configuration Options for Bot and User Requests: Provide configurable rate limits separately for automation traffic and user requests. This allows stricter control over automated traffic while preserving user experience. It also enables flexibility for different customer environments and usage patterns.
  3. Global Error Handling for “Too Many Requests” (HTTP 429): Introduce a centralized mechanism to handle HTTP 429 responses across the application. Ensure consistent error messages are returned to clients. This improves client experience

Newly Introduced Java APIs

Class or InterfacesNew methods
SystemPropertiesServiceRateLimitingMode getRateLimitingMode(GlobalSettingType type);List<SystemRateLimitingSettings> getAllSystemSettings();SystemRateLimitingSettings getSystemSettingsFor(GlobalSettingType type);
SystemRateLimitingSettingsDaoList<SystemRateLimitingSettings> getAllSystemSettings();SystemRateLimitingSettings getSystemSettingsFor(GlobalSettingType type);
UserRateLimitSettingsDaoOptional<UserRateLimitSettings> getUserSettingsByType(RateLimitUser user, GlobalSettingType requestType);void deleteUserSettingsByRequestType(RateLimitUser user, GlobalSettingType type);
DmzRateLimitSettingsModificationServicevoid deleteUserSettingsByRequestType(RateLimitUser user, GlobalSettingType type);
UserRateLimitSettings@Nonnull RateLimitUserType getUserType(); @Nonnull GlobalSettingType getRequestType();
TokenBucketFactoryTokenBucket createTokenBucket(RateLimitCacheKey bucketKey)boolean hasCurrentSettings(RateLimitCacheKey bucketKey, TokenBucket bucket)
SystemRateLimitingSettingsProviderSystemRateLimitingSettings getSystemSettingsForRequestType(GlobalSettingType requestType)
UserRateLimitingSettingsProviderOptional<UserRateLimitSettings> get(UserKey userKey, GlobalSettingType requestType)
RateLimitServiceOptional<TokenBucket> getBucket(RateLimitCacheKey bucketKey)boolean tryRateLimitPreAuth(RateLimitCacheKey bucketKey)boolean tryAcquire(RateLimitCacheKey bucketKey)

New Rest APIs

These are the new V2 endpoints created to support dual configuration in the backend.

ResourcesNewly Introduced V2 APIs
System SettingsGET admin/v2/rate-limit/settings
User SettingsGET admin/v2/rate-limit/settings/usersGET admin/v2/rate-limit/settings/users/{userId}PUT admin/v2/rate-limit/settings/users/token-bucketPUT admin/v2/rate-limit/settings/users/whitelistPUT admin/v2/rate-limit/settings/users/blacklistDELETE admin/v2/rate-limit/settings/users/{userId}
User ResourceGET admin/v2/rate-limit/users/picker

Affected Old Rest APIs

ResourcesOld API Changes
System SettingsPUT admin/rate-limit/settings (optional requestType parameter defaults to AUTOMATION has been added for backward compatibility)
History ResourceGET admin/rate-limit/history (New optional requestType filter parameter has been added)

More details: [object Object]

The text above is Atlassian's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.