diff --git a/config/application_setting_columns/abuse_notification_email.yml b/config/application_setting_columns/abuse_notification_email.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6238807a4958cb100485f560b2f0fc91f6cda785
--- /dev/null
+++ b/config/application_setting_columns/abuse_notification_email.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: abuse_notification_email
+clusterwide: true
+column: abuse_notification_email
+db_type: character
+default:
+description: If set, [abuse reports](../administration/review_abuse_reports.md) are
+  sent to this address. Abuse reports are always available in the **Admin** area.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/admin_mode.yml b/config/application_setting_columns/admin_mode.yml
new file mode 100644
index 0000000000000000000000000000000000000000..76b66e5ac58a7ab51ed031c27afca63190bf1eb1
--- /dev/null
+++ b/config/application_setting_columns/admin_mode.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: admin_mode
+clusterwide: false
+column: admin_mode
+db_type: boolean
+default: 'false'
+description: Require administrators to enable Admin Mode by re-authenticating for
+  administrative tasks.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/after_sign_out_path.yml b/config/application_setting_columns/after_sign_out_path.yml
new file mode 100644
index 0000000000000000000000000000000000000000..40cb4c9899b3b2906bd1770975f522981464bded
--- /dev/null
+++ b/config/application_setting_columns/after_sign_out_path.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: after_sign_out_path
+clusterwide: true
+column: after_sign_out_path
+db_type: character
+default:
+description: Where to redirect users after logout.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/after_sign_up_text.yml b/config/application_setting_columns/after_sign_up_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b3121c1a118de17103bd6a002805451678bcab86
--- /dev/null
+++ b/config/application_setting_columns/after_sign_up_text.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: after_sign_up_text
+clusterwide: true
+column: after_sign_up_text
+db_type: text
+default:
+description: Text shown to the user after signing up.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/ai_action_api_rate_limit.yml b/config/application_setting_columns/ai_action_api_rate_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..795bb97d1b7d94fdcaac4026fadb3772c6af9c1c
--- /dev/null
+++ b/config/application_setting_columns/ai_action_api_rate_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: ai_action_api_rate_limit
+clusterwide: false
+column: ai_action_api_rate_limit
+db_type: integer
+default: '160'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/akismet_api_key.yml b/config/application_setting_columns/akismet_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f4d63d36092719fec0ba53c1b11cafab08584fd9
--- /dev/null
+++ b/config/application_setting_columns/akismet_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: akismet_api_key
+clusterwide: false
+column: encrypted_akismet_api_key
+db_type: text
+default:
+description: API key for Akismet spam protection.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/akismet_enabled.yml b/config/application_setting_columns/akismet_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cb9ccfd6e9aff1dac3d8f03550aeaae25b012662
--- /dev/null
+++ b/config/application_setting_columns/akismet_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: akismet_enabled
+clusterwide: false
+column: akismet_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `akismet_api_key`) Enable or disable Akismet
+  spam protection."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/allow_account_deletion.yml b/config/application_setting_columns/allow_account_deletion.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9f0ebaacd445e8d121d78bcc0acee62d6af71d88
--- /dev/null
+++ b/config/application_setting_columns/allow_account_deletion.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: allow_account_deletion
+clusterwide: false
+column: allow_account_deletion
+db_type: boolean
+default: 'true'
+description: Set to `true` to allow users to delete their accounts. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_deploy_tokens_and_keys_with_external_authn.yml b/config/application_setting_columns/allow_deploy_tokens_and_keys_with_external_authn.yml
new file mode 100644
index 0000000000000000000000000000000000000000..473f91f19950d972b5b750fdceb66145f1c8c5ce
--- /dev/null
+++ b/config/application_setting_columns/allow_deploy_tokens_and_keys_with_external_authn.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: allow_deploy_tokens_and_keys_with_external_authn
+clusterwide: false
+column: allow_deploy_tokens_and_keys_with_external_authn
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_group_owners_to_manage_ldap.yml b/config/application_setting_columns/allow_group_owners_to_manage_ldap.yml
new file mode 100644
index 0000000000000000000000000000000000000000..458f3b5be2b239be751b55c7c4924f6b539c5b84
--- /dev/null
+++ b/config/application_setting_columns/allow_group_owners_to_manage_ldap.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: allow_group_owners_to_manage_ldap
+clusterwide: false
+column: allow_group_owners_to_manage_ldap
+db_type: boolean
+default: 'true'
+description: Set to `true` to allow group owners to manage LDAP. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_local_requests_from_system_hooks.yml b/config/application_setting_columns/allow_local_requests_from_system_hooks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e4222b963f8dff141a8e8766549f41b75f80201
--- /dev/null
+++ b/config/application_setting_columns/allow_local_requests_from_system_hooks.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: allow_local_requests_from_system_hooks
+clusterwide: false
+column: allow_local_requests_from_system_hooks
+db_type: boolean
+default: 'true'
+description: Allow requests to the local network from system hooks.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_local_requests_from_web_hooks_and_services.yml b/config/application_setting_columns/allow_local_requests_from_web_hooks_and_services.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b6bf35a25b36c55dc89557f0c72265a90b375568
--- /dev/null
+++ b/config/application_setting_columns/allow_local_requests_from_web_hooks_and_services.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: allow_local_requests_from_web_hooks_and_services
+clusterwide: false
+column: allow_local_requests_from_web_hooks_and_services
+db_type: boolean
+default: 'false'
+description: Allow requests to the local network from webhooks and integrations.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_possible_spam.yml b/config/application_setting_columns/allow_possible_spam.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1d32304980087c273b9352fff9110948359835ec
--- /dev/null
+++ b/config/application_setting_columns/allow_possible_spam.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: allow_possible_spam
+clusterwide: false
+column: allow_possible_spam
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_project_creation_for_guest_and_below.yml b/config/application_setting_columns/allow_project_creation_for_guest_and_below.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1c4e56f6a3328f525061e55659f06d36ea4ace9a
--- /dev/null
+++ b/config/application_setting_columns/allow_project_creation_for_guest_and_below.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: allow_project_creation_for_guest_and_below
+clusterwide: false
+column: allow_project_creation_for_guest_and_below
+db_type: boolean
+default: 'true'
+description: Indicates whether users assigned up to the Guest role can create groups
+  and personal projects. Defaults to `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/allow_runner_registration_token.yml b/config/application_setting_columns/allow_runner_registration_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c1ddde8fd3dd4ca1f5509150015ce31175dc703e
--- /dev/null
+++ b/config/application_setting_columns/allow_runner_registration_token.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: allow_runner_registration_token
+clusterwide: false
+column: allow_runner_registration_token
+db_type: boolean
+default: 'true'
+description: Allow using a registration token to create a runner. Defaults to `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/anthropic_api_key.yml b/config/application_setting_columns/anthropic_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..de05791542615e8e39be9384804901b53d2052cb
--- /dev/null
+++ b/config/application_setting_columns/anthropic_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: anthropic_api_key
+clusterwide: false
+column: encrypted_anthropic_api_key
+db_type: bytea
+default:
+description: This column is currently ignored.
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/archive_builds_in_seconds.yml b/config/application_setting_columns/archive_builds_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f530c2d05fb31d8054af224791a59a055fb57bc8
--- /dev/null
+++ b/config/application_setting_columns/archive_builds_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: archive_builds_in_seconds
+clusterwide: false
+column: archive_builds_in_seconds
+db_type: integer
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/arkose_labs_client_secret.yml b/config/application_setting_columns/arkose_labs_client_secret.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2769bf205a2588aadd4c2e2b565117263a4706c5
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_client_secret.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_client_secret
+clusterwide: true
+column: encrypted_arkose_labs_client_secret
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/arkose_labs_client_xid.yml b/config/application_setting_columns/arkose_labs_client_xid.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e4dd28666622c0b1556adb98e9c35e78e36d2722
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_client_xid.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_client_xid
+clusterwide: true
+column: encrypted_arkose_labs_client_xid
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/arkose_labs_data_exchange_key.yml b/config/application_setting_columns/arkose_labs_data_exchange_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e16f94de975e5daf673d096166b35caf262b91ca
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_data_exchange_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_data_exchange_key
+clusterwide: true
+column: encrypted_arkose_labs_data_exchange_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/arkose_labs_namespace.yml b/config/application_setting_columns/arkose_labs_namespace.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1e65cff6ddd9645d495e9c4a6bacfb642430cc94
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_namespace.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_namespace
+clusterwide: true
+column: arkose_labs_namespace
+db_type: text
+default: "'client'::text"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/arkose_labs_private_api_key.yml b/config/application_setting_columns/arkose_labs_private_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1503e98c733a9f5267ae324bc9cedd1584d28468
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_private_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_private_api_key
+clusterwide: true
+column: encrypted_arkose_labs_private_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/arkose_labs_public_api_key.yml b/config/application_setting_columns/arkose_labs_public_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f727d5bb4aa1cb28a6875bc4d5b7888e60cce30c
--- /dev/null
+++ b/config/application_setting_columns/arkose_labs_public_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: arkose_labs_public_api_key
+clusterwide: true
+column: encrypted_arkose_labs_public_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/asciidoc_max_includes.yml b/config/application_setting_columns/asciidoc_max_includes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..93b4081763aa8a7b7da8a105a08a0f14265592dd
--- /dev/null
+++ b/config/application_setting_columns/asciidoc_max_includes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: asciidoc_max_includes
+clusterwide: false
+column: asciidoc_max_includes
+db_type: smallint
+default: '32'
+description: 'Maximum limit of AsciiDoc include directives being processed in any
+  one document. Default: 32. Maximum: 64.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/asset_proxy_enabled.yml b/config/application_setting_columns/asset_proxy_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7b0f501e4fced72529e1ea7e85f33df968af029c
--- /dev/null
+++ b/config/application_setting_columns/asset_proxy_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: asset_proxy_enabled
+clusterwide: true
+column: asset_proxy_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `asset_proxy_url`) Enable proxying of assets.
+  GitLab restart is required to apply changes."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/asset_proxy_secret_key.yml b/config/application_setting_columns/asset_proxy_secret_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ac59fcc7df7fb6348449a8fe63e9bbd8d81ee6b
--- /dev/null
+++ b/config/application_setting_columns/asset_proxy_secret_key.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: asset_proxy_secret_key
+clusterwide: true
+column: encrypted_asset_proxy_secret_key
+db_type: text
+default:
+description: Shared secret with the asset proxy server. GitLab restart is required
+  to apply changes.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/asset_proxy_url.yml b/config/application_setting_columns/asset_proxy_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7575c3696a7746950c39aaa15457f6cd8ba5a610
--- /dev/null
+++ b/config/application_setting_columns/asset_proxy_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: asset_proxy_url
+clusterwide: true
+column: asset_proxy_url
+db_type: character
+default:
+description: URL of the asset proxy server. GitLab restart is required to apply changes.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/asset_proxy_whitelist.yml b/config/application_setting_columns/asset_proxy_whitelist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ce5c6f7dfad2eea5aa895239d4698cbe61b31c65
--- /dev/null
+++ b/config/application_setting_columns/asset_proxy_whitelist.yml
@@ -0,0 +1,14 @@
+---
+api_type: string or array of strings
+attr: asset_proxy_whitelist
+clusterwide: true
+column: asset_proxy_whitelist
+db_type: text
+default:
+description: "(Deprecated: Use `asset_proxy_allowlist` instead) Assets that match
+  these domains are **not** proxied. Wildcards allowed. Your GitLab installation URL
+  is automatically allowlisted. GitLab restart is required to apply changes."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/authorized_keys_enabled.yml b/config/application_setting_columns/authorized_keys_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..107cdbf148e5a30c39645e2b6bb3e3afb792c6b2
--- /dev/null
+++ b/config/application_setting_columns/authorized_keys_enabled.yml
@@ -0,0 +1,15 @@
+---
+api_type: boolean
+attr: authorized_keys_enabled
+clusterwide: true
+column: authorized_keys_enabled
+db_type: boolean
+default: 'true'
+description: By default, we write to the `authorized_keys` file to support Git over
+  SSH without additional configuration. GitLab can be optimized to authenticate SSH
+  keys via the database file. Only disable this if you have configured your OpenSSH
+  server to use the AuthorizedKeysCommand.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/auto_ban_user_on_excessive_projects_download.yml b/config/application_setting_columns/auto_ban_user_on_excessive_projects_download.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a600e4140f8a15a72832fc837c63480935cf98e3
--- /dev/null
+++ b/config/application_setting_columns/auto_ban_user_on_excessive_projects_download.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: auto_ban_user_on_excessive_projects_download
+clusterwide: false
+column: auto_ban_user_on_excessive_projects_download
+db_type: boolean
+default: 'false'
+description: When enabled, users will get automatically banned from the application
+  when they download more than the maximum number of unique projects in the time period
+  specified by `max_number_of_repository_downloads` and `max_number_of_repository_downloads_within_time_period`
+  respectively. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94153)
+  in GitLab 15.4. Self-managed, Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/auto_devops_domain.yml b/config/application_setting_columns/auto_devops_domain.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ef151af5aa30c7896b9af5910363c0d497da9566
--- /dev/null
+++ b/config/application_setting_columns/auto_devops_domain.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: auto_devops_domain
+clusterwide: true
+column: auto_devops_domain
+db_type: character
+default:
+description: Specify a domain to use by default for every project's Auto Review Apps
+  and Auto Deploy stages.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/auto_devops_enabled.yml b/config/application_setting_columns/auto_devops_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1aaafd043a2b68e808887370bce6b7cedae24919
--- /dev/null
+++ b/config/application_setting_columns/auto_devops_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: auto_devops_enabled
+clusterwide: true
+column: auto_devops_enabled
+db_type: boolean
+default: 'true'
+description: Enable Auto DevOps for projects by default. It automatically builds,
+  tests, and deploys applications based on a predefined CI/CD configuration.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/automatic_purchased_storage_allocation.yml b/config/application_setting_columns/automatic_purchased_storage_allocation.yml
new file mode 100644
index 0000000000000000000000000000000000000000..39c805462f2302da7fb165091f6875bb5ee88c80
--- /dev/null
+++ b/config/application_setting_columns/automatic_purchased_storage_allocation.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: automatic_purchased_storage_allocation
+clusterwide: true
+column: automatic_purchased_storage_allocation
+db_type: boolean
+default: 'false'
+description: Enabling this permits automatic allocation of purchased storage in a
+  namespace. Relevant only to EE distributions.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/bulk_import_concurrent_pipeline_batch_limit.yml b/config/application_setting_columns/bulk_import_concurrent_pipeline_batch_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6be366cab7f9369eea647b2720833326e1b5506d
--- /dev/null
+++ b/config/application_setting_columns/bulk_import_concurrent_pipeline_batch_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: bulk_import_concurrent_pipeline_batch_limit
+clusterwide: false
+column: bulk_import_concurrent_pipeline_batch_limit
+db_type: smallint
+default: '25'
+description: Maximum simultaneous Direct Transfer batches to process.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/bulk_import_enabled.yml b/config/application_setting_columns/bulk_import_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e620948251782dd3fd00c9db2d6897805d887267
--- /dev/null
+++ b/config/application_setting_columns/bulk_import_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: bulk_import_enabled
+clusterwide: false
+column: bulk_import_enabled
+db_type: boolean
+default: 'false'
+description: Enable migrating GitLab groups by direct transfer. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383268)
+  in GitLab 15.8. Setting also [available](../administration/settings/import_and_export_settings.md#enable-migration-of-groups-and-projects-by-direct-transfer)
+  in the **Admin** area.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/bulk_import_max_download_file_size.yml b/config/application_setting_columns/bulk_import_max_download_file_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7e5e64baf853d1f15f526e51b44bee652f689e11
--- /dev/null
+++ b/config/application_setting_columns/bulk_import_max_download_file_size.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: bulk_import_max_download_file_size
+clusterwide: false
+column: bulk_import_max_download_file_size
+db_type: bigint
+default: '5120'
+description: Maximum download file size when importing from source GitLab instances
+  by direct transfer. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/384976)
+  in GitLab 16.3.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/cached_markdown_version.yml b/config/application_setting_columns/cached_markdown_version.yml
new file mode 100644
index 0000000000000000000000000000000000000000..152f905c4ca522c02c2c20770f6eb696def66015
--- /dev/null
+++ b/config/application_setting_columns/cached_markdown_version.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: cached_markdown_version
+clusterwide: false
+column: cached_markdown_version
+db_type: integer
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/can_create_group.yml b/config/application_setting_columns/can_create_group.yml
new file mode 100644
index 0000000000000000000000000000000000000000..db4834f34f2428c3523b58b667081112f49172b8
--- /dev/null
+++ b/config/application_setting_columns/can_create_group.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: can_create_group
+clusterwide: false
+column: can_create_group
+db_type: boolean
+default: 'true'
+description: Indicates whether users can create top-level groups. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/367754)
+  in GitLab 15.5. Defaults to `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/can_create_organization.yml b/config/application_setting_columns/can_create_organization.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a1e745cfeecc8bacb5aab748a0f75d9ecbd682e6
--- /dev/null
+++ b/config/application_setting_columns/can_create_organization.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: can_create_organization
+clusterwide: false
+column: can_create_organization
+db_type: boolean
+default: 'true'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/check_namespace_plan.yml b/config/application_setting_columns/check_namespace_plan.yml
new file mode 100644
index 0000000000000000000000000000000000000000..406bfcc98659a29eebdf36a928eb275abeda11fc
--- /dev/null
+++ b/config/application_setting_columns/check_namespace_plan.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: check_namespace_plan
+clusterwide: true
+column: check_namespace_plan
+db_type: boolean
+default: 'false'
+description: Enabling this makes only licensed EE features available to projects if
+  the project namespace's plan includes the feature or if the project is public. Premium
+  and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/ci_jwt_signing_key.yml b/config/application_setting_columns/ci_jwt_signing_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..14fa3286ebfbfc30a30f87244a376eccebfc7b82
--- /dev/null
+++ b/config/application_setting_columns/ci_jwt_signing_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: ci_jwt_signing_key
+clusterwide: true
+column: encrypted_ci_jwt_signing_key
+db_type: text
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/ci_max_includes.yml b/config/application_setting_columns/ci_max_includes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cb9aac202029c12640398ecd915ccb7680843e6e
--- /dev/null
+++ b/config/application_setting_columns/ci_max_includes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ci_max_includes
+clusterwide: false
+column: ci_max_includes
+db_type: integer
+default: '150'
+description: The [maximum number of includes](../administration/settings/continuous_integration.md#maximum-includes)
+  per pipeline. Default is `150`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/ci_max_total_yaml_size_bytes.yml b/config/application_setting_columns/ci_max_total_yaml_size_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0a9063c73cc801e7e197f6508aa2bb22e94e384e
--- /dev/null
+++ b/config/application_setting_columns/ci_max_total_yaml_size_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ci_max_total_yaml_size_bytes
+clusterwide: false
+column: ci_max_total_yaml_size_bytes
+db_type: integer
+default: '314572800'
+description: The maximum amount of memory, in bytes, that can be allocated for the
+  pipeline configuration, with all included YAML configuration files.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/clickhouse.yml b/config/application_setting_columns/clickhouse.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c6c33b3efd06e648537f152fa83f320e70ab24d2
--- /dev/null
+++ b/config/application_setting_columns/clickhouse.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: clickhouse
+clusterwide: true
+column: clickhouse
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/cloud_license_auth_token.yml b/config/application_setting_columns/cloud_license_auth_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..570374570ee08d14764c79b23b0b574b4d2fd7f5
--- /dev/null
+++ b/config/application_setting_columns/cloud_license_auth_token.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: cloud_license_auth_token
+clusterwide: false
+column: encrypted_cloud_license_auth_token
+db_type: text
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/cluster_agents.yml b/config/application_setting_columns/cluster_agents.yml
new file mode 100644
index 0000000000000000000000000000000000000000..954d3e684c82968b76aa918b028f86aeeeb1261b
--- /dev/null
+++ b/config/application_setting_columns/cluster_agents.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: cluster_agents
+clusterwide: true
+column: cluster_agents
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/code_creation.yml b/config/application_setting_columns/code_creation.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d70e2d3d59eb25772ec09a566610a3e983aa48a5
--- /dev/null
+++ b/config/application_setting_columns/code_creation.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: code_creation
+clusterwide: true
+column: code_creation
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/code_suggestions_api_rate_limit.yml b/config/application_setting_columns/code_suggestions_api_rate_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9b1c187713e40adaa6b84382819e3114df481a78
--- /dev/null
+++ b/config/application_setting_columns/code_suggestions_api_rate_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: code_suggestions_api_rate_limit
+clusterwide: false
+column: code_suggestions_api_rate_limit
+db_type: integer
+default: '60'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/commit_email_hostname.yml b/config/application_setting_columns/commit_email_hostname.yml
new file mode 100644
index 0000000000000000000000000000000000000000..99b05fa7ee7ff2941c0caebf43991deaf1c58073
--- /dev/null
+++ b/config/application_setting_columns/commit_email_hostname.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: commit_email_hostname
+clusterwide: true
+column: commit_email_hostname
+db_type: character
+default:
+description: Custom hostname (for private commit emails).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/compliance_frameworks.yml b/config/application_setting_columns/compliance_frameworks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..12c35e5df3f05abc7b1cc17a8c5c93af0af9b458
--- /dev/null
+++ b/config/application_setting_columns/compliance_frameworks.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: compliance_frameworks
+clusterwide: false
+column: compliance_frameworks
+db_type: smallint[]
+default: "'{}'::smallint[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_expiration_policies_enable_historic_entries.yml b/config/application_setting_columns/container_expiration_policies_enable_historic_entries.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bc3d8f907707253c9c9806b80f380b11f333f5ac
--- /dev/null
+++ b/config/application_setting_columns/container_expiration_policies_enable_historic_entries.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: container_expiration_policies_enable_historic_entries
+clusterwide: true
+column: container_expiration_policies_enable_historic_entries
+db_type: boolean
+default: 'false'
+description: Enable [cleanup policies](../user/packages/container_registry/reduce_container_registry_storage.md#enable-the-cleanup-policy)
+  for all projects.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_cleanup_tags_service_max_list_size.yml b/config/application_setting_columns/container_registry_cleanup_tags_service_max_list_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..db2bbd68dd7fb20d74137c67f6c455f4e8ee2867
--- /dev/null
+++ b/config/application_setting_columns/container_registry_cleanup_tags_service_max_list_size.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: container_registry_cleanup_tags_service_max_list_size
+clusterwide: false
+column: container_registry_cleanup_tags_service_max_list_size
+db_type: integer
+default: '200'
+description: The maximum number of tags that can be deleted in a single execution
+  of [cleanup policies](../user/packages/container_registry/reduce_container_registry_storage.md#set-cleanup-limits-to-conserve-resources).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_data_repair_detail_worker_max_concurrency.yml b/config/application_setting_columns/container_registry_data_repair_detail_worker_max_concurrency.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6329731736087c8cddede2e2a2e4983be5465704
--- /dev/null
+++ b/config/application_setting_columns/container_registry_data_repair_detail_worker_max_concurrency.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: container_registry_data_repair_detail_worker_max_concurrency
+clusterwide: false
+column: container_registry_data_repair_detail_worker_max_concurrency
+db_type: integer
+default: '2'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_db_enabled.yml b/config/application_setting_columns/container_registry_db_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..505eb8d804e73c300743379133ead3b45d947021
--- /dev/null
+++ b/config/application_setting_columns/container_registry_db_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: container_registry_db_enabled
+clusterwide: true
+column: container_registry_db_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_delete_tags_service_timeout.yml b/config/application_setting_columns/container_registry_delete_tags_service_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5ca7c005e7c1501a7d83c692845634d3162d42c1
--- /dev/null
+++ b/config/application_setting_columns/container_registry_delete_tags_service_timeout.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: container_registry_delete_tags_service_timeout
+clusterwide: false
+column: container_registry_delete_tags_service_timeout
+db_type: integer
+default: '250'
+description: The maximum time, in seconds, that the cleanup process can take to delete
+  a batch of tags for [cleanup policies](../user/packages/container_registry/reduce_container_registry_storage.md#set-cleanup-limits-to-conserve-resources).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_expiration_policies_caching.yml b/config/application_setting_columns/container_registry_expiration_policies_caching.yml
new file mode 100644
index 0000000000000000000000000000000000000000..14a43fddd45dfcc981998060659eeccd615d0539
--- /dev/null
+++ b/config/application_setting_columns/container_registry_expiration_policies_caching.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: container_registry_expiration_policies_caching
+clusterwide: false
+column: container_registry_expiration_policies_caching
+db_type: boolean
+default: 'true'
+description: Caching during the execution of [cleanup policies](../user/packages/container_registry/reduce_container_registry_storage.md#set-cleanup-limits-to-conserve-resources).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_expiration_policies_worker_capacity.yml b/config/application_setting_columns/container_registry_expiration_policies_worker_capacity.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c639e275eee92958018f69662dfb59a642438bfb
--- /dev/null
+++ b/config/application_setting_columns/container_registry_expiration_policies_worker_capacity.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: container_registry_expiration_policies_worker_capacity
+clusterwide: false
+column: container_registry_expiration_policies_worker_capacity
+db_type: integer
+default: '4'
+description: Number of workers for [cleanup policies](../user/packages/container_registry/reduce_container_registry_storage.md#set-cleanup-limits-to-conserve-resources).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_features.yml b/config/application_setting_columns/container_registry_features.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e68c529fd064a680314844246fc8924d0682a987
--- /dev/null
+++ b/config/application_setting_columns/container_registry_features.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: container_registry_features
+clusterwide: true
+column: container_registry_features
+db_type: text[]
+default: "'{}'::text[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_token_expire_delay.yml b/config/application_setting_columns/container_registry_token_expire_delay.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9fe104303a67ede7b11c73f840fe148fdb987aea
--- /dev/null
+++ b/config/application_setting_columns/container_registry_token_expire_delay.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: container_registry_token_expire_delay
+clusterwide: false
+column: container_registry_token_expire_delay
+db_type: integer
+default: '5'
+description: Container registry token duration in minutes.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/container_registry_vendor.yml b/config/application_setting_columns/container_registry_vendor.yml
new file mode 100644
index 0000000000000000000000000000000000000000..47ebd1c20ca247f7e380fed628d37bdef92265b9
--- /dev/null
+++ b/config/application_setting_columns/container_registry_vendor.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: container_registry_vendor
+clusterwide: true
+column: container_registry_vendor
+db_type: text
+default: "''::text"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/container_registry_version.yml b/config/application_setting_columns/container_registry_version.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8b33fc672a087a41986f47f4f0214da5bc486ad1
--- /dev/null
+++ b/config/application_setting_columns/container_registry_version.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: container_registry_version
+clusterwide: true
+column: container_registry_version
+db_type: text
+default: "''::text"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/content_validation_api_key.yml b/config/application_setting_columns/content_validation_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c3827915ffa0d147799c3c195208095800c32be2
--- /dev/null
+++ b/config/application_setting_columns/content_validation_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: content_validation_api_key
+clusterwide: false
+column: encrypted_content_validation_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/content_validation_endpoint_enabled.yml b/config/application_setting_columns/content_validation_endpoint_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a03c45f8c45f297f4e9e407421b0467f26c0f05
--- /dev/null
+++ b/config/application_setting_columns/content_validation_endpoint_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: content_validation_endpoint_enabled
+clusterwide: false
+column: content_validation_endpoint_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/content_validation_endpoint_url.yml b/config/application_setting_columns/content_validation_endpoint_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ab7006b77ae038e134f5e5ddb621b06e3b277931
--- /dev/null
+++ b/config/application_setting_columns/content_validation_endpoint_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: content_validation_endpoint_url
+clusterwide: false
+column: content_validation_endpoint_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: false
diff --git a/config/application_setting_columns/created_at.yml b/config/application_setting_columns/created_at.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bba7bbf81fc5f914ff495bf534e144cb017664b6
--- /dev/null
+++ b/config/application_setting_columns/created_at.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: created_at
+clusterwide: false
+column: created_at
+db_type: timestamp
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/cube_api_base_url.yml b/config/application_setting_columns/cube_api_base_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5d4b9d5d8fa3b4a6cf498c5abe1503897b688383
--- /dev/null
+++ b/config/application_setting_columns/cube_api_base_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: cube_api_base_url
+clusterwide: true
+column: cube_api_base_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/cube_api_key.yml b/config/application_setting_columns/cube_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bcd14b7888493ffd3702fad148a17bbee3a5a636
--- /dev/null
+++ b/config/application_setting_columns/cube_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: cube_api_key
+clusterwide: true
+column: encrypted_cube_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/custom_http_clone_url_root.yml b/config/application_setting_columns/custom_http_clone_url_root.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6750319af523b5c30efa748cbbc9048185853910
--- /dev/null
+++ b/config/application_setting_columns/custom_http_clone_url_root.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: custom_http_clone_url_root
+clusterwide: true
+column: custom_http_clone_url_root
+db_type: character
+default:
+description: Set a custom Git clone URL for HTTP(S).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/custom_project_templates_group_id.yml b/config/application_setting_columns/custom_project_templates_group_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6f4607a5fd2981d2ecc40577d56ce32181a6330b
--- /dev/null
+++ b/config/application_setting_columns/custom_project_templates_group_id.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: custom_project_templates_group_id
+clusterwide:
+column: custom_project_templates_group_id
+db_type: bigint
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/customers_dot_jwt_signing_key.yml b/config/application_setting_columns/customers_dot_jwt_signing_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a13620fffb87429106a48fcfc1354748310a1f0e
--- /dev/null
+++ b/config/application_setting_columns/customers_dot_jwt_signing_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: customers_dot_jwt_signing_key
+clusterwide: true
+column: encrypted_customers_dot_jwt_signing_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dashboard_limit.yml b/config/application_setting_columns/dashboard_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b2a9bce481af13ba0763ef14bf4127c499029780
--- /dev/null
+++ b/config/application_setting_columns/dashboard_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dashboard_limit
+clusterwide:
+column: dashboard_limit
+db_type: integer
+default: '0'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/dashboard_limit_enabled.yml b/config/application_setting_columns/dashboard_limit_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7d9ef3e458d041fa1a53913b6c517908c5573508
--- /dev/null
+++ b/config/application_setting_columns/dashboard_limit_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dashboard_limit_enabled
+clusterwide:
+column: dashboard_limit_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/database_grafana_api_key.yml b/config/application_setting_columns/database_grafana_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..593c14d22bb799a5506285f3f0b3da799ad568bc
--- /dev/null
+++ b/config/application_setting_columns/database_grafana_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: database_grafana_api_key
+clusterwide:
+column: encrypted_database_grafana_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/database_grafana_api_url.yml b/config/application_setting_columns/database_grafana_api_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d4a578d06de08bd6a88bb9869113e8fbbee2abc3
--- /dev/null
+++ b/config/application_setting_columns/database_grafana_api_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: database_grafana_api_url
+clusterwide:
+column: database_grafana_api_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/database_grafana_tag.yml b/config/application_setting_columns/database_grafana_tag.yml
new file mode 100644
index 0000000000000000000000000000000000000000..27eec2b658ca0efe052b37334cdaff402d2dd8a6
--- /dev/null
+++ b/config/application_setting_columns/database_grafana_tag.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: database_grafana_tag
+clusterwide:
+column: database_grafana_tag
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/database_max_running_batched_background_migrations.yml b/config/application_setting_columns/database_max_running_batched_background_migrations.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7783a99ba530c63210266aa358593a29bc224062
--- /dev/null
+++ b/config/application_setting_columns/database_max_running_batched_background_migrations.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: database_max_running_batched_background_migrations
+clusterwide:
+column: database_max_running_batched_background_migrations
+db_type: integer
+default: '2'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/deactivate_dormant_users.yml b/config/application_setting_columns/deactivate_dormant_users.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c0906437acb12571a87cca2dcf61a6f48d3f8409
--- /dev/null
+++ b/config/application_setting_columns/deactivate_dormant_users.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: deactivate_dormant_users
+clusterwide:
+column: deactivate_dormant_users
+db_type: boolean
+default: 'false'
+description: Enable [automatic deactivation of dormant users](../administration/moderate_users.md#automatically-deactivate-dormant-users).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/deactivate_dormant_users_period.yml b/config/application_setting_columns/deactivate_dormant_users_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..668b6ada30df855816cddfcdf4bb19ab6aa9184b
--- /dev/null
+++ b/config/application_setting_columns/deactivate_dormant_users_period.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: deactivate_dormant_users_period
+clusterwide:
+column: deactivate_dormant_users_period
+db_type: integer
+default: '90'
+description: Length of time (in days) after which a user is considered dormant. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/336747)
+  in GitLab 15.3.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/deactivation_email_additional_text.yml b/config/application_setting_columns/deactivation_email_additional_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8900fb20ac54124359e199884e3a655a9ccee7d5
--- /dev/null
+++ b/config/application_setting_columns/deactivation_email_additional_text.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: deactivation_email_additional_text
+clusterwide:
+column: deactivation_email_additional_text
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/decompress_archive_file_timeout.yml b/config/application_setting_columns/decompress_archive_file_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3d8fafb49bbcc0f521f60b14a45caf6f98170493
--- /dev/null
+++ b/config/application_setting_columns/decompress_archive_file_timeout.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: decompress_archive_file_timeout
+clusterwide:
+column: decompress_archive_file_timeout
+db_type: integer
+default: '210'
+description: Default timeout for decompressing archived files, in seconds. Set to
+  0 to disable timeouts. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129161)
+  in GitLab 16.4.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_artifacts_expire_in.yml b/config/application_setting_columns/default_artifacts_expire_in.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b9bdb79e2e7f7ccbe84dd59452165f7b7d9a2b7e
--- /dev/null
+++ b/config/application_setting_columns/default_artifacts_expire_in.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: default_artifacts_expire_in
+clusterwide:
+column: default_artifacts_expire_in
+db_type: character
+default: "'0'::character"
+description: Set the default expiration time for each job's artifacts.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_branch_name.yml b/config/application_setting_columns/default_branch_name.yml
new file mode 100644
index 0000000000000000000000000000000000000000..02ec1724db88337fedd4250d1eb045a2f39ea9f6
--- /dev/null
+++ b/config/application_setting_columns/default_branch_name.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: default_branch_name
+clusterwide:
+column: default_branch_name
+db_type: text
+default:
+description: "[Instance-level custom initial branch name](../user/project/repository/branches/default.md#instance-level-custom-initial-branch-name)."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/default_branch_protection.yml b/config/application_setting_columns/default_branch_protection.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ae35610a5a802b99b70378e9520e715eb07fddb4
--- /dev/null
+++ b/config/application_setting_columns/default_branch_protection.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: default_branch_protection
+clusterwide:
+column: default_branch_protection
+db_type: integer
+default: '2'
+description: "[Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/408314) in
+  GitLab 17.0. Use `default_branch_protection_defaults` instead."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/default_branch_protection_defaults.yml b/config/application_setting_columns/default_branch_protection_defaults.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b5a0c7b10cfb48ee8a2d226b761d36de4e10111b
--- /dev/null
+++ b/config/application_setting_columns/default_branch_protection_defaults.yml
@@ -0,0 +1,13 @@
+---
+api_type: hash
+attr: default_branch_protection_defaults
+clusterwide:
+column: default_branch_protection_defaults
+db_type: jsonb
+default: "'{}'::jsonb"
+description: "[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/408314) in
+  GitLab 17.0. For available options, see [Options for `default_branch_protection_defaults`](groups.md#options-for-default_branch_protection_defaults)."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_ci_config_path.yml b/config/application_setting_columns/default_ci_config_path.yml
new file mode 100644
index 0000000000000000000000000000000000000000..34514469ff91a5e254e540ef362dd42559f4c805
--- /dev/null
+++ b/config/application_setting_columns/default_ci_config_path.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: default_ci_config_path
+clusterwide:
+column: default_ci_config_path
+db_type: character
+default:
+description: Default CI/CD configuration file and path for new projects (`.gitlab-ci.yml`
+  if not set).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/default_group_visibility.yml b/config/application_setting_columns/default_group_visibility.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e462b241563656b4b96f4fe442a9278d6422947b
--- /dev/null
+++ b/config/application_setting_columns/default_group_visibility.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: default_group_visibility
+clusterwide:
+column: default_group_visibility
+db_type: integer
+default:
+description: 'What visibility level new groups receive. Can take `private`, `internal`
+  and `public` as a parameter. Default is `private`. [Changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131203)
+  in GitLab 16.4: cannot be set to any levels in `restricted_visibility_levels`.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/default_preferred_language.yml b/config/application_setting_columns/default_preferred_language.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b8b60b3ddfd0b8a76f8c9a5f040d1e72c184d563
--- /dev/null
+++ b/config/application_setting_columns/default_preferred_language.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: default_preferred_language
+clusterwide:
+column: default_preferred_language
+db_type: text
+default: "'en'::text"
+description: Default preferred language for users who are not logged in.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_project_creation.yml b/config/application_setting_columns/default_project_creation.yml
new file mode 100644
index 0000000000000000000000000000000000000000..26797b3f218765bff84ebd8a4be04c23291145c9
--- /dev/null
+++ b/config/application_setting_columns/default_project_creation.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: default_project_creation
+clusterwide:
+column: default_project_creation
+db_type: integer
+default: '2'
+description: 'Default project creation protection. Can take: `0` _(No one)_, `1` _(Maintainers)_
+  or `2` _(Developers + Maintainers)_'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_project_deletion_protection.yml b/config/application_setting_columns/default_project_deletion_protection.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e621880f416ccf27d543f542c8e7e297f15cdab7
--- /dev/null
+++ b/config/application_setting_columns/default_project_deletion_protection.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: default_project_deletion_protection
+clusterwide:
+column: default_project_deletion_protection
+db_type: boolean
+default: 'false'
+description: Enable default project deletion protection so only administrators can
+  delete projects. Default is `false`. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_project_visibility.yml b/config/application_setting_columns/default_project_visibility.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e3a706854fe850f70541560c4265167ea80e6de2
--- /dev/null
+++ b/config/application_setting_columns/default_project_visibility.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: default_project_visibility
+clusterwide:
+column: default_project_visibility
+db_type: integer
+default: '0'
+description: 'What visibility level new projects receive. Can take `private`, `internal`
+  and `public` as a parameter. Default is `private`. [Changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131203)
+  in GitLab 16.4: cannot be set to any levels in `restricted_visibility_levels`.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_projects_limit.yml b/config/application_setting_columns/default_projects_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..50bb42a1e0eb09363810e12487e592aa1ef8c49f
--- /dev/null
+++ b/config/application_setting_columns/default_projects_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: default_projects_limit
+clusterwide: false
+column: default_projects_limit
+db_type: integer
+default:
+description: Project limit per user. Default is `100000`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/default_snippet_visibility.yml b/config/application_setting_columns/default_snippet_visibility.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a54c038c1c403c01a090704c12991ebbf8b7b711
--- /dev/null
+++ b/config/application_setting_columns/default_snippet_visibility.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: default_snippet_visibility
+clusterwide:
+column: default_snippet_visibility
+db_type: integer
+default: '0'
+description: What visibility level new snippets receive. Can take `private`, `internal`
+  and `public` as a parameter. Default is `private`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/default_syntax_highlighting_theme.yml b/config/application_setting_columns/default_syntax_highlighting_theme.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7e06ffecf8fbc91ece6143669cd684480dbdd2bc
--- /dev/null
+++ b/config/application_setting_columns/default_syntax_highlighting_theme.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: default_syntax_highlighting_theme
+clusterwide:
+column: default_syntax_highlighting_theme
+db_type: integer
+default: '1'
+description: Default syntax highlighting theme for users who are new or not signed
+  in. See [IDs of available themes](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/themes.rb#L16).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/delete_inactive_projects.yml b/config/application_setting_columns/delete_inactive_projects.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ef955b51625c28a4074092e0fbb874584057f175
--- /dev/null
+++ b/config/application_setting_columns/delete_inactive_projects.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: delete_inactive_projects
+clusterwide:
+column: delete_inactive_projects
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/delete_unconfirmed_users.yml b/config/application_setting_columns/delete_unconfirmed_users.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d2ac0ef090f0d748dd6aa9ef559572a33fab051b
--- /dev/null
+++ b/config/application_setting_columns/delete_unconfirmed_users.yml
@@ -0,0 +1,15 @@
+---
+api_type: boolean
+attr: delete_unconfirmed_users
+clusterwide:
+column: delete_unconfirmed_users
+db_type: boolean
+default: 'false'
+description: Specifies whether users who have not confirmed their email should be
+  deleted. Default is `false`. When set to `true`, unconfirmed users are deleted after
+  `unconfirmed_users_delete_after_days` days. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352514)
+  in GitLab 16.1. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/deletion_adjourned_period.yml b/config/application_setting_columns/deletion_adjourned_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..35f40cea2e26a78a19269148c955ada1e4cd585c
--- /dev/null
+++ b/config/application_setting_columns/deletion_adjourned_period.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: deletion_adjourned_period
+clusterwide:
+column: deletion_adjourned_period
+db_type: integer
+default: '7'
+description: Number of days to wait before deleting a project or group that is marked
+  for deletion. Value must be between `1` and `90`. Defaults to `7`. Self-managed,
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/deny_all_requests_except_allowed.yml b/config/application_setting_columns/deny_all_requests_except_allowed.yml
new file mode 100644
index 0000000000000000000000000000000000000000..654b59a8de68eff4ff17fceb5f5a19670f822f22
--- /dev/null
+++ b/config/application_setting_columns/deny_all_requests_except_allowed.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: deny_all_requests_except_allowed
+clusterwide:
+column: deny_all_requests_except_allowed
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/dependency_proxy_ttl_group_policy_worker_capacity.yml b/config/application_setting_columns/dependency_proxy_ttl_group_policy_worker_capacity.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61341a5f00a4500d91d56e71f6d888fd82f912c2
--- /dev/null
+++ b/config/application_setting_columns/dependency_proxy_ttl_group_policy_worker_capacity.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dependency_proxy_ttl_group_policy_worker_capacity
+clusterwide:
+column: dependency_proxy_ttl_group_policy_worker_capacity
+db_type: smallint
+default: '2'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/diagramsnet_enabled.yml b/config/application_setting_columns/diagramsnet_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6cf2b6c84b16bf963d859d3fa50924714e8cc928
--- /dev/null
+++ b/config/application_setting_columns/diagramsnet_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: diagramsnet_enabled
+clusterwide:
+column: diagramsnet_enabled
+db_type: boolean
+default: 'true'
+description: "(If enabled, requires `diagramsnet_url`) Enable [Diagrams.net integration](../administration/integration/diagrams_net.md).
+  Default is `true`."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/diagramsnet_url.yml b/config/application_setting_columns/diagramsnet_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fc6ed4bf4cb9b512bc55c10e7bf8603fe9258cec
--- /dev/null
+++ b/config/application_setting_columns/diagramsnet_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: diagramsnet_url
+clusterwide:
+column: diagramsnet_url
+db_type: text
+default: "'https://embed.diagrams.net'::text"
+description: The Diagrams.net instance URL for integration.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/diff_max_files.yml b/config/application_setting_columns/diff_max_files.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a1c66ea22d210a8fc9b3f3b6d63d81ec0bcf9a6d
--- /dev/null
+++ b/config/application_setting_columns/diff_max_files.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: diff_max_files
+clusterwide:
+column: diff_max_files
+db_type: integer
+default: '1000'
+description: Maximum [files in a diff](../administration/diff_limits.md).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/diff_max_lines.yml b/config/application_setting_columns/diff_max_lines.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9f658a3d6e46d512a0af5c9e8ce475d119f7f10e
--- /dev/null
+++ b/config/application_setting_columns/diff_max_lines.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: diff_max_lines
+clusterwide:
+column: diff_max_lines
+db_type: integer
+default: '50000'
+description: Maximum [lines in a diff](../administration/diff_limits.md).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/diff_max_patch_bytes.yml b/config/application_setting_columns/diff_max_patch_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4b9178ed88d1552e60aac96f33692048ba91ef53
--- /dev/null
+++ b/config/application_setting_columns/diff_max_patch_bytes.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: diff_max_patch_bytes
+clusterwide:
+column: diff_max_patch_bytes
+db_type: integer
+default: '204800'
+description: Maximum [diff patch size](../administration/diff_limits.md), in bytes.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/dingtalk_app_key.yml b/config/application_setting_columns/dingtalk_app_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5794b59031918abdf514b49109e7da0d2efe4e07
--- /dev/null
+++ b/config/application_setting_columns/dingtalk_app_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dingtalk_app_key
+clusterwide:
+column: encrypted_dingtalk_app_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dingtalk_app_secret.yml b/config/application_setting_columns/dingtalk_app_secret.yml
new file mode 100644
index 0000000000000000000000000000000000000000..46ee632d21a6e61c816b79560464bf20d4020010
--- /dev/null
+++ b/config/application_setting_columns/dingtalk_app_secret.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dingtalk_app_secret
+clusterwide:
+column: encrypted_dingtalk_app_secret
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dingtalk_corpid.yml b/config/application_setting_columns/dingtalk_corpid.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ef0020a985f5f751a3234e9f25201acaaf9993b3
--- /dev/null
+++ b/config/application_setting_columns/dingtalk_corpid.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dingtalk_corpid
+clusterwide:
+column: encrypted_dingtalk_corpid
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dingtalk_integration_enabled.yml b/config/application_setting_columns/dingtalk_integration_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1313b8a77f2dee46cb1eff3a60761b91fc6be607
--- /dev/null
+++ b/config/application_setting_columns/dingtalk_integration_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: dingtalk_integration_enabled
+clusterwide:
+column: dingtalk_integration_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/disable_admin_oauth_scopes.yml b/config/application_setting_columns/disable_admin_oauth_scopes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f590da89904a482c78f87610f3eb06821dcf24e7
--- /dev/null
+++ b/config/application_setting_columns/disable_admin_oauth_scopes.yml
@@ -0,0 +1,15 @@
+---
+api_type: boolean
+attr: disable_admin_oauth_scopes
+clusterwide:
+column: disable_admin_oauth_scopes
+db_type: boolean
+default: 'false'
+description: Stops administrators from connecting their GitLab accounts to non-trusted
+  OAuth 2.0 applications that have the `api`, `read_api`, `read_repository`, `write_repository`,
+  `read_registry`, `write_registry`, or `sudo` scopes. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/375043)
+  in GitLab 15.6.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/disable_download_button.yml b/config/application_setting_columns/disable_download_button.yml
new file mode 100644
index 0000000000000000000000000000000000000000..962b206bca822ca81f7c7392fae4d4700f648186
--- /dev/null
+++ b/config/application_setting_columns/disable_download_button.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: disable_download_button
+clusterwide:
+column: disable_download_button
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/disable_feed_token.yml b/config/application_setting_columns/disable_feed_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ef4c57594f874c041afe855853d1c15543990063
--- /dev/null
+++ b/config/application_setting_columns/disable_feed_token.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: disable_feed_token
+clusterwide:
+column: disable_feed_token
+db_type: boolean
+default: 'false'
+description: Disable display of RSS/Atom and calendar feed tokens.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/disable_overriding_approvers_per_merge_request.yml b/config/application_setting_columns/disable_overriding_approvers_per_merge_request.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e7959770fbd675a12749d21c9d3231e34cff9206
--- /dev/null
+++ b/config/application_setting_columns/disable_overriding_approvers_per_merge_request.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: disable_overriding_approvers_per_merge_request
+clusterwide:
+column: disable_overriding_approvers_per_merge_request
+db_type: boolean
+default: 'false'
+description: Prevent editing approval rules in projects and merge requests
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/disable_personal_access_tokens.yml b/config/application_setting_columns/disable_personal_access_tokens.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fca81baed4b7fa3e6488a00e4ddc93c8343f2c93
--- /dev/null
+++ b/config/application_setting_columns/disable_personal_access_tokens.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: disable_personal_access_tokens
+clusterwide:
+column: disable_personal_access_tokens
+db_type: boolean
+default: 'false'
+description: Disable personal access tokens. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/384201)
+  in GitLab 15.7. Self-managed, Premium and Ultimate only. There is no method available
+  to enable a personal access token that's been disabled through the API. This is
+  a [known issue](https://gitlab.com/gitlab-org/gitlab/-/issues/399233). For more
+  information about available workarounds, see [Workaround](https://gitlab.com/gitlab-org/gitlab/-/issues/399233#workaround).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/disabled_oauth_sign_in_sources.yml b/config/application_setting_columns/disabled_oauth_sign_in_sources.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d13e075d9799c74823a6f1909ca2cc38b5522db4
--- /dev/null
+++ b/config/application_setting_columns/disabled_oauth_sign_in_sources.yml
@@ -0,0 +1,12 @@
+---
+api_type: array of strings
+attr: disabled_oauth_sign_in_sources
+clusterwide:
+column: disabled_oauth_sign_in_sources
+db_type: text
+default:
+description: Disabled OAuth sign-in sources.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dns_rebinding_protection_enabled.yml b/config/application_setting_columns/dns_rebinding_protection_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7ead68d46005671fb6af477fcd3df8b5be47f2e
--- /dev/null
+++ b/config/application_setting_columns/dns_rebinding_protection_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: dns_rebinding_protection_enabled
+clusterwide:
+column: dns_rebinding_protection_enabled
+db_type: boolean
+default: 'true'
+description: Enforce DNS-rebinding attack protection.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/domain_allowlist.yml b/config/application_setting_columns/domain_allowlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ec795503c246580a7ee73c9c99c4f90409ad8c5f
--- /dev/null
+++ b/config/application_setting_columns/domain_allowlist.yml
@@ -0,0 +1,13 @@
+---
+api_type: array of strings
+attr: domain_allowlist
+clusterwide:
+column: domain_allowlist
+db_type: text
+default:
+description: Force people to use only corporate emails for sign-up. Default is `null`,
+  meaning there is no restriction.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/domain_denylist.yml b/config/application_setting_columns/domain_denylist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d4200ff41ce3cb4eb5bef1b8d7c36b93ba8569ec
--- /dev/null
+++ b/config/application_setting_columns/domain_denylist.yml
@@ -0,0 +1,14 @@
+---
+api_type: array of strings
+attr: domain_denylist
+clusterwide:
+column: domain_denylist
+db_type: text
+default:
+description: 'Users with email addresses that match these domains **cannot** sign
+  up. Wildcards allowed. Enter multiple entries on separate lines. For example: `domain.com`,
+  `*.domain.com`.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/domain_denylist_enabled.yml b/config/application_setting_columns/domain_denylist_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..741324f83dfd986f4b197f8fc9e6e0e186477070
--- /dev/null
+++ b/config/application_setting_columns/domain_denylist_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: domain_denylist_enabled
+clusterwide:
+column: domain_denylist_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `domain_denylist`) Allows blocking sign-ups
+  from emails from specific domains."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/dsa_key_restriction.yml b/config/application_setting_columns/dsa_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e85da5bc05af266d91d905e7090f2e3c40b199a5
--- /dev/null
+++ b/config/application_setting_columns/dsa_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: dsa_key_restriction
+clusterwide:
+column: dsa_key_restriction
+db_type: integer
+default: "'-1'::integer"
+description: The minimum allowed bit length of an uploaded DSA key. Default is `0`
+  (no restriction). `-1` disables DSA keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/duo_features_enabled.yml b/config/application_setting_columns/duo_features_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..be1a7437bee62d43ae3e8b7526cf5134766e011a
--- /dev/null
+++ b/config/application_setting_columns/duo_features_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: duo_features_enabled
+clusterwide:
+column: duo_features_enabled
+db_type: boolean
+default: 'true'
+description: Indicates whether GitLab Duo features are enabled for this instance.
+  [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144931) in GitLab
+  16.10. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/duo_workflow.yml b/config/application_setting_columns/duo_workflow.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5d81f0ad4fc20d0431da87e31755dbdfd9927f79
--- /dev/null
+++ b/config/application_setting_columns/duo_workflow.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: duo_workflow
+clusterwide:
+column: duo_workflow
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/ecdsa_key_restriction.yml b/config/application_setting_columns/ecdsa_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..124e49f5458c8f55506567e9e01c98e1136447c0
--- /dev/null
+++ b/config/application_setting_columns/ecdsa_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ecdsa_key_restriction
+clusterwide:
+column: ecdsa_key_restriction
+db_type: integer
+default: '0'
+description: The minimum allowed curve size (in bits) of an uploaded ECDSA key. Default
+  is `0` (no restriction). `-1` disables ECDSA keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/ecdsa_sk_key_restriction.yml b/config/application_setting_columns/ecdsa_sk_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..416c682f779b89b78a8ba4f8967a9f3c86b8c2cf
--- /dev/null
+++ b/config/application_setting_columns/ecdsa_sk_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ecdsa_sk_key_restriction
+clusterwide:
+column: ecdsa_sk_key_restriction
+db_type: integer
+default: '0'
+description: The minimum allowed curve size (in bits) of an uploaded ECDSA_SK key.
+  Default is `0` (no restriction). `-1` disables ECDSA_SK keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/ed25519_key_restriction.yml b/config/application_setting_columns/ed25519_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..95d28aeb31c2d05c444def942872851a02c59f85
--- /dev/null
+++ b/config/application_setting_columns/ed25519_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ed25519_key_restriction
+clusterwide:
+column: ed25519_key_restriction
+db_type: integer
+default: '0'
+description: The minimum allowed curve size (in bits) of an uploaded ED25519 key.
+  Default is `0` (no restriction). `-1` disables ED25519 keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/ed25519_sk_key_restriction.yml b/config/application_setting_columns/ed25519_sk_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4b20135c53d7e25d08379af49a3cbb48f5f23e91
--- /dev/null
+++ b/config/application_setting_columns/ed25519_sk_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: ed25519_sk_key_restriction
+clusterwide:
+column: ed25519_sk_key_restriction
+db_type: integer
+default: '0'
+description: The minimum allowed curve size (in bits) of an uploaded ED25519_SK key.
+  Default is `0` (no restriction). `-1` disables ED25519_SK keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/eks_access_key_id.yml b/config/application_setting_columns/eks_access_key_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d1cc4d2e63256b906a4727a90ef0a23c9a531703
--- /dev/null
+++ b/config/application_setting_columns/eks_access_key_id.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: eks_access_key_id
+clusterwide:
+column: eks_access_key_id
+db_type: character
+default:
+description: AWS IAM access key ID.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/eks_account_id.yml b/config/application_setting_columns/eks_account_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4b9600b77d04f08a44c8a2828e599a72b3b2772e
--- /dev/null
+++ b/config/application_setting_columns/eks_account_id.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: eks_account_id
+clusterwide:
+column: eks_account_id
+db_type: character
+default:
+description: Amazon account ID.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/eks_integration_enabled.yml b/config/application_setting_columns/eks_integration_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3937947a3f0072358da2ce45865d5781a4172b2e
--- /dev/null
+++ b/config/application_setting_columns/eks_integration_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: eks_integration_enabled
+clusterwide:
+column: eks_integration_enabled
+db_type: boolean
+default: 'false'
+description: Enable integration with Amazon EKS.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/eks_secret_access_key.yml b/config/application_setting_columns/eks_secret_access_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a7c64d1079f9ad22528720588d47e1885de7044d
--- /dev/null
+++ b/config/application_setting_columns/eks_secret_access_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: eks_secret_access_key
+clusterwide:
+column: encrypted_eks_secret_access_key
+db_type: text
+default:
+description: AWS IAM secret access key.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_analyzers_kuromoji_enabled.yml b/config/application_setting_columns/elasticsearch_analyzers_kuromoji_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ebf9465bb4f2c551981e0b32c1b82a1e0343937
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_analyzers_kuromoji_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_analyzers_kuromoji_enabled
+clusterwide: true
+column: elasticsearch_analyzers_kuromoji_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_analyzers_kuromoji_search.yml b/config/application_setting_columns/elasticsearch_analyzers_kuromoji_search.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9eb0162ccf0f8e6730483e87dfbc9934d9dfa300
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_analyzers_kuromoji_search.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_analyzers_kuromoji_search
+clusterwide: true
+column: elasticsearch_analyzers_kuromoji_search
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_analyzers_smartcn_enabled.yml b/config/application_setting_columns/elasticsearch_analyzers_smartcn_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..abbe0bd6698fc983900c0f15dd41fbb450f8157e
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_analyzers_smartcn_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_analyzers_smartcn_enabled
+clusterwide: true
+column: elasticsearch_analyzers_smartcn_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_analyzers_smartcn_search.yml b/config/application_setting_columns/elasticsearch_analyzers_smartcn_search.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2f35b0f712d91e4984c9cdf79f4cf8788e31695c
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_analyzers_smartcn_search.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_analyzers_smartcn_search
+clusterwide: true
+column: elasticsearch_analyzers_smartcn_search
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_aws.yml b/config/application_setting_columns/elasticsearch_aws.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0dd697cc4f3d5150ada93c830c4859e760a531f3
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_aws.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: elasticsearch_aws
+clusterwide: false
+column: elasticsearch_aws
+db_type: boolean
+default: 'false'
+description: Enable the use of AWS hosted Elasticsearch. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_aws_access_key.yml b/config/application_setting_columns/elasticsearch_aws_access_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0d688af1aca7d61487baabf76213a7238197cccb
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_aws_access_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: elasticsearch_aws_access_key
+clusterwide: false
+column: elasticsearch_aws_access_key
+db_type: character
+default:
+description: AWS IAM access key. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_aws_region.yml b/config/application_setting_columns/elasticsearch_aws_region.yml
new file mode 100644
index 0000000000000000000000000000000000000000..81f2052ce488982f6fd87f111344d83b6c9f27d3
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_aws_region.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: elasticsearch_aws_region
+clusterwide: false
+column: elasticsearch_aws_region
+db_type: character
+default: "'us-east-1'::character"
+description: The AWS region the Elasticsearch domain is configured. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_aws_secret_access_key.yml b/config/application_setting_columns/elasticsearch_aws_secret_access_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..491e648c196784a2de993f94a3abbf5b0ff7f652
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_aws_secret_access_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: elasticsearch_aws_secret_access_key
+clusterwide: false
+column: encrypted_elasticsearch_aws_secret_access_key
+db_type: text
+default:
+description: AWS IAM secret access key. Premium and Ultimate only.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_client_request_timeout.yml b/config/application_setting_columns/elasticsearch_client_request_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..27eea3611ab3f6b2534fd4af0c14da01e7eb6cb8
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_client_request_timeout.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_client_request_timeout
+clusterwide: false
+column: elasticsearch_client_request_timeout
+db_type: integer
+default: '0'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_indexed_field_length_limit.yml b/config/application_setting_columns/elasticsearch_indexed_field_length_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d92a57c30a33ee56d33c39b11a98d7f01115c37a
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_indexed_field_length_limit.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: elasticsearch_indexed_field_length_limit
+clusterwide: false
+column: elasticsearch_indexed_field_length_limit
+db_type: integer
+default: '0'
+description: Maximum size of text fields to index by Elasticsearch. 0 value means
+  no limit. This does not apply to repository and wiki indexing. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_indexed_file_size_limit_kb.yml b/config/application_setting_columns/elasticsearch_indexed_file_size_limit_kb.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5e251d339cff7570f959432815894e966e575f02
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_indexed_file_size_limit_kb.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: elasticsearch_indexed_file_size_limit_kb
+clusterwide: false
+column: elasticsearch_indexed_file_size_limit_kb
+db_type: integer
+default: '1024'
+description: Maximum size of repository and wiki files that are indexed by Elasticsearch.
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_indexing.yml b/config/application_setting_columns/elasticsearch_indexing.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fc711e7cfa6e0cfe9f9bfecd9a093cf76946f41d
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_indexing.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: elasticsearch_indexing
+clusterwide: false
+column: elasticsearch_indexing
+db_type: boolean
+default: 'false'
+description: Enable Elasticsearch indexing. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_limit_indexing.yml b/config/application_setting_columns/elasticsearch_limit_indexing.yml
new file mode 100644
index 0000000000000000000000000000000000000000..21b2ab323814d7cb993fc4fed6bd40619bb9a8dd
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_limit_indexing.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: elasticsearch_limit_indexing
+clusterwide: false
+column: elasticsearch_limit_indexing
+db_type: boolean
+default: 'false'
+description: Limit Elasticsearch to index certain namespaces and projects. Premium
+  and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_max_bulk_concurrency.yml b/config/application_setting_columns/elasticsearch_max_bulk_concurrency.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ac91c8212fb81bcffc78a64a20e6f32721fe17c
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_max_bulk_concurrency.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: elasticsearch_max_bulk_concurrency
+clusterwide: false
+column: elasticsearch_max_bulk_concurrency
+db_type: smallint
+default: '10'
+description: Maximum concurrency of Elasticsearch bulk requests per indexing operation.
+  This only applies to repository indexing operations. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_max_bulk_size_mb.yml b/config/application_setting_columns/elasticsearch_max_bulk_size_mb.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8f34614eb01ec251713e98f686f23163e7556f3f
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_max_bulk_size_mb.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: elasticsearch_max_bulk_size_mb
+clusterwide: false
+column: elasticsearch_max_bulk_size_mb
+db_type: smallint
+default: '10'
+description: Maximum size of Elasticsearch bulk indexing requests in MB. This only
+  applies to repository indexing operations. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_max_code_indexing_concurrency.yml b/config/application_setting_columns/elasticsearch_max_code_indexing_concurrency.yml
new file mode 100644
index 0000000000000000000000000000000000000000..04fb503e675390e6fe16086ca22e4c5471292874
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_max_code_indexing_concurrency.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: elasticsearch_max_code_indexing_concurrency
+clusterwide: false
+column: elasticsearch_max_code_indexing_concurrency
+db_type: integer
+default: '30'
+description: Maximum concurrency of Elasticsearch code indexing background jobs. This
+  only applies to repository indexing operations. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_password.yml b/config/application_setting_columns/elasticsearch_password.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ce57404451a5e784065fa69801f7aa2b42984029
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_password.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: elasticsearch_password
+clusterwide: false
+column: encrypted_elasticsearch_password
+db_type: bytea
+default:
+description: The password of your Elasticsearch instance. Premium and Ultimate only.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_pause_indexing.yml b/config/application_setting_columns/elasticsearch_pause_indexing.yml
new file mode 100644
index 0000000000000000000000000000000000000000..df0e4fe8887f02e7bb2a7a2a20d24a96df94b568
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_pause_indexing.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: elasticsearch_pause_indexing
+clusterwide: false
+column: elasticsearch_pause_indexing
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_requeue_workers.yml b/config/application_setting_columns/elasticsearch_requeue_workers.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ea126b109a5aafe2dc0df34bf7d7cba7ff873138
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_requeue_workers.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: elasticsearch_requeue_workers
+clusterwide: false
+column: elasticsearch_requeue_workers
+db_type: boolean
+default: 'false'
+description: Enable automatic requeuing of indexing workers. This improves non-code
+  indexing throughput by enqueuing Sidekiq jobs until all documents are processed.
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_search.yml b/config/application_setting_columns/elasticsearch_search.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9db5c1504e2c706e0f8ea7ae89a7d688a60b38a1
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_search.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: elasticsearch_search
+clusterwide: false
+column: elasticsearch_search
+db_type: boolean
+default: 'false'
+description: Enable Elasticsearch search. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/elasticsearch_url.yml b/config/application_setting_columns/elasticsearch_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4f6fc4aaf77cfa90058c82c5993291144960bed8
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_url.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: elasticsearch_url
+clusterwide: false
+column: elasticsearch_url
+db_type: character
+default: "'http://localhost:9200'::character"
+description: The URL to use for connecting to Elasticsearch. Use a comma-separated
+  list to support cluster (for example, `http://localhost:9200, http://localhost:9201"`).
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_username.yml b/config/application_setting_columns/elasticsearch_username.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d1f089a93f61858b02bed0d9aeb50f9b85359bf6
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_username.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: elasticsearch_username
+clusterwide: false
+column: elasticsearch_username
+db_type: text
+default:
+description: The `username` of your Elasticsearch instance. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/elasticsearch_worker_number_of_shards.yml b/config/application_setting_columns/elasticsearch_worker_number_of_shards.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c86e2507023633ac32deb10ab2898ef9bb7d5e6d
--- /dev/null
+++ b/config/application_setting_columns/elasticsearch_worker_number_of_shards.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: elasticsearch_worker_number_of_shards
+clusterwide: false
+column: elasticsearch_worker_number_of_shards
+db_type: integer
+default: '2'
+description: Number of indexing worker shards. This improves non-code indexing throughput
+  by enqueuing more parallel Sidekiq jobs. Default is `2`. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/email_additional_text.yml b/config/application_setting_columns/email_additional_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e04d519a361d82398a3d07d88b44958baa13ccff
--- /dev/null
+++ b/config/application_setting_columns/email_additional_text.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: email_additional_text
+clusterwide:
+column: email_additional_text
+db_type: character
+default:
+description: Additional text added to the bottom of every email for legal/auditing/compliance
+  reasons. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/email_author_in_body.yml b/config/application_setting_columns/email_author_in_body.yml
new file mode 100644
index 0000000000000000000000000000000000000000..48064dbdb9a996ea179d87b89005f85f6c15edae
--- /dev/null
+++ b/config/application_setting_columns/email_author_in_body.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: email_author_in_body
+clusterwide:
+column: email_author_in_body
+db_type: boolean
+default: 'false'
+description: Some email servers do not support overriding the email sender name. Enable
+  this option to include the name of the author of the issue, merge request or comment
+  in the email body instead.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/email_confirmation_setting.yml b/config/application_setting_columns/email_confirmation_setting.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fcf9cbd62f7bc97939bb5c78236001051fb7c59c
--- /dev/null
+++ b/config/application_setting_columns/email_confirmation_setting.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: email_confirmation_setting
+clusterwide:
+column: email_confirmation_setting
+db_type: smallint
+default: '0'
+description: Specifies whether users must confirm their email before sign in. Possible
+  values are `off`, `soft`, and `hard`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/email_restrictions.yml b/config/application_setting_columns/email_restrictions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3bba88e28a2f0571ea9d877d1e523997332f1e48
--- /dev/null
+++ b/config/application_setting_columns/email_restrictions.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: email_restrictions
+clusterwide:
+column: email_restrictions
+db_type: text
+default:
+description: Regular expression that is checked against the email used during registration.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/email_restrictions_enabled.yml b/config/application_setting_columns/email_restrictions_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eb941caa20f52d1a16fc83b1fe24b7920b7c0f9e
--- /dev/null
+++ b/config/application_setting_columns/email_restrictions_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: email_restrictions_enabled
+clusterwide:
+column: email_restrictions_enabled
+db_type: boolean
+default: 'false'
+description: Enable restriction for sign-up by email.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/enable_artifact_external_redirect_warning_page.yml b/config/application_setting_columns/enable_artifact_external_redirect_warning_page.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e190cd680b75f681d91373fc1c19e29a7edb0a6d
--- /dev/null
+++ b/config/application_setting_columns/enable_artifact_external_redirect_warning_page.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: enable_artifact_external_redirect_warning_page
+clusterwide:
+column: enable_artifact_external_redirect_warning_page
+db_type: boolean
+default: 'true'
+description: Show the external redirect page that warns you about user-generated content
+  in GitLab Pages.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/enable_member_promotion_management.yml b/config/application_setting_columns/enable_member_promotion_management.yml
new file mode 100644
index 0000000000000000000000000000000000000000..21376f415be2c66289423dd2ce1c154f6dfd0cc5
--- /dev/null
+++ b/config/application_setting_columns/enable_member_promotion_management.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: enable_member_promotion_management
+clusterwide:
+column: enable_member_promotion_management
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/enabled_git_access_protocol.yml b/config/application_setting_columns/enabled_git_access_protocol.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f72a5154ae66593dae2637395928da60b66c2aff
--- /dev/null
+++ b/config/application_setting_columns/enabled_git_access_protocol.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: enabled_git_access_protocol
+clusterwide:
+column: enabled_git_access_protocol
+db_type: character
+default:
+description: 'Enabled protocols for Git access. Allowed values are: `ssh`, `http`,
+  and `all` to allow both protocols. `all` value [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/12944)
+  in GitLab 16.9.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/enforce_namespace_storage_limit.yml b/config/application_setting_columns/enforce_namespace_storage_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b3e4a640481012dd10556f5385b640d905123f07
--- /dev/null
+++ b/config/application_setting_columns/enforce_namespace_storage_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: enforce_namespace_storage_limit
+clusterwide:
+column: enforce_namespace_storage_limit
+db_type: boolean
+default: 'false'
+description: Enabling this permits enforcement of namespace storage limits.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/enforce_terms.yml b/config/application_setting_columns/enforce_terms.yml
new file mode 100644
index 0000000000000000000000000000000000000000..52d5a12ac149af0e0be532e5e3386e184892ed9d
--- /dev/null
+++ b/config/application_setting_columns/enforce_terms.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: enforce_terms
+clusterwide:
+column: enforce_terms
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `terms`) Enforce application ToS to all users."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/error_tracking_access_token_encrypted.yml b/config/application_setting_columns/error_tracking_access_token_encrypted.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69c7c70bfc0d46a0ed9e7659c565158e304f5e90
--- /dev/null
+++ b/config/application_setting_columns/error_tracking_access_token_encrypted.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: error_tracking_access_token_encrypted
+clusterwide:
+column: error_tracking_access_token_encrypted
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/error_tracking_api_url.yml b/config/application_setting_columns/error_tracking_api_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..23cd61a45230590d223f6a964a6df41f571211a0
--- /dev/null
+++ b/config/application_setting_columns/error_tracking_api_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: error_tracking_api_url
+clusterwide:
+column: error_tracking_api_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/error_tracking_enabled.yml b/config/application_setting_columns/error_tracking_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f6dacfae92fab27860fc0e97596810ec34ea3a77
--- /dev/null
+++ b/config/application_setting_columns/error_tracking_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: error_tracking_enabled
+clusterwide:
+column: error_tracking_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/external_auth_client_cert.yml b/config/application_setting_columns/external_auth_client_cert.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6ddda93a22029547ef59dc938cd1dcbcd65521b3
--- /dev/null
+++ b/config/application_setting_columns/external_auth_client_cert.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: external_auth_client_cert
+clusterwide:
+column: external_auth_client_cert
+db_type: text
+default:
+description: "(**If enabled, requires:** `external_auth_client_key`) The certificate
+  to use to authenticate with the external authorization service."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_auth_client_key.yml b/config/application_setting_columns/external_auth_client_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f4c1dfed4cabfe94dd35896e4a776a5492c9468d
--- /dev/null
+++ b/config/application_setting_columns/external_auth_client_key.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: external_auth_client_key
+clusterwide:
+column: encrypted_external_auth_client_key
+db_type: text
+default:
+description: Private key for the certificate when authentication is required for the
+  external authorization service, this is encrypted when stored.
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_auth_client_key_pass.yml b/config/application_setting_columns/external_auth_client_key_pass.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3a6abf1e3e9f49fe632c3278fea19b64587621f3
--- /dev/null
+++ b/config/application_setting_columns/external_auth_client_key_pass.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: external_auth_client_key_pass
+clusterwide:
+column: encrypted_external_auth_client_key_pass
+db_type: character
+default:
+description: Passphrase to use for the private key when authenticating with the external
+  service this is encrypted when stored.
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_authorization_service_default_label.yml b/config/application_setting_columns/external_authorization_service_default_label.yml
new file mode 100644
index 0000000000000000000000000000000000000000..00654206cebd38bf83cae3b7e0fb73a43c3e525d
--- /dev/null
+++ b/config/application_setting_columns/external_authorization_service_default_label.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: external_authorization_service_default_label
+clusterwide:
+column: external_authorization_service_default_label
+db_type: character
+default:
+description: The default classification label to use when requesting authorization
+  and no classification label has been specified on the project.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_authorization_service_enabled.yml b/config/application_setting_columns/external_authorization_service_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..22a4524f3c2be3c718b17a06bd4c98ed5f0e6399
--- /dev/null
+++ b/config/application_setting_columns/external_authorization_service_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: external_authorization_service_enabled
+clusterwide:
+column: external_authorization_service_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `external_authorization_service_default_label`,
+  `external_authorization_service_timeout` and `external_authorization_service_url`)
+  Enable using an external authorization service for accessing projects."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/external_authorization_service_timeout.yml b/config/application_setting_columns/external_authorization_service_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f9488654c4f1109e8591a6f9e2cc26f69be9d471
--- /dev/null
+++ b/config/application_setting_columns/external_authorization_service_timeout.yml
@@ -0,0 +1,14 @@
+---
+api_type: float
+attr: external_authorization_service_timeout
+clusterwide:
+column: external_authorization_service_timeout
+db_type: double
+default: '0.5'
+description: 'The timeout after which an authorization request is aborted, in seconds.
+  When a request times out, access is denied to the user. (min: 0.001, max: 10, step:
+  0.001).'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_authorization_service_url.yml b/config/application_setting_columns/external_authorization_service_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c81cd3fa1a86dc618aa6228d8a286b3b1b4532f2
--- /dev/null
+++ b/config/application_setting_columns/external_authorization_service_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: external_authorization_service_url
+clusterwide:
+column: external_authorization_service_url
+db_type: character
+default:
+description: URL to which authorization requests are directed.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_pipeline_validation_service_timeout.yml b/config/application_setting_columns/external_pipeline_validation_service_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9a26a8fe11f2c9bf08b48f34aa25f0174f4b828b
--- /dev/null
+++ b/config/application_setting_columns/external_pipeline_validation_service_timeout.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: external_pipeline_validation_service_timeout
+clusterwide:
+column: external_pipeline_validation_service_timeout
+db_type: integer
+default:
+description: How long to wait for a response from the pipeline validation service.
+  Assumes `OK` if it times out.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_pipeline_validation_service_token.yml b/config/application_setting_columns/external_pipeline_validation_service_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..19a92246fd721ce19924c4cd51d6b18c89d354ed
--- /dev/null
+++ b/config/application_setting_columns/external_pipeline_validation_service_token.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: external_pipeline_validation_service_token
+clusterwide:
+column: encrypted_external_pipeline_validation_service_token
+db_type: text
+default:
+description: Optional. Token to include as the `X-Gitlab-Token` header in requests
+  to the URL in `external_pipeline_validation_service_url`.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/external_pipeline_validation_service_url.yml b/config/application_setting_columns/external_pipeline_validation_service_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..62b1f547722046f11a8edb6630b2e7ddea6a4709
--- /dev/null
+++ b/config/application_setting_columns/external_pipeline_validation_service_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: external_pipeline_validation_service_url
+clusterwide:
+column: external_pipeline_validation_service_url
+db_type: text
+default:
+description: URL to use for pipeline validation requests.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/failed_login_attempts_unlock_period_in_minutes.yml b/config/application_setting_columns/failed_login_attempts_unlock_period_in_minutes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..27611572ca99efdc183fdf74b2cf2f92f6d0347e
--- /dev/null
+++ b/config/application_setting_columns/failed_login_attempts_unlock_period_in_minutes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: failed_login_attempts_unlock_period_in_minutes
+clusterwide:
+column: failed_login_attempts_unlock_period_in_minutes
+db_type: integer
+default:
+description: Time period in minutes after which the user is unlocked when maximum
+  number of failed sign-in attempts reached.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/feishu_app_key.yml b/config/application_setting_columns/feishu_app_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a72e0ed1f26d3f7c02740e1860214d121249977d
--- /dev/null
+++ b/config/application_setting_columns/feishu_app_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: feishu_app_key
+clusterwide:
+column: encrypted_feishu_app_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/feishu_app_secret.yml b/config/application_setting_columns/feishu_app_secret.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7481d95bab6623493ba93cc3ca535490652f93f5
--- /dev/null
+++ b/config/application_setting_columns/feishu_app_secret.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: feishu_app_secret
+clusterwide:
+column: encrypted_feishu_app_secret
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/feishu_integration_enabled.yml b/config/application_setting_columns/feishu_integration_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..89dcf4ed88bbd7a142f7de1f203021559c8e15ba
--- /dev/null
+++ b/config/application_setting_columns/feishu_integration_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: feishu_integration_enabled
+clusterwide:
+column: feishu_integration_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/file_template_project_id.yml b/config/application_setting_columns/file_template_project_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..14fdd4bb02f8a9bbc79d85e1f2419573c1c32fea
--- /dev/null
+++ b/config/application_setting_columns/file_template_project_id.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: file_template_project_id
+clusterwide:
+column: file_template_project_id
+db_type: bigint
+default:
+description: The ID of a project to load custom file templates from. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/first_day_of_week.yml b/config/application_setting_columns/first_day_of_week.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a13452690957298e16e1c39b0683ae5ae87d7c05
--- /dev/null
+++ b/config/application_setting_columns/first_day_of_week.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: first_day_of_week
+clusterwide:
+column: first_day_of_week
+db_type: integer
+default: '0'
+description: Start day of the week for calendar views and date pickers. Valid values
+  are `0` (default) for Sunday, `1` for Monday, and `6` for Saturday.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/floc_enabled.yml b/config/application_setting_columns/floc_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..42ac028b98c3ec51b1da200880466708955a08b7
--- /dev/null
+++ b/config/application_setting_columns/floc_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: floc_enabled
+clusterwide:
+column: floc_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/force_pages_access_control.yml b/config/application_setting_columns/force_pages_access_control.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0c39438ee26cc5f2034dc075d5a08ed4c7a80948
--- /dev/null
+++ b/config/application_setting_columns/force_pages_access_control.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: force_pages_access_control
+clusterwide:
+column: force_pages_access_control
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/future_subscriptions.yml b/config/application_setting_columns/future_subscriptions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c74657b265f0de4d0e1e6e0b7bb172e799082f6d
--- /dev/null
+++ b/config/application_setting_columns/future_subscriptions.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: future_subscriptions
+clusterwide:
+column: future_subscriptions
+db_type: jsonb
+default: "'[]'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/geo_node_allowed_ips.yml b/config/application_setting_columns/geo_node_allowed_ips.yml
new file mode 100644
index 0000000000000000000000000000000000000000..027c68cc24f0159031a7c56ef5b5f130b76e41e4
--- /dev/null
+++ b/config/application_setting_columns/geo_node_allowed_ips.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: geo_node_allowed_ips
+clusterwide:
+column: geo_node_allowed_ips
+db_type: character
+default: "'0.0.0.0/0"
+description: Comma-separated list of IPs and CIDRs of allowed secondary nodes. For
+  example, `1.1.1.1, 2.2.2.0/24`. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/geo_status_timeout.yml b/config/application_setting_columns/geo_status_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..67db3d82ba31f617777bf67cf51a96cf43d78524
--- /dev/null
+++ b/config/application_setting_columns/geo_status_timeout.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: geo_status_timeout
+clusterwide:
+column: geo_status_timeout
+db_type: integer
+default: '10'
+description: The amount of seconds after which a request to get a secondary node status
+  times out. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/git_rate_limit_users_alertlist.yml b/config/application_setting_columns/git_rate_limit_users_alertlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2b6b6ca94cfc7f867285c55dd7463293ef53e11d
--- /dev/null
+++ b/config/application_setting_columns/git_rate_limit_users_alertlist.yml
@@ -0,0 +1,14 @@
+---
+api_type: array of integers
+attr: git_rate_limit_users_alertlist
+clusterwide:
+column: git_rate_limit_users_alertlist
+db_type: integer[]
+default: "'{}'::integer[]"
+description: 'List of user IDs that are emailed when the Git abuse rate limit is exceeded.
+  Default: `[]`, Maximum: 100 user IDs. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110201)
+  in GitLab 15.9. Self-managed, Ultimate only.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/git_rate_limit_users_allowlist.yml b/config/application_setting_columns/git_rate_limit_users_allowlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..66c32d71e4b307172ad305b48d7eee158437e2e0
--- /dev/null
+++ b/config/application_setting_columns/git_rate_limit_users_allowlist.yml
@@ -0,0 +1,14 @@
+---
+api_type: array of strings
+attr: git_rate_limit_users_allowlist
+clusterwide:
+column: git_rate_limit_users_allowlist
+db_type: text[]
+default: "'{}'::text[]"
+description: 'List of usernames excluded from Git anti-abuse rate limits. Default:
+  `[]`, Maximum: 100 usernames. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90815)
+  in GitLab 15.2. Self-managed, Ultimate only.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/git_two_factor_session_expiry.yml b/config/application_setting_columns/git_two_factor_session_expiry.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5a13bd959028d9e055f889534b7d8af33fb491ee
--- /dev/null
+++ b/config/application_setting_columns/git_two_factor_session_expiry.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: git_two_factor_session_expiry
+clusterwide:
+column: git_two_factor_session_expiry
+db_type: integer
+default: '15'
+description: Maximum duration (in minutes) of a session for Git operations when 2FA
+  is enabled. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitaly_timeout_default.yml b/config/application_setting_columns/gitaly_timeout_default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c5d136a66b059bef17ea773885e851fcb31cb3d8
--- /dev/null
+++ b/config/application_setting_columns/gitaly_timeout_default.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: gitaly_timeout_default
+clusterwide:
+column: gitaly_timeout_default
+db_type: integer
+default: '55'
+description: Default Gitaly timeout, in seconds. This timeout is not enforced for
+  Git fetch/push operations or Sidekiq jobs. Set to `0` to disable timeouts.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitaly_timeout_fast.yml b/config/application_setting_columns/gitaly_timeout_fast.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d9391e692116cce645861ec24a24f2eac48d0818
--- /dev/null
+++ b/config/application_setting_columns/gitaly_timeout_fast.yml
@@ -0,0 +1,15 @@
+---
+api_type: integer
+attr: gitaly_timeout_fast
+clusterwide:
+column: gitaly_timeout_fast
+db_type: integer
+default: '10'
+description: Gitaly fast operation timeout, in seconds. Some Gitaly operations are
+  expected to be fast. If they exceed this threshold, there may be a problem with
+  a storage shard and 'failing fast' can help maintain the stability of the GitLab
+  instance. Set to `0` to disable timeouts.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitaly_timeout_medium.yml b/config/application_setting_columns/gitaly_timeout_medium.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ddc4b1c1cdac5cc1aa4546b96efeb87af4ed0451
--- /dev/null
+++ b/config/application_setting_columns/gitaly_timeout_medium.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: gitaly_timeout_medium
+clusterwide:
+column: gitaly_timeout_medium
+db_type: integer
+default: '30'
+description: Medium Gitaly timeout, in seconds. This should be a value between the
+  Fast and the Default timeout. Set to `0` to disable timeouts.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitlab_dedicated_instance.yml b/config/application_setting_columns/gitlab_dedicated_instance.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5f8f3d7b3158d559c7a6e42477428e6dbeeac414
--- /dev/null
+++ b/config/application_setting_columns/gitlab_dedicated_instance.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: gitlab_dedicated_instance
+clusterwide:
+column: gitlab_dedicated_instance
+db_type: boolean
+default: 'false'
+description: Indicates whether the instance was provisioned for GitLab Dedicated.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitlab_shell_operation_limit.yml b/config/application_setting_columns/gitlab_shell_operation_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1cee6556ce4922482c67733e78401953b55258ad
--- /dev/null
+++ b/config/application_setting_columns/gitlab_shell_operation_limit.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: gitlab_shell_operation_limit
+clusterwide:
+column: gitlab_shell_operation_limit
+db_type: integer
+default: '600'
+description: 'Maximum number of Git operations per minute a user can perform. Default:
+  `600`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/412088) in GitLab
+  16.2.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/gitpod_enabled.yml b/config/application_setting_columns/gitpod_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..645ad6a3ef807c3d4fc53fa7243eb3b6b0563ff8
--- /dev/null
+++ b/config/application_setting_columns/gitpod_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: gitpod_enabled
+clusterwide:
+column: gitpod_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `gitpod_url`) Enable [Gitpod integration](../integration/gitpod.md).
+  Default is `false`."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gitpod_url.yml b/config/application_setting_columns/gitpod_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ce59be308a06b42ab574efa66632c1b5500c39b
--- /dev/null
+++ b/config/application_setting_columns/gitpod_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: gitpod_url
+clusterwide:
+column: gitpod_url
+db_type: text
+default: "'https://gitpod.io/'::text"
+description: The Gitpod instance URL for integration.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/globally_allowed_ips.yml b/config/application_setting_columns/globally_allowed_ips.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1de680604af10207ebaa8eb54a9fd214e0dc3e99
--- /dev/null
+++ b/config/application_setting_columns/globally_allowed_ips.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: globally_allowed_ips
+clusterwide:
+column: globally_allowed_ips
+db_type: text
+default: "''::text"
+description: Comma-separated list of IP addresses and CIDRs always allowed for inbound
+  traffic. For example, `1.1.1.1, 2.2.2.0/24`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/grafana_enabled.yml b/config/application_setting_columns/grafana_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dfb316055ec662087bbf75ae6352dbdded790047
--- /dev/null
+++ b/config/application_setting_columns/grafana_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: grafana_enabled
+clusterwide:
+column: grafana_enabled
+db_type: boolean
+default: 'false'
+description: Enable Grafana.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/grafana_url.yml b/config/application_setting_columns/grafana_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c1099654d0f38c9b2ced46b2a3f67ae32889a5d2
--- /dev/null
+++ b/config/application_setting_columns/grafana_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: grafana_url
+clusterwide:
+column: grafana_url
+db_type: character
+default: "'/-/grafana'::character"
+description: Grafana URL.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/gravatar_enabled.yml b/config/application_setting_columns/gravatar_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cfedd98981d815acaf3c8c80fe87578eb84f4853
--- /dev/null
+++ b/config/application_setting_columns/gravatar_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: gravatar_enabled
+clusterwide:
+column: gravatar_enabled
+db_type: boolean
+default:
+description: Enable Gravatar.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/group_download_export_limit.yml b/config/application_setting_columns/group_download_export_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69893b6f2e247595f5a38d4ea2c4eb08e501608a
--- /dev/null
+++ b/config/application_setting_columns/group_download_export_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: group_download_export_limit
+clusterwide:
+column: group_download_export_limit
+db_type: integer
+default: '1'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/group_export_limit.yml b/config/application_setting_columns/group_export_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0cec6be0344649ed04efcb4559049848737b0c55
--- /dev/null
+++ b/config/application_setting_columns/group_export_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: group_export_limit
+clusterwide:
+column: group_export_limit
+db_type: integer
+default: '6'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/group_import_limit.yml b/config/application_setting_columns/group_import_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..434a9fc471e395b52dc2950d5757e43f44121ae3
--- /dev/null
+++ b/config/application_setting_columns/group_import_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: group_import_limit
+clusterwide:
+column: group_import_limit
+db_type: integer
+default: '6'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/group_owners_can_manage_default_branch_protection.yml b/config/application_setting_columns/group_owners_can_manage_default_branch_protection.yml
new file mode 100644
index 0000000000000000000000000000000000000000..efd4c47ff973afdc8e5ae91e55027145b6f4f1c2
--- /dev/null
+++ b/config/application_setting_columns/group_owners_can_manage_default_branch_protection.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: group_owners_can_manage_default_branch_protection
+clusterwide:
+column: group_owners_can_manage_default_branch_protection
+db_type: boolean
+default: 'true'
+description: Prevent overrides of default branch protection. Self-managed, Premium
+  and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/group_runner_token_expiration_interval.yml b/config/application_setting_columns/group_runner_token_expiration_interval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8d1d236b7c2b08d045c786433bba81d7e5e53b0e
--- /dev/null
+++ b/config/application_setting_columns/group_runner_token_expiration_interval.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: group_runner_token_expiration_interval
+clusterwide:
+column: group_runner_token_expiration_interval
+db_type: integer
+default:
+description: Set the expiration time (in seconds) of authentication tokens of newly
+  registered group runners. Minimum value is 7200 seconds. For more information, see
+  [Automatically rotate authentication tokens](../ci/runners/configure_runners.md#automatically-rotate-runner-authentication-tokens).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/hashed_storage_enabled.yml b/config/application_setting_columns/hashed_storage_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bbcbc1ac508ffba276ed7b8aae6927f7464148c8
--- /dev/null
+++ b/config/application_setting_columns/hashed_storage_enabled.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: hashed_storage_enabled
+clusterwide:
+column: hashed_storage_enabled
+db_type: boolean
+default: 'true'
+description: 'Create new projects using hashed storage paths: Enable immutable, hash-based
+  paths and repository names to store repositories on disk. This prevents repositories
+  from having to be moved or renamed when the Project URL changes and may improve
+  disk I/O performance. (Always enabled in GitLab versions 13.0 and later, configuration
+  is scheduled for removal in 14.0)'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/health_check_access_token.yml b/config/application_setting_columns/health_check_access_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1dedbc7bdad1d056f2b484186defae8991f532b3
--- /dev/null
+++ b/config/application_setting_columns/health_check_access_token.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: health_check_access_token
+clusterwide:
+column: health_check_access_token
+db_type: character
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/help_page_documentation_base_url.yml b/config/application_setting_columns/help_page_documentation_base_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..88b90882d9eb5b5a770f4e1e41c146186262fe40
--- /dev/null
+++ b/config/application_setting_columns/help_page_documentation_base_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: help_page_documentation_base_url
+clusterwide:
+column: help_page_documentation_base_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/help_page_hide_commercial_content.yml b/config/application_setting_columns/help_page_hide_commercial_content.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ee25b529060346550fb0dd4b4bfee7a185de87e9
--- /dev/null
+++ b/config/application_setting_columns/help_page_hide_commercial_content.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: help_page_hide_commercial_content
+clusterwide:
+column: help_page_hide_commercial_content
+db_type: boolean
+default: 'false'
+description: Hide marketing-related entries from help.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/help_page_support_url.yml b/config/application_setting_columns/help_page_support_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..80ed68ea2f1f8cef8acfe80977d71c7fdf5a2902
--- /dev/null
+++ b/config/application_setting_columns/help_page_support_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: help_page_support_url
+clusterwide:
+column: help_page_support_url
+db_type: character
+default:
+description: Alternate support URL for help page and help dropdown list.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/help_page_text.yml b/config/application_setting_columns/help_page_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a5a2795ca00b8cfcd9652b8aa100096e3d0e46c4
--- /dev/null
+++ b/config/application_setting_columns/help_page_text.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: help_page_text
+clusterwide:
+column: help_page_text
+db_type: text
+default:
+description: Custom text displayed on the help page.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/hide_third_party_offers.yml b/config/application_setting_columns/hide_third_party_offers.yml
new file mode 100644
index 0000000000000000000000000000000000000000..966ea7ee66661142c05a1aa0e1fe0835dd5d454f
--- /dev/null
+++ b/config/application_setting_columns/hide_third_party_offers.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: hide_third_party_offers
+clusterwide:
+column: hide_third_party_offers
+db_type: boolean
+default: 'false'
+description: Do not display offers from third parties in GitLab.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/home_page_url.yml b/config/application_setting_columns/home_page_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e58f8cef8d25dd05b8388e80ab6bc698bfadd94a
--- /dev/null
+++ b/config/application_setting_columns/home_page_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: home_page_url
+clusterwide:
+column: home_page_url
+db_type: character
+default:
+description: Redirect to this URL when not logged in.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/housekeeping_bitmaps_enabled.yml b/config/application_setting_columns/housekeeping_bitmaps_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3ab001612d7175575acbda07aae7585b191f2546
--- /dev/null
+++ b/config/application_setting_columns/housekeeping_bitmaps_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: housekeeping_bitmaps_enabled
+clusterwide:
+column: housekeeping_bitmaps_enabled
+db_type: boolean
+default: 'true'
+description: Deprecated. Git packfile bitmap creation is always enabled and cannot
+  be changed via API and UI. Always returns `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/housekeeping_enabled.yml b/config/application_setting_columns/housekeeping_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..944d0a2c047cc677411e0127e36ffe40a190a45b
--- /dev/null
+++ b/config/application_setting_columns/housekeeping_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: housekeeping_enabled
+clusterwide:
+column: housekeeping_enabled
+db_type: boolean
+default: 'true'
+description: Enable or disable Git housekeeping. Requires additional fields to be
+  set. For more information, see [Housekeeping fields](#housekeeping-fields).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/housekeeping_full_repack_period.yml b/config/application_setting_columns/housekeeping_full_repack_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..111b825fa7695e60f821461c2184e6236ce7f382
--- /dev/null
+++ b/config/application_setting_columns/housekeeping_full_repack_period.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: housekeeping_full_repack_period
+clusterwide:
+column: housekeeping_full_repack_period
+db_type: integer
+default: '50'
+description: Deprecated. Number of Git pushes after which an incremental `git repack`
+  is run. Use `housekeeping_optimize_repository_period` instead. For more information,
+  see [Housekeeping fields](#housekeeping-fields).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/housekeeping_gc_period.yml b/config/application_setting_columns/housekeeping_gc_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e3b8df0ddd340d3abed69d86fc013fb6da57ab2
--- /dev/null
+++ b/config/application_setting_columns/housekeeping_gc_period.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: housekeeping_gc_period
+clusterwide:
+column: housekeeping_gc_period
+db_type: integer
+default: '200'
+description: Deprecated. Number of Git pushes after which `git gc` is run. Use `housekeeping_optimize_repository_period`
+  instead. For more information, see [Housekeeping fields](#housekeeping-fields).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/housekeeping_incremental_repack_period.yml b/config/application_setting_columns/housekeeping_incremental_repack_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fb22a949a98432df6f508cfc527f63cd5dc17b31
--- /dev/null
+++ b/config/application_setting_columns/housekeeping_incremental_repack_period.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: housekeeping_incremental_repack_period
+clusterwide:
+column: housekeeping_incremental_repack_period
+db_type: integer
+default: '10'
+description: Deprecated. Number of Git pushes after which an incremental `git repack`
+  is run. Use `housekeeping_optimize_repository_period` instead. For more information,
+  see [Housekeeping fields](#housekeeping-fields).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/html_emails_enabled.yml b/config/application_setting_columns/html_emails_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c1ca2930fd5f697b73ea5e9559fbb32d55baf1e1
--- /dev/null
+++ b/config/application_setting_columns/html_emails_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: html_emails_enabled
+clusterwide:
+column: html_emails_enabled
+db_type: boolean
+default: 'true'
+description: Enable HTML emails.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/id.yml b/config/application_setting_columns/id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..314ed91c8ba78e36e00bee62eed206d4887cdcec
--- /dev/null
+++ b/config/application_setting_columns/id.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: id
+clusterwide:
+column: id
+db_type: bigint
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/import_sources.yml b/config/application_setting_columns/import_sources.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e5019927ff9b259207973433f36dfb267794b03
--- /dev/null
+++ b/config/application_setting_columns/import_sources.yml
@@ -0,0 +1,13 @@
+---
+api_type: array of strings
+attr: import_sources
+clusterwide:
+column: import_sources
+db_type: text
+default:
+description: 'Sources to allow project import from, possible values: `github`, `bitbucket`,
+  `bitbucket_server`, `fogbugz`, `git`, `gitlab_project`, `gitea`, and `manifest`.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/importers.yml b/config/application_setting_columns/importers.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1ed1cec239fd8f3bb162c03b0f15d1dbca7e6b32
--- /dev/null
+++ b/config/application_setting_columns/importers.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: importers
+clusterwide:
+column: importers
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/inactive_projects_delete_after_months.yml b/config/application_setting_columns/inactive_projects_delete_after_months.yml
new file mode 100644
index 0000000000000000000000000000000000000000..59fb46767891293f45bbf363b6531e3e79eaa9c3
--- /dev/null
+++ b/config/application_setting_columns/inactive_projects_delete_after_months.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: inactive_projects_delete_after_months
+clusterwide:
+column: inactive_projects_delete_after_months
+db_type: integer
+default: '2'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/inactive_projects_min_size_mb.yml b/config/application_setting_columns/inactive_projects_min_size_mb.yml
new file mode 100644
index 0000000000000000000000000000000000000000..24c950ff572d65817f99626dcd3e11f0de45a425
--- /dev/null
+++ b/config/application_setting_columns/inactive_projects_min_size_mb.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: inactive_projects_min_size_mb
+clusterwide:
+column: inactive_projects_min_size_mb
+db_type: integer
+default: '0'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/inactive_projects_send_warning_email_after_months.yml b/config/application_setting_columns/inactive_projects_send_warning_email_after_months.yml
new file mode 100644
index 0000000000000000000000000000000000000000..180e5c79fececbf471a80c40a7452cbb41fb1eaf
--- /dev/null
+++ b/config/application_setting_columns/inactive_projects_send_warning_email_after_months.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: inactive_projects_send_warning_email_after_months
+clusterwide:
+column: inactive_projects_send_warning_email_after_months
+db_type: integer
+default: '1'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/include_optional_metrics_in_service_ping.yml b/config/application_setting_columns/include_optional_metrics_in_service_ping.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e2ce5b8481ed0391b7ecefd63b48dbf424cbc775
--- /dev/null
+++ b/config/application_setting_columns/include_optional_metrics_in_service_ping.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: include_optional_metrics_in_service_ping
+clusterwide:
+column: include_optional_metrics_in_service_ping
+db_type: boolean
+default: 'true'
+description: Whether or not optional metrics are enabled in Service Ping. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141540)
+  in GitLab 16.10.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/instance_level_ai_beta_features_enabled.yml b/config/application_setting_columns/instance_level_ai_beta_features_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..43a1cc8f6276af9c952e2a7759abcf94cb06f21d
--- /dev/null
+++ b/config/application_setting_columns/instance_level_ai_beta_features_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: instance_level_ai_beta_features_enabled
+clusterwide:
+column: instance_level_ai_beta_features_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/invisible_captcha_enabled.yml b/config/application_setting_columns/invisible_captcha_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bfa354962bc79c2aa0576f5d1dae5b5374620181
--- /dev/null
+++ b/config/application_setting_columns/invisible_captcha_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: invisible_captcha_enabled
+clusterwide:
+column: invisible_captcha_enabled
+db_type: boolean
+default: 'false'
+description: Enable Invisible CAPTCHA spam detection during sign-up. Disabled by default.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/invitation_flow_enforcement.yml b/config/application_setting_columns/invitation_flow_enforcement.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6c1771c1902ee6129ea06091887dc042784e0716
--- /dev/null
+++ b/config/application_setting_columns/invitation_flow_enforcement.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: invitation_flow_enforcement
+clusterwide:
+column: invitation_flow_enforcement
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/issues_create_limit.yml b/config/application_setting_columns/issues_create_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4774797e18363eb65aefcd2faefbc663fe201500
--- /dev/null
+++ b/config/application_setting_columns/issues_create_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: issues_create_limit
+clusterwide:
+column: issues_create_limit
+db_type: integer
+default: '0'
+description: Max number of issue creation requests per minute per user. Disabled by
+  default.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/jira_connect_application_key.yml b/config/application_setting_columns/jira_connect_application_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e6eada04ab276f3c01d7f2b91278093832a2353
--- /dev/null
+++ b/config/application_setting_columns/jira_connect_application_key.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: jira_connect_application_key
+clusterwide:
+column: jira_connect_application_key
+db_type: text
+default:
+description: ID of the OAuth application used to authenticate with the GitLab for
+  Jira Cloud app.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/jira_connect_proxy_url.yml b/config/application_setting_columns/jira_connect_proxy_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..32fcb3e14e631896a01fcd120cef0c36ae9fd015
--- /dev/null
+++ b/config/application_setting_columns/jira_connect_proxy_url.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: jira_connect_proxy_url
+clusterwide:
+column: jira_connect_proxy_url
+db_type: text
+default:
+description: URL of the GitLab instance used as a proxy for the GitLab for Jira Cloud
+  app.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/jira_connect_public_key_storage_enabled.yml b/config/application_setting_columns/jira_connect_public_key_storage_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1dd6a010236bf838842f29c47c6fa1e63ec6b774
--- /dev/null
+++ b/config/application_setting_columns/jira_connect_public_key_storage_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: jira_connect_public_key_storage_enabled
+clusterwide:
+column: jira_connect_public_key_storage_enabled
+db_type: boolean
+default: 'false'
+description: Enable public key storage for the GitLab for Jira Cloud app.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/jobs_per_stage_page_size.yml b/config/application_setting_columns/jobs_per_stage_page_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0a2b6557dffbd138e74e9407ceb3ee357c729dd4
--- /dev/null
+++ b/config/application_setting_columns/jobs_per_stage_page_size.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: jobs_per_stage_page_size
+clusterwide:
+column: jobs_per_stage_page_size
+db_type: integer
+default: '200'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/keep_latest_artifact.yml b/config/application_setting_columns/keep_latest_artifact.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7b389299559d2ce2a4b369ebd996bc37383df859
--- /dev/null
+++ b/config/application_setting_columns/keep_latest_artifact.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: keep_latest_artifact
+clusterwide:
+column: keep_latest_artifact
+db_type: boolean
+default: 'true'
+description: Prevent the deletion of the artifacts from the most recent successful
+  jobs, regardless of the expiry time. Enabled by default.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/kroki_enabled.yml b/config/application_setting_columns/kroki_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..649ea17693fbdcdcb20aa5ccbb52e17d10610b77
--- /dev/null
+++ b/config/application_setting_columns/kroki_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: kroki_enabled
+clusterwide:
+column: kroki_enabled
+db_type: boolean
+default:
+description: "(**If enabled, requires:** `kroki_url`) Enable [Kroki integration](../administration/integration/kroki.md).
+  Default is `false`."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/kroki_formats.yml b/config/application_setting_columns/kroki_formats.yml
new file mode 100644
index 0000000000000000000000000000000000000000..995538acb100dd3662fe79e23c8ec28c2253e41c
--- /dev/null
+++ b/config/application_setting_columns/kroki_formats.yml
@@ -0,0 +1,14 @@
+---
+api_type: object
+attr: kroki_formats
+clusterwide:
+column: kroki_formats
+db_type: jsonb
+default: "'{}'::jsonb"
+description: 'Additional formats supported by the Kroki instance. Possible values
+  are `true` or `false` for formats `bpmn`, `blockdiag`, and `excalidraw` in the format
+  `<format>: true` or `<format>: false`.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/kroki_url.yml b/config/application_setting_columns/kroki_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9db23ccc5d116738e0a27b793c330469edae1089
--- /dev/null
+++ b/config/application_setting_columns/kroki_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: kroki_url
+clusterwide:
+column: kroki_url
+db_type: character
+default:
+description: The Kroki instance URL for integration.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/lets_encrypt_notification_email.yml b/config/application_setting_columns/lets_encrypt_notification_email.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3c0a8a1ce96dc6c0a06a87dc7a383aa4562a7f7a
--- /dev/null
+++ b/config/application_setting_columns/lets_encrypt_notification_email.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lets_encrypt_notification_email
+clusterwide:
+column: lets_encrypt_notification_email
+db_type: character
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/lets_encrypt_private_key.yml b/config/application_setting_columns/lets_encrypt_private_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c993d84c4f59d7ae7c7c464ca65f33ca56d32850
--- /dev/null
+++ b/config/application_setting_columns/lets_encrypt_private_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lets_encrypt_private_key
+clusterwide:
+column: encrypted_lets_encrypt_private_key
+db_type: text
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/lets_encrypt_terms_of_service_accepted.yml b/config/application_setting_columns/lets_encrypt_terms_of_service_accepted.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2350b142b9ec023bbd5322c3ea2da693242ea6e7
--- /dev/null
+++ b/config/application_setting_columns/lets_encrypt_terms_of_service_accepted.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lets_encrypt_terms_of_service_accepted
+clusterwide:
+column: lets_encrypt_terms_of_service_accepted
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/license_trial_ends_on.yml b/config/application_setting_columns/license_trial_ends_on.yml
new file mode 100644
index 0000000000000000000000000000000000000000..49c5512aa8e61cacac0e841261f8b5d8f998955e
--- /dev/null
+++ b/config/application_setting_columns/license_trial_ends_on.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: license_trial_ends_on
+clusterwide:
+column: license_trial_ends_on
+db_type: date
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/license_usage_data_exported.yml b/config/application_setting_columns/license_usage_data_exported.yml
new file mode 100644
index 0000000000000000000000000000000000000000..813d945ff5133cf51580e369ab0e343c546b9137
--- /dev/null
+++ b/config/application_setting_columns/license_usage_data_exported.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: license_usage_data_exported
+clusterwide:
+column: license_usage_data_exported
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/local_markdown_version.yml b/config/application_setting_columns/local_markdown_version.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cad7fccc318598b17fdc24f53abbbd24d9a96203
--- /dev/null
+++ b/config/application_setting_columns/local_markdown_version.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: local_markdown_version
+clusterwide:
+column: local_markdown_version
+db_type: integer
+default: '0'
+description: Increase this value when any cached Markdown should be invalidated.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_duo_features_enabled.yml b/config/application_setting_columns/lock_duo_features_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c244e90282d88a997ba43f1712c1d322e57dbbdd
--- /dev/null
+++ b/config/application_setting_columns/lock_duo_features_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: lock_duo_features_enabled
+clusterwide:
+column: lock_duo_features_enabled
+db_type: boolean
+default: 'false'
+description: Indicates whether the GitLab Duo features enabled setting is enforced
+  for all subgroups. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144931)
+  in GitLab 16.10. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_math_rendering_limits_enabled.yml b/config/application_setting_columns/lock_math_rendering_limits_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8d9926bd4ce750c61330109c566a201354c1902d
--- /dev/null
+++ b/config/application_setting_columns/lock_math_rendering_limits_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_math_rendering_limits_enabled
+clusterwide:
+column: lock_math_rendering_limits_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_maven_package_requests_forwarding.yml b/config/application_setting_columns/lock_maven_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e0b7c1f6671772933a067559a4e8c5c6476fc47a
--- /dev/null
+++ b/config/application_setting_columns/lock_maven_package_requests_forwarding.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_maven_package_requests_forwarding
+clusterwide:
+column: lock_maven_package_requests_forwarding
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_memberships_to_ldap.yml b/config/application_setting_columns/lock_memberships_to_ldap.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9ab28a24f65344242deefca4ab1e7b157bfef1d3
--- /dev/null
+++ b/config/application_setting_columns/lock_memberships_to_ldap.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_memberships_to_ldap
+clusterwide:
+column: lock_memberships_to_ldap
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_memberships_to_saml.yml b/config/application_setting_columns/lock_memberships_to_saml.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8d8d9bc036073df9d888cf76b2ef30868ec042d6
--- /dev/null
+++ b/config/application_setting_columns/lock_memberships_to_saml.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_memberships_to_saml
+clusterwide:
+column: lock_memberships_to_saml
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_npm_package_requests_forwarding.yml b/config/application_setting_columns/lock_npm_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5bd3310ef250065b206c0399c278e1dc81d41248
--- /dev/null
+++ b/config/application_setting_columns/lock_npm_package_requests_forwarding.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_npm_package_requests_forwarding
+clusterwide:
+column: lock_npm_package_requests_forwarding
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_pypi_package_requests_forwarding.yml b/config/application_setting_columns/lock_pypi_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..818ecbf2bfab00531215fc8c9ea87d02bf6f978c
--- /dev/null
+++ b/config/application_setting_columns/lock_pypi_package_requests_forwarding.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_pypi_package_requests_forwarding
+clusterwide:
+column: lock_pypi_package_requests_forwarding
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_spp_repository_pipeline_access.yml b/config/application_setting_columns/lock_spp_repository_pipeline_access.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eeef45285d045e9e8f9b2da8abe626617db9a817
--- /dev/null
+++ b/config/application_setting_columns/lock_spp_repository_pipeline_access.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_spp_repository_pipeline_access
+clusterwide:
+column: lock_spp_repository_pipeline_access
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/lock_toggle_security_policy_custom_ci.yml b/config/application_setting_columns/lock_toggle_security_policy_custom_ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..08664109e075e20435042d3b40540d2a7f06a2cd
--- /dev/null
+++ b/config/application_setting_columns/lock_toggle_security_policy_custom_ci.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: lock_toggle_security_policy_custom_ci
+clusterwide: false
+column: lock_toggle_security_policy_custom_ci
+db_type: boolean
+default: 'false'
+description: This column is currently ignored.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/login_recaptcha_protection_enabled.yml b/config/application_setting_columns/login_recaptcha_protection_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7b20d3412a5733553e5909d11b5d7e6b480ea9df
--- /dev/null
+++ b/config/application_setting_columns/login_recaptcha_protection_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: login_recaptcha_protection_enabled
+clusterwide:
+column: login_recaptcha_protection_enabled
+db_type: boolean
+default: 'false'
+description: Enable reCAPTCHA for login.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mailgun_events_enabled.yml b/config/application_setting_columns/mailgun_events_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..60815ba57de9adf0a80a7aefa0901d71170d3ff5
--- /dev/null
+++ b/config/application_setting_columns/mailgun_events_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: mailgun_events_enabled
+clusterwide:
+column: mailgun_events_enabled
+db_type: boolean
+default: 'false'
+description: Enable Mailgun event receiver.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mailgun_signing_key.yml b/config/application_setting_columns/mailgun_signing_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a8a44bf72e6177742da969248214acb3361ae145
--- /dev/null
+++ b/config/application_setting_columns/mailgun_signing_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: mailgun_signing_key
+clusterwide:
+column: encrypted_mailgun_signing_key
+db_type: bytea
+default:
+description: The Mailgun HTTP webhook signing key for receiving events from webhook.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/maintenance_mode.yml b/config/application_setting_columns/maintenance_mode.yml
new file mode 100644
index 0000000000000000000000000000000000000000..50ebe35d3af50bbf124d402cbe7447c59674891e
--- /dev/null
+++ b/config/application_setting_columns/maintenance_mode.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: maintenance_mode
+clusterwide:
+column: maintenance_mode
+db_type: boolean
+default: 'false'
+description: When instance is in maintenance mode, non-administrative users can sign
+  in with read-only access and make read-only API requests. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/maintenance_mode_message.yml b/config/application_setting_columns/maintenance_mode_message.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b3f8368e52c6dfabace63a8ef5485076a7b798d9
--- /dev/null
+++ b/config/application_setting_columns/maintenance_mode_message.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: maintenance_mode_message
+clusterwide:
+column: maintenance_mode_message
+db_type: text
+default:
+description: Message displayed when instance is in maintenance mode. Premium and Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/make_profile_private.yml b/config/application_setting_columns/make_profile_private.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2b16bc9cd14e2e4e8403d7740cf3e6b5abd16dc2
--- /dev/null
+++ b/config/application_setting_columns/make_profile_private.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: make_profile_private
+clusterwide:
+column: make_profile_private
+db_type: boolean
+default: 'true'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/math_rendering_limits_enabled.yml b/config/application_setting_columns/math_rendering_limits_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bcd78af41efe933c2968dd48dcd31dae83e0250e
--- /dev/null
+++ b/config/application_setting_columns/math_rendering_limits_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: math_rendering_limits_enabled
+clusterwide:
+column: math_rendering_limits_enabled
+db_type: boolean
+default: 'true'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/maven_package_requests_forwarding.yml b/config/application_setting_columns/maven_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8d8658a090c6202b22ef5a1f9ddbdd364e448640
--- /dev/null
+++ b/config/application_setting_columns/maven_package_requests_forwarding.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: maven_package_requests_forwarding
+clusterwide:
+column: maven_package_requests_forwarding
+db_type: boolean
+default: 'true'
+description: Use repo.maven.apache.org as a default remote repository when the package
+  is not found in the GitLab Package Registry for Maven. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_artifacts_content_include_size.yml b/config/application_setting_columns/max_artifacts_content_include_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7a80979fdb7270c2daef03029839449ab69215e3
--- /dev/null
+++ b/config/application_setting_columns/max_artifacts_content_include_size.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: max_artifacts_content_include_size
+clusterwide:
+column: max_artifacts_content_include_size
+db_type: integer
+default: '5242880'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_artifacts_size.yml b/config/application_setting_columns/max_artifacts_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e766d9413b416d5eaa2337a7489991cd2ad794f0
--- /dev/null
+++ b/config/application_setting_columns/max_artifacts_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_artifacts_size
+clusterwide:
+column: max_artifacts_size
+db_type: integer
+default: '100'
+description: Maximum artifacts size in MB.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_attachment_size.yml b/config/application_setting_columns/max_attachment_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c6987cd3597f5b0a94ce880628d8b1fdcb1302f7
--- /dev/null
+++ b/config/application_setting_columns/max_attachment_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_attachment_size
+clusterwide:
+column: max_attachment_size
+db_type: integer
+default: '100'
+description: Limit attachment size in MB.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_decompressed_archive_size.yml b/config/application_setting_columns/max_decompressed_archive_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5819ac3cf58c9f11db9a038fa0d524ead17f302c
--- /dev/null
+++ b/config/application_setting_columns/max_decompressed_archive_size.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_decompressed_archive_size
+clusterwide:
+column: max_decompressed_archive_size
+db_type: integer
+default: '25600'
+description: Maximum decompressed file size for imported archives in MB. Set to `0`
+  for unlimited. Default is `25600`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_export_size.yml b/config/application_setting_columns/max_export_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4eb3745a075aeb3cfc4cb7e281ccc415e8340fc8
--- /dev/null
+++ b/config/application_setting_columns/max_export_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_export_size
+clusterwide:
+column: max_export_size
+db_type: integer
+default: '0'
+description: Maximum export size in MB. 0 for unlimited. Default = 0 (unlimited).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/max_import_remote_file_size.yml b/config/application_setting_columns/max_import_remote_file_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4873f796b4a0feadcf34ca78b26f98e61db9698e
--- /dev/null
+++ b/config/application_setting_columns/max_import_remote_file_size.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_import_remote_file_size
+clusterwide:
+column: max_import_remote_file_size
+db_type: bigint
+default: '10240'
+description: Maximum remote file size for imports from external object storages. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/384976)
+  in GitLab 16.3.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_import_size.yml b/config/application_setting_columns/max_import_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..62b89dced09ebfdbb3c96970df657cd6f8a871f7
--- /dev/null
+++ b/config/application_setting_columns/max_import_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_import_size
+clusterwide:
+column: max_import_size
+db_type: integer
+default: '0'
+description: Maximum import size in MB. 0 for unlimited. Default = 0 (unlimited).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_login_attempts.yml b/config/application_setting_columns/max_login_attempts.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e14972eedaf05c92ccb5c6ec4540f7c007e4283f
--- /dev/null
+++ b/config/application_setting_columns/max_login_attempts.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_login_attempts
+clusterwide:
+column: max_login_attempts
+db_type: integer
+default:
+description: Maximum number of sign-in attempts before locking out the user.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/max_number_of_repository_downloads.yml b/config/application_setting_columns/max_number_of_repository_downloads.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7e19372df0d2dc0a417f8c181deeca9b028c3ef
--- /dev/null
+++ b/config/application_setting_columns/max_number_of_repository_downloads.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: max_number_of_repository_downloads
+clusterwide:
+column: max_number_of_repository_downloads
+db_type: smallint
+default: '0'
+description: 'Maximum number of unique repositories a user can download in the specified
+  time period before they are banned. Default: 0, Maximum: 10,000 repositories. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87980)
+  in GitLab 15.1. Self-managed, Ultimate only.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_number_of_repository_downloads_within_time_period.yml b/config/application_setting_columns/max_number_of_repository_downloads_within_time_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b59e5af738ed3ba7d9825b2a836363dabee8a786
--- /dev/null
+++ b/config/application_setting_columns/max_number_of_repository_downloads_within_time_period.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: max_number_of_repository_downloads_within_time_period
+clusterwide:
+column: max_number_of_repository_downloads_within_time_period
+db_type: integer
+default: '0'
+description: 'Reporting time period (in seconds). Default: 0, Maximum: 864000 seconds
+  (10 days). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87980)
+  in GitLab 15.1. Self-managed, Ultimate only.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_number_of_vulnerabilities_per_project.yml b/config/application_setting_columns/max_number_of_vulnerabilities_per_project.yml
new file mode 100644
index 0000000000000000000000000000000000000000..881751457529f7932836cf6650d0da9d577e3d9b
--- /dev/null
+++ b/config/application_setting_columns/max_number_of_vulnerabilities_per_project.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: max_number_of_vulnerabilities_per_project
+clusterwide:
+column: max_number_of_vulnerabilities_per_project
+db_type: integer
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/max_pages_custom_domains_per_project.yml b/config/application_setting_columns/max_pages_custom_domains_per_project.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cd44a3e1765ceaa2f9f3284dd27a430b74fb7110
--- /dev/null
+++ b/config/application_setting_columns/max_pages_custom_domains_per_project.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: max_pages_custom_domains_per_project
+clusterwide:
+column: max_pages_custom_domains_per_project
+db_type: integer
+default: '0'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_pages_size.yml b/config/application_setting_columns/max_pages_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..34ae2d63f16bebe8784a1ed1eaefbf6949857164
--- /dev/null
+++ b/config/application_setting_columns/max_pages_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: max_pages_size
+clusterwide:
+column: max_pages_size
+db_type: integer
+default: '100'
+description: Maximum size of pages repositories in MB.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_personal_access_token_lifetime.yml b/config/application_setting_columns/max_personal_access_token_lifetime.yml
new file mode 100644
index 0000000000000000000000000000000000000000..74b1eb3216552b7990a97b2ff6622828065ac21b
--- /dev/null
+++ b/config/application_setting_columns/max_personal_access_token_lifetime.yml
@@ -0,0 +1,15 @@
+---
+api_type: integer
+attr: max_personal_access_token_lifetime
+clusterwide:
+column: max_personal_access_token_lifetime
+db_type: integer
+default:
+description: Maximum allowable lifetime for access tokens in days. When left blank,
+  default value of 365 is applied. When set, value must be 365 or less. When changed,
+  existing access tokens with an expiration date beyond the maximum allowable lifetime
+  are revoked. Self-managed, Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/max_ssh_key_lifetime.yml b/config/application_setting_columns/max_ssh_key_lifetime.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2b5aaf3c49ceaadc3e6b30283042b795ed69707e
--- /dev/null
+++ b/config/application_setting_columns/max_ssh_key_lifetime.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_ssh_key_lifetime
+clusterwide: false
+column: max_ssh_key_lifetime
+db_type: integer
+default:
+description: Maximum allowable lifetime for SSH keys in days. Self-managed, Ultimate
+  only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/max_terraform_state_size_bytes.yml b/config/application_setting_columns/max_terraform_state_size_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6e9199f578845409faf2d9e58295cf51d94d5652
--- /dev/null
+++ b/config/application_setting_columns/max_terraform_state_size_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_terraform_state_size_bytes
+clusterwide:
+column: max_terraform_state_size_bytes
+db_type: integer
+default: '0'
+description: Maximum size in bytes of the [Terraform state](../administration/terraform_state.md)
+  files. Set this to 0 for unlimited file size.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_yaml_depth.yml b/config/application_setting_columns/max_yaml_depth.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0244bf6cf7758d473aeac176d545541b6f5368c0
--- /dev/null
+++ b/config/application_setting_columns/max_yaml_depth.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_yaml_depth
+clusterwide:
+column: max_yaml_depth
+db_type: integer
+default: '100'
+description: 'The maximum depth of nested CI/CD configuration added with the [`include`
+  keyword](../ci/yaml/index.md#include). Default: `100`.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/max_yaml_size_bytes.yml b/config/application_setting_columns/max_yaml_size_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..90a6b7de8dd3c28d558c8c4db5876f228118f1eb
--- /dev/null
+++ b/config/application_setting_columns/max_yaml_size_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: max_yaml_size_bytes
+clusterwide:
+column: max_yaml_size_bytes
+db_type: bigint
+default: '2097152'
+description: 'The maximum size in bytes of a single CI/CD configuration file. Default:
+  `2097152`.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/metrics_enabled.yml b/config/application_setting_columns/metrics_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e3cfef5706f9952677dd0ce978396fb9bcfbcc08
--- /dev/null
+++ b/config/application_setting_columns/metrics_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_enabled
+clusterwide:
+column: metrics_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_host.yml b/config/application_setting_columns/metrics_host.yml
new file mode 100644
index 0000000000000000000000000000000000000000..26f73406de4b5b8c3a325b47184c624776ea0455
--- /dev/null
+++ b/config/application_setting_columns/metrics_host.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_host
+clusterwide:
+column: metrics_host
+db_type: character
+default: "'localhost'::character"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_method_call_threshold.yml b/config/application_setting_columns/metrics_method_call_threshold.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1667fef751ba54e9518736dd00f58353e0f37816
--- /dev/null
+++ b/config/application_setting_columns/metrics_method_call_threshold.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: metrics_method_call_threshold
+clusterwide:
+column: metrics_method_call_threshold
+db_type: integer
+default: '10'
+description: A method call is only tracked when it takes longer than the given amount
+  of milliseconds.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_packet_size.yml b/config/application_setting_columns/metrics_packet_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c3d0c4e0361ae3045003efa16f8b50f3cf38775a
--- /dev/null
+++ b/config/application_setting_columns/metrics_packet_size.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_packet_size
+clusterwide:
+column: metrics_packet_size
+db_type: integer
+default: '1'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_pool_size.yml b/config/application_setting_columns/metrics_pool_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7c1a5247359ca9fa277c9a5b99bc30f245892e8f
--- /dev/null
+++ b/config/application_setting_columns/metrics_pool_size.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_pool_size
+clusterwide:
+column: metrics_pool_size
+db_type: integer
+default: '16'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_port.yml b/config/application_setting_columns/metrics_port.yml
new file mode 100644
index 0000000000000000000000000000000000000000..02bcaed496323273fad8e7b5520711adc274182f
--- /dev/null
+++ b/config/application_setting_columns/metrics_port.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_port
+clusterwide:
+column: metrics_port
+db_type: integer
+default: '8089'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_sample_interval.yml b/config/application_setting_columns/metrics_sample_interval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..aa0ada5c5e7cfdbeaf516ec02b54bab10c1ed312
--- /dev/null
+++ b/config/application_setting_columns/metrics_sample_interval.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_sample_interval
+clusterwide:
+column: metrics_sample_interval
+db_type: integer
+default: '15'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/metrics_timeout.yml b/config/application_setting_columns/metrics_timeout.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b8a3d7444bcc69ae2d3bc92b0b54e76995d5ce1f
--- /dev/null
+++ b/config/application_setting_columns/metrics_timeout.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: metrics_timeout
+clusterwide:
+column: metrics_timeout
+db_type: integer
+default: '10'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/minimum_password_length.yml b/config/application_setting_columns/minimum_password_length.yml
new file mode 100644
index 0000000000000000000000000000000000000000..127e9c8d086c464a42a9102c5440de1d8e6f5f4b
--- /dev/null
+++ b/config/application_setting_columns/minimum_password_length.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: minimum_password_length
+clusterwide:
+column: minimum_password_length
+db_type: integer
+default: '8'
+description: Indicates whether passwords require a minimum length. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85763)
+  in GitLab 15.1. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mirror_available.yml b/config/application_setting_columns/mirror_available.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2fac3b5a21106c65c257e6a4c12328244782f578
--- /dev/null
+++ b/config/application_setting_columns/mirror_available.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: mirror_available
+clusterwide:
+column: mirror_available
+db_type: boolean
+default: 'true'
+description: Allow repository mirroring to configured by project Maintainers. If disabled,
+  only Administrators can configure repository mirroring.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mirror_capacity_threshold.yml b/config/application_setting_columns/mirror_capacity_threshold.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2be5800cd3c9f62aa2eeffb24baa0a736c11eed7
--- /dev/null
+++ b/config/application_setting_columns/mirror_capacity_threshold.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: mirror_capacity_threshold
+clusterwide:
+column: mirror_capacity_threshold
+db_type: integer
+default: '50'
+description: Minimum capacity to be available before scheduling more mirrors preemptively.
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mirror_max_capacity.yml b/config/application_setting_columns/mirror_max_capacity.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bce86bbdb730a3aaf5eb85a40d44db312146bf54
--- /dev/null
+++ b/config/application_setting_columns/mirror_max_capacity.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: mirror_max_capacity
+clusterwide:
+column: mirror_max_capacity
+db_type: integer
+default: '100'
+description: Maximum number of mirrors that can be synchronizing at the same time.
+  Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/mirror_max_delay.yml b/config/application_setting_columns/mirror_max_delay.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4ab0dd7122c921585c12278d2becffa99d89a937
--- /dev/null
+++ b/config/application_setting_columns/mirror_max_delay.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: mirror_max_delay
+clusterwide:
+column: mirror_max_delay
+db_type: integer
+default: '300'
+description: Maximum time (in minutes) between updates that a mirror can have when
+  scheduled to synchronize. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/namespace_aggregation_schedule_lease_duration_in_seconds.yml b/config/application_setting_columns/namespace_aggregation_schedule_lease_duration_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cdef49568cc7f4e299aa1ded9448ce0fff2b8556
--- /dev/null
+++ b/config/application_setting_columns/namespace_aggregation_schedule_lease_duration_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: namespace_aggregation_schedule_lease_duration_in_seconds
+clusterwide:
+column: namespace_aggregation_schedule_lease_duration_in_seconds
+db_type: integer
+default: '300'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/namespace_storage_forks_cost_factor.yml b/config/application_setting_columns/namespace_storage_forks_cost_factor.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e604be58160276bf1938ee9bba9cfb75bc2ea5f7
--- /dev/null
+++ b/config/application_setting_columns/namespace_storage_forks_cost_factor.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: namespace_storage_forks_cost_factor
+clusterwide:
+column: namespace_storage_forks_cost_factor
+db_type: double
+default: '1.0'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/new_user_signups_cap.yml b/config/application_setting_columns/new_user_signups_cap.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e5c429c73527187edf85c3c2a5c53843a7520a0d
--- /dev/null
+++ b/config/application_setting_columns/new_user_signups_cap.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: new_user_signups_cap
+clusterwide:
+column: new_user_signups_cap
+db_type: integer
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/notes_create_limit.yml b/config/application_setting_columns/notes_create_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..39bfde0bb8693688cdb52bc7210f1434286b36ce
--- /dev/null
+++ b/config/application_setting_columns/notes_create_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: notes_create_limit
+clusterwide:
+column: notes_create_limit
+db_type: integer
+default: '300'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/notes_create_limit_allowlist.yml b/config/application_setting_columns/notes_create_limit_allowlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2aeb1d961065b5a6745095144b268e80a6c4e8ba
--- /dev/null
+++ b/config/application_setting_columns/notes_create_limit_allowlist.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: notes_create_limit_allowlist
+clusterwide:
+column: notes_create_limit_allowlist
+db_type: text[]
+default: "'{}'::text[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/notify_on_unknown_sign_in.yml b/config/application_setting_columns/notify_on_unknown_sign_in.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f36d83e285df0a24c83db7f08e1b07691f73673f
--- /dev/null
+++ b/config/application_setting_columns/notify_on_unknown_sign_in.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: notify_on_unknown_sign_in
+clusterwide:
+column: notify_on_unknown_sign_in
+db_type: boolean
+default: 'true'
+description: Enable sending notification if sign in from unknown IP address happens.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/npm_package_requests_forwarding.yml b/config/application_setting_columns/npm_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f1a627d227dc9f83f46ec27a57268f41878499a2
--- /dev/null
+++ b/config/application_setting_columns/npm_package_requests_forwarding.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: npm_package_requests_forwarding
+clusterwide:
+column: npm_package_requests_forwarding
+db_type: boolean
+default: 'true'
+description: Use npmjs.org as a default remote repository when the package is not
+  found in the GitLab Package Registry for npm. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/observability_backend_ssl_verification_enabled.yml b/config/application_setting_columns/observability_backend_ssl_verification_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..34463aebb2b37b99baf045ba8a41276dc8621d50
--- /dev/null
+++ b/config/application_setting_columns/observability_backend_ssl_verification_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: observability_backend_ssl_verification_enabled
+clusterwide:
+column: observability_backend_ssl_verification_enabled
+db_type: boolean
+default: 'true'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/openai_api_key.yml b/config/application_setting_columns/openai_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b22888e32b094fc9cc8276a58c8fdbefd3193efe
--- /dev/null
+++ b/config/application_setting_columns/openai_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: openai_api_key
+clusterwide:
+column: encrypted_openai_api_key
+db_type: bytea
+default:
+description: This column is currently ignored.
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/outbound_local_requests_whitelist.yml b/config/application_setting_columns/outbound_local_requests_whitelist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3a71f1caefa610f39b9d5abc9874137649fe65d5
--- /dev/null
+++ b/config/application_setting_columns/outbound_local_requests_whitelist.yml
@@ -0,0 +1,13 @@
+---
+api_type: array of strings
+attr: outbound_local_requests_whitelist
+clusterwide:
+column: outbound_local_requests_whitelist
+db_type: character
+default: "'{}'::character"
+description: Define a list of trusted domains or IP addresses to which local requests
+  are allowed when local requests for webhooks and integrations are disabled.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/package_metadata_purl_types.yml b/config/application_setting_columns/package_metadata_purl_types.yml
new file mode 100644
index 0000000000000000000000000000000000000000..42016e13b03e78bf31e1a4523a0200bd14025cf5
--- /dev/null
+++ b/config/application_setting_columns/package_metadata_purl_types.yml
@@ -0,0 +1,14 @@
+---
+api_type: array of integers
+attr: package_metadata_purl_types
+clusterwide:
+column: package_metadata_purl_types
+db_type: smallint[]
+default: "'{1"
+description: List of [package registry metadata to sync](../administration/settings/security_and_compliance.md#choose-package-registry-metadata-to-sync).
+  See [the list](https://gitlab.com/gitlab-org/gitlab/-/blob/ace16c20d5da7c4928dd03fb139692638b557fe3/app/models/concerns/enums/package_metadata.rb#L5)
+  of the available values. Self-managed, Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/package_registry.yml b/config/application_setting_columns/package_registry.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6638ef52d4d5f517f693380ce43c245535601281
--- /dev/null
+++ b/config/application_setting_columns/package_registry.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: package_registry
+clusterwide:
+column: package_registry
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/package_registry_allow_anyone_to_pull_option.yml b/config/application_setting_columns/package_registry_allow_anyone_to_pull_option.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6a380b74e51c17220ffc5f2bbaa4d7ed7b9ec087
--- /dev/null
+++ b/config/application_setting_columns/package_registry_allow_anyone_to_pull_option.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: package_registry_allow_anyone_to_pull_option
+clusterwide:
+column: package_registry_allow_anyone_to_pull_option
+db_type: boolean
+default: 'true'
+description: Enable to [allow anyone to pull from Package Registry](../user/packages/package_registry/index.md#allow-anyone-to-pull-from-package-registry)
+  visible and changeable.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/package_registry_cleanup_policies_worker_capacity.yml b/config/application_setting_columns/package_registry_cleanup_policies_worker_capacity.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c248189d7be32b4100784c3e04a9e26e86cf8cda
--- /dev/null
+++ b/config/application_setting_columns/package_registry_cleanup_policies_worker_capacity.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: package_registry_cleanup_policies_worker_capacity
+clusterwide:
+column: package_registry_cleanup_policies_worker_capacity
+db_type: integer
+default: '2'
+description: Number of workers assigned to the packages cleanup policies.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/packages_cleanup_package_file_worker_capacity.yml b/config/application_setting_columns/packages_cleanup_package_file_worker_capacity.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2c6126d1b51ed30178903ac54e64e3b017e07957
--- /dev/null
+++ b/config/application_setting_columns/packages_cleanup_package_file_worker_capacity.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: packages_cleanup_package_file_worker_capacity
+clusterwide:
+column: packages_cleanup_package_file_worker_capacity
+db_type: smallint
+default: '2'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/pages.yml b/config/application_setting_columns/pages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..483ae6b8b8d94da6b103b9b07188b0fef6821bc6
--- /dev/null
+++ b/config/application_setting_columns/pages.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: pages
+clusterwide:
+column: pages
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/pages_domain_verification_enabled.yml b/config/application_setting_columns/pages_domain_verification_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..86fa5c2d6bcfc2996a1dad8442471bfa26ae13db
--- /dev/null
+++ b/config/application_setting_columns/pages_domain_verification_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: pages_domain_verification_enabled
+clusterwide:
+column: pages_domain_verification_enabled
+db_type: boolean
+default: 'true'
+description: Require users to prove ownership of custom domains. Domain verification
+  is an essential security measure for public GitLab sites. Users are required to
+  demonstrate they control a domain before it is enabled.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/password_authentication_enabled_for_git.yml b/config/application_setting_columns/password_authentication_enabled_for_git.yml
new file mode 100644
index 0000000000000000000000000000000000000000..39d35ab90289d90a0332351d25fdb8d0267c6d62
--- /dev/null
+++ b/config/application_setting_columns/password_authentication_enabled_for_git.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_authentication_enabled_for_git
+clusterwide:
+column: password_authentication_enabled_for_git
+db_type: boolean
+default: 'true'
+description: Enable authentication for Git over HTTP(S) via a GitLab account password.
+  Default is `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/password_authentication_enabled_for_web.yml b/config/application_setting_columns/password_authentication_enabled_for_web.yml
new file mode 100644
index 0000000000000000000000000000000000000000..faef46c42247f84a11b3a2a551cab01cb45569dd
--- /dev/null
+++ b/config/application_setting_columns/password_authentication_enabled_for_web.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_authentication_enabled_for_web
+clusterwide:
+column: password_authentication_enabled_for_web
+db_type: boolean
+default:
+description: Enable authentication for the web interface via a GitLab account password.
+  Default is `true`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/password_expiration_enabled.yml b/config/application_setting_columns/password_expiration_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d3a35e015d840091670d4c0ca4014d0b93ffefc5
--- /dev/null
+++ b/config/application_setting_columns/password_expiration_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: password_expiration_enabled
+clusterwide:
+column: password_expiration_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/password_expires_in_days.yml b/config/application_setting_columns/password_expires_in_days.yml
new file mode 100644
index 0000000000000000000000000000000000000000..627b823bc8785c337cc47177f084ca05fdce3a8c
--- /dev/null
+++ b/config/application_setting_columns/password_expires_in_days.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: password_expires_in_days
+clusterwide:
+column: password_expires_in_days
+db_type: integer
+default: '90'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/password_expires_notice_before_days.yml b/config/application_setting_columns/password_expires_notice_before_days.yml
new file mode 100644
index 0000000000000000000000000000000000000000..21ac022ae58fa5ae87f6f6a779095b93b586c216
--- /dev/null
+++ b/config/application_setting_columns/password_expires_notice_before_days.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: password_expires_notice_before_days
+clusterwide:
+column: password_expires_notice_before_days
+db_type: integer
+default: '7'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/password_lowercase_required.yml b/config/application_setting_columns/password_lowercase_required.yml
new file mode 100644
index 0000000000000000000000000000000000000000..37096dbdecb99fbd5000f202b578fac74d282841
--- /dev/null
+++ b/config/application_setting_columns/password_lowercase_required.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_lowercase_required
+clusterwide:
+column: password_lowercase_required
+db_type: boolean
+default: 'false'
+description: Indicates whether passwords require at least one lowercase letter. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85763)
+  in GitLab 15.1. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/password_number_required.yml b/config/application_setting_columns/password_number_required.yml
new file mode 100644
index 0000000000000000000000000000000000000000..274598f572bd55e5fb075f154673d16d08815272
--- /dev/null
+++ b/config/application_setting_columns/password_number_required.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_number_required
+clusterwide:
+column: password_number_required
+db_type: boolean
+default: 'false'
+description: Indicates whether passwords require at least one number. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85763)
+  in GitLab 15.1. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/password_symbol_required.yml b/config/application_setting_columns/password_symbol_required.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0df2cdeb320460e70287788da026f0438871b2ed
--- /dev/null
+++ b/config/application_setting_columns/password_symbol_required.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_symbol_required
+clusterwide:
+column: password_symbol_required
+db_type: boolean
+default: 'false'
+description: Indicates whether passwords require at least one symbol character. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85763)
+  in GitLab 15.1. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/password_uppercase_required.yml b/config/application_setting_columns/password_uppercase_required.yml
new file mode 100644
index 0000000000000000000000000000000000000000..100545e1781980734db9aca5ec971d5492bc0740
--- /dev/null
+++ b/config/application_setting_columns/password_uppercase_required.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: password_uppercase_required
+clusterwide:
+column: password_uppercase_required
+db_type: boolean
+default: 'false'
+description: Indicates whether passwords require at least one uppercase letter. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85763)
+  in GitLab 15.1. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/performance_bar_allowed_group_id.yml b/config/application_setting_columns/performance_bar_allowed_group_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d08051e7b45821016831d01b9b7914c5860528ee
--- /dev/null
+++ b/config/application_setting_columns/performance_bar_allowed_group_id.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: performance_bar_allowed_group_id
+clusterwide:
+column: performance_bar_allowed_group_id
+db_type: bigint
+default:
+description: "(Deprecated: Use `performance_bar_allowed_group_path` instead) Path
+  of the group that is allowed to toggle the performance bar."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/personal_access_token_prefix.yml b/config/application_setting_columns/personal_access_token_prefix.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7d470108c73d6719209934ec2d38258cc797f672
--- /dev/null
+++ b/config/application_setting_columns/personal_access_token_prefix.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: personal_access_token_prefix
+clusterwide:
+column: personal_access_token_prefix
+db_type: text
+default: "'glpat-'::text"
+description: Prefix for all generated personal access tokens.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/phone_verification_code_enabled.yml b/config/application_setting_columns/phone_verification_code_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..661de8c12659620b4da0a53bb77208395a72ef66
--- /dev/null
+++ b/config/application_setting_columns/phone_verification_code_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: phone_verification_code_enabled
+clusterwide:
+column: phone_verification_code_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: true
+not_null: true
diff --git a/config/application_setting_columns/pipeline_limit_per_project_user_sha.yml b/config/application_setting_columns/pipeline_limit_per_project_user_sha.yml
new file mode 100644
index 0000000000000000000000000000000000000000..04493cd1b865407e24cec3a6cf5ffc9683af46c7
--- /dev/null
+++ b/config/application_setting_columns/pipeline_limit_per_project_user_sha.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: pipeline_limit_per_project_user_sha
+clusterwide:
+column: pipeline_limit_per_project_user_sha
+db_type: integer
+default: '0'
+description: Maximum number of pipeline creation requests per minute per user and
+  commit. Disabled by default.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/plantuml_enabled.yml b/config/application_setting_columns/plantuml_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..22ed749e6c84ca97af1c1b7b4a99f661d9d63739
--- /dev/null
+++ b/config/application_setting_columns/plantuml_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: plantuml_enabled
+clusterwide:
+column: plantuml_enabled
+db_type: boolean
+default:
+description: "(**If enabled, requires:** `plantuml_url`) Enable [PlantUML integration](../administration/integration/plantuml.md).
+  Default is `false`."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/plantuml_url.yml b/config/application_setting_columns/plantuml_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9fdde404e5f2880bb2c65a132db0e7c548c72b05
--- /dev/null
+++ b/config/application_setting_columns/plantuml_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: plantuml_url
+clusterwide:
+column: plantuml_url
+db_type: character
+default:
+description: The PlantUML instance URL for integration.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/polling_interval_multiplier.yml b/config/application_setting_columns/polling_interval_multiplier.yml
new file mode 100644
index 0000000000000000000000000000000000000000..794de584d9e7328fc3fb90e1e8bc3a3bdc09256e
--- /dev/null
+++ b/config/application_setting_columns/polling_interval_multiplier.yml
@@ -0,0 +1,13 @@
+---
+api_type: float
+attr: polling_interval_multiplier
+clusterwide:
+column: polling_interval_multiplier
+db_type: numeric
+default: '1.0'
+description: Interval multiplier used by endpoints that perform polling. Set to `0`
+  to disable polling.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/pre_receive_secret_detection_enabled.yml b/config/application_setting_columns/pre_receive_secret_detection_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7474d02afe3ebb6bd667a62f1afbe325ef35367
--- /dev/null
+++ b/config/application_setting_columns/pre_receive_secret_detection_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: pre_receive_secret_detection_enabled
+clusterwide:
+column: pre_receive_secret_detection_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/prevent_merge_requests_author_approval.yml b/config/application_setting_columns/prevent_merge_requests_author_approval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f8256bf6f31147bb6a65ecfa79227fb141ccd016
--- /dev/null
+++ b/config/application_setting_columns/prevent_merge_requests_author_approval.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: prevent_merge_requests_author_approval
+clusterwide:
+column: prevent_merge_requests_author_approval
+db_type: boolean
+default: 'false'
+description: Prevent approval by author
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/prevent_merge_requests_committers_approval.yml b/config/application_setting_columns/prevent_merge_requests_committers_approval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7271874b1e495551fd470332459300590b9293d
--- /dev/null
+++ b/config/application_setting_columns/prevent_merge_requests_committers_approval.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: prevent_merge_requests_committers_approval
+clusterwide:
+column: prevent_merge_requests_committers_approval
+db_type: boolean
+default: 'false'
+description: Prevent approval by committers to merge requests
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/product_analytics_configurator_connection_string.yml b/config/application_setting_columns/product_analytics_configurator_connection_string.yml
new file mode 100644
index 0000000000000000000000000000000000000000..141f24d7ca6caf064089b04307ab5a4df449247c
--- /dev/null
+++ b/config/application_setting_columns/product_analytics_configurator_connection_string.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: product_analytics_configurator_connection_string
+clusterwide:
+column: encrypted_product_analytics_configurator_connection_string
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/product_analytics_data_collector_host.yml b/config/application_setting_columns/product_analytics_data_collector_host.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fafea066473573ad752ae2bf1628cd54e995a269
--- /dev/null
+++ b/config/application_setting_columns/product_analytics_data_collector_host.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: product_analytics_data_collector_host
+clusterwide:
+column: product_analytics_data_collector_host
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/product_analytics_enabled.yml b/config/application_setting_columns/product_analytics_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5da067211c477c308081805b8b93743f449d22c8
--- /dev/null
+++ b/config/application_setting_columns/product_analytics_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: product_analytics_enabled
+clusterwide:
+column: product_analytics_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/productivity_analytics_start_date.yml b/config/application_setting_columns/productivity_analytics_start_date.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4bf6ea13aab57f6251858545a0e707089d766da7
--- /dev/null
+++ b/config/application_setting_columns/productivity_analytics_start_date.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: productivity_analytics_start_date
+clusterwide:
+column: productivity_analytics_start_date
+db_type: timestamp
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/project_download_export_limit.yml b/config/application_setting_columns/project_download_export_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c56321b2cc1a61e8ca83394f9a80a241ae81ee0a
--- /dev/null
+++ b/config/application_setting_columns/project_download_export_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: project_download_export_limit
+clusterwide:
+column: project_download_export_limit
+db_type: integer
+default: '1'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/project_export_enabled.yml b/config/application_setting_columns/project_export_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2879a6c778ce928a5c5137daf492b9a7b878ca19
--- /dev/null
+++ b/config/application_setting_columns/project_export_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: project_export_enabled
+clusterwide:
+column: project_export_enabled
+db_type: boolean
+default: 'true'
+description: Enable project export.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/project_export_limit.yml b/config/application_setting_columns/project_export_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2679918c28329b2e6a611584595ab342ca6f1043
--- /dev/null
+++ b/config/application_setting_columns/project_export_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: project_export_limit
+clusterwide:
+column: project_export_limit
+db_type: integer
+default: '6'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/project_import_limit.yml b/config/application_setting_columns/project_import_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..515d4606cebfac1abad5f37298eab06596fcf7e5
--- /dev/null
+++ b/config/application_setting_columns/project_import_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: project_import_limit
+clusterwide:
+column: project_import_limit
+db_type: integer
+default: '6'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/project_jobs_api_rate_limit.yml b/config/application_setting_columns/project_jobs_api_rate_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e5710d5ff5792955e9e2a3d42e0cb8ff83d41963
--- /dev/null
+++ b/config/application_setting_columns/project_jobs_api_rate_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: project_jobs_api_rate_limit
+clusterwide:
+column: project_jobs_api_rate_limit
+db_type: integer
+default: '600'
+description: 'Maximum authenticated requests to `/project/:id/jobs` per minute. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129319)
+  in GitLab 16.5. Default: 600.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/project_runner_token_expiration_interval.yml b/config/application_setting_columns/project_runner_token_expiration_interval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ad8ab4786a4b2b448d835e4e5b7b106b33bb3737
--- /dev/null
+++ b/config/application_setting_columns/project_runner_token_expiration_interval.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: project_runner_token_expiration_interval
+clusterwide:
+column: project_runner_token_expiration_interval
+db_type: integer
+default:
+description: Set the expiration time (in seconds) of authentication tokens of newly
+  registered project runners. Minimum value is 7200 seconds. For more information,
+  see [Automatically rotate authentication tokens](../ci/runners/configure_runners.md#automatically-rotate-runner-authentication-tokens).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/projects_api_rate_limit_unauthenticated.yml b/config/application_setting_columns/projects_api_rate_limit_unauthenticated.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c7ac0d47cbd29c516c0281bbabc82f7c2e99268d
--- /dev/null
+++ b/config/application_setting_columns/projects_api_rate_limit_unauthenticated.yml
@@ -0,0 +1,15 @@
+---
+api_type: integer
+attr: projects_api_rate_limit_unauthenticated
+clusterwide:
+column: projects_api_rate_limit_unauthenticated
+db_type: integer
+default: '400'
+description: "[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112283)
+  in GitLab 15.10. Max number of requests per 10 minutes per IP address for unauthenticated
+  requests to the [list all projects API](projects.md#list-all-projects). Default:
+  400. To disable throttling set to 0."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/prometheus_alert_db_indicators_settings.yml b/config/application_setting_columns/prometheus_alert_db_indicators_settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4e4ead8d5fb54ab13174f44cc3b84ea9e92381f8
--- /dev/null
+++ b/config/application_setting_columns/prometheus_alert_db_indicators_settings.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: prometheus_alert_db_indicators_settings
+clusterwide:
+column: prometheus_alert_db_indicators_settings
+db_type: jsonb
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/prometheus_metrics_enabled.yml b/config/application_setting_columns/prometheus_metrics_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d40bac7d857a652fda819c32ac50c0b70dad72fd
--- /dev/null
+++ b/config/application_setting_columns/prometheus_metrics_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: prometheus_metrics_enabled
+clusterwide:
+column: prometheus_metrics_enabled
+db_type: boolean
+default: 'true'
+description: Enable Prometheus metrics.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/protected_ci_variables.yml b/config/application_setting_columns/protected_ci_variables.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dece4bef36debcdf234c7f34cfda3131e878a5e0
--- /dev/null
+++ b/config/application_setting_columns/protected_ci_variables.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: protected_ci_variables
+clusterwide:
+column: protected_ci_variables
+db_type: boolean
+default: 'true'
+description: CI/CD variables are protected by default.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/protected_paths.yml b/config/application_setting_columns/protected_paths.yml
new file mode 100644
index 0000000000000000000000000000000000000000..528f73a2678599c36e721a89a35bbdbf1908776f
--- /dev/null
+++ b/config/application_setting_columns/protected_paths.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: protected_paths
+clusterwide:
+column: protected_paths
+db_type: character
+default: "'{/users/password"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/protected_paths_for_get_request.yml b/config/application_setting_columns/protected_paths_for_get_request.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1004ec95d715ad9c70f09c79eaf2dc65c344f24e
--- /dev/null
+++ b/config/application_setting_columns/protected_paths_for_get_request.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: protected_paths_for_get_request
+clusterwide:
+column: protected_paths_for_get_request
+db_type: text[]
+default: "'{}'::text[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/pseudonymizer_enabled.yml b/config/application_setting_columns/pseudonymizer_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d43ac376a1ab4d7d3df0e8c046b0d805c87539c5
--- /dev/null
+++ b/config/application_setting_columns/pseudonymizer_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: pseudonymizer_enabled
+clusterwide:
+column: pseudonymizer_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/public_runner_releases_url.yml b/config/application_setting_columns/public_runner_releases_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0615e695a80c92592ce8e6befb82d19375601139
--- /dev/null
+++ b/config/application_setting_columns/public_runner_releases_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: public_runner_releases_url
+clusterwide:
+column: public_runner_releases_url
+db_type: text
+default: "'https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-runner/releases'::text"
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/push_event_activities_limit.yml b/config/application_setting_columns/push_event_activities_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c9c1d50d7a67c551368e4a25fd8d9aa269c1e58e
--- /dev/null
+++ b/config/application_setting_columns/push_event_activities_limit.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: push_event_activities_limit
+clusterwide:
+column: push_event_activities_limit
+db_type: integer
+default: '3'
+description: Maximum number of changes (branches or tags) in a single push above which
+  a [bulk push event is created](../administration/settings/push_event_activities_limit.md).
+  Setting to `0` does not disable throttling.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/push_event_hooks_limit.yml b/config/application_setting_columns/push_event_hooks_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e37079bbb3a0a45bf6abc0832145ed83902660df
--- /dev/null
+++ b/config/application_setting_columns/push_event_hooks_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: push_event_hooks_limit
+clusterwide:
+column: push_event_hooks_limit
+db_type: integer
+default: '3'
+description: Maximum number of changes (branches or tags) in a single push above which
+  webhooks and integrations are not triggered. Setting to `0` does not disable throttling.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/push_rule_id.yml b/config/application_setting_columns/push_rule_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..72a9c844262d2e1b4bcbce82367389aad536e990
--- /dev/null
+++ b/config/application_setting_columns/push_rule_id.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: push_rule_id
+clusterwide:
+column: push_rule_id
+db_type: bigint
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/pypi_package_requests_forwarding.yml b/config/application_setting_columns/pypi_package_requests_forwarding.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4ab7889805a83e06b41277b575161ed9370e1aab
--- /dev/null
+++ b/config/application_setting_columns/pypi_package_requests_forwarding.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: pypi_package_requests_forwarding
+clusterwide:
+column: pypi_package_requests_forwarding
+db_type: boolean
+default: 'true'
+description: Use pypi.org as a default remote repository when the package is not found
+  in the GitLab Package Registry for PyPI. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/rate_limiting_response_text.yml b/config/application_setting_columns/rate_limiting_response_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a1e0a7ef5f245082b4b3fbe4dc9cec6fac9c7045
--- /dev/null
+++ b/config/application_setting_columns/rate_limiting_response_text.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: rate_limiting_response_text
+clusterwide:
+column: rate_limiting_response_text
+db_type: text
+default:
+description: When rate limiting is enabled via the `throttle_*` settings, send this
+  plain text response when a rate limit is exceeded. 'Retry later' is sent if this
+  is blank.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/rate_limits.yml b/config/application_setting_columns/rate_limits.yml
new file mode 100644
index 0000000000000000000000000000000000000000..39e306f142f365179b913683d92850f99bb20941
--- /dev/null
+++ b/config/application_setting_columns/rate_limits.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: rate_limits
+clusterwide:
+column: rate_limits
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/rate_limits_unauthenticated_git_http.yml b/config/application_setting_columns/rate_limits_unauthenticated_git_http.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e00afb95110dc20bf21c993cc230ca54920e575
--- /dev/null
+++ b/config/application_setting_columns/rate_limits_unauthenticated_git_http.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: rate_limits_unauthenticated_git_http
+clusterwide:
+column: rate_limits_unauthenticated_git_http
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/raw_blob_request_limit.yml b/config/application_setting_columns/raw_blob_request_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ca605ced391a85e164221d3cb7a6689059362a23
--- /dev/null
+++ b/config/application_setting_columns/raw_blob_request_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: raw_blob_request_limit
+clusterwide:
+column: raw_blob_request_limit
+db_type: integer
+default: '300'
+description: Maximum number of requests per minute for each raw path (default is `300`).
+  Set to `0` to disable throttling.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/recaptcha_enabled.yml b/config/application_setting_columns/recaptcha_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c0102d486c6aa2fa100c3f87ef113dfce7b81975
--- /dev/null
+++ b/config/application_setting_columns/recaptcha_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: recaptcha_enabled
+clusterwide:
+column: recaptcha_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `recaptcha_private_key` and `recaptcha_site_key`)
+  Enable reCAPTCHA."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/recaptcha_private_key.yml b/config/application_setting_columns/recaptcha_private_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8cfddabe84ca15facdd20038e068633770519560
--- /dev/null
+++ b/config/application_setting_columns/recaptcha_private_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: recaptcha_private_key
+clusterwide:
+column: encrypted_recaptcha_private_key
+db_type: text
+default:
+description: Private key for reCAPTCHA.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/recaptcha_site_key.yml b/config/application_setting_columns/recaptcha_site_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..84710380bffdf172f8aa5cb9824051339db5060f
--- /dev/null
+++ b/config/application_setting_columns/recaptcha_site_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: recaptcha_site_key
+clusterwide:
+column: encrypted_recaptcha_site_key
+db_type: text
+default:
+description: Site key for reCAPTCHA.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/receive_max_input_size.yml b/config/application_setting_columns/receive_max_input_size.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9e21abab1315f29485122cf50f22d8434e3d623f
--- /dev/null
+++ b/config/application_setting_columns/receive_max_input_size.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: receive_max_input_size
+clusterwide:
+column: receive_max_input_size
+db_type: integer
+default:
+description: Maximum push size (MB).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/remember_me_enabled.yml b/config/application_setting_columns/remember_me_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e4d0ff3deb71ed1573d1fc16e28a9aacae0ee243
--- /dev/null
+++ b/config/application_setting_columns/remember_me_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: remember_me_enabled
+clusterwide:
+column: remember_me_enabled
+db_type: boolean
+default: 'true'
+description: Enable [**Remember me** setting](../administration/settings/account_and_limit_settings.md#turn-remember-me-on-or-off).
+  [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369133) in GitLab 16.0.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/repository_checks_enabled.yml b/config/application_setting_columns/repository_checks_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31e74d4cd49ba3331ac5e2f47a826a4aecb9f5bc
--- /dev/null
+++ b/config/application_setting_columns/repository_checks_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: repository_checks_enabled
+clusterwide:
+column: repository_checks_enabled
+db_type: boolean
+default: 'false'
+description: GitLab periodically runs `git fsck` in all project and wiki repositories
+  to look for silent disk corruption issues.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/repository_size_limit.yml b/config/application_setting_columns/repository_size_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6ef45280f6b74bfdf3db2ad142c0b1a6f87e91c6
--- /dev/null
+++ b/config/application_setting_columns/repository_size_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: repository_size_limit
+clusterwide:
+column: repository_size_limit
+db_type: bigint
+default: '0'
+description: Size limit per repository (MB). Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/repository_storages.yml b/config/application_setting_columns/repository_storages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0cd6ed65e792ad433a0a872bdb5b2cadb76c11db
--- /dev/null
+++ b/config/application_setting_columns/repository_storages.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: repository_storages
+clusterwide:
+column: repository_storages
+db_type: character
+default: "'default'::character"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/repository_storages_weighted.yml b/config/application_setting_columns/repository_storages_weighted.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1eaf745c8c3bb2529a402437ef18b53622249c20
--- /dev/null
+++ b/config/application_setting_columns/repository_storages_weighted.yml
@@ -0,0 +1,13 @@
+---
+api_type: hash of strings to integers
+attr: repository_storages_weighted
+clusterwide:
+column: repository_storages_weighted
+db_type: jsonb
+default: "'{}'::jsonb"
+description: Hash of names of taken from `gitlab.yml` to [weights](../administration/repository_storage_paths.md#configure-where-new-repositories-are-stored).
+  New projects are created in one of these stores, chosen by a weighted random selection.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/require_admin_approval_after_user_signup.yml b/config/application_setting_columns/require_admin_approval_after_user_signup.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a280730eeee3425e9c44ab667a6246d6047ca75c
--- /dev/null
+++ b/config/application_setting_columns/require_admin_approval_after_user_signup.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: require_admin_approval_after_user_signup
+clusterwide:
+column: require_admin_approval_after_user_signup
+db_type: boolean
+default: 'true'
+description: When enabled, any user that signs up for an account using the registration
+  form is placed under a **Pending approval** state and has to be explicitly [approved](../administration/moderate_users.md)
+  by an administrator.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/require_admin_two_factor_authentication.yml b/config/application_setting_columns/require_admin_two_factor_authentication.yml
new file mode 100644
index 0000000000000000000000000000000000000000..557b06717e66d424ac89773d9d266ca8910916f7
--- /dev/null
+++ b/config/application_setting_columns/require_admin_two_factor_authentication.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: require_admin_two_factor_authentication
+clusterwide:
+column: require_admin_two_factor_authentication
+db_type: boolean
+default: 'false'
+description: Allow administrators to require 2FA for all administrators on the instance.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/require_personal_access_token_expiry.yml b/config/application_setting_columns/require_personal_access_token_expiry.yml
new file mode 100644
index 0000000000000000000000000000000000000000..91eb11fa886e0169cb3dd63ae3307a178a10e4ed
--- /dev/null
+++ b/config/application_setting_columns/require_personal_access_token_expiry.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: require_personal_access_token_expiry
+clusterwide:
+column: require_personal_access_token_expiry
+db_type: boolean
+default: 'true'
+description: When enabled, users must set an expiration date when creating a group
+  or project access token, or a personal access token owned by a non-service account.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/require_two_factor_authentication.yml b/config/application_setting_columns/require_two_factor_authentication.yml
new file mode 100644
index 0000000000000000000000000000000000000000..38866725ffab20445eece0c7d0034e1f0e818692
--- /dev/null
+++ b/config/application_setting_columns/require_two_factor_authentication.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: require_two_factor_authentication
+clusterwide:
+column: require_two_factor_authentication
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `two_factor_grace_period`) Require all users
+  to set up two-factor authentication."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/required_instance_ci_template.yml b/config/application_setting_columns/required_instance_ci_template.yml
new file mode 100644
index 0000000000000000000000000000000000000000..be9176a4f91dcd4ab12e643469dde843937f2b33
--- /dev/null
+++ b/config/application_setting_columns/required_instance_ci_template.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: required_instance_ci_template
+clusterwide:
+column: required_instance_ci_template
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/restricted_visibility_levels.yml b/config/application_setting_columns/restricted_visibility_levels.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b2871edf48af9c92e5e82f2aa291ce435c7a5872
--- /dev/null
+++ b/config/application_setting_columns/restricted_visibility_levels.yml
@@ -0,0 +1,16 @@
+---
+api_type: array of strings
+attr: restricted_visibility_levels
+clusterwide: false
+column: restricted_visibility_levels
+db_type: text
+default:
+description: 'Selected levels cannot be used by non-Administrator users for groups,
+  projects or snippets. Can take `private`, `internal` and `public` as a parameter.
+  Default is `null` which means there is no restriction.[Changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131203)
+  in GitLab 16.4: cannot select levels that are set as `default_project_visibility`
+  and `default_group_visibility`.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/rsa_key_restriction.yml b/config/application_setting_columns/rsa_key_restriction.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0d5c4dfc12e6e51c8cb2133b9acfc0232d5c3a80
--- /dev/null
+++ b/config/application_setting_columns/rsa_key_restriction.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: rsa_key_restriction
+clusterwide:
+column: rsa_key_restriction
+db_type: integer
+default: '0'
+description: The minimum allowed bit length of an uploaded RSA key. Default is `0`
+  (no restriction). `-1` disables RSA keys.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/runner_token_expiration_interval.yml b/config/application_setting_columns/runner_token_expiration_interval.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31054acaa482a480f4b67a96fcaec6638c83b9d6
--- /dev/null
+++ b/config/application_setting_columns/runner_token_expiration_interval.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: runner_token_expiration_interval
+clusterwide:
+column: runner_token_expiration_interval
+db_type: integer
+default:
+description: Set the expiration time (in seconds) of authentication tokens of newly
+  registered instance runners. Minimum value is 7200 seconds. For more information,
+  see [Automatically rotate authentication tokens](../ci/runners/configure_runners.md#automatically-rotate-runner-authentication-tokens).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/runners_registration_token.yml b/config/application_setting_columns/runners_registration_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..78f177b070b21113a37ee77c6775add6e3e56537
--- /dev/null
+++ b/config/application_setting_columns/runners_registration_token.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: runners_registration_token
+clusterwide:
+column: runners_registration_token
+db_type: character
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/runners_registration_token_encrypted.yml b/config/application_setting_columns/runners_registration_token_encrypted.yml
new file mode 100644
index 0000000000000000000000000000000000000000..36b1c171c50ecca62348c68dbebeff38210ba1ce
--- /dev/null
+++ b/config/application_setting_columns/runners_registration_token_encrypted.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: runners_registration_token_encrypted
+clusterwide:
+column: runners_registration_token_encrypted
+db_type: character
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/search_max_docs_denominator.yml b/config/application_setting_columns/search_max_docs_denominator.yml
new file mode 100644
index 0000000000000000000000000000000000000000..96d8eadcdea6fe2fcabddc6f325285919b521f65
--- /dev/null
+++ b/config/application_setting_columns/search_max_docs_denominator.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: search_max_docs_denominator
+clusterwide:
+column: search_max_docs_denominator
+db_type: integer
+default: '5000000'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/search_max_shard_size_gb.yml b/config/application_setting_columns/search_max_shard_size_gb.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c4f29c96f8f382fa14dd62890590b5df37ea225f
--- /dev/null
+++ b/config/application_setting_columns/search_max_shard_size_gb.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: search_max_shard_size_gb
+clusterwide:
+column: search_max_shard_size_gb
+db_type: integer
+default: '50'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/search_min_docs_before_rollover.yml b/config/application_setting_columns/search_min_docs_before_rollover.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d21ce2e0f5aa14d8bd49d01f6ac7ed3fa9bfcc98
--- /dev/null
+++ b/config/application_setting_columns/search_min_docs_before_rollover.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: search_min_docs_before_rollover
+clusterwide:
+column: search_min_docs_before_rollover
+db_type: integer
+default: '100000'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/search_rate_limit.yml b/config/application_setting_columns/search_rate_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..68930c4c7c46befdb46abbc200b02f6cad37e4e7
--- /dev/null
+++ b/config/application_setting_columns/search_rate_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: search_rate_limit
+clusterwide:
+column: search_rate_limit
+db_type: integer
+default: '300'
+description: 'Max number of requests per minute for performing a search while authenticated.
+  Default: 30. To disable throttling set to 0.'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/search_rate_limit_allowlist.yml b/config/application_setting_columns/search_rate_limit_allowlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e1f37fd36845a27fd499ee527d327d14d3d40d43
--- /dev/null
+++ b/config/application_setting_columns/search_rate_limit_allowlist.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: search_rate_limit_allowlist
+clusterwide:
+column: search_rate_limit_allowlist
+db_type: text[]
+default: "'{}'::text[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/search_rate_limit_unauthenticated.yml b/config/application_setting_columns/search_rate_limit_unauthenticated.yml
new file mode 100644
index 0000000000000000000000000000000000000000..86a0e3cae49bae81b2a8954e7f3bbfdc7754ac8a
--- /dev/null
+++ b/config/application_setting_columns/search_rate_limit_unauthenticated.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: search_rate_limit_unauthenticated
+clusterwide:
+column: search_rate_limit_unauthenticated
+db_type: integer
+default: '100'
+description: 'Max number of requests per minute for performing a search while unauthenticated.
+  Default: 10. To disable throttling set to 0.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/secret_detection_revocation_token_types_url.yml b/config/application_setting_columns/secret_detection_revocation_token_types_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..569726b7d69503031529efa1e2eea9db558384a1
--- /dev/null
+++ b/config/application_setting_columns/secret_detection_revocation_token_types_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: secret_detection_revocation_token_types_url
+clusterwide:
+column: secret_detection_revocation_token_types_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/secret_detection_token_revocation_enabled.yml b/config/application_setting_columns/secret_detection_token_revocation_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..09b98a5f0cda08e907f8b898466e6915933e1132
--- /dev/null
+++ b/config/application_setting_columns/secret_detection_token_revocation_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: secret_detection_token_revocation_enabled
+clusterwide:
+column: secret_detection_token_revocation_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/secret_detection_token_revocation_token.yml b/config/application_setting_columns/secret_detection_token_revocation_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..77d40384d3cd994b8081ef9434e7f487fe407034
--- /dev/null
+++ b/config/application_setting_columns/secret_detection_token_revocation_token.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: secret_detection_token_revocation_token
+clusterwide:
+column: encrypted_secret_detection_token_revocation_token
+db_type: text
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/secret_detection_token_revocation_url.yml b/config/application_setting_columns/secret_detection_token_revocation_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b083d19573af048734eb37aac90e79f4f8f88f20
--- /dev/null
+++ b/config/application_setting_columns/secret_detection_token_revocation_url.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: secret_detection_token_revocation_url
+clusterwide:
+column: secret_detection_token_revocation_url
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/security_approval_policies_limit.yml b/config/application_setting_columns/security_approval_policies_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..78bf4b367437d95b326d8dc2f4da949972fc6ec1
--- /dev/null
+++ b/config/application_setting_columns/security_approval_policies_limit.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: security_approval_policies_limit
+clusterwide:
+column: security_approval_policies_limit
+db_type: integer
+default: '5'
+description: 'Maximum number of active merge request approval policies per security
+  policy project. Default: 5. Maximum: 20'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/security_policies.yml b/config/application_setting_columns/security_policies.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7312c2cb5930dbe07b1ec232ce76d09c90572d8
--- /dev/null
+++ b/config/application_setting_columns/security_policies.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: security_policies
+clusterwide:
+column: security_policies
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/security_policy_global_group_approvers_enabled.yml b/config/application_setting_columns/security_policy_global_group_approvers_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f6a691b02d9fcf741b817bffb090f869167ce015
--- /dev/null
+++ b/config/application_setting_columns/security_policy_global_group_approvers_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: security_policy_global_group_approvers_enabled
+clusterwide:
+column: security_policy_global_group_approvers_enabled
+db_type: boolean
+default: 'true'
+description: Whether to look up merge request approval policy approval groups globally
+  or within project hierarchies.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/security_policy_scheduled_scans_max_concurrency.yml b/config/application_setting_columns/security_policy_scheduled_scans_max_concurrency.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f709e73bed0be1a4406f4560fc8ccc5f851faf01
--- /dev/null
+++ b/config/application_setting_columns/security_policy_scheduled_scans_max_concurrency.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: security_policy_scheduled_scans_max_concurrency
+clusterwide:
+column: security_policy_scheduled_scans_max_concurrency
+db_type: integer
+default: '10000'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/security_txt_content.yml b/config/application_setting_columns/security_txt_content.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f3b6f284e1806a607ddc1b2a307d449ad98fbebd
--- /dev/null
+++ b/config/application_setting_columns/security_txt_content.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: security_txt_content
+clusterwide:
+column: security_txt_content
+db_type: text
+default:
+description: "[Public security contact information](../administration/settings/security_contact_information.md).
+  [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/433210) in GitLab 16.7."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/sentry_clientside_dsn.yml b/config/application_setting_columns/sentry_clientside_dsn.yml
new file mode 100644
index 0000000000000000000000000000000000000000..35ed2f0d39efab2e52fb3e1b62b1b9081c8e2be9
--- /dev/null
+++ b/config/application_setting_columns/sentry_clientside_dsn.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: sentry_clientside_dsn
+clusterwide: false
+column: sentry_clientside_dsn
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/sentry_clientside_traces_sample_rate.yml b/config/application_setting_columns/sentry_clientside_traces_sample_rate.yml
new file mode 100644
index 0000000000000000000000000000000000000000..22bb39d0198fec0f4dab73eba2356da052420dde
--- /dev/null
+++ b/config/application_setting_columns/sentry_clientside_traces_sample_rate.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: sentry_clientside_traces_sample_rate
+clusterwide: false
+column: sentry_clientside_traces_sample_rate
+db_type: double
+default: '0.0'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sentry_dsn.yml b/config/application_setting_columns/sentry_dsn.yml
new file mode 100644
index 0000000000000000000000000000000000000000..754ffbf95c17ae6008242cdd9c6633e345639636
--- /dev/null
+++ b/config/application_setting_columns/sentry_dsn.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: sentry_dsn
+clusterwide: false
+column: sentry_dsn
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/sentry_enabled.yml b/config/application_setting_columns/sentry_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2262b1f02cbfe54658e7dcdce2e261b7696e1b85
--- /dev/null
+++ b/config/application_setting_columns/sentry_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: sentry_enabled
+clusterwide: false
+column: sentry_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sentry_environment.yml b/config/application_setting_columns/sentry_environment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2f919862d0ea9d4ab55baaa9269935eb82eda6d8
--- /dev/null
+++ b/config/application_setting_columns/sentry_environment.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: sentry_environment
+clusterwide: false
+column: sentry_environment
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/service_access_tokens_expiration_enforced.yml b/config/application_setting_columns/service_access_tokens_expiration_enforced.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cb43768ffd3376f0fdfc01491db0bd0fd9d03cd8
--- /dev/null
+++ b/config/application_setting_columns/service_access_tokens_expiration_enforced.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: service_access_tokens_expiration_enforced
+clusterwide:
+column: service_access_tokens_expiration_enforced
+db_type: boolean
+default: 'true'
+description: Flag to indicate if token expiry date can be optional for service account
+  users
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/service_ping_settings.yml b/config/application_setting_columns/service_ping_settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c5a74e6b3faac666077d0858fa00bd0cebd9b5c4
--- /dev/null
+++ b/config/application_setting_columns/service_ping_settings.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: service_ping_settings
+clusterwide:
+column: service_ping_settings
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/session_expire_delay.yml b/config/application_setting_columns/session_expire_delay.yml
new file mode 100644
index 0000000000000000000000000000000000000000..37aeb9f4e79b3ba0aee1cba7df0a5891cf609843
--- /dev/null
+++ b/config/application_setting_columns/session_expire_delay.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: session_expire_delay
+clusterwide:
+column: session_expire_delay
+db_type: integer
+default: '10080'
+description: Session duration in minutes. GitLab restart is required to apply changes.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/shared_runners_enabled.yml b/config/application_setting_columns/shared_runners_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d073bfb50f0bb515407a1f5185080a5aeee28fc8
--- /dev/null
+++ b/config/application_setting_columns/shared_runners_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: shared_runners_enabled
+clusterwide:
+column: shared_runners_enabled
+db_type: boolean
+default: 'true'
+description: "(**If enabled, requires:** `shared_runners_text` and `shared_runners_minutes`)
+  Enable shared runners for new projects."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/shared_runners_minutes.yml b/config/application_setting_columns/shared_runners_minutes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8089e68b1be7237880e0a4761c5d798325e77eb1
--- /dev/null
+++ b/config/application_setting_columns/shared_runners_minutes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: shared_runners_minutes
+clusterwide:
+column: shared_runners_minutes
+db_type: integer
+default: '0'
+description: Set the maximum number of compute minutes that a group can use on shared
+  runners per month. Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/shared_runners_text.yml b/config/application_setting_columns/shared_runners_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..720d850c2c47d3a6683c64d54bd3da613d92ae7b
--- /dev/null
+++ b/config/application_setting_columns/shared_runners_text.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: shared_runners_text
+clusterwide:
+column: shared_runners_text
+db_type: text
+default:
+description: Shared runners text.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/sidekiq_job_limiter_compression_threshold_bytes.yml b/config/application_setting_columns/sidekiq_job_limiter_compression_threshold_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a0837d5ab073133b587128c21572c92541c8a012
--- /dev/null
+++ b/config/application_setting_columns/sidekiq_job_limiter_compression_threshold_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: sidekiq_job_limiter_compression_threshold_bytes
+clusterwide:
+column: sidekiq_job_limiter_compression_threshold_bytes
+db_type: integer
+default: '100000'
+description: 'The threshold in bytes at which Sidekiq jobs are compressed before being
+  stored in Redis. Default: 100,000 bytes (100 KB).'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sidekiq_job_limiter_limit_bytes.yml b/config/application_setting_columns/sidekiq_job_limiter_limit_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..35369e0cb88d8e06d1ff74e793b02c833a75dab9
--- /dev/null
+++ b/config/application_setting_columns/sidekiq_job_limiter_limit_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: sidekiq_job_limiter_limit_bytes
+clusterwide:
+column: sidekiq_job_limiter_limit_bytes
+db_type: integer
+default: '0'
+description: 'The threshold in bytes at which Sidekiq jobs are rejected. Default:
+  0 bytes (doesn''t reject any job).'
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sidekiq_job_limiter_mode.yml b/config/application_setting_columns/sidekiq_job_limiter_mode.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1f0e60cc36f3befcd1bb2483324e1ec719f21352
--- /dev/null
+++ b/config/application_setting_columns/sidekiq_job_limiter_mode.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: sidekiq_job_limiter_mode
+clusterwide:
+column: sidekiq_job_limiter_mode
+db_type: smallint
+default: '1'
+description: "`track` or `compress`. Sets the behavior for [Sidekiq job size limits](../administration/settings/sidekiq_job_limits.md).
+  Default: 'compress'."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/signup_enabled.yml b/config/application_setting_columns/signup_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..104b77f4bd2caca3390ecffbc45ff381d8ac5541
--- /dev/null
+++ b/config/application_setting_columns/signup_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: signup_enabled
+clusterwide:
+column: signup_enabled
+db_type: boolean
+default:
+description: Enable registration. Default is `true`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/silent_mode_enabled.yml b/config/application_setting_columns/silent_mode_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..03e1ebfeed900e3305c53254e17eedba04271ac7
--- /dev/null
+++ b/config/application_setting_columns/silent_mode_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: silent_mode_enabled
+clusterwide:
+column: silent_mode_enabled
+db_type: boolean
+default: 'false'
+description: Enable [Silent mode](../administration/silent_mode/index.md). Default
+  is `false`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/slack_app_enabled.yml b/config/application_setting_columns/slack_app_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5682f0ec90b599b9ed9a733d38913b7c8b75f92d
--- /dev/null
+++ b/config/application_setting_columns/slack_app_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: slack_app_enabled
+clusterwide:
+column: slack_app_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `slack_app_id`, `slack_app_secret`, `slack_app_signing_secret`,
+  and `slack_app_verification_token`) Enable the GitLab for Slack app."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/slack_app_id.yml b/config/application_setting_columns/slack_app_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..42ccec395b04b6c4b2e4d1230cd96cac61375693
--- /dev/null
+++ b/config/application_setting_columns/slack_app_id.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: slack_app_id
+clusterwide:
+column: slack_app_id
+db_type: character
+default:
+description: The client ID of the GitLab for Slack app.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/slack_app_secret.yml b/config/application_setting_columns/slack_app_secret.yml
new file mode 100644
index 0000000000000000000000000000000000000000..04b1ae7a2c5f63a3021a60dae64c19887457c144
--- /dev/null
+++ b/config/application_setting_columns/slack_app_secret.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: slack_app_secret
+clusterwide:
+column: encrypted_slack_app_secret
+db_type: text
+default:
+description: The client secret of the GitLab for Slack app. Used for authenticating
+  OAuth requests from the app.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/slack_app_signing_secret.yml b/config/application_setting_columns/slack_app_signing_secret.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2bcb555cea6adf0600c674a06ac49c624d142693
--- /dev/null
+++ b/config/application_setting_columns/slack_app_signing_secret.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: slack_app_signing_secret
+clusterwide:
+column: encrypted_slack_app_signing_secret
+db_type: bytea
+default:
+description: The signing secret of the GitLab for Slack app. Used for authenticating
+  API requests from the app.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/slack_app_verification_token.yml b/config/application_setting_columns/slack_app_verification_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..aab74ca4d060797c5882ac1236cffe583a04f88c
--- /dev/null
+++ b/config/application_setting_columns/slack_app_verification_token.yml
@@ -0,0 +1,14 @@
+---
+api_type: string
+attr: slack_app_verification_token
+clusterwide:
+column: encrypted_slack_app_verification_token
+db_type: text
+default:
+description: The verification token of the GitLab for Slack app. This method of authentication
+  is deprecated by Slack and used only for authenticating slash commands from the
+  app.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/snippet_size_limit.yml b/config/application_setting_columns/snippet_size_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..775988a06d55b08777be11d59098a6eeba20f277
--- /dev/null
+++ b/config/application_setting_columns/snippet_size_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: snippet_size_limit
+clusterwide:
+column: snippet_size_limit
+db_type: bigint
+default: '52428800'
+description: 'Max snippet content size in **bytes**. Default: 52428800 Bytes (50 MB).'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/snowplow_app_id.yml b/config/application_setting_columns/snowplow_app_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f97b4b3a86fffc91bf0fc4bd050b874f340cab14
--- /dev/null
+++ b/config/application_setting_columns/snowplow_app_id.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: snowplow_app_id
+clusterwide:
+column: snowplow_app_id
+db_type: character
+default:
+description: The Snowplow site name / application ID. (for example, `gitlab`)
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/snowplow_collector_hostname.yml b/config/application_setting_columns/snowplow_collector_hostname.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d6dd749628f37f601f3dd8e9ca866789613c38cb
--- /dev/null
+++ b/config/application_setting_columns/snowplow_collector_hostname.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: snowplow_collector_hostname
+clusterwide:
+column: snowplow_collector_hostname
+db_type: character
+default:
+description: The Snowplow collector hostname. (for example, `snowplow.trx.gitlab.net`)
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/snowplow_cookie_domain.yml b/config/application_setting_columns/snowplow_cookie_domain.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f2d87b9ea52540ebceaeba85e569eda4ef673d53
--- /dev/null
+++ b/config/application_setting_columns/snowplow_cookie_domain.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: snowplow_cookie_domain
+clusterwide:
+column: snowplow_cookie_domain
+db_type: character
+default:
+description: The Snowplow cookie domain. (for example, `.gitlab.com`)
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/snowplow_database_collector_hostname.yml b/config/application_setting_columns/snowplow_database_collector_hostname.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bc9ac0f4f3b91065cea48cb09034fe3b1ee0ecfe
--- /dev/null
+++ b/config/application_setting_columns/snowplow_database_collector_hostname.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: snowplow_database_collector_hostname
+clusterwide:
+column: snowplow_database_collector_hostname
+db_type: text
+default:
+description: The Snowplow collector for database events hostname. (for example, `db-snowplow.trx.gitlab.net`)
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/snowplow_enabled.yml b/config/application_setting_columns/snowplow_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..87f7487d07ebef4a9de33ab88d45a936ec5b1e5a
--- /dev/null
+++ b/config/application_setting_columns/snowplow_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: snowplow_enabled
+clusterwide:
+column: snowplow_enabled
+db_type: boolean
+default: 'false'
+description: Enable snowplow tracking.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sourcegraph_enabled.yml b/config/application_setting_columns/sourcegraph_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6519ca01f843caea667e6571a3583f1557724e7f
--- /dev/null
+++ b/config/application_setting_columns/sourcegraph_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: sourcegraph_enabled
+clusterwide:
+column: sourcegraph_enabled
+db_type: boolean
+default: 'false'
+description: Enables Sourcegraph integration. Default is `false`. **If enabled, requires**
+  `sourcegraph_url`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sourcegraph_public_only.yml b/config/application_setting_columns/sourcegraph_public_only.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6fdf2d02ac1867deba51288dce67d2b68e47303d
--- /dev/null
+++ b/config/application_setting_columns/sourcegraph_public_only.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: sourcegraph_public_only
+clusterwide:
+column: sourcegraph_public_only
+db_type: boolean
+default: 'true'
+description: Blocks Sourcegraph from being loaded on private and internal projects.
+  Default is `true`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/sourcegraph_url.yml b/config/application_setting_columns/sourcegraph_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dd1fe66be9e637bcf80ced768e6f6670e3ec16ed
--- /dev/null
+++ b/config/application_setting_columns/sourcegraph_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: sourcegraph_url
+clusterwide:
+column: sourcegraph_url
+db_type: character
+default:
+description: The Sourcegraph instance URL for integration.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/spam_check_api_key.yml b/config/application_setting_columns/spam_check_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1c9f0d780b9e9198edf1784676617d2e0e0c62ba
--- /dev/null
+++ b/config/application_setting_columns/spam_check_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: spam_check_api_key
+clusterwide:
+column: encrypted_spam_check_api_key
+db_type: bytea
+default:
+description: API key used by GitLab for accessing the Spam Check service endpoint.
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/spam_check_endpoint_enabled.yml b/config/application_setting_columns/spam_check_endpoint_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cfa83b35e17f429117060c2c8077779e1ccb2d09
--- /dev/null
+++ b/config/application_setting_columns/spam_check_endpoint_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: spam_check_endpoint_enabled
+clusterwide:
+column: spam_check_endpoint_enabled
+db_type: boolean
+default: 'false'
+description: Enables spam checking using external Spam Check API endpoint. Default
+  is `false`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/spam_check_endpoint_url.yml b/config/application_setting_columns/spam_check_endpoint_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a04b670643dac90a8c7eba8d401edfcdfadca45
--- /dev/null
+++ b/config/application_setting_columns/spam_check_endpoint_url.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: spam_check_endpoint_url
+clusterwide:
+column: spam_check_endpoint_url
+db_type: text
+default:
+description: URL of the external Spamcheck service endpoint. Valid URI schemes are
+  `grpc` or `tls`. Specifying `tls` forces communication to be encrypted.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/spp_repository_pipeline_access.yml b/config/application_setting_columns/spp_repository_pipeline_access.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8daf047fc1cf0fc3af8b4a3d607a6189dbbfa6ab
--- /dev/null
+++ b/config/application_setting_columns/spp_repository_pipeline_access.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: spp_repository_pipeline_access
+clusterwide:
+column: spp_repository_pipeline_access
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/static_objects_external_storage_auth_token_encrypted.yml b/config/application_setting_columns/static_objects_external_storage_auth_token_encrypted.yml
new file mode 100644
index 0000000000000000000000000000000000000000..91c4c221cf90abe5c8d0b33f043d8d49e2bec707
--- /dev/null
+++ b/config/application_setting_columns/static_objects_external_storage_auth_token_encrypted.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: static_objects_external_storage_auth_token_encrypted
+clusterwide:
+column: static_objects_external_storage_auth_token_encrypted
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/static_objects_external_storage_url.yml b/config/application_setting_columns/static_objects_external_storage_url.yml
new file mode 100644
index 0000000000000000000000000000000000000000..476358beeb52715a2b970826d4dd793084290b0a
--- /dev/null
+++ b/config/application_setting_columns/static_objects_external_storage_url.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: static_objects_external_storage_url
+clusterwide:
+column: static_objects_external_storage_url
+db_type: character
+default:
+description: URL to an external storage for repository static objects.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/suggest_pipeline_enabled.yml b/config/application_setting_columns/suggest_pipeline_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e7f2a218e9cf35efaf3b0a19fd128ddbab4426b7
--- /dev/null
+++ b/config/application_setting_columns/suggest_pipeline_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: suggest_pipeline_enabled
+clusterwide:
+column: suggest_pipeline_enabled
+db_type: boolean
+default: 'true'
+description: Enable pipeline suggestion banner.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/telesign_api_key.yml b/config/application_setting_columns/telesign_api_key.yml
new file mode 100644
index 0000000000000000000000000000000000000000..57e75634afe664d07492aff6e79fac2f0e87fad6
--- /dev/null
+++ b/config/application_setting_columns/telesign_api_key.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: telesign_api_key
+clusterwide:
+column: encrypted_telesign_api_key
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/telesign_customer_xid.yml b/config/application_setting_columns/telesign_customer_xid.yml
new file mode 100644
index 0000000000000000000000000000000000000000..47b6af5d0bcfba5b18b413b5118f5b4ab827a6da
--- /dev/null
+++ b/config/application_setting_columns/telesign_customer_xid.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: telesign_customer_xid
+clusterwide:
+column: encrypted_telesign_customer_xid
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/terminal_max_session_time.yml b/config/application_setting_columns/terminal_max_session_time.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8484295b6ca86feb820457924d1553e20414afc6
--- /dev/null
+++ b/config/application_setting_columns/terminal_max_session_time.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: terminal_max_session_time
+clusterwide:
+column: terminal_max_session_time
+db_type: integer
+default: '0'
+description: Maximum time for web terminal websocket connection (in seconds). Set
+  to `0` for unlimited time.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_api_enabled.yml b/config/application_setting_columns/throttle_authenticated_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c6fb65133a052f0e6f0e2d0c68981250a96cf0e7
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_api_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: throttle_authenticated_api_enabled
+clusterwide:
+column: throttle_authenticated_api_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `throttle_authenticated_api_period_in_seconds`
+  and `throttle_authenticated_api_requests_per_period`) Enable authenticated API request
+  rate limit. Helps reduce request volume (for example, from crawlers or abusive bots)."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_api_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6aa09baa214d5a6fbdbcca2ba7f7a221b89a3bb1
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_authenticated_api_period_in_seconds
+clusterwide:
+column: throttle_authenticated_api_period_in_seconds
+db_type: integer
+default: '3600'
+description: Rate limit period (in seconds).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_api_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cc09efecf9070be2427d9a98032c2d70502ccb54
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_authenticated_api_requests_per_period
+clusterwide:
+column: throttle_authenticated_api_requests_per_period
+db_type: integer
+default: '7200'
+description: Maximum requests per period per user.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_deprecated_api_enabled.yml b/config/application_setting_columns/throttle_authenticated_deprecated_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..30e243584f8a662ac476473187493dcf9eb79e7f
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_deprecated_api_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_deprecated_api_enabled
+clusterwide:
+column: throttle_authenticated_deprecated_api_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_deprecated_api_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_deprecated_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ba8ec3a7d27b7872a547741c9c99da25bfd34bcd
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_deprecated_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_deprecated_api_period_in_seconds
+clusterwide:
+column: throttle_authenticated_deprecated_api_period_in_seconds
+db_type: integer
+default: '3600'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_deprecated_api_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_deprecated_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c374e4e236a89e40cd9fe356c80c9703fb7180c7
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_deprecated_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_deprecated_api_requests_per_period
+clusterwide:
+column: throttle_authenticated_deprecated_api_requests_per_period
+db_type: integer
+default: '3600'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_files_api_enabled.yml b/config/application_setting_columns/throttle_authenticated_files_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4e746190273fc595b2ad3051f54953e777952d9d
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_files_api_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_files_api_enabled
+clusterwide:
+column: throttle_authenticated_files_api_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_files_api_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_files_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a3ad4a3e819fcc3b9090aa997b5e171842e7883
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_files_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_files_api_period_in_seconds
+clusterwide:
+column: throttle_authenticated_files_api_period_in_seconds
+db_type: integer
+default: '15'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_files_api_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_files_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..afd4b9b99f2624862df477764ecb8165d8cbdd38
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_files_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_files_api_requests_per_period
+clusterwide:
+column: throttle_authenticated_files_api_requests_per_period
+db_type: integer
+default: '500'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_git_lfs_enabled.yml b/config/application_setting_columns/throttle_authenticated_git_lfs_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e746eb18826f788df1b6af2e9849a23263962dd2
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_git_lfs_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_git_lfs_enabled
+clusterwide:
+column: throttle_authenticated_git_lfs_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_git_lfs_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_git_lfs_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ab49b385896fcc09a8fbe9df19cded7eadc83b9b
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_git_lfs_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_git_lfs_period_in_seconds
+clusterwide:
+column: throttle_authenticated_git_lfs_period_in_seconds
+db_type: integer
+default: '60'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_git_lfs_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_git_lfs_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..622cbf2bff9f47da90ac3159f1bb08e12a8bd2c6
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_git_lfs_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_authenticated_git_lfs_requests_per_period
+clusterwide:
+column: throttle_authenticated_git_lfs_requests_per_period
+db_type: integer
+default: '1000'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_packages_api_enabled.yml b/config/application_setting_columns/throttle_authenticated_packages_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3bdc191d395578f890a5d0ff74512101a181eda8
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_packages_api_enabled.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: throttle_authenticated_packages_api_enabled
+clusterwide:
+column: throttle_authenticated_packages_api_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `throttle_authenticated_packages_api_period_in_seconds`
+  and `throttle_authenticated_packages_api_requests_per_period`) Enable authenticated
+  API request rate limit. Helps reduce request volume (for example, from crawlers
+  or abusive bots). View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_packages_api_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_packages_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..91a15d8c733c7257ec328265f99cd713e87caf64
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_packages_api_period_in_seconds.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: throttle_authenticated_packages_api_period_in_seconds
+clusterwide:
+column: throttle_authenticated_packages_api_period_in_seconds
+db_type: integer
+default: '15'
+description: Rate limit period (in seconds). View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_packages_api_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_packages_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..87b5982c8de3a292b1590db3526748dabe8b5b73
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_packages_api_requests_per_period.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: throttle_authenticated_packages_api_requests_per_period
+clusterwide:
+column: throttle_authenticated_packages_api_requests_per_period
+db_type: integer
+default: '1000'
+description: Maximum requests per period per user. View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_web_enabled.yml b/config/application_setting_columns/throttle_authenticated_web_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..859cf50ad3f0a0a896120b88d8338a09762f1353
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_web_enabled.yml
@@ -0,0 +1,14 @@
+---
+api_type: boolean
+attr: throttle_authenticated_web_enabled
+clusterwide:
+column: throttle_authenticated_web_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `throttle_authenticated_web_period_in_seconds`
+  and `throttle_authenticated_web_requests_per_period`) Enable authenticated web request
+  rate limit. Helps reduce request volume (for example, from crawlers or abusive bots)."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_web_period_in_seconds.yml b/config/application_setting_columns/throttle_authenticated_web_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b51ab3c2611f4bfb8cebcc49cefee298aa890664
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_web_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_authenticated_web_period_in_seconds
+clusterwide:
+column: throttle_authenticated_web_period_in_seconds
+db_type: integer
+default: '3600'
+description: Rate limit period (in seconds).
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_authenticated_web_requests_per_period.yml b/config/application_setting_columns/throttle_authenticated_web_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a9f041d1069c451ae1ff7f62a0f36e7727889b88
--- /dev/null
+++ b/config/application_setting_columns/throttle_authenticated_web_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_authenticated_web_requests_per_period
+clusterwide:
+column: throttle_authenticated_web_requests_per_period
+db_type: integer
+default: '7200'
+description: Maximum requests per period per user.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_incident_management_notification_enabled.yml b/config/application_setting_columns/throttle_incident_management_notification_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e97f39a2ae6c1df2e8e2677fd77580b5c13fc5e3
--- /dev/null
+++ b/config/application_setting_columns/throttle_incident_management_notification_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_incident_management_notification_enabled
+clusterwide:
+column: throttle_incident_management_notification_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_incident_management_notification_per_period.yml b/config/application_setting_columns/throttle_incident_management_notification_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6954807b9d767b8740f65997b38faadc0eb74468
--- /dev/null
+++ b/config/application_setting_columns/throttle_incident_management_notification_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_incident_management_notification_per_period
+clusterwide:
+column: throttle_incident_management_notification_per_period
+db_type: integer
+default: '3600'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/throttle_incident_management_notification_period_in_seconds.yml b/config/application_setting_columns/throttle_incident_management_notification_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4626273a54b4929ab19bebd11e5ae5acfc7c3dd6
--- /dev/null
+++ b/config/application_setting_columns/throttle_incident_management_notification_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_incident_management_notification_period_in_seconds
+clusterwide:
+column: throttle_incident_management_notification_period_in_seconds
+db_type: integer
+default: '3600'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/throttle_protected_paths_enabled.yml b/config/application_setting_columns/throttle_protected_paths_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a682c82dd10942cb8b2003a234f8081fe18a271a
--- /dev/null
+++ b/config/application_setting_columns/throttle_protected_paths_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_protected_paths_enabled
+clusterwide:
+column: throttle_protected_paths_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_protected_paths_period_in_seconds.yml b/config/application_setting_columns/throttle_protected_paths_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e2515e6238905174fae2e403bfdf30e34192e3d0
--- /dev/null
+++ b/config/application_setting_columns/throttle_protected_paths_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_protected_paths_period_in_seconds
+clusterwide:
+column: throttle_protected_paths_period_in_seconds
+db_type: integer
+default: '60'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_protected_paths_requests_per_period.yml b/config/application_setting_columns/throttle_protected_paths_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0de7cc78e22aafab02c0bfd2a4ed1f4856707ed5
--- /dev/null
+++ b/config/application_setting_columns/throttle_protected_paths_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_protected_paths_requests_per_period
+clusterwide:
+column: throttle_protected_paths_requests_per_period
+db_type: integer
+default: '10'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_api_enabled.yml b/config/application_setting_columns/throttle_unauthenticated_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69ffbb7b5944cc2f079157c2128fa5c74e3c9d62
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_api_enabled.yml
@@ -0,0 +1,15 @@
+---
+api_type: boolean
+attr: throttle_unauthenticated_api_enabled
+clusterwide:
+column: throttle_unauthenticated_api_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `throttle_unauthenticated_api_period_in_seconds`
+  and `throttle_unauthenticated_api_requests_per_period`) Enable unauthenticated API
+  request rate limit. Helps reduce request volume (for example, from crawlers or abusive
+  bots)."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_api_period_in_seconds.yml b/config/application_setting_columns/throttle_unauthenticated_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0aae328d036121c7ecb16ed0ca40fa259e2c0046
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_api_period_in_seconds
+clusterwide:
+column: throttle_unauthenticated_api_period_in_seconds
+db_type: integer
+default: '3600'
+description: Rate limit period in seconds.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_api_requests_per_period.yml b/config/application_setting_columns/throttle_unauthenticated_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..559c7dfcea73146aacff58f5df9b72a844959d2a
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_api_requests_per_period
+clusterwide:
+column: throttle_unauthenticated_api_requests_per_period
+db_type: integer
+default: '3600'
+description: Max requests per period per IP.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_deprecated_api_enabled.yml b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..419bbc75fe2353307c6a0b470e40672bb6b4c16d
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_deprecated_api_enabled
+clusterwide:
+column: throttle_unauthenticated_deprecated_api_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_deprecated_api_period_in_seconds.yml b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..30429041ac16e5a34fe7c31a898bf9ad9dfc6f79
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_deprecated_api_period_in_seconds
+clusterwide:
+column: throttle_unauthenticated_deprecated_api_period_in_seconds
+db_type: integer
+default: '3600'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_deprecated_api_requests_per_period.yml b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e5e918d576efebd3c40baba715b5ed1bc0a15b56
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_deprecated_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_deprecated_api_requests_per_period
+clusterwide:
+column: throttle_unauthenticated_deprecated_api_requests_per_period
+db_type: integer
+default: '1800'
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_enabled.yml b/config/application_setting_columns/throttle_unauthenticated_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2e505b90f89adb45d9f2f317f110113e0b0a586a
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_enabled.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: throttle_unauthenticated_enabled
+clusterwide:
+column: throttle_unauthenticated_enabled
+db_type: boolean
+default: 'false'
+description: "([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/335300)
+  in GitLab 14.3. Use `throttle_unauthenticated_web_enabled` or `throttle_unauthenticated_api_enabled`
+  instead.) (**If enabled, requires:** `throttle_unauthenticated_period_in_seconds`
+  and `throttle_unauthenticated_requests_per_period`) Enable unauthenticated web request
+  rate limit. Helps reduce request volume (for example, from crawlers or abusive bots)."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_files_api_enabled.yml b/config/application_setting_columns/throttle_unauthenticated_files_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5abb920dbfa03073f00c18a9af2bcc0c5acf2c72
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_files_api_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_files_api_enabled
+clusterwide:
+column: throttle_unauthenticated_files_api_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_files_api_period_in_seconds.yml b/config/application_setting_columns/throttle_unauthenticated_files_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4c631d68f904c7ea9726e680fd7a69763eb08a7f
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_files_api_period_in_seconds.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_files_api_period_in_seconds
+clusterwide:
+column: throttle_unauthenticated_files_api_period_in_seconds
+db_type: integer
+default: '15'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_files_api_requests_per_period.yml b/config/application_setting_columns/throttle_unauthenticated_files_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fc01eaeced73cba1c9d44f5770f8f6b451e9db18
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_files_api_requests_per_period.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: throttle_unauthenticated_files_api_requests_per_period
+clusterwide:
+column: throttle_unauthenticated_files_api_requests_per_period
+db_type: integer
+default: '125'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_packages_api_enabled.yml b/config/application_setting_columns/throttle_unauthenticated_packages_api_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..398658b14acbce007202029ce2db63b56bdf5db0
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_packages_api_enabled.yml
@@ -0,0 +1,16 @@
+---
+api_type: boolean
+attr: throttle_unauthenticated_packages_api_enabled
+clusterwide:
+column: throttle_unauthenticated_packages_api_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `throttle_unauthenticated_packages_api_period_in_seconds`
+  and `throttle_unauthenticated_packages_api_requests_per_period`) Enable authenticated
+  API request rate limit. Helps reduce request volume (for example, from crawlers
+  or abusive bots). View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_packages_api_period_in_seconds.yml b/config/application_setting_columns/throttle_unauthenticated_packages_api_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d0f056af3a2fd83deeb7b2d1c4bed0739be87f7a
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_packages_api_period_in_seconds.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_packages_api_period_in_seconds
+clusterwide:
+column: throttle_unauthenticated_packages_api_period_in_seconds
+db_type: integer
+default: '15'
+description: Rate limit period (in seconds). View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_packages_api_requests_per_period.yml b/config/application_setting_columns/throttle_unauthenticated_packages_api_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..44ef96d799aa0495afc4fed5285e70bed15ec3cc
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_packages_api_requests_per_period.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_packages_api_requests_per_period
+clusterwide:
+column: throttle_unauthenticated_packages_api_requests_per_period
+db_type: integer
+default: '800'
+description: Maximum requests per period per user. View [Package Registry rate limits](../administration/settings/package_registry_rate_limits.md)
+  for more details.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_period_in_seconds.yml b/config/application_setting_columns/throttle_unauthenticated_period_in_seconds.yml
new file mode 100644
index 0000000000000000000000000000000000000000..71fdbee21f4639243211a052f36257f7797eaa97
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_period_in_seconds.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_period_in_seconds
+clusterwide:
+column: throttle_unauthenticated_period_in_seconds
+db_type: integer
+default: '3600'
+description: "([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/335300)
+  in GitLab 14.3. Use `throttle_unauthenticated_web_period_in_seconds` or `throttle_unauthenticated_api_period_in_seconds`
+  instead.) Rate limit period in seconds."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/throttle_unauthenticated_requests_per_period.yml b/config/application_setting_columns/throttle_unauthenticated_requests_per_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d292476467f302cf3b0eee36d22594c4c60a58c2
--- /dev/null
+++ b/config/application_setting_columns/throttle_unauthenticated_requests_per_period.yml
@@ -0,0 +1,14 @@
+---
+api_type: integer
+attr: throttle_unauthenticated_requests_per_period
+clusterwide:
+column: throttle_unauthenticated_requests_per_period
+db_type: integer
+default: '3600'
+description: "([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/335300)
+  in GitLab 14.3. Use `throttle_unauthenticated_web_requests_per_period` or `throttle_unauthenticated_api_requests_per_period`
+  instead.) Max requests per period per IP."
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/time_tracking_limit_to_hours.yml b/config/application_setting_columns/time_tracking_limit_to_hours.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b3d8d79861a08397b956d5c43985c77b1d0aae5b
--- /dev/null
+++ b/config/application_setting_columns/time_tracking_limit_to_hours.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: time_tracking_limit_to_hours
+clusterwide: false
+column: time_tracking_limit_to_hours
+db_type: boolean
+default: 'false'
+description: Limit display of time tracking units to hours. Default is `false`.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/toggle_security_policy_custom_ci.yml b/config/application_setting_columns/toggle_security_policy_custom_ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9083eb487457139ce5071771caa4a845a69f5478
--- /dev/null
+++ b/config/application_setting_columns/toggle_security_policy_custom_ci.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: toggle_security_policy_custom_ci
+clusterwide: false
+column: toggle_security_policy_custom_ci
+db_type: boolean
+default: 'false'
+description: This column is currently ignored.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/two_factor_grace_period.yml b/config/application_setting_columns/two_factor_grace_period.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8e86cff85868be2eb79d1bfb3eb0847eef1e3e44
--- /dev/null
+++ b/config/application_setting_columns/two_factor_grace_period.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: two_factor_grace_period
+clusterwide:
+column: two_factor_grace_period
+db_type: integer
+default: '48'
+description: Amount of time (in hours) that users are allowed to skip forced configuration
+  of two-factor authentication.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/unconfirmed_users_delete_after_days.yml b/config/application_setting_columns/unconfirmed_users_delete_after_days.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9454a7670b3d19158cc0e6146ae52726c4373523
--- /dev/null
+++ b/config/application_setting_columns/unconfirmed_users_delete_after_days.yml
@@ -0,0 +1,15 @@
+---
+api_type: integer
+attr: unconfirmed_users_delete_after_days
+clusterwide:
+column: unconfirmed_users_delete_after_days
+db_type: integer
+default: '7'
+description: Specifies how many days after sign-up to delete users who have not confirmed
+  their email. Only applicable if `delete_unconfirmed_users` is set to `true`. Must
+  be `1` or greater. Default is `7`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352514)
+  in GitLab 16.1. Self-managed, Premium and Ultimate only.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/unique_ips_limit_enabled.yml b/config/application_setting_columns/unique_ips_limit_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4cae9fc743e168e64a019661addbe65a75ae53f7
--- /dev/null
+++ b/config/application_setting_columns/unique_ips_limit_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: unique_ips_limit_enabled
+clusterwide:
+column: unique_ips_limit_enabled
+db_type: boolean
+default: 'false'
+description: "(**If enabled, requires:** `unique_ips_limit_per_user` and `unique_ips_limit_time_window`)
+  Limit sign in from multiple IPs."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/unique_ips_limit_per_user.yml b/config/application_setting_columns/unique_ips_limit_per_user.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f758b4166d14acf759a7982ae64c894188d842d1
--- /dev/null
+++ b/config/application_setting_columns/unique_ips_limit_per_user.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: unique_ips_limit_per_user
+clusterwide:
+column: unique_ips_limit_per_user
+db_type: integer
+default:
+description: Maximum number of IPs per user.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/unique_ips_limit_time_window.yml b/config/application_setting_columns/unique_ips_limit_time_window.yml
new file mode 100644
index 0000000000000000000000000000000000000000..edf875145f5a452777584875440c7e80bb578332
--- /dev/null
+++ b/config/application_setting_columns/unique_ips_limit_time_window.yml
@@ -0,0 +1,12 @@
+---
+api_type: integer
+attr: unique_ips_limit_time_window
+clusterwide:
+column: unique_ips_limit_time_window
+db_type: integer
+default:
+description: How many seconds an IP is counted towards the limit.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/update_namespace_name_rate_limit.yml b/config/application_setting_columns/update_namespace_name_rate_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a4d134938d95fbf12c3b7e5dc231ec99f553f3e9
--- /dev/null
+++ b/config/application_setting_columns/update_namespace_name_rate_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: update_namespace_name_rate_limit
+clusterwide:
+column: update_namespace_name_rate_limit
+db_type: smallint
+default: '120'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/update_runner_versions_enabled.yml b/config/application_setting_columns/update_runner_versions_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..65dee7f4de553448e3f792dfe68b6a4788b564ee
--- /dev/null
+++ b/config/application_setting_columns/update_runner_versions_enabled.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: update_runner_versions_enabled
+clusterwide:
+column: update_runner_versions_enabled
+db_type: boolean
+default: 'true'
+description: Fetch GitLab Runner release version data from GitLab.com. For more information,
+  see how to [determine which runners need to be upgraded](../ci/runners/runners_scope.md#determine-which-runners-need-to-be-upgraded).
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/updated_at.yml b/config/application_setting_columns/updated_at.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9fe2a92916073c9dbd49ddee981151ae607aef91
--- /dev/null
+++ b/config/application_setting_columns/updated_at.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: updated_at
+clusterwide:
+column: updated_at
+db_type: timestamp
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/updating_name_disabled_for_users.yml b/config/application_setting_columns/updating_name_disabled_for_users.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a0087380aa4aee80761bf3440754ae997099346e
--- /dev/null
+++ b/config/application_setting_columns/updating_name_disabled_for_users.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: updating_name_disabled_for_users
+clusterwide:
+column: updating_name_disabled_for_users
+db_type: boolean
+default: 'false'
+description: "[Disable user profile name changes](../administration/settings/account_and_limit_settings.md#disable-user-profile-name-changes)."
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/usage_ping_enabled.yml b/config/application_setting_columns/usage_ping_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..108de71986b863f471f6d06ad49eb8729c2d617d
--- /dev/null
+++ b/config/application_setting_columns/usage_ping_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: usage_ping_enabled
+clusterwide:
+column: usage_ping_enabled
+db_type: boolean
+default: 'true'
+description: Every week GitLab reports license usage back to GitLab, Inc.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/usage_ping_features_enabled.yml b/config/application_setting_columns/usage_ping_features_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1bca2d6474cdabfd655cfe8ac2a56258d2ade73d
--- /dev/null
+++ b/config/application_setting_columns/usage_ping_features_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: usage_ping_features_enabled
+clusterwide:
+column: usage_ping_features_enabled
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/usage_stats_set_by_user_id.yml b/config/application_setting_columns/usage_stats_set_by_user_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a949f108d30bddeccce23370f8d6f4cf21fb1716
--- /dev/null
+++ b/config/application_setting_columns/usage_stats_set_by_user_id.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: usage_stats_set_by_user_id
+clusterwide:
+column: usage_stats_set_by_user_id
+db_type: bigint
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/user_deactivation_emails_enabled.yml b/config/application_setting_columns/user_deactivation_emails_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..994e871172a41f1784ed8b0c806a646bdb5d260d
--- /dev/null
+++ b/config/application_setting_columns/user_deactivation_emails_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: user_deactivation_emails_enabled
+clusterwide:
+column: user_deactivation_emails_enabled
+db_type: boolean
+default: 'true'
+description: Send an email to users upon account deactivation.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/user_default_external.yml b/config/application_setting_columns/user_default_external.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3d191cb87222a8b412f33b246a71d859c15ab00b
--- /dev/null
+++ b/config/application_setting_columns/user_default_external.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: user_default_external
+clusterwide:
+column: user_default_external
+db_type: boolean
+default: 'false'
+description: Newly registered users are external by default.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/user_default_internal_regex.yml b/config/application_setting_columns/user_default_internal_regex.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6e96a67498c0ee190ace801b9a7eb50334870610
--- /dev/null
+++ b/config/application_setting_columns/user_default_internal_regex.yml
@@ -0,0 +1,12 @@
+---
+api_type: string
+attr: user_default_internal_regex
+clusterwide:
+column: user_default_internal_regex
+db_type: character
+default:
+description: Specify an email address regex pattern to identify default internal users.
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/user_defaults_to_private_profile.yml b/config/application_setting_columns/user_defaults_to_private_profile.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e3dcdef707c29fea061e76f1f9c8cafa33fd017f
--- /dev/null
+++ b/config/application_setting_columns/user_defaults_to_private_profile.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: user_defaults_to_private_profile
+clusterwide:
+column: user_defaults_to_private_profile
+db_type: boolean
+default: 'false'
+description: Newly created users have private profile by default. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/231301)
+  in GitLab 15.8. Defaults to `false`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/user_oauth_applications.yml b/config/application_setting_columns/user_oauth_applications.yml
new file mode 100644
index 0000000000000000000000000000000000000000..da051a99ebed26febf2fc720daad3ae4a20576c6
--- /dev/null
+++ b/config/application_setting_columns/user_oauth_applications.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: user_oauth_applications
+clusterwide:
+column: user_oauth_applications
+db_type: boolean
+default: 'true'
+description: Allow users to register any application to use GitLab as an OAuth provider.
+  This setting does not affect group-level OAuth applications.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/user_show_add_ssh_key_message.yml b/config/application_setting_columns/user_show_add_ssh_key_message.yml
new file mode 100644
index 0000000000000000000000000000000000000000..547c18c092e6ff39b41759513e052cee630e90e7
--- /dev/null
+++ b/config/application_setting_columns/user_show_add_ssh_key_message.yml
@@ -0,0 +1,13 @@
+---
+api_type: boolean
+attr: user_show_add_ssh_key_message
+clusterwide:
+column: user_show_add_ssh_key_message
+db_type: boolean
+default: 'true'
+description: When set to `false` disable the `You won't be able to pull or push project
+  code via SSH` warning shown to users with no uploaded SSH key.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/users_get_by_id_limit.yml b/config/application_setting_columns/users_get_by_id_limit.yml
new file mode 100644
index 0000000000000000000000000000000000000000..df9824cc735bb6e66404cfbde97ecd5d45227faa
--- /dev/null
+++ b/config/application_setting_columns/users_get_by_id_limit.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: users_get_by_id_limit
+clusterwide:
+column: users_get_by_id_limit
+db_type: integer
+default: '300'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/users_get_by_id_limit_allowlist.yml b/config/application_setting_columns/users_get_by_id_limit_allowlist.yml
new file mode 100644
index 0000000000000000000000000000000000000000..48df202019758b770b6e35fdc7092981936c4dcd
--- /dev/null
+++ b/config/application_setting_columns/users_get_by_id_limit_allowlist.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: users_get_by_id_limit_allowlist
+clusterwide:
+column: users_get_by_id_limit_allowlist
+db_type: text[]
+default: "'{}'::text[]"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/uuid.yml b/config/application_setting_columns/uuid.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4c4d84121f2d2604740ee0fe2dd4d0dc1b88b8ea
--- /dev/null
+++ b/config/application_setting_columns/uuid.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: uuid
+clusterwide: true
+column: uuid
+db_type: character
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/valid_runner_registrars.yml b/config/application_setting_columns/valid_runner_registrars.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e2ea7a1b918b07fb3bb77a4568c44f264ff1bc9a
--- /dev/null
+++ b/config/application_setting_columns/valid_runner_registrars.yml
@@ -0,0 +1,13 @@
+---
+api_type: array of strings
+attr: valid_runner_registrars
+clusterwide:
+column: valid_runner_registrars
+db_type: character
+default: "'{project"
+description: List of types which are allowed to register a GitLab Runner. Can be `[]`,
+  `['group']`, `['project']` or `['group', 'project']`.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/version_check_enabled.yml b/config/application_setting_columns/version_check_enabled.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2cd9a2a7b95a2ebb5a92fc48e2e3928c3e2120ee
--- /dev/null
+++ b/config/application_setting_columns/version_check_enabled.yml
@@ -0,0 +1,12 @@
+---
+api_type: boolean
+attr: version_check_enabled
+clusterwide:
+column: version_check_enabled
+db_type: boolean
+default: 'true'
+description: Let GitLab inform you when an update is available.
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/vertex_ai_access_token.yml b/config/application_setting_columns/vertex_ai_access_token.yml
new file mode 100644
index 0000000000000000000000000000000000000000..71c56ea337b366cf8b6840b54bb66ff90532aacb
--- /dev/null
+++ b/config/application_setting_columns/vertex_ai_access_token.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: vertex_ai_access_token
+clusterwide:
+column: encrypted_vertex_ai_access_token
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/vertex_ai_credentials.yml b/config/application_setting_columns/vertex_ai_credentials.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8650f9e5e273ba5065925e2884fcbfbf7b194cbc
--- /dev/null
+++ b/config/application_setting_columns/vertex_ai_credentials.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: vertex_ai_credentials
+clusterwide:
+column: encrypted_vertex_ai_credentials
+db_type: bytea
+default:
+description:
+encrypted: true
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/vertex_ai_host.yml b/config/application_setting_columns/vertex_ai_host.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31287144503df67eba0d5af617b5648120462626
--- /dev/null
+++ b/config/application_setting_columns/vertex_ai_host.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: vertex_ai_host
+clusterwide:
+column: vertex_ai_host
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/vertex_ai_project.yml b/config/application_setting_columns/vertex_ai_project.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8f1818ed10bfc3d0356d0ea1426d319797370058
--- /dev/null
+++ b/config/application_setting_columns/vertex_ai_project.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: vertex_ai_project
+clusterwide:
+column: vertex_ai_project
+db_type: text
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/web_ide_oauth_application_id.yml b/config/application_setting_columns/web_ide_oauth_application_id.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4d4fc35fc1e9e7e2815e63ebd11a54f23018cd17
--- /dev/null
+++ b/config/application_setting_columns/web_ide_oauth_application_id.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: web_ide_oauth_application_id
+clusterwide:
+column: web_ide_oauth_application_id
+db_type: bigint
+default:
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/whats_new_variant.yml b/config/application_setting_columns/whats_new_variant.yml
new file mode 100644
index 0000000000000000000000000000000000000000..79342bac9f8b67a688a9a161e2a8587534e1c762
--- /dev/null
+++ b/config/application_setting_columns/whats_new_variant.yml
@@ -0,0 +1,13 @@
+---
+api_type: string
+attr: whats_new_variant
+clusterwide:
+column: whats_new_variant
+db_type: smallint
+default: '0'
+description: 'What''s new variant, possible values: `all_tiers`, `current_tier`, and
+  `disabled`.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: false
diff --git a/config/application_setting_columns/wiki_asciidoc_allow_uri_includes.yml b/config/application_setting_columns/wiki_asciidoc_allow_uri_includes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..44aeebd7e0fa43fbc31107a0382304f703f76b5f
--- /dev/null
+++ b/config/application_setting_columns/wiki_asciidoc_allow_uri_includes.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: wiki_asciidoc_allow_uri_includes
+clusterwide:
+column: wiki_asciidoc_allow_uri_includes
+db_type: boolean
+default: 'false'
+description:
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/wiki_page_max_content_bytes.yml b/config/application_setting_columns/wiki_page_max_content_bytes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6c4ef7cf6e72380432f47f46e61934c7efc58dc1
--- /dev/null
+++ b/config/application_setting_columns/wiki_page_max_content_bytes.yml
@@ -0,0 +1,13 @@
+---
+api_type: integer
+attr: wiki_page_max_content_bytes
+clusterwide:
+column: wiki_page_max_content_bytes
+db_type: bigint
+default: '52428800'
+description: 'Maximum wiki page content size in **bytes**. Default: 52428800 Bytes
+  (50 MB). The minimum value is 1024 bytes.'
+encrypted: false
+gitlab_com_different_than_default: false
+jihu: false
+not_null: true
diff --git a/config/application_setting_columns/zoekt_settings.yml b/config/application_setting_columns/zoekt_settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9834325b473e901c37d9331b242a144a9c2602a4
--- /dev/null
+++ b/config/application_setting_columns/zoekt_settings.yml
@@ -0,0 +1,12 @@
+---
+api_type:
+attr: zoekt_settings
+clusterwide:
+column: zoekt_settings
+db_type: jsonb
+default: "'{}'::jsonb"
+description:
+encrypted: false
+gitlab_com_different_than_default: true
+jihu: false
+not_null: true
diff --git a/doc/api/settings.md b/doc/api/settings.md
index 69ef36cbc71605e6ffe343a6731851d0ba76fea0..f439818d56dd5e859700d7980a7835ecfadd1aa4 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -529,9 +529,9 @@ listed in the descriptions of the relevant settings.
 | `import_sources`                         | array of strings | no                                   | Sources to allow project import from, possible values: `github`, `bitbucket`, `bitbucket_server`, `fogbugz`, `git`, `gitlab_project`, `gitea`, and `manifest`. |
 | `invisible_captcha_enabled`              | boolean          | no                                   | Enable Invisible CAPTCHA spam detection during sign-up. Disabled by default. |
 | `issues_create_limit`                    | integer          | no                                   | Max number of issue creation requests per minute per user. Disabled by default.|
