diff --git a/app/views/admin/application_settings/_import_export_limits.html.haml b/app/views/admin/application_settings/_import_export_limits.html.haml index 6a49f884a802cbf614de2d32283bf34929bf7daf..bc4a1577f902326e2e4f6c69f2f56df2abc5d4cf 100644 --- a/app/views/admin/application_settings/_import_export_limits.html.haml +++ b/app/views/admin/application_settings/_import_export_limits.html.haml @@ -1,34 +1,38 @@ = form_for @application_setting, url: network_admin_application_settings_path(anchor: 'js-import-export-limits-settings'), html: { class: 'fieldset-form' } do |f| = form_errors(@application_setting) + %fieldset + = html_escape(_("Set any rate limit to %{code_open}0%{code_close} to disable the limit.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe } + + %fieldset .form-group - = f.label :project_import_limit, _('Max Project Import requests per minute per user'), class: 'label-bold' + = f.label :project_import_limit, _('Maximum project import requests per minute'), class: 'label-bold' = f.number_field :project_import_limit, class: 'form-control gl-form-input' %fieldset .form-group - = f.label :project_export_limit, _('Max Project Export requests per minute per user'), class: 'label-bold' + = f.label :project_export_limit, _('Maximum project export requests per minute'), class: 'label-bold' = f.number_field :project_export_limit, class: 'form-control gl-form-input' %fieldset .form-group - = f.label :project_download_export_limit, _('Max Project Export Download requests per minute per user'), class: 'label-bold' + = f.label :project_download_export_limit, _('Maximum project export download requests per minute'), class: 'label-bold' = f.number_field :project_download_export_limit, class: 'form-control gl-form-input' %fieldset .form-group - = f.label :group_import_limit, _('Max Group Import requests per minute per user'), class: 'label-bold' + = f.label :group_import_limit, _('Maximum group import requests per minute'), class: 'label-bold' = f.number_field :group_import_limit, class: 'form-control gl-form-input' %fieldset .form-group - = f.label :group_export_limit, _('Max Group Export requests per minute per user'), class: 'label-bold' + = f.label :group_export_limit, _('Maximum group export requests per minute'), class: 'label-bold' = f.number_field :group_export_limit, class: 'form-control gl-form-input' %fieldset .form-group - = f.label :group_download_export_limit, _('Max Group Export Download requests per minute per user'), class: 'label-bold' + = f.label :group_download_export_limit, _('Maximum group export download requests per minute'), class: 'label-bold' = f.number_field :group_download_export_limit, class: 'form-control gl-form-input' = f.submit _('Save changes'), class: "gl-button btn btn-confirm", data: { qa_selector: 'save_changes_button' } diff --git a/app/views/admin/application_settings/network.html.haml b/app/views/admin/application_settings/network.html.haml index 1bb8a278f2bb7188e16d7280ef83e0e863f2a18e..238e5c8b299da829c3e788623e781ada3b9673c0 100644 --- a/app/views/admin/application_settings/network.html.haml +++ b/app/views/admin/application_settings/network.html.haml @@ -110,11 +110,12 @@ %section.settings.as-import-export-limits.no-animate#js-import-export-limits-settings{ class: ('expanded' if expanded_by_default?) } .settings-header %h4 - = _('Import/Export Rate Limits') + = _('Import and export rate limits') %button.btn.gl-button.btn-default.js-settings-toggle{ type: 'button' } = expanded_by_default? ? _('Collapse') : _('Expand') %p - = _('Configure limits for Project/Group Import/Export.') + = _('Set per-user rate limits for imports and exports of projects and groups.') + = link_to _('Learn more.'), help_page_path('user/admin_area/settings/import_export_rate_limits.md'), target: '_blank', rel: 'noopener noreferrer' .settings-content = render 'import_export_limits' diff --git a/doc/user/admin_area/settings/img/import_export_rate_limits_v13_2.png b/doc/user/admin_area/settings/img/import_export_rate_limits_v13_2.png deleted file mode 100644 index 76015ce0ee3459dea16972025ec068b451b69770..0000000000000000000000000000000000000000 Binary files a/doc/user/admin_area/settings/img/import_export_rate_limits_v13_2.png and /dev/null differ diff --git a/doc/user/admin_area/settings/import_export_rate_limits.md b/doc/user/admin_area/settings/import_export_rate_limits.md index 12235bdb5ef499942809d42189a3a6a911978740..7d5a928eedf8bddc7d52ce774f967ea3a9255c18 100644 --- a/doc/user/admin_area/settings/import_export_rate_limits.md +++ b/doc/user/admin_area/settings/import_export_rate_limits.md @@ -5,28 +5,26 @@ group: Import info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Project/group import/export rate limits **(FREE SELF)** +# Rate limits for imports and exports of project and groups **(FREE SELF)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35728) in GitLab 13.2. -The following table includes configurable rate limits. The following table includes limits on a -per minute per user basis: +You can configure the rate limits for imports and exports of projects and groups: -| Limit | Default (per minute per user) | -|--------------------------|-------------------------------| -| Project Import | 6 | -| Project Export | 6 | -| Project Export Download | 1 | -| Group Import | 6 | -| Group Export | 6 | -| Group Export Download | 1 | +To change a rate limit: -All rate limits are: +1. On the top bar, select **Menu > Admin**. +1. On the left sidebar, select **Settings > Network**, then expand **Import and export rate limits**. +1. Change the value of any rate limit. The rate limits are per minute per user, not per IP address. + Set to `0` to disable a rate limit. -- Configurable through the top bar at **Menu > Admin > Settings > Network > Import/Export Rate Limits** -- Applied per minute per user -- Not applied per IP address -- Active by default. To disable, set the option to `0` -- Logged to `auth.log` file if exceed rate limit +| Limit | Default | +|-------------------------|---------| +| Project Import | 6 | +| Project Export | 6 | +| Project Export Download | 1 | +| Group Import | 6 | +| Group Export | 6 | +| Group Export Download | 1 | - +When a user exceeds a rate limit, it is logged in `auth.log`. diff --git a/locale/gitlab.pot b/locale/gitlab.pot index e13803067b03f92dc84dfb0239014f48aa26e891..44779dc0e4406d6585454f297c3888c24090706e 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -8514,9 +8514,6 @@ msgstr "" msgid "Configure limit for notes created per minute by web and API requests." msgstr "" -msgid "Configure limits for Project/Group Import/Export." -msgstr "" - msgid "Configure limits for web and API requests." msgstr "" @@ -17001,6 +16998,9 @@ msgstr "" msgid "Import an exported GitLab project" msgstr "" +msgid "Import and export rate limits" +msgstr "" + msgid "Import failed due to a GitHub error: %{original}" msgstr "" @@ -17079,9 +17079,6 @@ msgstr "" msgid "Import timed out. Import took longer than %{import_jobs_expiration} seconds" msgstr "" -msgid "Import/Export Rate Limits" -msgstr "" - msgid "ImportButtons|Connect repositories from" msgstr "" @@ -20654,24 +20651,6 @@ msgstr "" msgid "Max 20 characters" msgstr "" -msgid "Max Group Export Download requests per minute per user" -msgstr "" - -msgid "Max Group Export requests per minute per user" -msgstr "" - -msgid "Max Group Import requests per minute per user" -msgstr "" - -msgid "Max Project Export Download requests per minute per user" -msgstr "" - -msgid "Max Project Export requests per minute per user" -msgstr "" - -msgid "Max Project Import requests per minute per user" -msgstr "" - msgid "Max authenticated API requests per period per user" msgstr "" @@ -20777,6 +20756,15 @@ msgstr "" msgid "Maximum files in a diff" msgstr "" +msgid "Maximum group export download requests per minute" +msgstr "" + +msgid "Maximum group export requests per minute" +msgstr "" + +msgid "Maximum group import requests per minute" +msgstr "" + msgid "Maximum import size" msgstr "" @@ -20822,6 +20810,15 @@ msgstr "" msgid "Maximum page size" msgstr "" +msgid "Maximum project export download requests per minute" +msgstr "" + +msgid "Maximum project export requests per minute" +msgstr "" + +msgid "Maximum project import requests per minute" +msgstr "" + msgid "Maximum push size" msgstr "" @@ -30626,6 +30623,9 @@ msgstr "" msgid "Set an instance-wide domain that will be available to all clusters when installing Knative." msgstr "" +msgid "Set any rate limit to %{code_open}0%{code_close} to disable the limit." +msgstr "" + msgid "Set default and restrict visibility levels. Configure import sources and git access protocol." msgstr "" @@ -30653,6 +30653,9 @@ msgstr "" msgid "Set parent epic to an epic" msgstr "" +msgid "Set per-user rate limits for imports and exports of projects and groups." +msgstr "" + msgid "Set projects and maximum size limits, session duration, user options, and check feature availability for namespace plan." msgstr ""