From f5b5fc565cbbf8ad651a977f83e254f7ac7fbde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Thu, 11 Sep 2025 11:01:01 +0200 Subject: [PATCH 1/4] Add support for allow_immediate_namespaces_deletion setting in admin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: added Signed-off-by: Rémy Coutable --- app/helpers/application_settings_helper.rb | 1 + .../_deletion_protection_settings.html.haml | 12 +++++ .../_visibility_and_access.html.haml | 2 +- .../visibility_and_access_controls.md | 44 +++++++++++++++---- doc/api/settings.md | 1 + locale/gitlab.pot | 9 ++++ spec/features/admin/admin_settings_spec.rb | 15 +++++++ ...tion_protection_settings.html.haml_spec.rb | 22 ---------- .../general.html.haml_spec.rb | 9 ++++ 9 files changed, 84 insertions(+), 31 deletions(-) delete mode 100644 spec/views/admin/application_settings/_deletion_protection_settings.html.haml_spec.rb diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb index bd460f541903ad..fe89034fb16e53 100644 --- a/app/helpers/application_settings_helper.rb +++ b/app/helpers/application_settings_helper.rb @@ -261,6 +261,7 @@ def visible_attributes :after_sign_up_text, :akismet_api_key, :akismet_enabled, + :allow_immediate_namespaces_deletion, :allow_local_requests_from_hooks_and_services, :allow_local_requests_from_web_hooks_and_services, :allow_local_requests_from_system_hooks, diff --git a/app/views/admin/application_settings/_deletion_protection_settings.html.haml b/app/views/admin/application_settings/_deletion_protection_settings.html.haml index ba7757b6480350..ec41679f0b7627 100644 --- a/app/views/admin/application_settings/_deletion_protection_settings.html.haml +++ b/app/views/admin/application_settings/_deletion_protection_settings.html.haml @@ -1 +1,13 @@ #js-admin-deletion-protection-settings{ data: deletion_protection_data } + +- if Feature.enabled?(:allow_immediate_namespaces_deletion, current_user) + - form = local_assigns.fetch(:form) + - help_page_link = link_to('', help_page_path('administration/settings/visibility_and_access_controls.md', anchor: 'immediate-deletion'), target: '_blank', rel: 'noopener noreferrer') + + %fieldset.form-group.gl-form-group + %legend.col-form-label + %small.form-text.gl-text-subtle + = s_('ImmediateNamespacesDeletionSettings|Prevent non-administrators from immediately deleting groups and projects.') + = form.gitlab_ui_checkbox_component :allow_immediate_namespaces_deletion, s_('ImmediateNamespacesDeletionSettings|Allow immediate deletion') do |c| + - c.with_help_text do + = safe_format(s_('ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}'), tag_pair(help_page_link, :link_start, :link_end)) diff --git a/app/views/admin/application_settings/_visibility_and_access.html.haml b/app/views/admin/application_settings/_visibility_and_access.html.haml index 9092267563a9fc..ff7c7afc57e40a 100644 --- a/app/views/admin/application_settings/_visibility_and_access.html.haml +++ b/app/views/admin/application_settings/_visibility_and_access.html.haml @@ -4,7 +4,7 @@ %fieldset = render 'shared/project_creation_levels', f: f, method: :default_project_creation, legend: s_('ProjectCreationLevel|Default minimum role required to create projects') = render_if_exists 'admin/application_settings/default_project_deletion_protection_setting', form: f - = render_if_exists 'admin/application_settings/deletion_protection_settings', form: f + = render 'admin/application_settings/deletion_protection_settings', form: f .form-group.visibility-level-setting = f.label :default_project_visibility, class: 'label-bold' = render('shared/visibility_radios', model_method: :default_project_visibility, form: f, selected_level: @application_setting.default_project_visibility, form_model: Project.new) diff --git a/doc/administration/settings/visibility_and_access_controls.md b/doc/administration/settings/visibility_and_access_controls.md index c2177c1ed228f8..9d888d673e6daa 100644 --- a/doc/administration/settings/visibility_and_access_controls.md +++ b/doc/administration/settings/visibility_and_access_controls.md @@ -98,17 +98,10 @@ To disable the restriction: - Enabled delayed deletion for projects by default [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on GitLab Self-Managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0. - [Changed to default behavior for groups](https://gitlab.com/gitlab-org/gitlab/-/issues/389557) on the Premium and Ultimate tier in GitLab 16.0. - [Moved](https://gitlab.com/groups/gitlab-org/-/epics/17208) from GitLab Premium to GitLab Free in 18.0. -- Support for disallowing immediate deletion for groups or projects scheduled for deletion [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/201957) in GitLab 18.4 [with a flag](../../administration/feature_flags/_index.md) named `disallow_immediate_deletion`. Disabled by default. +- [Instance setting](#immediate-deletion) to allow immediate deletion for groups or projects scheduled for deletion [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5. Enabled by default. Disabled on GitLab.com and Dedicated. {{< /history >}} -{{< alert type="flag" >}} - -The availability of this feature is controlled by a feature flag. -For more information, see the history. - -{{< /alert >}} - These protections help guard against accidental deletion of groups and projects on your instance. ### Retention period @@ -128,6 +121,41 @@ To configure deletion protection for groups and projects: 1. Scroll to **Deletion protection** and set the retention period to a value between `1` and `90` days. 1. Select **Save changes**. +### Immediate deletion + +{{< history >}} + +- Instance setting to allow immediate deletion for groups or projects scheduled for deletion + [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5 + [with a flag](../feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. + Enabled by default on self-managed, but disabled on GitLab.com and Dedicated. + +{{< /history >}} + +{{< alert type="flag" >}} + +The availability of this feature is controlled by a feature flag. +For more information, see the history. + +{{< /alert >}} + +By default, immediate deletion is allowed for groups and projects marked for deletion. This allows users +to effectively bypass the configured retention period and delete groups or projects immediately. + +This can be disabled, so that groups and projects are only deleted automatically after the configured retention period: + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings** > **General**. +1. Expand **Visibility and access controls**. +1. Scroll to **Immediate deletion** and uncheck the checkbox. +1. Select **Save changes**. + +{{< alert type="note" >}} + +Administrators can always immediately delete groups and projects through the Admin pages. + +{{< /alert >}} + ### Override defaults and delete immediately To override the delay, and immediately delete a project marked for removal: diff --git a/doc/api/settings.md b/doc/api/settings.md index 2dd7f15bc86da4..3f1f71c5c59430 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -463,6 +463,7 @@ to configure other related settings. These requirements are | `allowed_integrations` | array of strings | no | When `allow_all_integrations` is `false`, only integrations in this list are allowed on the instance. Ultimate only. | | `allow_account_deletion` | boolean | no | Set to `true` to allow users to delete their accounts. Premium and Ultimate only. | | `allow_group_owners_to_manage_ldap` | boolean | no | Set to `true` to allow group owners to manage LDAP. Premium and Ultimate only. | +| `allow_immediate_namespaces_deletion` | boolean | no | Allow immediate deletion for groups or projects scheduled for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5. Behind a [feature flag](../administration/feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Enabled by default, disabled on GitLab.com and Dedicated. | | `allow_local_requests_from_hooks_and_services` | boolean | no | (Deprecated: Use `allow_local_requests_from_web_hooks_and_services` instead) Allow requests to the local network from webhooks and integrations. | | `allow_local_requests_from_system_hooks` | boolean | no | Allow requests to the local network from system hooks. | | `allow_local_requests_from_web_hooks_and_services` | boolean | no | Allow requests to the local network from webhooks and integrations. | diff --git a/locale/gitlab.pot b/locale/gitlab.pot index fbdcdc9f675261..bef89d06ca7465 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -33968,6 +33968,15 @@ msgstr "" msgid "Images with incorrect dimensions are not resized automatically, and may result in unexpected behavior." msgstr "" +msgid "ImmediateNamespacesDeletionSettings|Allow immediate deletion" +msgstr "" + +msgid "ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}" +msgstr "" + +msgid "ImmediateNamespacesDeletionSettings|Prevent non-administrators from immediately deleting groups and projects." +msgstr "" + msgid "Immutable tag rules require an Ultimate license" msgstr "" diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index e75b70b5f869f6..5bb865bb5c6b7c 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -50,6 +50,21 @@ end end + it 'change deletion settings', :js do + within_testid('admin-visibility-access-settings') do + fill_in 'Deletion protection', with: 30 + uncheck 'Allow immediate deletion' + click_button 'Save changes' + end + + expect(page).to have_content 'Application settings saved successfully' + + within_testid('admin-visibility-access-settings') do + expect(find_field('Deletion protection').value).to eq('30') + expect(find_field('Allow immediate deletion')).not_to be_checked + end + end + it 'modify import sources' do expect(current_settings.import_sources).to be_empty diff --git a/spec/views/admin/application_settings/_deletion_protection_settings.html.haml_spec.rb b/spec/views/admin/application_settings/_deletion_protection_settings.html.haml_spec.rb deleted file mode 100644 index 0ab746ff30f9d3..00000000000000 --- a/spec/views/admin/application_settings/_deletion_protection_settings.html.haml_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'admin/application_settings/_deletion_protection_settings', feature_category: :system_access do - let_it_be(:application_setting) do - build( - :application_setting, - deletion_adjourned_period: 1 - ) - end - - before do - assign(:application_setting, application_setting) - end - - it 'renders the deletion protection settings app root' do - render - - expect(rendered).to have_selector('#js-admin-deletion-protection-settings') - end -end diff --git a/spec/views/admin/application_settings/general.html.haml_spec.rb b/spec/views/admin/application_settings/general.html.haml_spec.rb index b5b4ead41a248d..39b336391bbe88 100644 --- a/spec/views/admin/application_settings/general.html.haml_spec.rb +++ b/spec/views/admin/application_settings/general.html.haml_spec.rb @@ -11,6 +11,15 @@ allow(view).to receive(:current_user).and_return(user) end + describe 'deletion protection settings' do + it 'renders the deletion protection settings' do + render + + expect(rendered).to have_selector('#js-admin-deletion-protection-settings') + expect(rendered).to have_field('Allow immediate deletion') + end + end + describe 'sourcegraph integration' do context 'when sourcegraph feature is enabled' do it 'show the form' do -- GitLab From d5d1aec5e0f6a065d6af3c30a12924c3a85aef1e Mon Sep 17 00:00:00 2001 From: Peter Hegman Date: Wed, 1 Oct 2025 10:51:00 -0700 Subject: [PATCH 2/4] Adjust labels of deletion protection settings To match documentation --- .../application_settings/deletion_protection/constants.js | 2 +- .../application_settings/_deletion_retention.html.haml | 1 + ...n_settings.html.haml => _immediate_deletion.html.haml} | 5 +---- .../application_settings/_visibility_and_access.html.haml | 3 ++- locale/gitlab.pot | 8 ++++---- spec/features/admin/admin_settings_spec.rb | 4 ++-- 6 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 app/views/admin/application_settings/_deletion_retention.html.haml rename app/views/admin/application_settings/{_deletion_protection_settings.html.haml => _immediate_deletion.html.haml} (77%) diff --git a/app/assets/javascripts/admin/application_settings/deletion_protection/constants.js b/app/assets/javascripts/admin/application_settings/deletion_protection/constants.js index ee455b7fa81d54..f79650ef82da98 100644 --- a/app/assets/javascripts/admin/application_settings/deletion_protection/constants.js +++ b/app/assets/javascripts/admin/application_settings/deletion_protection/constants.js @@ -1,7 +1,7 @@ import { __, s__ } from '~/locale'; export const I18N_DELETION_PROTECTION = { - label: s__('DeletionSettings|Deletion protection'), + label: s__('DeletionSettings|Retention period'), helpText: s__( 'DeletionSettings|Period that deleted groups and projects will remain restorable for.', ), diff --git a/app/views/admin/application_settings/_deletion_retention.html.haml b/app/views/admin/application_settings/_deletion_retention.html.haml new file mode 100644 index 00000000000000..ba7757b6480350 --- /dev/null +++ b/app/views/admin/application_settings/_deletion_retention.html.haml @@ -0,0 +1 @@ +#js-admin-deletion-protection-settings{ data: deletion_protection_data } diff --git a/app/views/admin/application_settings/_deletion_protection_settings.html.haml b/app/views/admin/application_settings/_immediate_deletion.html.haml similarity index 77% rename from app/views/admin/application_settings/_deletion_protection_settings.html.haml rename to app/views/admin/application_settings/_immediate_deletion.html.haml index ec41679f0b7627..ff378c3055189e 100644 --- a/app/views/admin/application_settings/_deletion_protection_settings.html.haml +++ b/app/views/admin/application_settings/_immediate_deletion.html.haml @@ -1,13 +1,10 @@ -#js-admin-deletion-protection-settings{ data: deletion_protection_data } - - if Feature.enabled?(:allow_immediate_namespaces_deletion, current_user) - form = local_assigns.fetch(:form) - help_page_link = link_to('', help_page_path('administration/settings/visibility_and_access_controls.md', anchor: 'immediate-deletion'), target: '_blank', rel: 'noopener noreferrer') %fieldset.form-group.gl-form-group %legend.col-form-label - %small.form-text.gl-text-subtle - = s_('ImmediateNamespacesDeletionSettings|Prevent non-administrators from immediately deleting groups and projects.') + = s_('DeletionSettings|Immediate deletion') = form.gitlab_ui_checkbox_component :allow_immediate_namespaces_deletion, s_('ImmediateNamespacesDeletionSettings|Allow immediate deletion') do |c| - c.with_help_text do = safe_format(s_('ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}'), tag_pair(help_page_link, :link_start, :link_end)) diff --git a/app/views/admin/application_settings/_visibility_and_access.html.haml b/app/views/admin/application_settings/_visibility_and_access.html.haml index ff7c7afc57e40a..8a11688ce23716 100644 --- a/app/views/admin/application_settings/_visibility_and_access.html.haml +++ b/app/views/admin/application_settings/_visibility_and_access.html.haml @@ -4,7 +4,8 @@ %fieldset = render 'shared/project_creation_levels', f: f, method: :default_project_creation, legend: s_('ProjectCreationLevel|Default minimum role required to create projects') = render_if_exists 'admin/application_settings/default_project_deletion_protection_setting', form: f - = render 'admin/application_settings/deletion_protection_settings', form: f + = render 'admin/application_settings/deletion_retention' + = render 'admin/application_settings/immediate_deletion', form: f .form-group.visibility-level-setting = f.label :default_project_visibility, class: 'label-bold' = render('shared/visibility_radios', model_method: :default_project_visibility, form: f, selected_level: @application_setting.default_project_visibility, form_model: Project.new) diff --git a/locale/gitlab.pot b/locale/gitlab.pot index bef89d06ca7465..41991258dedb25 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -22469,7 +22469,7 @@ msgstr "" msgid "Deletion scheduled at: %{time}" msgstr "" -msgid "DeletionSettings|Deletion protection" +msgid "DeletionSettings|Immediate deletion" msgstr "" msgid "DeletionSettings|Maximum deletion protection duration is 90 days." @@ -22481,6 +22481,9 @@ msgstr "" msgid "DeletionSettings|Period that deleted groups and projects will remain restorable for." msgstr "" +msgid "DeletionSettings|Retention period" +msgstr "" + msgid "Denied authorization of account nickname %{user_name}." msgstr "" @@ -33974,9 +33977,6 @@ msgstr "" msgid "ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}" msgstr "" -msgid "ImmediateNamespacesDeletionSettings|Prevent non-administrators from immediately deleting groups and projects." -msgstr "" - msgid "Immutable tag rules require an Ultimate license" msgstr "" diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index 5bb865bb5c6b7c..e4c17bf64d541e 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -52,7 +52,7 @@ it 'change deletion settings', :js do within_testid('admin-visibility-access-settings') do - fill_in 'Deletion protection', with: 30 + fill_in 'Retention period', with: 30 uncheck 'Allow immediate deletion' click_button 'Save changes' end @@ -60,7 +60,7 @@ expect(page).to have_content 'Application settings saved successfully' within_testid('admin-visibility-access-settings') do - expect(find_field('Deletion protection').value).to eq('30') + expect(find_field('Retention period').value).to eq('30') expect(find_field('Allow immediate deletion')).not_to be_checked end end -- GitLab From eb8af74de56572c9754f04589cbaebd2a336e8ee Mon Sep 17 00:00:00 2001 From: Peter Hegman Date: Thu, 2 Oct 2025 11:48:03 -0700 Subject: [PATCH 3/4] Apply TW reviewer suggestions Adjust setting field description Adjust feature flag history --- .../_immediate_deletion.html.haml | 2 +- .../settings/visibility_and_access_controls.md | 13 +++++-------- doc/api/settings.md | 2 +- locale/gitlab.pot | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/views/admin/application_settings/_immediate_deletion.html.haml b/app/views/admin/application_settings/_immediate_deletion.html.haml index ff378c3055189e..501043e16c51bb 100644 --- a/app/views/admin/application_settings/_immediate_deletion.html.haml +++ b/app/views/admin/application_settings/_immediate_deletion.html.haml @@ -7,4 +7,4 @@ = s_('DeletionSettings|Immediate deletion') = form.gitlab_ui_checkbox_component :allow_immediate_namespaces_deletion, s_('ImmediateNamespacesDeletionSettings|Allow immediate deletion') do |c| - c.with_help_text do - = safe_format(s_('ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}'), tag_pair(help_page_link, :link_start, :link_end)) + = safe_format(s_('ImmediateNamespacesDeletionSettings|Immediately delete groups and projects scheduled for deletion and bypass the configured retention period. %{link_start}Learn more.%{link_end}'), tag_pair(help_page_link, :link_start, :link_end)) diff --git a/doc/administration/settings/visibility_and_access_controls.md b/doc/administration/settings/visibility_and_access_controls.md index 9d888d673e6daa..a15079df9d9db1 100644 --- a/doc/administration/settings/visibility_and_access_controls.md +++ b/doc/administration/settings/visibility_and_access_controls.md @@ -98,7 +98,6 @@ To disable the restriction: - Enabled delayed deletion for projects by default [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on GitLab Self-Managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0. - [Changed to default behavior for groups](https://gitlab.com/gitlab-org/gitlab/-/issues/389557) on the Premium and Ultimate tier in GitLab 16.0. - [Moved](https://gitlab.com/groups/gitlab-org/-/epics/17208) from GitLab Premium to GitLab Free in 18.0. -- [Instance setting](#immediate-deletion) to allow immediate deletion for groups or projects scheduled for deletion [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5. Enabled by default. Disabled on GitLab.com and Dedicated. {{< /history >}} @@ -125,10 +124,8 @@ To configure deletion protection for groups and projects: {{< history >}} -- Instance setting to allow immediate deletion for groups or projects scheduled for deletion - [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5 - [with a flag](../feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. - Enabled by default on self-managed, but disabled on GitLab.com and Dedicated. +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/561680) in GitLab 18.4 [with a flag](../../administration/feature_flags/_index.md) named `disallow_immediate_deletion`. Disabled by default. +- [Replaced](https://gitlab.com/gitlab-org/gitlab/-/issues/569453) in GitLab 18.5 by an instance setting to allow immediate deletion of groups and projects scheduled for deletion. [Controlled by a flag](../feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Feature flag is disabled by default. {{< /history >}} @@ -142,17 +139,17 @@ For more information, see the history. By default, immediate deletion is allowed for groups and projects marked for deletion. This allows users to effectively bypass the configured retention period and delete groups or projects immediately. -This can be disabled, so that groups and projects are only deleted automatically after the configured retention period: +To disable immediate deletion for groups and projects: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings** > **General**. 1. Expand **Visibility and access controls**. -1. Scroll to **Immediate deletion** and uncheck the checkbox. +1. Under **Immediate deletion**, clear the checkbox. 1. Select **Save changes**. {{< alert type="note" >}} -Administrators can always immediately delete groups and projects through the Admin pages. +Administrators can still delete groups and projects when this setting is disabled. {{< /alert >}} diff --git a/doc/api/settings.md b/doc/api/settings.md index 3f1f71c5c59430..13b330897a4124 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -463,7 +463,7 @@ to configure other related settings. These requirements are | `allowed_integrations` | array of strings | no | When `allow_all_integrations` is `false`, only integrations in this list are allowed on the instance. Ultimate only. | | `allow_account_deletion` | boolean | no | Set to `true` to allow users to delete their accounts. Premium and Ultimate only. | | `allow_group_owners_to_manage_ldap` | boolean | no | Set to `true` to allow group owners to manage LDAP. Premium and Ultimate only. | -| `allow_immediate_namespaces_deletion` | boolean | no | Allow immediate deletion for groups or projects scheduled for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/205556) in GitLab 18.5. Behind a [feature flag](../administration/feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Enabled by default, disabled on GitLab.com and Dedicated. | +| `allow_immediate_namespaces_deletion` | boolean | no | Immediately delete groups and projects scheduled for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/569453) in GitLab 18.5. Behind a [feature flag](../administration/feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Feature flag is disabled by default. | | `allow_local_requests_from_hooks_and_services` | boolean | no | (Deprecated: Use `allow_local_requests_from_web_hooks_and_services` instead) Allow requests to the local network from webhooks and integrations. | | `allow_local_requests_from_system_hooks` | boolean | no | Allow requests to the local network from system hooks. | | `allow_local_requests_from_web_hooks_and_services` | boolean | no | Allow requests to the local network from webhooks and integrations. | diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 41991258dedb25..8696ab63935cef 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -33974,7 +33974,7 @@ msgstr "" msgid "ImmediateNamespacesDeletionSettings|Allow immediate deletion" msgstr "" -msgid "ImmediateNamespacesDeletionSettings|Groups and projects marked for deletion can be immediately deleted with a second deletion action, bypassing the configured retention period. %{link_start}Learn more.%{link_end}" +msgid "ImmediateNamespacesDeletionSettings|Immediately delete groups and projects scheduled for deletion and bypass the configured retention period. %{link_start}Learn more.%{link_end}" msgstr "" msgid "Immutable tag rules require an Ultimate license" -- GitLab From 5618cd55588ed87429428df0a7f627b034a139ab Mon Sep 17 00:00:00 2001 From: Peter Hegman Date: Tue, 7 Oct 2025 08:37:04 -0700 Subject: [PATCH 4/4] Apply TW reviewer suggestions --- .../settings/visibility_and_access_controls.md | 7 +++---- doc/api/settings.md | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/administration/settings/visibility_and_access_controls.md b/doc/administration/settings/visibility_and_access_controls.md index a15079df9d9db1..0ad0f4c5dbd992 100644 --- a/doc/administration/settings/visibility_and_access_controls.md +++ b/doc/administration/settings/visibility_and_access_controls.md @@ -136,10 +136,9 @@ For more information, see the history. {{< /alert >}} -By default, immediate deletion is allowed for groups and projects marked for deletion. This allows users -to effectively bypass the configured retention period and delete groups or projects immediately. +Immediately delete groups and projects scheduled for deletion. This action bypasses the configured retention period and deletes groups or projects immediately. -To disable immediate deletion for groups and projects: +To turn off immediate deletion for groups and projects: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings** > **General**. @@ -149,7 +148,7 @@ To disable immediate deletion for groups and projects: {{< alert type="note" >}} -Administrators can still delete groups and projects when this setting is disabled. +Administrators can still delete groups and projects when this setting is turned off. {{< /alert >}} diff --git a/doc/api/settings.md b/doc/api/settings.md index 13b330897a4124..b153c2657d0d51 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -463,7 +463,7 @@ to configure other related settings. These requirements are | `allowed_integrations` | array of strings | no | When `allow_all_integrations` is `false`, only integrations in this list are allowed on the instance. Ultimate only. | | `allow_account_deletion` | boolean | no | Set to `true` to allow users to delete their accounts. Premium and Ultimate only. | | `allow_group_owners_to_manage_ldap` | boolean | no | Set to `true` to allow group owners to manage LDAP. Premium and Ultimate only. | -| `allow_immediate_namespaces_deletion` | boolean | no | Immediately delete groups and projects scheduled for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/569453) in GitLab 18.5. Behind a [feature flag](../administration/feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Feature flag is disabled by default. | +| `allow_immediate_namespaces_deletion` | boolean | no | Immediately delete groups and projects scheduled for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/569453) in GitLab 18.5. Behind a [feature flag](../administration/feature_flags/_index.md) named `allow_immediate_namespaces_deletion`. Disabled by default. | | `allow_local_requests_from_hooks_and_services` | boolean | no | (Deprecated: Use `allow_local_requests_from_web_hooks_and_services` instead) Allow requests to the local network from webhooks and integrations. | | `allow_local_requests_from_system_hooks` | boolean | no | Allow requests to the local network from system hooks. | | `allow_local_requests_from_web_hooks_and_services` | boolean | no | Allow requests to the local network from webhooks and integrations. | -- GitLab