-| `jira_connect_application_key`           | String           | no                                   | ID of the OAuth application used to authenticate with the GitLab for Jira Cloud app. |
+| `jira_connect_application_key`           | string           | no                                   | ID of the OAuth application used to authenticate with the GitLab for Jira Cloud app. |
 | `jira_connect_public_key_storage_enabled` | boolean         | no                                   | Enable public key storage for the GitLab for Jira Cloud app. |
-| `jira_connect_proxy_url`                 | String           | no                                   | URL of the GitLab instance used as a proxy for the GitLab for Jira Cloud app. |
+| `jira_connect_proxy_url`                 | string           | no                                   | URL of the GitLab instance used as a proxy for the GitLab for Jira Cloud app. |
 | `keep_latest_artifact`                   | boolean          | no                                   | Prevent the deletion of the artifacts from the most recent successful jobs, regardless of the expiry time. Enabled by default. |
 | `local_markdown_version`                 | integer          | no                                   | Increase this value when any cached Markdown should be invalidated. |
 | `mailgun_signing_key`                    | string           | no                                   | The Mailgun HTTP webhook signing key for receiving events from webhook. |
@@ -581,13 +581,13 @@ listed in the descriptions of the relevant settings.
 | `personal_access_token_prefix`           | string           | no                                   | Prefix for all generated personal access tokens. |
 | `pipeline_limit_per_project_user_sha`    | integer          | no                                   | Maximum number of pipeline creation requests per minute per user and commit. Disabled by default. |
 | `gitpod_enabled`                         | boolean          | no                                   | (**If enabled, requires:** `gitpod_url`) Enable [Gitpod integration](../integration/gitpod.md). Default is `false`. |
