summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-09-26 12:56:12 -0400
committerCorey Hulen <corey@hulen.com>2016-09-26 09:56:12 -0700
commit7fcc004beb9f6ef022f755e8e2f2a958c976c637 (patch)
treedc8a34d4bc57878361307d92c8032b6bd776d40a /webapp
parentdff985a92402319c16ad599e635b367fb123d60b (diff)
downloadchat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.tar.gz
chat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.tar.bz2
chat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.zip
Modifications to rate limiting settings. (#4091)
Diffstat (limited to 'webapp')
-rw-r--r--webapp/components/admin_console/rate_settings.jsx37
-rw-r--r--webapp/i18n/en.json3
2 files changed, 32 insertions, 8 deletions
diff --git a/webapp/components/admin_console/rate_settings.jsx b/webapp/components/admin_console/rate_settings.jsx
index 92eb8613a..bb4f9d83c 100644
--- a/webapp/components/admin_console/rate_settings.jsx
+++ b/webapp/components/admin_console/rate_settings.jsx
@@ -21,8 +21,9 @@ export default class RateSettings extends AdminSettings {
}
getConfigFromState(config) {
- config.RateLimitSettings.EnableRateLimiter = this.state.enableRateLimiter;
+ config.RateLimitSettings.Enable = this.state.enable;
config.RateLimitSettings.PerSec = this.parseIntNonZero(this.state.perSec);
+ config.RateLimitSettings.MaxBurst = this.parseIntNonZero(this.state.maxBurst);
config.RateLimitSettings.MemoryStoreSize = this.parseIntNonZero(this.state.memoryStoreSize);
config.RateLimitSettings.VaryByRemoteAddr = this.state.varyByRemoteAddr;
config.RateLimitSettings.VaryByHeader = this.state.varyByHeader;
@@ -32,8 +33,9 @@ export default class RateSettings extends AdminSettings {
getStateFromConfig(config) {
return {
- enableRateLimiter: config.RateLimitSettings.EnableRateLimiter,
+ enable: config.RateLimitSettings.Enable,
perSec: config.RateLimitSettings.PerSec,
+ maxBurst: config.RateLimitSettings.MaxBurst,
memoryStoreSize: config.RateLimitSettings.MemoryStoreSize,
varyByRemoteAddr: config.RateLimitSettings.VaryByRemoteAddr,
varyByHeader: config.RateLimitSettings.VaryByHeader
@@ -63,7 +65,7 @@ export default class RateSettings extends AdminSettings {
</div>
</div>
<BooleanSetting
- id='enableRateLimiter'
+ id='enable'
label={
<FormattedMessage
id='admin.rate.enableLimiterTitle'
@@ -76,7 +78,7 @@ export default class RateSettings extends AdminSettings {
defaultMessage='When true, APIs are throttled at rates specified below.'
/>
}
- value={this.state.enableRateLimiter}
+ value={this.state.enable}
onChange={this.handleChange}
/>
<TextSetting
@@ -96,7 +98,26 @@ export default class RateSettings extends AdminSettings {
}
value={this.state.perSec}
onChange={this.handleChange}
- disabled={!this.state.enableRateLimiter}
+ disabled={!this.state.enable}
+ />
+ <TextSetting
+ id='maxBurst'
+ label={
+ <FormattedMessage
+ id='admin.rate.maxBurst'
+ defaultMessage='Max Burst:'
+ />
+ }
+ placeholder={Utils.localizeMessage('admin.rate.maxBurstExample', 'Ex "100"')}
+ helpText={
+ <FormattedMessage
+ id='admin.rate.maxBurstDescription'
+ defaultMessage='Maxumum number of requests allowed beyond the per second query limit.'
+ />
+ }
+ value={this.state.maxBurst}
+ onChange={this.handleChange}
+ disabled={!this.state.enable}
/>
<TextSetting
id='memoryStoreSize'
@@ -115,7 +136,7 @@ export default class RateSettings extends AdminSettings {
}
value={this.state.memoryStoreSize}
onChange={this.handleChange}
- disabled={!this.state.enableRateLimiter}
+ disabled={!this.state.enable}
/>
<BooleanSetting
id='varyByRemoteAddr'
@@ -133,7 +154,7 @@ export default class RateSettings extends AdminSettings {
}
value={this.state.varyByRemoteAddr}
onChange={this.handleChange}
- disabled={!this.state.enableRateLimiter}
+ disabled={!this.state.enable}
/>
<TextSetting
id='varyByHeader'
@@ -152,7 +173,7 @@ export default class RateSettings extends AdminSettings {
}
value={this.state.varyByHeader}
onChange={this.handleChange}
- disabled={!this.state.enableRateLimiter || this.state.varyByRemoteAddr}
+ disabled={!this.state.enable || this.state.varyByRemoteAddr}
/>
</SettingsGroup>
);
diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json
index c93ad1c60..2bf4248a8 100644
--- a/webapp/i18n/en.json
+++ b/webapp/i18n/en.json
@@ -543,6 +543,9 @@
"admin.rate.remoteDescription": "When true, rate limit API access by IP address.",
"admin.rate.remoteTitle": "Vary rate limit by remote address: ",
"admin.rate.title": "Rate Limit Settings",
+ "admin.rate.maxBurst": "Max Burst:",
+ "admin.rate.maxBurstExample": "Ex \"100\"",
+ "admin.rate.maxBurstDescription": "Maxumum number of requests allowed beyond the per second query limit.",
"admin.recycle.button": "Recycle Database Connections",
"admin.recycle.loading": " Recycling...",
"admin.recycle.recycleDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <a href=\"../general/configuration\"><b>Configuration > Reload Configuration from Disk</b></a> feature to load the new settings while the server is running. The administrator should then use <b>Recycle Database Connections</b> feature to recycle the database connections based on the new settings.",