summaryrefslogtreecommitdiff
path: root/app/views/admin/application_settings/_ip_limits.html.haml
blob: e584aaf9880ac159593eb3390d93af6c4e79c032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
= form_for @application_setting, url: network_admin_application_settings_path(anchor: 'js-ip-limits-settings'), html: { class: 'fieldset-form' } do |f|
  = form_errors(@application_setting)

  %fieldset
    %h5
      = _('Unauthenticated request rate limit')
    .form-group
      .form-check
        = f.check_box :throttle_unauthenticated_enabled, class: 'form-check-input', data: { qa_selector: 'throttle_unauthenticated_checkbox' }
        = f.label :throttle_unauthenticated_enabled, class: 'form-check-label label-bold' do
          = _("Enable unauthenticated request rate limit")
        %span.form-text.text-muted
          = _("Helps reduce request volume (e.g. from crawlers or abusive bots)")
    .form-group
      = f.label :throttle_unauthenticated_requests_per_period, _('Max unauthenticated requests per period per IP'), class: 'label-bold'
      = f.number_field :throttle_unauthenticated_requests_per_period, class: 'form-control gl-form-input'
    .form-group
      = f.label :throttle_unauthenticated_period_in_seconds, _('Unauthenticated rate limit period in seconds'), class: 'label-bold'
      = f.number_field :throttle_unauthenticated_period_in_seconds, class: 'form-control gl-form-input'
    %hr
    %h5
      = _('Authenticated API request rate limit')
    .form-group
      .form-check
        = f.check_box :throttle_authenticated_api_enabled, class: 'form-check-input', data: { qa_selector: 'throttle_authenticated_api_checkbox' }
        = f.label :throttle_authenticated_api_enabled, class: 'form-check-label label-bold' do
          = _("Enable authenticated API request rate limit")
        %span.form-text.text-muted
          = _("Helps reduce request volume (e.g. from crawlers or abusive bots)")
    .form-group
      = f.label :throttle_authenticated_api_requests_per_period, _('Max authenticated API requests per period per user'), class: 'label-bold'
      = f.number_field :throttle_authenticated_api_requests_per_period, class: 'form-control gl-form-input'
    .form-group
      = f.label :throttle_authenticated_api_period_in_seconds, _('Authenticated API rate limit period in seconds'), class: 'label-bold'
      = f.number_field :throttle_authenticated_api_period_in_seconds, class: 'form-control gl-form-input'
    %hr
    %h5
      = _('Authenticated web request rate limit')
    .form-group
      .form-check
        = f.check_box :throttle_authenticated_web_enabled, class: 'form-check-input', data: { qa_selector: 'throttle_authenticated_web_checkbox' }
        = f.label :throttle_authenticated_web_enabled, class: 'form-check-label label-bold' do
          Enable authenticated web request rate limit
        %span.form-text.text-muted
          Helps reduce request volume (e.g. from crawlers or abusive bots)
    .form-group
      = f.label :throttle_authenticated_web_requests_per_period, _('Max authenticated web requests per period per user'), class: 'label-bold'
      = f.number_field :throttle_authenticated_web_requests_per_period, class: 'form-control gl-form-input'
    .form-group
      = f.label :throttle_authenticated_web_period_in_seconds, _('Authenticated web rate limit period in seconds'), class: 'label-bold'
      = f.number_field :throttle_authenticated_web_period_in_seconds, class: 'form-control gl-form-input'
    %hr
    %h5
      = _('Response text')
    .form-group
      = f.label :rate_limiting_response_text, class: 'label-bold' do
        = _('A plain-text response to show to clients that hit the rate limit.')
      = f.text_area :rate_limiting_response_text, placeholder: ::Gitlab::Throttle::DEFAULT_RATE_LIMITING_RESPONSE_TEXT, class: 'form-control gl-form-input', rows: 5

  = f.submit _('Save changes'), class: "gl-button btn btn-confirm", data: { qa_selector: 'save_changes_button' }