-| `gitpod_url`                             | boolean          | required by: `gitpod_enabled`        | The Gitpod instance URL for integration. |
+| `gitpod_url`                             | string           | required by: `gitpod_enabled`        | The Gitpod instance URL for integration. |
 | `kroki_enabled`                          | boolean          | no                                   | (**If enabled, requires:** `kroki_url`) Enable [Kroki integration](../administration/integration/kroki.md). Default is `false`. |
-| `kroki_url`                              | boolean          | required by: `kroki_enabled`         | The Kroki instance URL for integration. |
+| `kroki_url`                              | string           | required by: `kroki_enabled`         | The Kroki instance URL for integration. |
 | `kroki_formats`                          | object           | no                                   | Additional formats supported by the Kroki instance. Possible values are `true` or `false` for formats `bpmn`, `blockdiag`, and `excalidraw` in the format `<format>: true` or `<format>: false`. |
 | `plantuml_enabled`                       | boolean          | no                                   | (**If enabled, requires:** `plantuml_url`) Enable [PlantUML integration](../administration/integration/plantuml.md). Default is `false`. |
 | `plantuml_url`                           | string           | required by: `plantuml_enabled`      | The PlantUML instance URL for integration. |
-| `polling_interval_multiplier`            | decimal          | no                                   | Interval multiplier used by endpoints that perform polling. Set to `0` to disable polling. |
+| `polling_interval_multiplier`            | float            | no                                   | Interval multiplier used by endpoints that perform polling. Set to `0` to disable polling. |
 | `project_export_enabled`                 | boolean          | no                                   | Enable project export. |
 | `project_jobs_api_rate_limit`            | integer          | no                                   | Maximum authenticated requests to `/project/:id/jobs` per minute. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129319) in GitLab 16.5. Default: 600. |
 | `projects_api_rate_limit_unauthenticated` | integer         | no                                   | [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112283) in GitLab 15.10. Max number of requests per 10 minutes per IP address for unauthenticated requests to the [list all projects API](projects.md#list-all-projects). Default: 400. To disable throttling set to 0.|
diff --git a/doc/development/cells/application_settings_analysis.md b/doc/development/cells/application_settings_analysis.md
new file mode 100644
index 0000000000000000000000000000000000000000..be3964167227ef43bb3eef53476cb2cfc2c7f33e
--- /dev/null
+++ b/doc/development/cells/application_settings_analysis.md
@@ -0,0 +1,520 @@
+---
+stage: Data Stores
+group: Tenant Scale
+info: Analysis of Application Settings for Cells 1.0.
+---
+# Application Settings analysis
+
+## Statistics
+
+- Number of attributes: 500
+- Number of encrypted attributes: 40 (8.0%)
+- Number of attributes documented: 311 (62.0%)
+- Number of attributes on GitLab.com different from the defaults: 217 (43.0%)
+- Number of attributes with `clusterwide` set: 104 (21.0%)
+- Number of attributes with `clusterwide: true` set: 37 (7.000000000000001%)
+
+## Individual columns
+
+| Attribute name | Encrypted | DB Type | API Type | Not Null? | Default | GitLab.com != default | Cluster-wide? | Documented? |
+| -------------- | ------------- | --------- | --------- | ----------------- | --------------------- | ------------- | ----------- |
+| `abuse_notification_email` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `admin_mode` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `false`| `true` |
+| `after_sign_out_path` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `after_sign_up_text` | `false` | `text` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `ai_action_api_rate_limit` | `false` | `integer` | `` | `true` | `160` | `false` | `false`| `false` |
+| `akismet_api_key` | `true` | `text` | `string` | `false` | `null` | `true` | `false`| `true` |
+| `akismet_enabled` | `false` | `boolean` | `boolean` | `false` | `false` | `false` | `false`| `true` |
+| `allow_account_deletion` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `allow_deploy_tokens_and_keys_with_external_authn` | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `false` |
+| `allow_group_owners_to_manage_ldap` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `allow_local_requests_from_system_hooks` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `allow_local_requests_from_web_hooks_and_services` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `false`| `true` |
+| `allow_possible_spam` | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `false` |
+| `allow_project_creation_for_guest_and_below` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `allow_runner_registration_token` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `anthropic_api_key` | `true` | `bytea` | `` | `false` | `null` | `false` | `false`| `true` |
+| `archive_builds_in_seconds` | `false` | `integer` | `` | `false` | `null` | `false` | `false`| `false` |
+| `arkose_labs_client_secret` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `arkose_labs_client_xid` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `arkose_labs_data_exchange_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `arkose_labs_namespace` | `false` | `text` | `` | `true` | `'client'::text` | `true` | `true`| `false` |
+| `arkose_labs_private_api_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `arkose_labs_public_api_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `asciidoc_max_includes` | `false` | `smallint` | `integer` | `true` | `32` | `false` | `false`| `true` |
+| `asset_proxy_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `true`| `true` |
+| `asset_proxy_secret_key` | `true` | `text` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `asset_proxy_url` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `asset_proxy_whitelist` | `false` | `text` | `string or array of strings` | `false` | `null` | `true` | `true`| `true` |
+| `authorized_keys_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `true` | `true`| `true` |
+| `auto_ban_user_on_excessive_projects_download` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `false`| `true` |
+| `auto_devops_domain` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `auto_devops_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `true` | `true`| `true` |
+| `automatic_purchased_storage_allocation` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `true`| `true` |
+| `bulk_import_concurrent_pipeline_batch_limit` | `false` | `smallint` | `integer` | `true` | `25` | `false` | `false`| `true` |
+| `bulk_import_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `false`| `true` |
+| `bulk_import_max_download_file_size` | `false` | `bigint` | `integer` | `true` | `5120` | `false` | `false`| `true` |
+| `cached_markdown_version` | `false` | `integer` | `` | `false` | `null` | `false` | `false`| `false` |
+| `can_create_group` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `can_create_organization` | `false` | `boolean` | `` | `true` | `true` | `false` | `false`| `false` |
+| `check_namespace_plan` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `true`| `true` |
+| `ci_jwt_signing_key` | `true` | `text` | `` | `false` | `null` | `true` | `true`| `false` |
+| `ci_max_includes` | `false` | `integer` | `integer` | `true` | `150` | `false` | `false`| `true` |
+| `ci_max_total_yaml_size_bytes` | `false` | `integer` | `integer` | `true` | `314572800` | `false` | `false`| `true` |
+| `clickhouse` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `true`| `false` |
+| `cloud_license_auth_token` | `true` | `text` | `` | `false` | `null` | `false` | `false`| `false` |
+| `cluster_agents` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `true`| `false` |
+| `code_creation` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `true`| `false` |
+| `code_suggestions_api_rate_limit` | `false` | `integer` | `` | `true` | `60` | `false` | `false`| `false` |
+| `commit_email_hostname` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `compliance_frameworks` | `false` | `smallint[]` | `` | `true` | `'{}'::smallint[]` | `false` | `false`| `false` |
+| `container_expiration_policies_enable_historic_entries` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `true`| `true` |
+| `container_registry_cleanup_tags_service_max_list_size` | `false` | `integer` | `integer` | `true` | `200` | `false` | `false`| `true` |
+| `container_registry_data_repair_detail_worker_max_concurrency` | `false` | `integer` | `` | `true` | `2` | `true` | `false`| `false` |
+| `container_registry_db_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `true`| `false` |
+| `container_registry_delete_tags_service_timeout` | `false` | `integer` | `integer` | `true` | `250` | `false` | `false`| `true` |
+| `container_registry_expiration_policies_caching` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `false`| `true` |
+| `container_registry_expiration_policies_worker_capacity` | `false` | `integer` | `integer` | `true` | `4` | `true` | `false`| `true` |
+| `container_registry_features` | `false` | `text[]` | `` | `true` | `'{}'::text[]` | `true` | `true`| `false` |
+| `container_registry_token_expire_delay` | `false` | `integer` | `integer` | `false` | `5` | `true` | `false`| `true` |
+| `container_registry_vendor` | `false` | `text` | `` | `true` | `''::text` | `true` | `true`| `false` |
+| `container_registry_version` | `false` | `text` | `` | `true` | `''::text` | `true` | `true`| `false` |
+| `content_validation_api_key` | `true` | `bytea` | `` | `false` | `null` | `false` | `false`| `false` |
+| `content_validation_endpoint_enabled` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `false` |
+| `content_validation_endpoint_url` [JIHU] | `false` | `text` | `` | `false` | `null` | `false` | `false`| `false` |
+| `created_at` | `false` | `timestamp` | `` | `false` | `null` | `true` | `false`| `false` |
+| `cube_api_base_url` | `false` | `text` | `` | `false` | `null` | `true` | `true`| `false` |
+| `cube_api_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `custom_http_clone_url_root` | `false` | `character` | `string` | `false` | `null` | `true` | `true`| `true` |
+| `custom_project_templates_group_id` | `false` | `bigint` | `` | `false` | `null` | `false` | `???`| `false` |
+| `customers_dot_jwt_signing_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `true`| `false` |
+| `dashboard_limit` | `false` | `integer` | `` | `true` | `0` | `true` | `???`| `false` |
+| `dashboard_limit_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `database_grafana_api_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `???`| `false` |
+| `database_grafana_api_url` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `database_grafana_tag` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `database_max_running_batched_background_migrations` | `false` | `integer` | `` | `true` | `2` | `true` | `???`| `false` |
+| `deactivate_dormant_users` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `deactivate_dormant_users_period` | `false` | `integer` | `integer` | `true` | `90` | `false` | `???`| `true` |
+| `deactivation_email_additional_text` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `decompress_archive_file_timeout` | `false` | `integer` | `integer` | `true` | `210` | `false` | `???`| `true` |
+| `default_artifacts_expire_in` | `false` | `character` | `string` | `true` | `'0'::character` | `true` | `???`| `true` |
+| `default_branch_name` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `default_branch_protection` | `false` | `integer` | `integer` | `false` | `2` | `false` | `???`| `true` |
+| `default_branch_protection_defaults` | `false` | `jsonb` | `hash` | `true` | `'{}'::jsonb` | `false` | `???`| `true` |
+| `default_ci_config_path` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `default_group_visibility` | `false` | `integer` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `default_preferred_language` | `false` | `text` | `string` | `true` | `'en'::text` | `false` | `???`| `true` |
+| `default_project_creation` | `false` | `integer` | `integer` | `true` | `2` | `false` | `???`| `true` |
+| `default_project_deletion_protection` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `default_project_visibility` | `false` | `integer` | `string` | `true` | `0` | `false` | `???`| `true` |
+| `default_projects_limit` | `false` | `integer` | `integer` | `false` | `null` | `true` | `false`| `true` |
+| `default_snippet_visibility` | `false` | `integer` | `string` | `true` | `0` | `false` | `???`| `true` |
+| `default_syntax_highlighting_theme` | `false` | `integer` | `integer` | `true` | `1` | `false` | `???`| `true` |
+| `delete_inactive_projects` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `delete_unconfirmed_users` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `deletion_adjourned_period` | `false` | `integer` | `integer` | `true` | `7` | `false` | `???`| `true` |
+| `deny_all_requests_except_allowed` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `dependency_proxy_ttl_group_policy_worker_capacity` | `false` | `smallint` | `` | `true` | `2` | `false` | `???`| `false` |
+| `diagramsnet_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `diagramsnet_url` | `false` | `text` | `string` | `false` | `'https://embed.diagrams.net'::text` | `false` | `???`| `true` |
+| `diff_max_files` | `false` | `integer` | `integer` | `true` | `1000` | `true` | `???`| `true` |
+| `diff_max_lines` | `false` | `integer` | `integer` | `true` | `50000` | `true` | `???`| `true` |
+| `diff_max_patch_bytes` | `false` | `integer` | `integer` | `true` | `204800` | `false` | `???`| `true` |
+| `dingtalk_app_key` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `dingtalk_app_secret` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `dingtalk_corpid` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `dingtalk_integration_enabled` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `disable_admin_oauth_scopes` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `disable_download_button` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `disable_feed_token` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `disable_overriding_approvers_per_merge_request` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `disable_personal_access_tokens` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `disabled_oauth_sign_in_sources` | `false` | `text` | `array of strings` | `false` | `null` | `false` | `???`| `true` |
+| `dns_rebinding_protection_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `domain_allowlist` | `false` | `text` | `array of strings` | `false` | `null` | `false` | `???`| `true` |
+| `domain_denylist` | `false` | `text` | `array of strings` | `false` | `null` | `true` | `???`| `true` |
+| `domain_denylist_enabled` | `false` | `boolean` | `boolean` | `false` | `false` | `true` | `???`| `true` |
+| `dsa_key_restriction` | `false` | `integer` | `integer` | `true` | `'-1'::integer` | `false` | `???`| `true` |
+| `duo_features_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `duo_workflow` | `false` | `jsonb` | `` | `false` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `ecdsa_key_restriction` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `ecdsa_sk_key_restriction` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `ed25519_key_restriction` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `ed25519_sk_key_restriction` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `eks_access_key_id` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `eks_account_id` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `eks_integration_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `eks_secret_access_key` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `elasticsearch_analyzers_kuromoji_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `true`| `false` |
+| `elasticsearch_analyzers_kuromoji_search` | `false` | `boolean` | `` | `true` | `false` | `false` | `true`| `false` |
+| `elasticsearch_analyzers_smartcn_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `true`| `false` |
+| `elasticsearch_analyzers_smartcn_search` | `false` | `boolean` | `` | `true` | `false` | `false` | `true`| `false` |
+| `elasticsearch_aws` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `false`| `true` |
+| `elasticsearch_aws_access_key` | `false` | `character` | `string` | `false` | `null` | `true` | `false`| `true` |
+| `elasticsearch_aws_region` | `false` | `character` | `string` | `false` | `'us-east-1'::character` | `false` | `false`| `true` |
+| `elasticsearch_aws_secret_access_key` | `true` | `text` | `string` | `false` | `null` | `true` | `false`| `true` |
+| `elasticsearch_client_request_timeout` | `false` | `integer` | `` | `true` | `0` | `true` | `false`| `false` |
+| `elasticsearch_indexed_field_length_limit` | `false` | `integer` | `integer` | `true` | `0` | `true` | `false`| `true` |
+| `elasticsearch_indexed_file_size_limit_kb` | `false` | `integer` | `integer` | `true` | `1024` | `false` | `false`| `true` |
+| `elasticsearch_indexing` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `false`| `true` |
+| `elasticsearch_limit_indexing` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `false`| `true` |
+| `elasticsearch_max_bulk_concurrency` | `false` | `smallint` | `integer` | `true` | `10` | `false` | `false`| `true` |
+| `elasticsearch_max_bulk_size_mb` | `false` | `smallint` | `integer` | `true` | `10` | `false` | `false`| `true` |
+| `elasticsearch_max_code_indexing_concurrency` | `false` | `integer` | `integer` | `true` | `30` | `true` | `false`| `true` |
+| `elasticsearch_password` | `true` | `bytea` | `string` | `false` | `null` | `true` | `false`| `true` |
+| `elasticsearch_pause_indexing` | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `false` |
+| `elasticsearch_requeue_workers` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `false`| `true` |
+| `elasticsearch_search` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `false`| `true` |
+| `elasticsearch_url` | `false` | `character` | `string` | `false` | `'http://localhost:9200'::character` | `true` | `false`| `true` |
+| `elasticsearch_username` | `false` | `text` | `string` | `false` | `null` | `true` | `false`| `true` |
+| `elasticsearch_worker_number_of_shards` | `false` | `integer` | `integer` | `true` | `2` | `true` | `false`| `true` |
+| `email_additional_text` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `email_author_in_body` | `false` | `boolean` | `boolean` | `false` | `false` | `false` | `???`| `true` |
+| `email_confirmation_setting` | `false` | `smallint` | `string` | `false` | `0` | `true` | `???`| `true` |
+| `email_restrictions` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `email_restrictions_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `enable_artifact_external_redirect_warning_page` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `enable_member_promotion_management` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `enabled_git_access_protocol` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `enforce_namespace_storage_limit` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `enforce_terms` | `false` | `boolean` | `boolean` | `false` | `false` | `true` | `???`| `true` |
+| `error_tracking_access_token_encrypted` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `error_tracking_api_url` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `error_tracking_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `external_auth_client_cert` | `false` | `text` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `external_auth_client_key` | `true` | `text` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `external_auth_client_key_pass` | `true` | `character` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `external_authorization_service_default_label` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `external_authorization_service_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `external_authorization_service_timeout` | `false` | `double` | `float` | `false` | `0.5` | `false` | `???`| `true` |
+| `external_authorization_service_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `external_pipeline_validation_service_timeout` | `false` | `integer` | `integer` | `false` | `null` | `true` | `???`| `true` |
+| `external_pipeline_validation_service_token` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `external_pipeline_validation_service_url` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `failed_login_attempts_unlock_period_in_minutes` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `feishu_app_key` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `feishu_app_secret` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `feishu_integration_enabled` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `file_template_project_id` | `false` | `bigint` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `first_day_of_week` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `floc_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `force_pages_access_control` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `future_subscriptions` | `false` | `jsonb` | `` | `true` | `'[]'::jsonb` | `false` | `???`| `false` |
+| `geo_node_allowed_ips` | `false` | `character` | `string` | `false` | `'0.0.0.0/0` | `false` | `???`| `true` |
+| `geo_status_timeout` | `false` | `integer` | `integer` | `false` | `10` | `true` | `???`| `true` |
+| `git_rate_limit_users_alertlist` | `false` | `integer[]` | `array of integers` | `true` | `'{}'::integer[]` | `false` | `???`| `true` |
+| `git_rate_limit_users_allowlist` | `false` | `text[]` | `array of strings` | `true` | `'{}'::text[]` | `false` | `???`| `true` |
+| `git_two_factor_session_expiry` | `false` | `integer` | `integer` | `true` | `15` | `false` | `???`| `true` |
+| `gitaly_timeout_default` | `false` | `integer` | `integer` | `true` | `55` | `false` | `???`| `true` |
+| `gitaly_timeout_fast` | `false` | `integer` | `integer` | `true` | `10` | `false` | `???`| `true` |
+| `gitaly_timeout_medium` | `false` | `integer` | `integer` | `true` | `30` | `false` | `???`| `true` |
+| `gitlab_dedicated_instance` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `gitlab_shell_operation_limit` | `false` | `integer` | `integer` | `false` | `600` | `false` | `???`| `true` |
+| `gitpod_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `gitpod_url` | `false` | `text` | `string` | `false` | `'https://gitpod.io/'::text` | `false` | `???`| `true` |
+| `globally_allowed_ips` | `false` | `text` | `string` | `true` | `''::text` | `true` | `???`| `true` |
+| `grafana_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `grafana_url` | `false` | `character` | `string` | `true` | `'/-/grafana'::character` | `false` | `???`| `true` |
+| `gravatar_enabled` | `false` | `boolean` | `boolean` | `false` | `null` | `true` | `???`| `true` |
+| `group_download_export_limit` | `false` | `integer` | `` | `true` | `1` | `false` | `???`| `false` |
+| `group_export_limit` | `false` | `integer` | `` | `true` | `6` | `false` | `???`| `false` |
+| `group_import_limit` | `false` | `integer` | `` | `true` | `6` | `false` | `???`| `false` |
+| `group_owners_can_manage_default_branch_protection` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `group_runner_token_expiration_interval` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `hashed_storage_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `health_check_access_token` | `false` | `character` | `` | `false` | `null` | `true` | `???`| `false` |
+| `help_page_documentation_base_url` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `help_page_hide_commercial_content` | `false` | `boolean` | `boolean` | `false` | `false` | `false` | `???`| `true` |
+| `help_page_support_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `help_page_text` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `hide_third_party_offers` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `home_page_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `housekeeping_bitmaps_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `housekeeping_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `housekeeping_full_repack_period` | `false` | `integer` | `integer` | `true` | `50` | `false` | `???`| `true` |
+| `housekeeping_gc_period` | `false` | `integer` | `integer` | `true` | `200` | `false` | `???`| `true` |
+| `housekeeping_incremental_repack_period` | `false` | `integer` | `integer` | `true` | `10` | `false` | `???`| `true` |
+| `html_emails_enabled` | `false` | `boolean` | `boolean` | `false` | `true` | `false` | `???`| `true` |
+| `id` | `false` | `bigint` | `` | `true` | `???` | `false` | `???`| `false` |
+| `import_sources` | `false` | `text` | `array of strings` | `false` | `null` | `true` | `???`| `true` |
+| `importers` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `inactive_projects_delete_after_months` | `false` | `integer` | `` | `true` | `2` | `false` | `???`| `false` |
+| `inactive_projects_min_size_mb` | `false` | `integer` | `` | `true` | `0` | `false` | `???`| `false` |
+| `inactive_projects_send_warning_email_after_months` | `false` | `integer` | `` | `true` | `1` | `false` | `???`| `false` |
+| `include_optional_metrics_in_service_ping` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `instance_level_ai_beta_features_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `invisible_captcha_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `invitation_flow_enforcement` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `issues_create_limit` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `jira_connect_application_key` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `jira_connect_proxy_url` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `jira_connect_public_key_storage_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `jobs_per_stage_page_size` | `false` | `integer` | `` | `true` | `200` | `false` | `???`| `false` |
+| `keep_latest_artifact` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `kroki_enabled` | `false` | `boolean` | `boolean` | `false` | `null` | `false` | `???`| `true` |
+| `kroki_formats` | `false` | `jsonb` | `object` | `true` | `'{}'::jsonb` | `false` | `???`| `true` |
+| `kroki_url` | `false` | `character` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `lets_encrypt_notification_email` | `false` | `character` | `` | `false` | `null` | `true` | `???`| `false` |
+| `lets_encrypt_private_key` | `true` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `lets_encrypt_terms_of_service_accepted` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `license_trial_ends_on` | `false` | `date` | `` | `false` | `null` | `false` | `???`| `false` |
+| `license_usage_data_exported` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `local_markdown_version` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `lock_duo_features_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `lock_math_rendering_limits_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_maven_package_requests_forwarding` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_memberships_to_ldap` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_memberships_to_saml` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_npm_package_requests_forwarding` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_pypi_package_requests_forwarding` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_spp_repository_pipeline_access` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `lock_toggle_security_policy_custom_ci` | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `true` |
+| `login_recaptcha_protection_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `mailgun_events_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `mailgun_signing_key` | `true` | `bytea` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `maintenance_mode` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `maintenance_mode_message` | `false` | `text` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `make_profile_private` | `false` | `boolean` | `` | `true` | `true` | `false` | `???`| `false` |
+| `math_rendering_limits_enabled` | `false` | `boolean` | `` | `true` | `true` | `false` | `???`| `false` |
+| `maven_package_requests_forwarding` | `false` | `boolean` | `boolean` | `true` | `true` | `true` | `???`| `true` |
+| `max_artifacts_content_include_size` | `false` | `integer` | `` | `true` | `5242880` | `false` | `???`| `false` |
+| `max_artifacts_size` | `false` | `integer` | `integer` | `true` | `100` | `true` | `???`| `true` |
+| `max_attachment_size` | `false` | `integer` | `integer` | `true` | `100` | `false` | `???`| `true` |
+| `max_decompressed_archive_size` | `false` | `integer` | `integer` | `true` | `25600` | `false` | `???`| `true` |
+| `max_export_size` | `false` | `integer` | `integer` | `false` | `0` | `true` | `???`| `true` |
+| `max_import_remote_file_size` | `false` | `bigint` | `integer` | `true` | `10240` | `false` | `???`| `true` |
+| `max_import_size` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `max_login_attempts` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `max_number_of_repository_downloads` | `false` | `smallint` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `max_number_of_repository_downloads_within_time_period` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `max_number_of_vulnerabilities_per_project` | `false` | `integer` | `` | `false` | `null` | `false` | `???`| `false` |
+| `max_pages_custom_domains_per_project` | `false` | `integer` | `` | `true` | `0` | `true` | `???`| `false` |
+| `max_pages_size` | `false` | `integer` | `integer` | `true` | `100` | `true` | `???`| `true` |
+| `max_personal_access_token_lifetime` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `max_ssh_key_lifetime` | `false` | `integer` | `integer` | `false` | `null` | `false` | `false`| `true` |
+| `max_terraform_state_size_bytes` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `max_yaml_depth` | `false` | `integer` | `integer` | `true` | `100` | `false` | `???`| `true` |
+| `max_yaml_size_bytes` | `false` | `bigint` | `integer` | `true` | `2097152` | `false` | `???`| `true` |
+| `metrics_enabled` | `false` | `boolean` | `` | `false` | `false` | `true` | `???`| `false` |
+| `metrics_host` | `false` | `character` | `` | `false` | `'localhost'::character` | `false` | `???`| `false` |
+| `metrics_method_call_threshold` | `false` | `integer` | `integer` | `false` | `10` | `true` | `???`| `true` |
+| `metrics_packet_size` | `false` | `integer` | `` | `false` | `1` | `true` | `???`| `false` |
+| `metrics_pool_size` | `false` | `integer` | `` | `false` | `16` | `false` | `???`| `false` |
+| `metrics_port` | `false` | `integer` | `` | `false` | `8089` | `true` | `???`| `false` |
+| `metrics_sample_interval` | `false` | `integer` | `` | `false` | `15` | `false` | `???`| `false` |
+| `metrics_timeout` | `false` | `integer` | `` | `false` | `10` | `false` | `???`| `false` |
+| `minimum_password_length` | `false` | `integer` | `integer` | `true` | `8` | `false` | `???`| `true` |
+| `mirror_available` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `mirror_capacity_threshold` | `false` | `integer` | `integer` | `true` | `50` | `true` | `???`| `true` |
+| `mirror_max_capacity` | `false` | `integer` | `integer` | `true` | `100` | `true` | `???`| `true` |
+| `mirror_max_delay` | `false` | `integer` | `integer` | `true` | `300` | `true` | `???`| `true` |
+| `namespace_aggregation_schedule_lease_duration_in_seconds` | `false` | `integer` | `` | `true` | `300` | `false` | `???`| `false` |
+| `namespace_storage_forks_cost_factor` | `false` | `double` | `` | `true` | `1.0` | `true` | `???`| `false` |
+| `new_user_signups_cap` | `false` | `integer` | `` | `false` | `null` | `false` | `???`| `false` |
+| `notes_create_limit` | `false` | `integer` | `` | `true` | `300` | `true` | `???`| `false` |
+| `notes_create_limit_allowlist` | `false` | `text[]` | `` | `true` | `'{}'::text[]` | `true` | `???`| `false` |
+| `notify_on_unknown_sign_in` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `npm_package_requests_forwarding` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `observability_backend_ssl_verification_enabled` | `false` | `boolean` | `` | `true` | `true` | `false` | `???`| `false` |
+| `openai_api_key` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `true` |
+| `outbound_local_requests_whitelist` | `false` | `character` | `array of strings` | `true` | `'{}'::character` | `true` | `???`| `true` |
+| `package_metadata_purl_types` | `false` | `smallint[]` | `array of integers` | `false` | `'{1` | `false` | `???`| `true` |
+| `package_registry` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `package_registry_allow_anyone_to_pull_option` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `package_registry_cleanup_policies_worker_capacity` | `false` | `integer` | `integer` | `true` | `2` | `false` | `???`| `true` |
+| `packages_cleanup_package_file_worker_capacity` | `false` | `smallint` | `` | `true` | `2` | `false` | `???`| `false` |
+| `pages` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `pages_domain_verification_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `password_authentication_enabled_for_git` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `password_authentication_enabled_for_web` | `false` | `boolean` | `boolean` | `false` | `null` | `true` | `???`| `true` |
+| `password_expiration_enabled` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `password_expires_in_days` [JIHU] | `false` | `integer` | `` | `true` | `90` | `false` | `???`| `false` |
+| `password_expires_notice_before_days` [JIHU] | `false` | `integer` | `` | `true` | `7` | `false` | `???`| `false` |
+| `password_lowercase_required` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `password_number_required` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `password_symbol_required` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `password_uppercase_required` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `performance_bar_allowed_group_id` | `false` | `bigint` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `personal_access_token_prefix` | `false` | `text` | `string` | `false` | `'glpat-'::text` | `false` | `???`| `true` |
+| `phone_verification_code_enabled` [JIHU] | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `pipeline_limit_per_project_user_sha` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `plantuml_enabled` | `false` | `boolean` | `boolean` | `false` | `null` | `true` | `???`| `true` |
+| `plantuml_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `polling_interval_multiplier` | `false` | `numeric` | `float` | `true` | `1.0` | `false` | `???`| `true` |
+| `pre_receive_secret_detection_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `prevent_merge_requests_author_approval` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `prevent_merge_requests_committers_approval` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `product_analytics_configurator_connection_string` | `true` | `bytea` | `` | `false` | `null` | `true` | `???`| `false` |
+| `product_analytics_data_collector_host` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `product_analytics_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `productivity_analytics_start_date` | `false` | `timestamp` | `` | `false` | `null` | `true` | `???`| `false` |
+| `project_download_export_limit` | `false` | `integer` | `` | `true` | `1` | `false` | `???`| `false` |
+| `project_export_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `project_export_limit` | `false` | `integer` | `` | `true` | `6` | `false` | `???`| `false` |
+| `project_import_limit` | `false` | `integer` | `` | `true` | `6` | `false` | `???`| `false` |
+| `project_jobs_api_rate_limit` | `false` | `integer` | `integer` | `true` | `600` | `false` | `???`| `true` |
+| `project_runner_token_expiration_interval` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `projects_api_rate_limit_unauthenticated` | `false` | `integer` | `integer` | `true` | `400` | `false` | `???`| `true` |
+| `prometheus_alert_db_indicators_settings` | `false` | `jsonb` | `` | `false` | `null` | `true` | `???`| `false` |
+| `prometheus_metrics_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `protected_ci_variables` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `protected_paths` | `false` | `character` | `` | `false` | `'{/users/password` | `false` | `???`| `false` |
+| `protected_paths_for_get_request` | `false` | `text[]` | `` | `true` | `'{}'::text[]` | `false` | `???`| `false` |
+| `pseudonymizer_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `public_runner_releases_url` | `false` | `text` | `` | `true` | `'https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-runner/releases'::text` | `false` | `???`| `false` |
+| `push_event_activities_limit` | `false` | `integer` | `integer` | `true` | `3` | `false` | `???`| `true` |
+| `push_event_hooks_limit` | `false` | `integer` | `integer` | `true` | `3` | `false` | `???`| `true` |
+| `push_rule_id` | `false` | `bigint` | `` | `false` | `null` | `true` | `???`| `false` |
+| `pypi_package_requests_forwarding` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `rate_limiting_response_text` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `rate_limits` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `rate_limits_unauthenticated_git_http` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `raw_blob_request_limit` | `false` | `integer` | `integer` | `true` | `300` | `false` | `???`| `true` |
+| `recaptcha_enabled` | `false` | `boolean` | `boolean` | `false` | `false` | `true` | `???`| `true` |
+| `recaptcha_private_key` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `recaptcha_site_key` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `receive_max_input_size` | `false` | `integer` | `integer` | `false` | `null` | `true` | `???`| `true` |
+| `remember_me_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `repository_checks_enabled` | `false` | `boolean` | `boolean` | `false` | `false` | `false` | `???`| `true` |
+| `repository_size_limit` | `false` | `bigint` | `integer` | `false` | `0` | `true` | `???`| `true` |
+| `repository_storages` | `false` | `character` | `` | `false` | `'default'::character` | `true` | `???`| `false` |
+| `repository_storages_weighted` | `false` | `jsonb` | `hash of strings to integers` | `true` | `'{}'::jsonb` | `true` | `???`| `true` |
+| `require_admin_approval_after_user_signup` | `false` | `boolean` | `boolean` | `true` | `true` | `true` | `???`| `true` |
+| `require_admin_two_factor_authentication` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `require_personal_access_token_expiry` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `require_two_factor_authentication` | `false` | `boolean` | `boolean` | `false` | `false` | `false` | `???`| `true` |
+| `required_instance_ci_template` | `false` | `text` | `` | `false` | `null` | `false` | `???`| `false` |
+| `restricted_visibility_levels` | `false` | `text` | `array of strings` | `false` | `null` | `true` | `false`| `true` |
+| `rsa_key_restriction` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `runner_token_expiration_interval` | `false` | `integer` | `integer` | `false` | `null` | `false` | `???`| `true` |
+| `runners_registration_token` | `false` | `character` | `` | `false` | `null` | `true` | `???`| `false` |
+| `runners_registration_token_encrypted` | `false` | `character` | `` | `false` | `null` | `true` | `???`| `false` |
+| `search_max_docs_denominator` | `false` | `integer` | `` | `true` | `5000000` | `false` | `???`| `false` |
+| `search_max_shard_size_gb` | `false` | `integer` | `` | `true` | `50` | `false` | `???`| `false` |
+| `search_min_docs_before_rollover` | `false` | `integer` | `` | `true` | `100000` | `false` | `???`| `false` |
+| `search_rate_limit` | `false` | `integer` | `integer` | `true` | `300` | `true` | `???`| `true` |
+| `search_rate_limit_allowlist` | `false` | `text[]` | `` | `true` | `'{}'::text[]` | `true` | `???`| `false` |
+| `search_rate_limit_unauthenticated` | `false` | `integer` | `integer` | `true` | `100` | `false` | `???`| `true` |
+| `secret_detection_revocation_token_types_url` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `secret_detection_token_revocation_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `secret_detection_token_revocation_token` | `true` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `secret_detection_token_revocation_url` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `security_approval_policies_limit` | `false` | `integer` | `integer` | `true` | `5` | `false` | `???`| `true` |
+| `security_policies` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `security_policy_global_group_approvers_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `true` | `???`| `true` |
+| `security_policy_scheduled_scans_max_concurrency` | `false` | `integer` | `` | `true` | `10000` | `true` | `???`| `false` |
+| `security_txt_content` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `sentry_clientside_dsn` | `false` | `text` | `` | `false` | `null` | `true` | `false`| `false` |
+| `sentry_clientside_traces_sample_rate` | `false` | `double` | `` | `true` | `0.0` | `true` | `false`| `false` |
+| `sentry_dsn` | `false` | `text` | `` | `false` | `null` | `true` | `false`| `false` |
+| `sentry_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `false`| `false` |
+| `sentry_environment` | `false` | `text` | `` | `false` | `null` | `true` | `false`| `false` |
+| `service_access_tokens_expiration_enforced` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `service_ping_settings` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
+| `session_expire_delay` | `false` | `integer` | `integer` | `true` | `10080` | `false` | `???`| `true` |
+| `shared_runners_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `shared_runners_minutes` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `shared_runners_text` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `sidekiq_job_limiter_compression_threshold_bytes` | `false` | `integer` | `integer` | `true` | `100000` | `false` | `???`| `true` |
+| `sidekiq_job_limiter_limit_bytes` | `false` | `integer` | `integer` | `true` | `0` | `true` | `???`| `true` |
+| `sidekiq_job_limiter_mode` | `false` | `smallint` | `string` | `true` | `1` | `false` | `???`| `true` |
+| `signup_enabled` | `false` | `boolean` | `boolean` | `false` | `null` | `true` | `???`| `true` |
+| `silent_mode_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `slack_app_enabled` | `false` | `boolean` | `boolean` | `false` | `false` | `true` | `???`| `true` |
+| `slack_app_id` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `slack_app_secret` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `slack_app_signing_secret` | `true` | `bytea` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `slack_app_verification_token` | `true` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `snippet_size_limit` | `false` | `bigint` | `integer` | `true` | `52428800` | `false` | `???`| `true` |
+| `snowplow_app_id` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `snowplow_collector_hostname` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `snowplow_cookie_domain` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `snowplow_database_collector_hostname` | `false` | `text` | `string` | `false` | `null` | `false` | `???`| `true` |
+| `snowplow_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `sourcegraph_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `sourcegraph_public_only` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `sourcegraph_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `spam_check_api_key` | `true` | `bytea` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `spam_check_endpoint_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `spam_check_endpoint_url` | `false` | `text` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `spp_repository_pipeline_access` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `static_objects_external_storage_auth_token_encrypted` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `static_objects_external_storage_url` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `suggest_pipeline_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `telesign_api_key` | `true` | `bytea` | `` | `false` | `null` | `true` | `???`| `false` |
+| `telesign_customer_xid` | `true` | `bytea` | `` | `false` | `null` | `true` | `???`| `false` |
+| `terminal_max_session_time` | `false` | `integer` | `integer` | `true` | `0` | `false` | `???`| `true` |
+| `throttle_authenticated_api_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `throttle_authenticated_api_period_in_seconds` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `throttle_authenticated_api_requests_per_period` | `false` | `integer` | `integer` | `true` | `7200` | `true` | `???`| `true` |
+| `throttle_authenticated_deprecated_api_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `throttle_authenticated_deprecated_api_period_in_seconds` | `false` | `integer` | `` | `true` | `3600` | `true` | `???`| `false` |
+| `throttle_authenticated_deprecated_api_requests_per_period` | `false` | `integer` | `` | `true` | `3600` | `false` | `???`| `false` |
+| `throttle_authenticated_files_api_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `throttle_authenticated_files_api_period_in_seconds` | `false` | `integer` | `` | `true` | `15` | `false` | `???`| `false` |
+| `throttle_authenticated_files_api_requests_per_period` | `false` | `integer` | `` | `true` | `500` | `false` | `???`| `false` |
+| `throttle_authenticated_git_lfs_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `throttle_authenticated_git_lfs_period_in_seconds` | `false` | `integer` | `` | `true` | `60` | `false` | `???`| `false` |
+| `throttle_authenticated_git_lfs_requests_per_period` | `false` | `integer` | `` | `true` | `1000` | `false` | `???`| `false` |
+| `throttle_authenticated_packages_api_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `throttle_authenticated_packages_api_period_in_seconds` | `false` | `integer` | `integer` | `true` | `15` | `false` | `???`| `true` |
+| `throttle_authenticated_packages_api_requests_per_period` | `false` | `integer` | `integer` | `true` | `1000` | `false` | `???`| `true` |
+| `throttle_authenticated_web_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `throttle_authenticated_web_period_in_seconds` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `throttle_authenticated_web_requests_per_period` | `false` | `integer` | `integer` | `true` | `7200` | `true` | `???`| `true` |
+| `throttle_incident_management_notification_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `throttle_incident_management_notification_per_period` | `false` | `integer` | `` | `false` | `3600` | `false` | `???`| `false` |
+| `throttle_incident_management_notification_period_in_seconds` | `false` | `integer` | `` | `false` | `3600` | `false` | `???`| `false` |
+| `throttle_protected_paths_enabled` | `false` | `boolean` | `` | `true` | `false` | `true` | `???`| `false` |
+| `throttle_protected_paths_period_in_seconds` | `false` | `integer` | `` | `true` | `60` | `false` | `???`| `false` |
+| `throttle_protected_paths_requests_per_period` | `false` | `integer` | `` | `true` | `10` | `false` | `???`| `false` |
+| `throttle_unauthenticated_api_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `throttle_unauthenticated_api_period_in_seconds` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `throttle_unauthenticated_api_requests_per_period` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `throttle_unauthenticated_deprecated_api_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `throttle_unauthenticated_deprecated_api_period_in_seconds` | `false` | `integer` | `` | `true` | `3600` | `false` | `???`| `false` |
+| `throttle_unauthenticated_deprecated_api_requests_per_period` | `false` | `integer` | `` | `true` | `1800` | `true` | `???`| `false` |
+| `throttle_unauthenticated_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `???`| `true` |
+| `throttle_unauthenticated_files_api_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `throttle_unauthenticated_files_api_period_in_seconds` | `false` | `integer` | `` | `true` | `15` | `false` | `???`| `false` |
+| `throttle_unauthenticated_files_api_requests_per_period` | `false` | `integer` | `` | `true` | `125` | `false` | `???`| `false` |
+| `throttle_unauthenticated_packages_api_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `throttle_unauthenticated_packages_api_period_in_seconds` | `false` | `integer` | `integer` | `true` | `15` | `false` | `???`| `true` |
+| `throttle_unauthenticated_packages_api_requests_per_period` | `false` | `integer` | `integer` | `true` | `800` | `false` | `???`| `true` |
+| `throttle_unauthenticated_period_in_seconds` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `throttle_unauthenticated_requests_per_period` | `false` | `integer` | `integer` | `true` | `3600` | `true` | `???`| `true` |
+| `time_tracking_limit_to_hours` | `false` | `boolean` | `boolean` | `true` | `false` | `true` | `false`| `true` |
+| `toggle_security_policy_custom_ci` | `false` | `boolean` | `` | `true` | `false` | `false` | `false`| `true` |
+| `two_factor_grace_period` | `false` | `integer` | `integer` | `false` | `48` | `false` | `???`| `true` |
+| `unconfirmed_users_delete_after_days` | `false` | `integer` | `integer` | `true` | `7` | `true` | `???`| `true` |
+| `unique_ips_limit_enabled` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `unique_ips_limit_per_user` | `false` | `integer` | `integer` | `false` | `null` | `true` | `???`| `true` |
+| `unique_ips_limit_time_window` | `false` | `integer` | `integer` | `false` | `null` | `true` | `???`| `true` |
+| `update_namespace_name_rate_limit` | `false` | `smallint` | `` | `true` | `120` | `false` | `???`| `false` |
+| `update_runner_versions_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `updated_at` | `false` | `timestamp` | `` | `false` | `null` | `true` | `???`| `false` |
+| `updating_name_disabled_for_users` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `usage_ping_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `usage_ping_features_enabled` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `usage_stats_set_by_user_id` | `false` | `bigint` | `` | `false` | `null` | `true` | `???`| `false` |
+| `user_deactivation_emails_enabled` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `user_default_external` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `user_default_internal_regex` | `false` | `character` | `string` | `false` | `null` | `true` | `???`| `true` |
+| `user_defaults_to_private_profile` | `false` | `boolean` | `boolean` | `true` | `false` | `false` | `???`| `true` |
+| `user_oauth_applications` | `false` | `boolean` | `boolean` | `false` | `true` | `false` | `???`| `true` |
+| `user_show_add_ssh_key_message` | `false` | `boolean` | `boolean` | `true` | `true` | `false` | `???`| `true` |
+| `users_get_by_id_limit` | `false` | `integer` | `` | `true` | `300` | `false` | `???`| `false` |
+| `users_get_by_id_limit_allowlist` | `false` | `text[]` | `` | `true` | `'{}'::text[]` | `true` | `???`| `false` |
+| `uuid` | `false` | `character` | `` | `false` | `null` | `true` | `true`| `false` |
+| `valid_runner_registrars` | `false` | `character` | `array of strings` | `false` | `'{project` | `false` | `???`| `true` |
+| `version_check_enabled` | `false` | `boolean` | `boolean` | `false` | `true` | `false` | `???`| `true` |
+| `vertex_ai_access_token` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `vertex_ai_credentials` | `true` | `bytea` | `` | `false` | `null` | `false` | `???`| `false` |
+| `vertex_ai_host` | `false` | `text` | `` | `false` | `null` | `false` | `???`| `false` |
+| `vertex_ai_project` | `false` | `text` | `` | `false` | `null` | `true` | `???`| `false` |
+| `web_ide_oauth_application_id` | `false` | `bigint` | `` | `false` | `null` | `true` | `???`| `false` |
+| `whats_new_variant` | `false` | `smallint` | `string` | `false` | `0` | `false` | `???`| `true` |
+| `wiki_asciidoc_allow_uri_includes` | `false` | `boolean` | `` | `true` | `false` | `false` | `???`| `false` |
+| `wiki_page_max_content_bytes` | `false` | `bigint` | `integer` | `true` | `52428800` | `false` | `???`| `true` |
+| `zoekt_settings` | `false` | `jsonb` | `` | `true` | `'{}'::jsonb` | `true` | `???`| `false` |
diff --git a/scripts/cells/application-settings-analysis b/scripts/cells/application-settings-analysis
new file mode 100755
index 0000000000000000000000000000000000000000..8d35e8f05a54137d3b267754818c1632b94c09f2
--- /dev/null
+++ b/scripts/cells/application-settings-analysis
@@ -0,0 +1,493 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require 'fileutils'
+require 'yaml'
+
+class ApplicationSettingAnalysis
+  ApplicationSettingPrototype = Struct.new(
+    :column,
+    :attr,
+    :db_type,
+    :api_type,
+    :encrypted,
+    :not_null,
+    :default,
+    :gitlab_com_different_than_default,
+    :description,
+    :jihu,
+    :clusterwide,
+    keyword_init: true)
+
+  class ApplicationSetting < ApplicationSettingPrototype
+    # Computed from Teleport Rails console with:
+    # ```shell
+    # $ as = ApplicationSetting.first
+    # $ as_defaults = ApplicationSetting.defaults
+    # $ new_as = ApplicationSetting.new
+    # $ as.attributes.to_h.each { |k, v| puts "#{k} different than defaults" \
+    # if (as_defaults.key?(k) && as_defaults[k] != v) || (new_as[k] != v) }; nil
+    # ```
+    #
+    # rubocop:disable Naming/InclusiveLanguage -- This is the actual column name
+    GITLAB_COM_DIFFERENT_THAN_DEFAULT = %w[
+      abuse_notification_email
+      after_sign_out_path
+      after_sign_up_text
+      arkose_labs_namespace
+      asset_proxy_enabled
+      asset_proxy_url
+      asset_proxy_whitelist
+      authorized_keys_enabled
+      auto_devops_domain
+      auto_devops_enabled
+      automatic_purchased_storage_allocation
+      check_namespace_plan
+      clickhouse
+      cluster_agents
+      code_creation
+      commit_email_hostname
+      container_expiration_policies_enable_historic_entries
+      container_registry_data_repair_detail_worker_max_concurrency
+      container_registry_db_enabled
+      container_registry_expiration_policies_worker_capacity
+      container_registry_features
+      container_registry_token_expire_delay
+      container_registry_vendor
+      container_registry_version
+      created_at
+      cube_api_base_url
+      custom_http_clone_url_root
+      dashboard_limit
+      dashboard_limit_enabled
+      database_grafana_api_url
+      database_grafana_tag
+      database_max_running_batched_background_migrations
+      deactivation_email_additional_text
+      default_artifacts_expire_in
+      default_branch_name
+      default_ci_config_path
+      default_group_visibility
+      default_projects_limit
+      diff_max_files
+      diff_max_lines
+      domain_denylist
+      domain_denylist_enabled
+      downstream_pipeline_trigger_limit_per_project_user_sha
+      duo_workflow
+      duo_workflow_oauth_application_id
+      eks_access_key_id
+      eks_account_id
+      eks_integration_enabled
+      elasticsearch_aws_access_key
+      elasticsearch_client_request_timeout
+      elasticsearch_indexed_field_length_limit
+      elasticsearch_indexing
+      elasticsearch_limit_indexing
+      elasticsearch_max_code_indexing_concurrency
+      elasticsearch_requeue_workers
+      elasticsearch_search
+      elasticsearch_url
+      elasticsearch_username
+      elasticsearch_worker_number_of_shards
+      email_additional_text
+      email_confirmation_setting
+      email_restrictions
+      email_restrictions_enabled
+      enabled_git_access_protocol
+      encrypted_akismet_api_key
+      encrypted_arkose_labs_client_secret
+      encrypted_arkose_labs_client_xid
+      encrypted_arkose_labs_data_exchange_key
+      encrypted_arkose_labs_private_api_key
+      encrypted_arkose_labs_public_api_key
+      encrypted_asset_proxy_secret_key
+      encrypted_ci_jwt_signing_key
+      encrypted_cube_api_key
+      encrypted_customers_dot_jwt_signing_key
+      encrypted_database_grafana_api_key
+      encrypted_eks_secret_access_key
+      encrypted_elasticsearch_aws_secret_access_key
+      encrypted_elasticsearch_password
+      encrypted_external_pipeline_validation_service_token
+      encrypted_lets_encrypt_private_key
+      encrypted_mailgun_signing_key
+      encrypted_product_analytics_configurator_connection_string
+      encrypted_recaptcha_private_key
+      encrypted_recaptcha_site_key
+      encrypted_secret_detection_token_revocation_token
+      encrypted_slack_app_secret
+      encrypted_slack_app_signing_secret
+      encrypted_slack_app_verification_token
+      encrypted_spam_check_api_key
+      encrypted_telesign_api_key
+      encrypted_telesign_customer_xid
+      enforce_terms
+      error_tracking_access_token_encrypted
+      error_tracking_api_url
+      error_tracking_enabled
+      external_authorization_service_default_label
+      external_authorization_service_url
+      external_pipeline_validation_service_timeout
+      external_pipeline_validation_service_url
+      geo_status_timeout
+      gitpod_enabled
+      globally_allowed_ips
+      gravatar_enabled
+      health_check_access_token
+      help_page_documentation_base_url
+      help_page_support_url
+      help_page_text
+      home_page_url
+      import_sources
+      importers
+      invisible_captcha_enabled
+      issues_create_limit
+      jira_connect_application_key
+      jira_connect_proxy_url
+      jira_connect_public_key_storage_enabled
+      lets_encrypt_notification_email
+      lets_encrypt_terms_of_service_accepted
+      local_markdown_version
+      mailgun_events_enabled
+      maven_package_requests_forwarding
+      max_artifacts_size
+      max_export_size
+      max_import_size
+      max_pages_custom_domains_per_project
+      max_pages_size
+      metrics_enabled
+      metrics_method_call_threshold
+      metrics_packet_size
+      metrics_port
+      mirror_capacity_threshold
+      mirror_max_capacity
+      mirror_max_delay
+      namespace_storage_forks_cost_factor
+      notes_create_limit
+      notes_create_limit_allowlist
+      outbound_local_requests_whitelist
+      package_registry
+      pages
+      password_authentication_enabled_for_web
+      performance_bar_allowed_group_id
+      pipeline_limit_per_project_user_sha
+      plantuml_enabled
+      plantuml_url
+      pre_receive_secret_detection_enabled
+      product_analytics_data_collector_host
+      product_analytics_enabled
+      productivity_analytics_start_date
+      prometheus_alert_db_indicators_settings
+      push_rule_id
+      rate_limiting_response_text
+      rate_limits
+      rate_limits_unauthenticated_git_http
+      recaptcha_enabled
+      receive_max_input_size
+      repository_size_limit
+      repository_storages
+      repository_storages_weighted
+      require_admin_approval_after_user_signup
+      require_admin_two_factor_authentication
+      restricted_visibility_levels
+      runners_registration_token
+      runners_registration_token_encrypted
+      search_rate_limit
+      search_rate_limit_allowlist
+      secret_detection_revocation_token_types_url
+      secret_detection_token_revocation_enabled
+      secret_detection_token_revocation_url
+      security_policies
+      security_policy_global_group_approvers_enabled
+      security_policy_scheduled_scans_max_concurrency
+      security_txt_content
+      sentry_clientside_dsn
+      sentry_clientside_traces_sample_rate
+      sentry_dsn
+      sentry_enabled
+      sentry_environment
+      service_ping_settings
+      shared_runners_minutes
+      shared_runners_text
+      sidekiq_job_limiter_limit_bytes
+      signup_enabled
+      silent_admin_exports_enabled
+      slack_app_enabled
+      slack_app_id
+      snowplow_app_id
+      snowplow_collector_hostname
+      snowplow_cookie_domain
+      snowplow_enabled
+      sourcegraph_enabled
+      sourcegraph_url
+      spam_check_endpoint_enabled
+      spam_check_endpoint_url
+      static_objects_external_storage_auth_token_encrypted
+      static_objects_external_storage_url
+      throttle_authenticated_api_period_in_seconds
+      throttle_authenticated_api_requests_per_period
+      throttle_authenticated_deprecated_api_period_in_seconds
+      throttle_authenticated_web_period_in_seconds
+      throttle_authenticated_web_requests_per_period
+      throttle_incident_management_notification_enabled
+      throttle_protected_paths_enabled
+      throttle_unauthenticated_api_enabled
+      throttle_unauthenticated_api_period_in_seconds
+      throttle_unauthenticated_api_requests_per_period
+      throttle_unauthenticated_deprecated_api_requests_per_period
+      throttle_unauthenticated_enabled
+      throttle_unauthenticated_git_http_enabled
+      throttle_unauthenticated_git_http_period_in_seconds
+      throttle_unauthenticated_git_http_requests_per_period
+      throttle_unauthenticated_period_in_seconds
+      throttle_unauthenticated_requests_per_period
+      time_tracking_limit_to_hours
+      unconfirmed_users_delete_after_days
+      unique_ips_limit_per_user
+      unique_ips_limit_time_window
+      updated_at
+      usage_stats_set_by_user_id
+      use_clickhouse_for_analytics
+      user_default_internal_regex
+      users_get_by_id_limit_allowlist
+      uuid
+      vertex_ai_project
+      web_ide_oauth_application_id
+      zoekt_cpu_to_tasks_ratio
+      zoekt_indexing_enabled
+      zoekt_search_enabled
+      zoekt_settings
+    ].freeze
+    # rubocop:enable Naming/InclusiveLanguage
+
+    def initialize(hash)
+      super(hash)
+      self[:encrypted] = column.start_with?('encrypted_')
+      self[:attr] = column.delete_prefix('encrypted_')
+      self[:gitlab_com_different_than_default] = GITLAB_COM_DIFFERENT_THAN_DEFAULT.include?(column)
+    end
+
+    def merge!(other)
+      other.to_h.each do |k, v|
+        self[k] = v unless v.nil?
+      end
+    end
+
+    def attr_config_file
+      File.expand_path("../../config/application_setting_columns/#{attr}.yml", __dir__)
+    end
+  end
+
+  ApplicationSettingApiDoc = Struct.new(:attr, :db_type, :api_type, :required, :description, keyword_init: true)
+
+  API_STRING_ATTRIBUTES_STORED_AS_INTEGER = %w[
+    default_group_visibility
+    default_project_visibility
+    default_snippet_visibility
+    email_confirmation_setting
+    performance_bar_allowed_group_id
+    sidekiq_job_limiter_mode
+    whats_new_variant
+  ].freeze
+  API_TYPE_STRING_OR_ARRAY_OF_STRING = ['string', 'array of strings', 'string or array of strings'].freeze
+  API_TYPE_ARRAY_OF_INTEGER = ['array of integers'].freeze
+  API_TYPE_INTEGER = ['integer'].freeze
+  API_TYPE_FLOAT = ['float'].freeze
+  DB_TYPE_TO_COMPATIBLE_API_TYPES = {
+    'character' => API_TYPE_STRING_OR_ARRAY_OF_STRING,
+    'text' => API_TYPE_STRING_OR_ARRAY_OF_STRING,
+    'text[]' => API_TYPE_STRING_OR_ARRAY_OF_STRING,
+    'bytea' => API_TYPE_STRING_OR_ARRAY_OF_STRING,
+    'integer[]' => API_TYPE_ARRAY_OF_INTEGER,
+    'smallint[]' => API_TYPE_ARRAY_OF_INTEGER,
+    'jsonb' => ['hash', 'hash of strings to integers', 'object'],
+    'smallint' => API_TYPE_INTEGER,
+    'bigint' => API_TYPE_INTEGER,
+    'double' => API_TYPE_FLOAT,
+    'numeric' => API_TYPE_FLOAT
+  }.freeze
+
+  DB_STRUCTURE_FILE_PATH = File.expand_path('../../db/structure.sql', __dir__)
+  CREATE_TABLE_REGEX = /CREATE TABLE application_settings \((?<columns>.+?)\);/m
+  JIHU_COMMENT_REGEX = /COMMENT ON COLUMN application_settings.(?<column>\w+) IS 'JiHu-specific column';/
+  IGNORED_COLUMNS_REGEX = %r{
+    ^(
+      encrypted_\w+_iv # ignore encryption-related extra columns
+      |
+      \w+_html # ignore Markdown-caching extra columns
+    )$
+  }x
+  DEFAULT_REGEX = /DEFAULT (?<default>[^\s,]+)/
+
+  DOC_API_SETTINGS_FILE_PATH = File.expand_path('../../doc/api/settings.md', __dir__)
+  DOC_API_SETTINGS_TABLE_REGEX = Regexp.new(
+    "## List of settings that can be accessed via API calls(?:.*?)(?:--\|\n)+?(?<rows>.+)" \
+      "### Configure inactive project deletion", Regexp::MULTILINE
+  )
+
+  DOC_PAGE_HEADERS = [
+    "---",
+    "stage: Data Stores",
+    "group: Tenant Scale",
+    "info: Analysis of Application Settings for Cells 1.0.",
+    "---",
+    "# Application Settings analysis\n",
+    "## Statistics\n"
+  ].freeze
+
+  def execute
+    db_structure_attrs = attributes_from_codebase.map(&:attr)
+
+    virtual_api_settings = attributes_from_doc_api_settings.reject { |api| db_structure_attrs.include?(api.attr) }
+    virtual_api_settings.each do |virtual_api_setting|
+      puts "API setting #{virtual_api_setting.attr} doesn't actually exist as a DB column in `application_settings`!"
+    end
+
+    write_final_attributes!
+    write_doc_page!
+    clean_deleted_attributes!
+  end
+
+  def attributes_from_codebase
+    @attributes_from_codebase ||= begin
+      structure_sql = File.read(DB_STRUCTURE_FILE_PATH)
+      match = structure_sql.match(CREATE_TABLE_REGEX)
+      jihu_columns = structure_sql.scan(JIHU_COMMENT_REGEX).flatten
+      structure_columns = match[:columns].lines(chomp: true).map(&:strip).reject do |line|
+        line.empty? || line.start_with?('CONSTRAINT')
+      end.sort
+
+      structure_columns.filter_map do |line|
+        # Example lines:
+        # throttle_authenticated_packages_api_requests_per_period integer DEFAULT 1000 NOT NULL
+        # valid_runner_registrars character varying[] DEFAULT '{project,group}'::character varying[]
+        column, db_type = line.chomp(',').split(' ').map(&:strip)
+        next if column.match?(IGNORED_COLUMNS_REGEX)
+
+        default_match = line.match(DEFAULT_REGEX)&.values_at(:default)&.first
+
+        ApplicationSetting.new(column: column, db_type: db_type, not_null: line.include?('NOT NULL'),
+          default: default_match, jihu: jihu_columns.include?(column)).tap do |as_attr|
+          as_attr.api_type, as_attr.description = fetch_type_and_description_from_api_documentation(as_attr)
+        end
+      end
+    end
+  end
+
+  private
+
+  attr_reader :application_setting_attrs
+
+  def attributes_from_doc_api_settings
+    @attributes_from_doc_api_settings ||= begin
+      settings_md = File.read(DOC_API_SETTINGS_FILE_PATH)
+      match = settings_md.match(DOC_API_SETTINGS_TABLE_REGEX)
+      doc_rows = match[:rows].lines(chomp: true).map(&:strip).filter_map do |line|
+        line.delete_prefix("| ") if line.start_with?('| `')
+      end.sort
+
+      doc_rows.map do |line|
+        attr, api_type, required, description = line.split('|').map(&:strip)
+        attr.delete!('`')
+
+        ApplicationSettingApiDoc.new(attr: attr, api_type: api_type, required: required, description: description)
+      end
+    end
+  end
+
+  def fetch_type_and_description_from_api_documentation(as_attr)
+    existing_attribute_from_doc_api_settings = attributes_from_doc_api_settings.find do |api|
+      api.attr == as_attr.attr
+    end
+    return unless existing_attribute_from_doc_api_settings
+
+    compatible_api_types = DB_TYPE_TO_COMPATIBLE_API_TYPES.fetch(as_attr.db_type, [as_attr.db_type])
+    if API_STRING_ATTRIBUTES_STORED_AS_INTEGER.include?(as_attr.attr) && compatible_api_types.include?('integer')
+      compatible_api_types = ['string']
+    end
+
+    unless compatible_api_types.include?(existing_attribute_from_doc_api_settings.api_type)
+      raise "`#{as_attr.attr}`: Documented type `#{existing_attribute_from_doc_api_settings.api_type}` " \
+        "isn't compatible with actual DB type `#{as_attr.db_type}`!"
+    end
+
+    [existing_attribute_from_doc_api_settings.api_type, existing_attribute_from_doc_api_settings.description]
+  end
+
+  def final_attributes
+    @final_attributes ||= attributes_from_codebase.map do |as|
+      as.merge!(YAML.safe_load_file(as.attr_config_file)) if File.exist?(as.attr_config_file)
+
+      as
+    end.sort_by(&:attr)
+  end
+
+  def write_final_attributes!
+    final_attributes.each do |final_attribute|
+      File.write(
+        final_attribute.attr_config_file,
+        Hash[final_attribute.to_h.sort].transform_keys(&:to_s).to_yaml
+      )
+    end
+  end
+
+  def clean_deleted_attributes!
+    valid_attribute_names = attributes_from_codebase.map(&:attr)
+
+    Dir.glob(File.expand_path("../../config/application_setting_columns/*.yml", __dir__)).each do |path|
+      attribute_name = File.basename(path, '.yml')
+      next if valid_attribute_names.include?(attribute_name)
+
+      puts "Deleting #{path} since the #{attribute_name} attribute doesn't exist anymore."
+      File.unlink(path)
+    end
+  end
+
+  def write_doc_page! # rubocop:disable Metrics/AbcSize: -- THe method generates a doc page so it's a bit special
+    doc_page = DOC_PAGE_HEADERS.dup
+
+    doc_page << "- Number of attributes: #{final_attributes.count}"
+
+    as_encrypted = final_attributes.count(&:encrypted)
+    doc_page << "- Number of encrypted attributes: #{as_encrypted} " \
+      "(#{(as_encrypted.to_f / final_attributes.count).round(2) * 100}%)"
+
+    as_documented = final_attributes.count(&:description)
+    doc_page << "- Number of attributes documented: #{as_documented} " \
+      "(#{(as_documented.to_f / final_attributes.count).round(2) * 100}%)"
+
+    as_on_gitlab_com_different_than_default = final_attributes.count(&:gitlab_com_different_than_default)
+    doc_page << "- Number of attributes on GitLab.com different from the defaults: " \
+      "#{as_on_gitlab_com_different_than_default} " \
+      "(#{(as_on_gitlab_com_different_than_default.to_f / final_attributes.count).round(2) * 100}%)"
+
+    as_with_clusterwide_set = final_attributes.count { |as| !as.clusterwide.nil? }
+    doc_page << "- Number of attributes with `clusterwide` set: #{as_with_clusterwide_set} " \
+      "(#{(as_with_clusterwide_set.to_f / final_attributes.count).round(2) * 100}%)"
+
+    as_with_clusterwide_true = final_attributes.count(&:clusterwide)
+    doc_page << "- Number of attributes with `clusterwide: true` set: #{as_with_clusterwide_true} " \
+      "(#{(as_with_clusterwide_true.to_f / final_attributes.count).round(2) * 100}%)\n"
+
+    doc_page << "## Individual columns\n"
+    doc_page << "| Attribute name | Encrypted | DB Type | API Type | Not Null? | Default | " \
+      "GitLab.com != default | Cluster-wide? | Documented? |"
+    doc_page << "| -------------- | ------------- | --------- | --------- | ----------------- | " \
+      "--------------------- | ------------- | ----------- |"
+
+    final_attributes.each do |as|
+      jihu = as.jihu ? ' [JIHU]' : ''
+      doc_page << "| `#{as.attr}`#{jihu} | `#{as.encrypted}` | `#{as.db_type}` | `#{as.api_type}` | `#{as.not_null}` " \
+        "| `#{as.default || (as.not_null ? '???' : 'null')}` | `#{as.gitlab_com_different_than_default}` " \
+        "| `#{as.clusterwide.nil? ? '???' : as.clusterwide}`| `#{!!as.description}` |"
+    end
+
+    doc_page << '' # trailing line
+
+    File.write(File.expand_path("../../doc/development/cells/application_settings_analysis.md", __dir__),
+      doc_page.join("\n"))
+  end
+end
+
+ApplicationSettingAnalysis.new.execute