config/site_settings.yml
Rama main · réplica de lectura del repositorio original.
# Available options:
#
# default - The default value of the setting. For upload site settings, use the id of the upload seeded
# in db/fixtures/010_uploads.rb.
# client - Set to true if the javascript should have access to this setting's value.
# refresh - Set to true if clients should refresh when the setting is changed.
# min - For a string setting, the minimum length. For an integer setting, the minimum value.
# max - For a string setting, the maximum length. For an integer setting, the maximum value.
# regex - A regex that the value must match.
# validator - The name of the class that will be use to validate the value of the setting.
# allow_any - For choice settings allow items not specified in the choice list (default true)
# secret - Set to true if input type should be password and value needs to be scrubbed from logs (default false).
# enum - The setting has a fixed set of allowed values, and only one can be chosen.
# Set to the class name that defines the set.
# locale_default - A hash which overrides according to `SiteSetting.default_locale`.
# The key should be as the same as possible value of default_locale.
# mandatory_values - A list of mandatory values that must be included in the setting, these cannot be changed or removed
# in the UI. Only applies to pipe-separated list type settings (e.g. group_list), as the values
# are merged into the setting's value on both read and write.
# disallowed_groups - A list of group IDs (pipe-separated) that should be hidden from the group selector.
# These groups cannot be selected and will be stripped if set via API.
# Only applies to group_list type settings.
# requires_confirmation - A string that indicates if the setting requires confirmation before it can be changed.
# Valid values are "simple" (always display a confirmation dialog when the setting is changed),
# "simple_on_enable" (only when the setting is enabled), and "simple_on_disable" (only when
# the setting is disabled).
# themeable - Set to true if themes can override this site setting. Generally, only client side affecting settings
# that change the UI should be themeable, and try limit to simple setting types like bool, list, integer, enum.
# localizable - Set to true if content localization can translate this setting. Use a hash for translation-specific
# options:
# - max_length: maximum localized value length
# - cooked: true when the localized value should be cooked markdown
# upcoming_change_default_override - Allow an upcoming change to control the new default value of this setting.
# - upcoming_change: The site setting of the upcoming change to control this
# - new_default: The new default value when the upcoming change is enabled
# upcoming_change - Additional metadata with the following options to show in the /admin/config/upcoming-changes page:
# - status: experimental | alpha | beta | stable
# - impact: two parts separated by comma - feature|other|site_setting_default , staff|admins|moderators|all_members|developers
# - learn_more_url: a url for more information
# - body_class: (optional boolean) to include a uc-NAME CSS class on the <body> element when the change is enabled
# - permanent_warning: (optional boolean, defaults to true) when the change reaches
# `stable` status admins are warned that it will become permanent and they will no
# longer be able to opt out. Set to false when that warning does not apply, for
# example a change that only alters the default value of another site setting.
# - group_setting: (optional setting name) use an existing group_list setting as
# the audience instead of SiteSettingGroup. Must reference a core setting or one
# from the change's own plugin. Cannot combine with allow_enabled_for.
# The rollout boolean and audience are independent: toggling preserves the linked
# setting, and audience edits update that setting using its normal validation,
# mandatory_values, disallowed_groups, confirmation flow, and staff logging.
# An empty list means no audience; anonymous access requires anonymous_users.
# Linked audience restrictions still apply after auto-promotion and permanent status.
# - allow_enabled_for: (optional array) restricts the audience admins can pick.
# Valid values: everyone, staff, specific_groups.
#
# `everyone` must be the only value and means the change can't be scoped to
# groups; the admin UI then shows the impact role's groups as a locked audience,
# so make the role match who the change affects. Omit the key to let admins
# pick any groups, starting from the impact role's groups.
# depends_on - One or more boolean settings that must be true for this setting to take effect.
# depends_on_values - Optional hash of depends_on setting names to values that make this setting take effect.
# Use this when the parent setting is not boolean, for example an enum setting.
# depends_behavior - The behavior of the dependent setting. Only currently supported behaviour is "hidden"
# to hide the setting if the dependent setting is false or does not match depends_on_values.
# If left blank, no special behavior is applied and the setting is shown as normal.
# dependent_setting_display - Optional display mode for hidden dependent settings. "inline" renders the setting
# under its parent instead of as a separate row.
#
#
#
# type: email - Must be a valid email address.
# type: username - Must match the username of an existing user.
# type: list - A list of values, chosen from a set of valid values
# defined in the choices option. A type:list setting with the word 'colors' in
# its name will make color values have a bold line of the corresponding color
#
# list_type: simple - Allow multiple values to be selected for the list, and new values can be defined if
# allow_any is true. This list displays like a list of items with add/remove buttons,
# and the ability to reorder items.
# list_type: compact - Allow multiple values to be selected for the list, and new values can be defined if
# allow_any is true. This list displays like the tag selector.
#
# type: enum - A single value, chosen from a set of valid values in the choices option.
# type: json_schema - The setting value is stored as JSON in the database. Used
# in the format `json_schema: ClassName` where the class implements
# a `.schema` class method and returns a hash in the JSON schema
# format (c.f. https://json-schema.org/)
# type: host_list - A list of domain names that does not allow * or ? wildcards.
# type: category_list - A list of category ids, which shows a special picker in the UI.
# type: category - A single category ID, which shows a special picker in the UI.
# type: uploaded_image_list - A list of upload IDs that should be images.
# type: upload - A single upload ID. Optional attributes:
# - authorized_extensions: pipe-separated list of allowed extensions
# without dots (e.g., "txt|json"). If not specified, only images
# are allowed based on authorized_extensions setting.
# - max_file_size_kb: maximum file size in KB. If not specified,
# uses max_image_size_kb or max_attachment_size_kb.
# type: group - A single group ID. A name is converted to its ID on write.
# type: group_list - A list of group IDs.
# type: tag_list - A list of tag names.
# type: emoji_list - A list of emoji names (e.g. joy, cold_hands)
# type: tag_group_list - A list of tag group names.
# type: file_size_restriction - A file size restriction in bytes.
# type: icon - A single fontawesome icon name from the Discourse icon set (e.g. heart, star)
#
required:
title:
client: true
default: "Discourse"
area: "about"
localizable:
max_length: 255
site_description:
default: ""
area: "about"
localizable:
max_length: 1000
short_site_description:
default: ""
client: true
area: "about"
contact_email:
default: ""
type: email
area: "about|notifications|legal"
client: true
contact_url:
default: ""
area: "about|legal"
notification_email:
default: "noreply@unconfigured.discourse.org"
type: email
area: "email"
site_contact_username:
default: ""
type: username
area: "about"
site_contact_group_name:
default: ""
type: group
area: "about"
exclude_rel_nofollow_domains:
client: true
default: ""
type: list
list_type: simple
area: "analytics"
company_name:
default: ""
area: "about|legal"
company_url:
default: ""
area: "about|legal"
governing_law:
default: ""
area: "about|legal"
city_for_disputes:
default: ""
area: "about|legal"
branding:
logo:
default: -5
client: true
type: upload
logo_small:
default: -6
client: true
type: upload
digest_logo:
default: ""
client: true
type: upload
mobile_logo:
default: ""
client: true
type: upload
logo_dark:
default: ""
client: true
type: upload
logo_small_dark:
default: ""
client: true
type: upload
mobile_logo_dark:
default: ""
client: true
type: upload
large_icon:
default: ""
client: true
type: upload
manifest_icon:
default: ""
client: true
type: upload
manifest_screenshots:
type: list
list_type: simple
client: true
default: ""
favicon:
default: ""
client: true
type: upload
apple_touch_icon:
default: ""
client: true
type: upload
generate_topic_og_image:
default: false
client: true
hidden: true
opengraph_image:
default: ""
client: true
type: upload
twitter_summary_large_image:
default: ""
type: upload
hidden: true
x_summary_large_image:
default: ""
type: upload
client: true
basic:
display_local_time_in_user_card:
client: true
default: false
area: "localization"
support_mixed_text_direction:
client: true
default: false
area: "localization"
categories_topics:
default: 0
validator: "CategoriesTopicsValidator"
area: "interface"
suggested_topics:
client: true
default: 5
max: 2000
area: "posts_and_topics"
limit_suggested_to_category:
default: false
area: "posts_and_topics"
suggested_topics_unread_max_days_old:
default: 90
min: 0
max: 36500
area: "posts_and_topics"
suggested_topics_max_days_old:
default: 365
min: 7
max: 36500
area: "posts_and_topics"
ga_version:
type: enum
default: v4_gtag
choices:
- v3_analytics
- v4_gtag
area: "analytics"
ga_universal_tracking_code:
client: true
default: ""
regex: "^(UA|G)-[\\w-]+"
area: "analytics"
ga_universal_domain_name:
client: true
default: "auto"
area: "analytics"
ga_universal_auto_link_domains:
default: ""
type: list
list_type: simple
area: "analytics"
gtm_container_id:
client: true
default: ""
regex: "^GTM-"
area: "analytics"
google_site_verification_token:
default: ""
area: "analytics"
top_menu:
client: true
refresh: true
type: list
list_type: simple
default: "latest|new|unread|hot|categories"
validator: "TopMenuValidator"
allow_any: false
choices: "TopMenu.choices"
area: "interface"
upcoming_change_default_override:
upcoming_change: "enable_unified_new"
new_default: "latest|new|hot|categories"
default_homepage:
client: true
refresh: true
type: enum
default: ""
enum: "HomepageSiteSetting"
area: "interface"
custom_homepage_crawler_route:
type: enum
default: "latest"
choices: "TopMenu.crawler_homepage_choices"
area: "interface"
post_menu:
client: true
type: list
list_type: simple
default: "read|like|copyLink|flag|edit|bookmark|delete|admin|reply"
allow_any: false
choices:
- read
- copyLink
- share
- like
- edit
- flag
- delete
- bookmark
- admin
- reply
- addTranslation
area: "posts_and_topics"
post_menu_hidden_items:
client: true
type: list
list_type: simple
default: "flag|bookmark|edit|delete|admin"
allow_any: false
choices:
- like
- edit
- flag
- delete
- share
- bookmark
- admin
- reply
- addTranslation
area: "posts_and_topics"
share_links:
client: true
type: list
list_type: simple
default: "twitter|facebook|email"
allow_any: false
choices:
- twitter
- facebook
- email
area: "sharing"
allow_username_in_share_links:
client: true
default: true
area: "sharing"
share_quote_visibility:
client: true
type: enum
default: "all"
choices:
- none
- anonymous
- all
area: "sharing"
share_quote_buttons:
client: true
type: list
list_type: simple
default: "twitter|email"
allow_any: false
choices:
- twitter
- facebook
- email
area: "sharing"
desktop_category_page_style:
client: true
enum: "CategoryPageStyle"
default: "categories_and_latest_topics"
area: "categories|interface"
mobile_category_page_style:
client: true
enum: "MobileCategoryPageStyle"
default: "categories_with_featured_topics"
area: "categories|interface"
category_colors:
client: true
type: list
list_type: compact
default: "BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735"
area: "categories|interface"
max_category_nesting:
client: true
default: 2
min: 2
max: 3
hidden: true
area: "categories"
enable_direct_s3_uploads:
client: true
default: false
enable_upload_debug_mode:
default: false
hidden: true
client: true
default_theme_id:
default: -1
hidden: true
relative_date_duration:
client: true
default: 30
area: "posts_and_topics"
topics_per_period_in_top_summary:
default: 20
min: 1
area: "posts_and_topics"
topics_per_period_in_top_page:
default: 50
min: 1
area: "posts_and_topics"
top_page_default_timeframe:
client: true
default: "yearly"
type: enum
choices:
- all
- yearly
- quarterly
- monthly
- weekly
- daily
area: "posts_and_topics"
fixed_category_positions:
client: true
default: false
area: "categories|interface"
fixed_category_positions_on_create:
client: true
default: false
area: "categories|interface"
enable_badges:
client: true
default: true
area: "badges"
show_badges_in_post_header:
client: true
default: true
area: "badges"
enable_badge_sql:
client: true
default: false
hidden: true
max_favorite_badges:
client: true
default: 2
min: 0
max: 6
area: "badges"
whispers_allowed_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
disallowed_groups: "0|4|5"
area: "group_permissions"
upcoming_change_default_override:
upcoming_change: "update_whispers_allowed_groups_default"
new_default: "3"
hidden_post_visible_groups:
type: group_list
list_type: compact
default: "14"
allow_any: false
refresh: true
disallowed_groups: "4"
mandatory_values: "1|2" # auto groups admins & moderators
area: "group_permissions"
push_notifications_prompt:
default: true
client: true
area: "notifications"
push_notifications_icon:
default: ""
type: upload
area: "notifications"
enable_desktop_push_notifications:
default: true
client: true
area: "notifications"
push_notification_time_window_mins:
default: 1
min: 0
area: "notifications"
push_notification_trusted_hosts:
default: "fcm.googleapis.com|updates.push.services.mozilla.com|push.apple.com|notify.windows.com"
type: host_list
list_type: simple
area: "notifications"
push_notification_localization_max_wait_mins:
default: 3
min: 0
hidden: true
short_title:
default: ""
max: 12
vapid_public_key_bytes:
default: ""
client: true
hidden: true
vapid_public_key:
default: ""
hidden: true
vapid_private_key:
default: ""
hidden: true
vapid_base_url:
default: ""
hidden: true
base_font:
default: "inter"
choices: "BaseFontSetting.values"
refresh: true
type: list
list_type: font
area: "fonts"
allow_any: false
client: true
heading_font:
default: "inter"
choices: "BaseFontSetting.values"
refresh: true
type: list
list_type: font
area: "fonts"
allow_any: false
client: true
enable_sitemap:
default: true
area: "analytics"
sitemap_page_size:
default: 10000
area: "analytics"
enable_user_tips:
client: true
default: false
refresh: true
area: "users"
page_loading_indicator:
client: true
type: enum
default: "slider"
choices:
- spinner
- slider
area: "navigation"
show_user_menu_avatars:
client: true
default: false
area: "interface"
about_page_hidden_groups:
default: ""
type: group_list
disallowed_groups: "0|4|5"
area: "group_permissions"
about_page_extra_groups:
client: true
default: ""
type: group_list
disallowed_groups: "4"
area: "about"
about_page_extra_groups_initial_members:
client: true
default: 6
type: integer
area: "about"
about_page_extra_groups_order:
client: true
default: "alphabetically"
type: enum
choices:
- "alphabetically"
- "order of creation"
- "order of theme setting"
area: "about"
about_page_extra_groups_show_description:
client: true
default: false
type: bool
area: "about"
adobe_analytics_tags_url:
default: ""
regex: "assets.adobedtm.com"
area: "analytics"
extended_site_description:
default: ""
max: 10_000
hidden: true
area: "about"
localizable:
max_length: 10_000
cooked: true
extended_site_description_cooked:
default: ""
hidden: true
max: 15_000
about_banner_image:
default: ""
type: upload
hidden: true
area: "about"
community_owner:
default: ""
max: 300
hidden: true
area: "about"
use_legacy_pageviews:
default: false
hidden: true
client: true
clean_up_browser_pageview_events:
default: true
hidden: true
browser_pageview_referrer_backfill_batch_size:
default: 5000
type: integer
min: 1
max: 20000
hidden: true
browser_pageview_max_engaged_seconds:
default: 1800
type: integer
min: 1
max: 86400
hidden: true
client: true
crawler_automation_user_agents:
default: "HeadlessChrome|Playwright|Puppeteer|Selenium|PhantomJS|jsdom"
hidden: true
crawler_stale_chromium_major_version_cutoff:
default: 138
type: integer
min: 1
max: 999
hidden: true
interface_color_selector:
client: true
enum: "InterfaceColorSelectorSetting"
default: "disabled"
area: "interface"
promote_upcoming_changes_on_status:
default: "beta"
type: enum
choices:
- experimental
- alpha
- beta
- stable
- never
hidden: true
upcoming_change_verbose_logging:
default: false
hidden: true
login:
login_required:
refresh: true
client: true
default: false
area: "login"
must_approve_users:
client: true
default: false
area: "login"
invite_only:
refresh: true
client: true
default: false
area: "login"
invite_code:
default: ""
area: "login"
enable_local_logins:
client: true
default: true
area: "login"
enable_local_logins_via_email:
client: true
default: true
validator: "EnableLocalLoginsViaEmailValidator"
area: "login"
enable_local_logins_via_code:
client: true
default: false
hidden: true
validator: "EnableLocalLoginsViaCodeValidator"
area: "login"
depends_on:
- enable_local_logins
- enable_local_logins_via_email
upcoming_change:
status: "beta"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/407068"
permanent_warning: false
allow_enabled_for:
- everyone
enable_random_usernames:
client: true
default: false
area: "login"
depends_on:
- enable_local_logins_via_code
random_username_adjectives:
type: list
list_type: compact
default: "agile|amber|azure|bold|brave|breezy|bright|calm|candid|cheery|civic|clever|cosmic|crisp|curious|daring|deft|eager|earnest|fabled|gentle|golden|happy|hardy|hearty|humble|jolly|keen|kind|lively|lucid|lunar|mellow|merry|mighty|nimble|noble|plucky|proud|quick|quiet|rapid|rustic|silent|silver|smart|snappy|solar|stellar|sunny|swift|tidy|upbeat|valiant|vivid|warm|witty|zesty"
area: "login"
validator: "RandomUsernameWordListValidator"
depends_on:
- enable_random_usernames
random_username_nouns:
type: list
list_type: compact
default: "acorn|badger|beacon|bison|breeze|brook|canyon|cedar|comet|condor|coral|cougar|coyote|crane|cricket|dolphin|ember|falcon|fern|finch|fjord|fox|gecko|glacier|harbor|heron|hawk|ibis|jaguar|lagoon|lark|lemur|lynx|maple|marmot|meadow|meteor|nebula|newt|orca|osprey|otter|owl|panda|pebble|penguin|pine|prairie|puffin|quokka|raven|reef|river|sequoia|sparrow|summit|tundra|walrus|willow|wren|zephyr"
area: "login"
validator: "RandomUsernameWordListValidator"
depends_on:
- enable_random_usernames
enable_passkeys:
client: true
default: true
hidden: true
allow_passkeys_for_2fa:
client: true
default: false
area: "login"
allow_new_registrations:
client: true
default: true
area: "login"
enable_signup_cta:
client: true
default: true
area: "login"
enable_discourse_id:
default: false
validator: "EnableDiscourseIdValidator"
area: "authenticators"
discourse_id_client_id:
default: ""
hidden: true
discourse_id_client_secret:
default: ""
hidden: true
secret: true
discourse_id_verbose_logging:
default: false
hidden: true
discourse_id_provider_url:
default: ""
hidden: true
enable_google_oauth2_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
google_oauth2_client_id:
default: ""
area: "authenticators"
google_oauth2_client_secret:
default: ""
secret: true
area: "authenticators"
google_oauth2_prompt:
default: ""
type: list
choices:
- ""
- "none"
- "consent"
- "select_account"
area: "authenticators"
google_oauth2_hd:
default: ""
area: "authenticators"
google_oauth2_hd_groups_service_account_admin_email:
default: ""
area: "authenticators"
google_oauth2_hd_groups_service_account_json:
default: ""
textarea: true
secret: true
area: "authenticators"
google_oauth2_hd_groups:
default: false
validator: GoogleOauth2HdGroupsValidator
area: "authenticators"
google_oauth2_verbose_logging:
default: false
area: "authenticators"
enable_twitter_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
twitter_consumer_key:
default: ""
regex: "^[\\w+-]+$"
area: "authenticators"
twitter_consumer_secret:
default: ""
regex: "^[\\w+-]+$"
secret: true
area: "authenticators"
enable_facebook_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
facebook_app_id:
client: true
default: ""
regex: "^\\d+$"
area: "authenticators"
facebook_app_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
area: "authenticators"
enable_github_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
github_client_id:
default: ""
regex: "^[a-zA-Z0-9\\.]+$"
area: "authenticators"
github_client_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
area: "authenticators"
enable_discord_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
discord_client_id:
default: ""
area: "authenticators"
discord_secret:
default: ""
secret: true
area: "authenticators"
discord_trusted_guilds:
default: ""
type: list
list_type: simple
area: "authenticators"
enable_linkedin_oidc_logins:
default: false
validator: "AuthProviderCredentialsValidator"
area: "authenticators"
linkedin_oidc_client_id:
default: ""
regex: "^[a-z0-9]+$"
area: "authenticators"
linkedin_oidc_client_secret:
default: ""
regex: "^[a-zA-Z0-9_=\\.]+$"
secret: true
area: "authenticators"
auth_skip_create_confirm:
default: false
client: true
area: "authenticators"
auth_immediately:
default: true
client: true
area: "authenticators"
auth_overrides_email:
default: false
validator: "SsoOverridesEmailValidator"
client: true
area: "authenticators"
auth_overrides_username:
default: false
area: "authenticators"
auth_overrides_avatar:
default: false
area: "authenticators"
auth_overrides_name:
default: false
area: "authenticators"
auth_require_interaction:
default: true
area: "authenticators"
enable_discourse_connect:
client: true
default: false
validator: "EnableSsoValidator"
area: "discourseconnect"
discourse_connect_allowed_redirect_domains:
default: ""
type: list
list_type: simple
area: "discourseconnect"
verbose_discourse_connect_logging:
default: false
area: "discourseconnect"
verbose_upload_logging:
hidden: true
default: false
verbose_auth_token_logging:
hidden: true
default: false
max_suspicious_distance_km:
hidden: true
default: 100
discourse_connect_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
area: "discourseconnect"
discourse_connect_secret:
default: ""
secret: true
area: "discourseconnect"
discourse_connect_overrides_groups:
default: false
area: "discourseconnect"
discourse_connect_overrides_bio:
default: false
area: "discourseconnect"
discourse_connect_overrides_avatar:
default: false
client: true
area: "authenticators"
discourse_connect_overrides_profile_background:
default: false
area: "discourseconnect"
discourse_connect_overrides_location:
default: false
area: "discourseconnect"
discourse_connect_overrides_website:
default: false
area: "discourseconnect"
discourse_connect_overrides_card_background:
default: false
area: "discourseconnect"
discourse_connect_not_approved_url:
default: ""
area: "discourseconnect"
discourse_connect_csrf_protection:
default: true
hidden: true
area: "discourseconnect"
enable_discourse_connect_provider:
default: false
area: "discourseconnect"
discourse_connect_provider_secrets:
default: ""
type: list
list_type: secret
secret: true
placeholder:
key: "sso_provider.key_placeholder"
value: "sso_provider.value_placeholder"
area: "discourseconnect"
discourse_connect_provider_claims:
default: "name|email|admin|moderator|groups|avatar_url|profile_background_url|card_background_url"
type: list
list_type: compact
allow_any: false
choices:
- name
- email
- admin
- moderator
- groups
- avatar_url
- profile_background_url
- card_background_url
area: "discourseconnect"
blocked_email_domains:
default: "mailinator.com"
type: host_list
list_type: simple
area: "login"
allowed_email_domains:
default: ""
type: host_list
list_type: simple
area: "login"
normalize_emails:
default: true
area: "login"
auto_approve_email_domains:
default: ""
type: host_list
list_type: simple
area: "login"
hide_email_address_taken:
client: true
default: true
area: "login"
log_out_strict:
default: false
area: "login"
pending_users_reminder_delay_minutes:
min: -1
default: 480
area: "login"
upcoming_change_default_override:
upcoming_change: "update_pending_users_reminder_default"
new_default: 30
persistent_sessions:
default: true
area: "login"
maximum_session_age:
default: 1440
min: 1
max: 175200
area: "login"
show_signup_form_email_instructions:
client: true
default: true
area: "login"
show_signup_form_username_instructions:
client: true
default: false
area: "login"
show_signup_form_full_name_instructions:
client: true
default: false
area: "login"
show_signup_form_password_instructions:
client: true
default: false
area: "login"
users:
min_username_length:
client: true
default: 3
validator: "MinUsernameLengthValidator"
area: "users"
max_username_length:
client: true
default: 20
validator: "MaxUsernameLengthValidator"
area: "users"
unicode_usernames:
default: false
client: true
validator: "UnicodeUsernameValidator"
area: "localization"
allowed_unicode_username_characters:
validator: "UnicodeUsernameAllowlistValidator"
default: ""
locale_default:
cs: "[ěščřžýáíéóůúďťňĚŠČŘŽÝÁÍÉÓŮÚĎŤŇ]"
de: "[äöüßÄÖÜẞ]"
fi: "[åäöÅÄÖ]"
ja: '[\p{Han}\p{Katakana}\p{Hiragana}ー]'
ko: '\p{Hangul}'
zh_CN: '\p{Han}'
zh_TW: '\p{Han}'
area: "localization"
reserved_usernames:
type: list
list_type: compact
default: "admin|moderator|administrator|mod|sys|system|community|info|you|name|username|user|nickname|discourse|discourseorg|discourseforum|support|all|here|random-username"
mandatory_values: "admin|moderator|administrator|mod|sys|system|you|name|username|user|nickname|discourse|discourseorg|discourseforum|all|here|random-username"
area: "users"
min_password_length:
client: true
default: 10
min: 8
max: 500
requires_confirmation: "simple"
min_admin_password_length:
client: true
default: 15
min: 8
max: 500
requires_confirmation: "simple"
password_unique_characters:
default: 6
min: 1
max: 10
requires_confirmation: "simple"
area: "users"
block_common_passwords:
default: true
requires_confirmation: "simple"
area: "users"
username_change_period:
default: 3
area: "users"
email_editable:
client: true
default: true
area: "users"
logout_redirect:
client: true
default: ""
area: "users"
full_name_requirement:
type: enum
default: hidden_at_signup
enum: "FullNameRequirement"
area: "users"
enable_names:
client: true
default: true
area: "users"
invite_expiry_days:
default: 90
client: true
max: 36500
area: "users"
invites_per_page:
client: true
default: 40
hidden: true
delete_user_max_post_age:
client: true
default: 60
area: "users"
delete_all_posts_max:
client: true
default: 15
min: 1
area: "users"
delete_all_posts_background_threshold:
client: true
default: 200
min: 1
area: "users"
delete_user_self_max_post_count:
default: 1
min: -1
area: "users"
redirect_users_to_top_page:
default: true
area: "users"
prioritize_username_in_ux:
client: true
default: true
area: "users"
prioritize_full_name_in_ux:
client: true
default: false
hidden: true
area: "users"
email_token_valid_hours:
default: 48
min: 1
area: "users"
purge_unactivated_users_grace_period_days:
default: 14
max: 36500
area: "users"
public_user_custom_fields:
type: list
list_type: simple
default: ""
area: "users"
staff_user_custom_fields:
type: list
list_type: simple
default: ""
area: "users"
enable_user_directory:
client: true
default: true
area: "users"
directory_hourly_refresh_max_users:
default: 100
hidden: true
area: "users"
directory_columns_seeded:
default: false
hidden: true
allow_anonymous_mode:
default: false
client: true
area: "users"
allow_likes_in_anonymous_mode:
default: false
client: true
anonymous_posting_allowed_groups:
default: "1|2|11" # auto group admins, moderators and trust_level_1
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
validator: "AtLeastOneGroupValidator"
area: "group_permissions"
anonymous_account_duration_minutes:
default: 10080
max: 99000
area: "users"
allow_users_to_hide_profile:
default: true
client: true
area: "users"
hide_user_profiles_from_public:
default: false
client: true
area: "users"
hide_new_user_profiles:
default: true
area: "users"
allow_featured_topic_on_user_profiles:
default: true
client: true
area: "users"
show_inactive_accounts:
default: false
area: "users"
allowed_user_website_domains:
default: ""
type: list
list_type: simple
area: "users"
hide_suspension_reasons:
default: false
client: true
area: "users"
hide_silencing_reasons:
default: false
client: true
area: "users"
log_personal_messages_views:
default: false
area: "users"
ignored_users_count_message_threshold:
default: 5
client: true
min: 1
area: "users"
ignored_users_message_gap_days:
default: 365
client: true
min: 1
max: 36500
area: "users"
clean_up_inactive_users_after_days:
default: 0
min: 0
max: 36500
area: "users"
requires_confirmation: "simple"
clean_up_unused_staged_users_after_days:
default: 365
min: 0
max: 36500
area: "users"
user_selected_primary_groups:
default: false
client: true
area: "users"
max_notifications_per_user:
default: 10000
hidden: true
area: "notifications"
gravatar_enabled:
type: "bool"
default: true
client: true
area: "users"
gravatar_name:
default: Gravatar
client: true
hidden: true
area: "users"
gravatar_base_url:
default: www.gravatar.com
client: true
hidden: true
area: "users"
gravatar_login_url:
default: /emails
client: true
hidden: true
area: "users"
max_bookmarks_per_user:
default: 2000
hidden: true
use_email_for_username_and_name_suggestions:
default: false
area: "users"
use_name_for_username_suggestions:
default: true
area: "users"
hide_user_activity_tab:
default: false
client: true
area: "users"
delete_associated_accounts_on_password_reset:
default: false
area: "users"
enable_user_status:
client: true
default: false
area: "users"
groups:
enable_group_directory:
client: true
default: true
group_in_subject:
default: false
enable_category_group_moderation:
client: true
default: false
area: "group_permissions|categories"
max_automatic_membership_email_domains:
default: 50
hidden: true
posting:
min_post_length:
client: true
min: 1
default: 20
locale_default:
ja: 8
zh_CN: 8
zh_TW: 8
area: "posts_and_topics"
min_first_post_length:
client: true
min: 1
default: 20
locale_default:
ja: 8
zh_CN: 8
zh_TW: 8
area: "posts_and_topics"
prevent_uploads_only_posts:
client: true
default: false
area: "posts_and_topics"
min_personal_message_post_length:
client: true
min: 1
default: 10
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
max_post_length:
client: true
default: 32000
max: 150000
area: "posts_and_topics"
topic_featured_link_enabled:
client: true
default: true
area: "posts_and_topics"
body_min_entropy:
default: 7
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
min_topic_views_for_delete_confirm:
client: true
default: 5000
area: "posts_and_topics"
min_topic_title_length:
client: true
default: 15
min: 1
locale_default:
ja: 6
zh_CN: 6
zh_TW: 6
area: "posts_and_topics"
max_topic_title_length:
client: true
default: 255
min: 5
max: 255
area: "posts_and_topics"
title_min_entropy:
default: 10
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
allow_uppercase_posts:
default: false
locale_default:
ja: true
area: "posts_and_topics"
max_consecutive_replies:
default: 3
area: "posts_and_topics"
enable_filtered_replies_view:
default: false
client: true
area: "posts_and_topics"
title_prettify:
default: true
locale_default:
ja: false
zh_CN: false
zh_TW: false
area: "posts_and_topics"
title_remove_extraneous_space:
default: false
locale_default:
en: true
en_GB: true
area: "posts_and_topics"
title_fancy_entities:
default: true
area: "posts_and_topics"
min_personal_message_title_length:
client: true
default: 2
min: 1
area: "posts_and_topics"
max_emojis_in_title:
default: 1
area: "emojis"
default_emoji_reactions:
type: emoji_list
default: +1|heart|tada
client: true
area: "posts_and_topics"
allow_uncategorized_topics:
client: true
default: false
refresh: true
validator: "AllowUncategorizedTopicsValidator"
area: "posts_and_topics"
remove_and_replace_uncategorized:
default: false
client: true
hidden: true
upcoming_change:
status: "stable"
impact: "other,all_members"
allow_enabled_for:
- everyone
hide_settings:
- allow_uncategorized_topics
- suppress_uncategorized_badge
learn_more_url: "https://meta.discourse.org/t/-/406373"
duplicate_topic_titles:
default: "disallowed"
type: enum
enum: "DuplicateTopicTitlesSiteSetting"
area: "posts_and_topics"
allow_duplicate_topic_titles:
default: false
hidden: true
allow_duplicate_topic_titles_category:
default: false
hidden: true
min_title_similar_length:
client: true
default: 10
locale_default:
ja: 4
zh_CN: 4
zh_TW: 4
area: "posts_and_topics"
enable_system_message_replies:
default: true
area: "posts_and_topics"
personal_message_enabled_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
editing_grace_period:
default: 300
area: "posts_and_topics"
editing_grace_period_max_diff:
default: 100
area: "posts_and_topics"
editing_grace_period_max_diff_high_trust:
default: 400
area: "posts_and_topics"
staff_edit_locks_post:
default: false
area: "posts_and_topics"
shared_drafts_category:
type: category
default: ""
area: "posts_and_topics"
shared_drafts_allowed_groups:
default: "1|2" # auto group admins and moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
validator: "AtLeastOneGroupValidator"
area: "group_permissions"
post_edit_time_limit:
default: 1440
max: 10080
area: "posts_and_topics"
tl2_post_edit_time_limit:
default: 43200
max: 525600
area: "posts_and_topics"
edit_history_visible_to_public:
client: true
default: true
area: "posts_and_topics"
delete_removed_posts_after:
client: true
default: 24
max: 876000
area: "posts_and_topics"
notify_users_after_responses_deleted_on_flagged_post:
default: false
area: "posts_and_topics"
traditional_markdown_linebreaks:
client: true
default: false
area: "posts_and_topics"
enable_markdown_typographer:
client: true
default: true
area: "posts_and_topics"
enable_markdown_linkify:
client: true
default: true
area: "posts_and_topics"
markdown_linkify_tlds:
client: true
type: list
default: "com|net|org|io|onion|co|tv|ru|cn|us|uk|me|de|fr|fi|gov"
list_type: compact
validator: "MarkdownLinkifyTldsValidator"
area: "posts_and_topics"
markdown_typographer_quotation_marks:
client: true
type: list
list_type: compact
validator: "MarkdownTypographerQuotationMarksValidator"
default: "“|”|‘|’"
locale_default:
de: "„|“|‚|‘"
cs: "„|“|‚|‘"
fr: "«\xA0|\xA0»|‹\xA0|\xA0›"
area: "posts_and_topics"
suppress_reply_directly_below:
client: true
default: true
area: "posts_and_topics"
suppress_reply_directly_above:
client: true
default: true
area: "posts_and_topics"
suppress_reply_when_quoting:
default: true
area: "posts_and_topics"
remove_full_quote:
default: true
area: "posts_and_topics"
max_reply_history:
default: 1
client: true
area: "posts_and_topics"
post_undo_action_window_mins:
default: 10
area: "posts_and_topics"
enable_mentions:
default: true
client: true
area: "posts_and_topics"
max_mentions_per_post:
default: 10
area: "notifications"
max_quotes_per_post:
default: 50
min: 0
area: "posts_and_topics"
max_users_notified_per_group_mention:
default: 100
client: true
area: "notifications"
newuser_max_replies_per_topic:
default: 3
area: "posts_and_topics"
newuser_max_mentions_per_post:
default: 2
area: "notifications"
here_mention:
default: "here"
validator: "NotUsernameValidator"
client: true
area: "posts_and_topics"
max_here_mentioned:
default: 10
area: "posts_and_topics"
here_mention_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
title_max_word_length:
default: 30
locale_default:
ja: 50
ko: 50
zh_CN: 50
zh_TW: 50
area: "posts_and_topics"
allowed_link_domains:
default: ""
type: list
area: "posts_and_topics"
newuser_max_links:
default: 2
area: "posts_and_topics"
newuser_max_embedded_media:
client: true
default: 5
area: "posts_and_topics"
newuser_max_attachments:
client: true
default: 0
area: "posts_and_topics"
post_excerpt_maxlength:
default: 300
max: 1000
locale_default:
ja: 120
zh_CN: 120
zh_TW: 120
area: "posts_and_topics"
topic_excerpt_maxlength:
default: 220
max: 1000
locale_default:
ja: 120
zh_CN: 120
zh_TW: 120
area: "posts_and_topics"
default_subcategory_on_read_only_category:
client: true
default: false
area: "posts_and_topics|categories"
hide_disabled_create_topic_button:
client: true
default: false
hidden: true
show_pinned_excerpt_mobile:
client: true
default: true
area: "posts_and_topics"
show_pinned_excerpt_desktop:
client: true
default: true
area: "posts_and_topics"
display_name_on_posts:
client: true
default: false
area: "posts_and_topics"
show_time_gap_days:
default: 7
max: 36500
client: true
area: "posts_and_topics"
default_code_lang:
client: true
default: "auto"
area: "posts_and_topics"
autohighlight_all_code:
client: true
default: false
area: "posts_and_topics"
highlighted_languages:
default: "bash|c|cpp|csharp|css|diff|go|graphql|ini|java|javascript|json|kotlin|lua|makefile|markdown|objectivec|perl|php|php-template|plaintext|python|python-repl|r|ruby|rust|scss|shell|sql|swift|typescript|xml|yaml|wasm"
choices: "HighlightJs.languages"
type: list
client: true
list_type: compact
area: "posts_and_topics"
show_copy_button_on_codeblocks:
client: true
default: true
hidden: true
delete_old_hidden_posts:
default: true
area: "posts_and_topics"
enable_emoji:
default: true
client: true
area: "emojis"
enable_emoji_shortcuts:
default: true
client: true
area: "emojis"
emoji_set:
default: "twitter"
client: true
enum: "EmojiSetSiteSetting"
area: "emojis"
emoji_autocomplete_min_chars:
client: true
default: 0
locale_default:
fr: 1
area: "emojis"
enable_inline_emoji_translation:
client: true
default: false
locale_default:
zh_CN: true
zh_TW: true
ja: true
ko: true
area: "emojis"
emoji_deny_list:
type: emoji_list
default: ""
client: true
refresh: true
area: "emojis"
emoji_picker_pinned_groups:
type: list
list_type: simple
allow_any: true
default: ""
client: true
refresh: true
validator: "EmojiPickerPinnedGroupsValidator"
area: "emojis"
enable_gifs:
default: false
client: true
area: "gifs"
klipy_api_key:
default: ""
secret: true
area: "gifs"
klipy_file_detail:
default: "webp"
client: true
area: "gifs"
type: enum
choices:
- webp
- gif
klipy_content_filter:
default: "high"
client: true
area: "gifs"
type: enum
choices:
- high
- medium
- low
- "off"
klipy_country:
default: "US"
client: true
area: "gifs"
klipy_locale:
default: "en_US"
client: true
area: "gifs"
klipy_limit_infinite_search_results:
default: false
client: true
area: "gifs"
klipy_max_results_limit:
default: 240
client: true
area: "gifs"
min: 24
approve_post_count:
default: 0
area: "posts_and_topics"
approve_unless_allowed_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
approve_new_topics_unless_allowed_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
approve_suspect_users:
default: true
area: "posts_and_topics"
approve_unless_staged:
default: false
area: "posts_and_topics"
notify_about_queued_posts_after:
type: float
default: 24
min: 0
area: "notifications"
auto_close_messages_post_count:
default: 500
auto_close_topics_post_count:
default: 10000
auto_close_topics_create_linked_topic:
default: true
area: "posts_and_topics"
code_formatting_style:
client: true
type: enum
default: "code-fences"
choices:
- code-fences
- 4-spaces-indent
area: "posts_and_topics"
embed_any_origin:
default: false
area: "embedding"
embed_topics_list:
default: false
area: "embedding"
embed_set_canonical_url:
default: false
area: "embedding"
embed_unlisted:
default: false
area: "embedding"
import_embed_unlisted:
default: true
area: "embedding"
embed_truncate:
default: true
area: "embedding"
embed_support_markdown:
default: false
area: "embedding"
allowed_embed_selectors:
default: ""
area: "embedding"
allowed_href_schemes:
client: true
default: ""
type: list
list_type: compact
area: "posts_and_topics"
max_allowed_message_recipients:
default: 30
min: 1
area: "posts_and_topics"
disable_watched_word_checking_in_user_fields:
hidden: true
default: false
watched_words_regular_expressions:
client: true
default: false
enable_fast_edit:
default: true
client: true
area: "posts_and_topics"
old_post_notice_days:
default: 14
max: 36500
client: true
area: "posts_and_topics"
new_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
area: "posts_and_topics"
returning_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
area: "posts_and_topics"
returning_users_days:
default: 120
max: 36500
area: "posts_and_topics"
skip_review_media_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
blur_tl0_flagged_posts_media:
default: true
client: true
area: "posts_and_topics"
enable_page_publishing:
default: false
area: "posts_and_topics"
show_published_pages_login_required:
default: false
area: "posts_and_topics"
skip_auto_delete_reply_likes:
default: 5
area: "posts_and_topics"
review_every_post:
default: false
area: "posts_and_topics"
max_draft_length:
default: 150_000
max: 150_000
hidden: true
max_drafts_per_user:
default: 10_000
hidden: true
max_form_template_title_length:
default: 100
min: 5
max: 255
area: "posts_and_topics"
depends_on:
- "enable_form_templates"
depends_behavior: "hidden"
max_form_template_content_length:
default: 5000
max: 150000
area: "posts_and_topics"
depends_on:
- "enable_form_templates"
depends_behavior: "hidden"
show_preview_for_form_templates:
client: true
default: true
area: "posts_and_topics"
depends_on:
- "enable_form_templates"
depends_behavior: "hidden"
group_pm_user_limit:
default: 1000
type: integer
min: 1
hidden: true
content_localization:
allow_user_locale:
client: true
default: true
area: "localization"
content_localization_enabled:
client: true
default: false
area: "localization"
content_localization_supported_locales:
default: ""
type: list
client: true
list_type: locale
allow_any: false
enum: "LocaleSiteSetting"
area: "localization"
validator: "ContentLocalizationLocalesValidator"
content_localization_language_switcher:
type: enum
choices:
- none
- anonymous
- all
default: none
client: true
refresh: true
area: "localization"
validator: "LanguageSwitcherSettingValidator"
depends_on:
- "content_localization_enabled"
content_localization_allowed_groups:
type: group_list
list_type: compact
allow_any: false
client: true
default: "1|2" # admin, moderator
disallowed_groups: "4"
area: "localization"
content_localization_allow_author_localization:
default: true
client: true
area: "localization"
content_localization_max_locales:
default: 10
client: true
type: integer
hidden: true
content_localization_crawler_param:
default: false
area: "localization"
validator: "ContentLocalizationCrawlerParamValidator"
content_localization_use_default_locale_when_unsupported:
default: true
area: "localization"
set_locale_from_accept_language_header:
default: false
client: true
validator: "AllowUserLocaleEnabledValidator"
area: "localization"
depends_on:
- "allow_user_locale"
set_locale_from_cookie:
default: false
client: true
validator: "AllowUserLocaleEnabledValidator"
area: "localization"
depends_on:
- "allow_user_locale"
set_locale_from_param:
default: false
client: true
validator: "AllowUserLocaleEnabledValidator"
area: "localization"
depends_on:
- "allow_user_locale"
nested_replies:
nested_replies_enabled:
default: false
client: true
area: "posts_and_topics"
nested_replies_default:
default: false
client: true
area: "posts_and_topics"
depends_on:
- "nested_replies_enabled"
depends_behavior: "hidden"
nested_replies_hot_sort_enabled:
default: false
client: true
area: "posts_and_topics"
depends_on:
- "nested_replies_enabled"
depends_behavior: "hidden"
nested_replies_hot_like_weight:
default: 1.0
type: float
min: 0
max: 100
hidden: true
nested_replies_hot_reply_weight:
default: 2.0
type: float
min: 0
max: 100
hidden: true
nested_replies_hot_freshness_max_bonus:
default: 3.0
type: float
min: 0
max: 100
hidden: true
nested_replies_hot_freshness_half_life_hours:
default: 168
type: float
min: 1
max: 8760
hidden: true
nested_replies_hot_child_penalty:
default: 0.25
type: float
min: 0.01
max: 100
hidden: true
nested_replies_hot_small_topic_post_limit:
default: 5
type: integer
min: 0
max: 10000
hidden: true
nested_replies_hot_max_inactivity_days:
default: 30
type: integer
min: 1
max: 3650
hidden: true
nested_replies_hot_snapshot_ttl_minutes:
default: 30
type: integer
min: 1
max: 10080
hidden: true
nested_replies_hot_max_stale_age_days:
default: 30
type: integer
min: 1
max: 3650
hidden: true
nested_replies_hot_refresh_requests_per_minute:
default: 20
type: integer
min: 1
max: 10000
hidden: true
nested_replies_hot_max_topics_per_run:
default: 10
type: integer
min: 1
max: 1000
hidden: true
nested_replies_hot_max_job_runtime_ms:
default: 10000
type: integer
min: 100
max: 60000
hidden: true
nested_replies_hot_max_statement_timeout_ms:
default: 10000
type: integer
min: 100
max: 60000
hidden: true
nested_replies_hot_lock_timeout_ms:
default: 1000
type: integer
min: 1
max: 10000
hidden: true
nested_replies_hot_failure_cooldown_minutes:
default: 60
type: integer
min: 1
max: 10080
hidden: true
nested_replies_hot_max_pending_topics:
default: 1000
type: integer
min: 1
max: 100000
hidden: true
nested_replies_hot_max_queue_age_minutes:
default: 60
type: integer
min: 1
max: 10080
hidden: true
nested_replies_hot_preload_depth_penalty:
default: 0.25
type: float
min: 0
max: 100
hidden: true
nested_replies_default_sort:
default: "top"
client: true
type: enum
choices:
- top
- hot
- new
- old
area: "posts_and_topics"
depends_on:
- "nested_replies_enabled"
depends_behavior: "hidden"
nested_replies_max_depth:
default: 3
client: true
type: integer
min: 1
max: 10
area: "posts_and_topics"
depends_on:
- "nested_replies_enabled"
depends_behavior: "hidden"
nested_replies_cap_nesting_depth:
default: true
client: true
area: "posts_and_topics"
depends_on:
- "nested_replies_enabled"
depends_behavior: "hidden"
nested_replies_backfill_batch_size:
default: 100
type: integer
min: 1
max: 10000
hidden: true
nested_replies_stats_maintenance_enabled:
default: false
hidden: true
email:
email_time_window_mins:
default: 10
client: true
area: "email"
personal_email_time_window_seconds:
default: 20
area: "email"
email_posts_context:
default: 5
area: "email"
digest_min_excerpt_length:
default: 100
locale_default:
ja: 50
zh_CN: 50
zh_TW: 50
area: "email"
digest_topics:
default: 5
min: 1
max: 20
area: "email"
digest_posts:
default: 5
min: 0
max: 20
area: "email"
digest_other_topics:
default: 5
min: 0
max: 20
area: "email"
suppress_digest_email_after_days:
default: 180
max: 36500
area: "email"
digest_suppress_categories:
type: category_list
default: ""
area: "email|categories"
digest_suppress_tags:
type: tag_list
default: ""
area: "email"
disable_digest_emails:
default: false
client: true
area: "email"
apply_custom_styles_to_digest:
default: true
area: "email"
email_accent_bg_color:
type: color
default: "#2F70AC"
validator: "CssColorValidator"
area: "email"
email_accent_fg_color:
type: color
default: "#FFFFFF"
validator: "CssColorValidator"
area: "email"
email_link_color:
type: color
default: "#006699"
validator: "CssColorValidator"
area: "email"
show_topic_featured_link_in_digest:
default: false
area: "email"
email_custom_headers:
default: "Auto-Submitted: auto-generated"
area: "email"
email_subject:
default: "[%{site_name}] %{optional_pm}%{optional_cat}%{topic_title}"
area: "email"
simple_email_subject:
default: false
client: true
reply_by_email_enabled:
default: false
validator: "ReplyByEmailEnabledValidator"
reply_by_email_address:
default: ""
validator: "ReplyByEmailAddressValidator"
alternative_reply_by_email_addresses:
default: ""
validator: "AlternativeReplyByEmailAddressesValidator"
area: "email"
find_related_post_with_key:
default: true
area: "email"
manual_polling_enabled:
default: false
pop3_polling_enabled:
default: false
validator: "POP3PollingEnabledSettingValidator"
pop3_polling_ssl: true
pop3_polling_openssl_verify: true
pop3_polling_period_mins: 5
pop3_polling_host: ""
pop3_polling_port: 995
pop3_polling_username: ""
pop3_polling_password:
default: ""
secret: true
pop3_polling_delete_from_server: true
log_mail_processing_failures: false
incoming_email_prefer_html:
default: true
area: "email"
strip_incoming_email_lines:
default: false
area: "email"
email_in:
default: false
client: true
area: "email"
email_in_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
email_in_authserv_id:
default: ""
area: "email"
email_in_spam_header:
type: enum
default: "none"
choices:
- none
- X-Spam-Flag
- X-Spam-Status
- X-SES-Spam-Verdict
area: "email"
enable_smtp:
default: false
client: true
email_prefix:
default: ""
area: "email"
email_site_title:
default: ""
area: "email"
disable_emails:
client: true
type: enum
default: "no"
choices:
- "no"
- "yes"
- "non-staff"
area: "email"
strip_images_from_short_emails:
default: true
area: "email"
short_email_length:
default: 2800
area: "email"
display_name_on_email_from:
default: true
area: "email"
unsubscribe_via_email:
default: true
area: "email"
unsubscribe_via_email_footer:
default: false
area: "email"
disallow_reply_by_email_after_days:
default: 90
max: 36500
area: "email"
delete_email_logs_after_days:
default: 90
max: 36500
area: "email"
max_emails_per_day_per_user:
default: 100
area: "email"
enable_staged_users:
default: true
area: "email"
email_in_allow_system_user_fallback:
default: false
hidden: true
maximum_staged_users_per_email:
default: 10
area: "email"
maximum_recipients_per_new_group_email:
default: 10
min: 1
area: "email"
auto_generated_allowlist:
default: ""
type: list
list_type: simple
area: "email"
block_auto_generated_emails:
default: true
area: "email"
ignore_by_title:
type: list
list_type: simple
default: ""
area: "email"
ignore_by_title_regex:
default: ""
area: "email"
mailgun_api_key:
default: ""
regex: '^((key-)?\h{32}|\h{32}-\h{8}-\h{8})$'
secret: true
sendgrid_verification_key:
default: ""
secret: true
aws_sns_topic_arn_allowlist:
default: ""
type: list
list_type: simple
mailjet_webhook_token:
default: ""
secret: true
mailpace_webhook_token:
default: ""
secret: true
mandrill_authentication_key:
default: ""
secret: true
postmark_webhook_token:
default: ""
secret: true
sparkpost_webhook_token:
default: ""
secret: true
bounce_score_threshold:
client: true
default: 4
min: 1
area: "email"
bounce_score_erode_on_send:
default: 0.1
hidden: true
soft_bounce_score:
default: 1
min: 1
area: "email"
hard_bounce_score:
default: 2
min: 2
area: "email"
reset_bounce_score_after_days:
default: 30
max: 36500
area: "email"
blocked_attachment_content_types:
type: list
default: "pkcs7|x-vcard|pgp-keys|pgp-signature"
list_type: compact
area: "email"
blocked_attachment_filenames:
type: list
default: "smime.p7s|signature.asc|winmail.dat"
list_type: compact
area: "email"
forwarded_emails_behaviour:
type: enum
default: hide
choices:
- hide
- quote
- create_replies
area: "email"
always_show_trimmed_content:
default: false
area: "email"
trim_incoming_emails:
default: true
area: "email"
private_email:
default: false
area: "email"
email_custom_template:
default: ""
hidden: true
email_custom_css:
default: ""
hidden: true
email_custom_css_compiled:
default: ""
hidden: true
email_total_attachment_size_limit_kb:
default: 0
max: 51200
type: file_size_restriction
area: "email"
post_excerpts_in_emails:
default: false
area: "email"
raw_email_max_length:
default: 220000
area: "email"
raw_rejected_email_max_length:
default: 4000
area: "email"
delete_rejected_email_after_days:
default: 90
validator: "DeleteRejectedEmailAfterDaysValidator"
area: "email"
enable_secondary_emails:
client: true
default: true
hidden: true
max_participant_names:
default: 10
hidden: true
require_change_email_confirmation:
default: false
area: "email"
allow_email_invites:
default: true
client: true
area: "email"
hidden: true
view_raw_email_allowed_groups:
type: group_list
list_type: compact
default: "1|2"
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
files:
max_image_size_kb:
client: true
default: 10240
max: 102400
type: file_size_restriction
max_attachment_size_kb:
client: true
default: 10240
max: 1024000
type: file_size_restriction
system_user_max_attachment_size_kb:
default: 0
max: 4096000
type: file_size_restriction
hidden: true
max_image_megapixels:
default: 40
min: 5
max: 150
max_export_file_size_kb:
hidden: true
default: 50000
max: 1024000
type: file_size_restriction
theme_authorized_extensions:
default: "wasm|jpg|jpeg|png|woff|woff2|svg|eot|ttf|otf|gif|webp|avif|js"
type: list
list_type: file_types
authorized_extensions:
client: true
default: "jpg|jpeg|png|gif|heic|heif|webp|avif|svg|jxl"
refresh: true
type: list
list_type: file_types
authorized_extensions_for_staff:
client: true
default: ""
refresh: true
type: list
list_type: file_types
export_authorized_extensions:
hidden: true
default: "zip"
type: list
list_type: compact
responsive_post_image_sizes:
default: "1|1.5|2"
type: list
list_type: compact
max_image_width:
client: true
default: 690
max_image_height:
client: true
default: 500
download_remote_images_to_local:
default: true
download_remote_images_threshold: 10
disabled_image_download_domains:
type: list
list_type: simple
default: ""
block_hotlinked_media:
default: false
block_hotlinked_media_exceptions:
default: ""
type: list
regex: '\A((https?:\/\/.+)(\|https?:\/\/.+[|$])*)?\z'
create_thumbnails: true
animated_topic_thumbnails:
default: false
clean_up_uploads: true
clean_orphan_uploads_grace_period_hours:
default: 48
max: 168
purge_deleted_uploads_grace_period_days:
default: 30
max: 36500
prevent_anons_from_downloading_files:
default: false
client: true
secure_uploads:
default: false
client: true
secure_uploads_allow_embed_images_in_emails:
default: true
secure_uploads_max_email_embed_image_size_kb:
default: 1024
min: 1
max: 10240
type: file_size_restriction
secure_uploads_pm_only:
default: false
hidden: true
client: true
enable_s3_uploads:
default: false
client: true
enable_s3_transfer_acceleration:
default: false
hidden: true
s3_use_iam_profile:
default: false
s3_access_key_id:
default: ""
secret: true
s3_max_age:
default: 31556952
min: 60
max: 31556952
hidden: true
s3_stale_while_revalidate:
default: 31556952
min: 60
max: 31556952
hidden: true
s3_secret_access_key:
default: ""
secret: true
s3_role_arn:
default: ""
min: 20
max: 2048 # https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
s3_role_session_name:
default: ""
min: 2
max: 64
regex: '^[\w+=,.@\-]+$' # https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
s3_region:
default: "us-east-1"
enum: "S3RegionSiteSetting"
s3_upload_bucket:
default: ""
regex: '^[a-z0-9\-\/_]+$' # can't use '.' when using HTTPS
s3_endpoint:
default: ""
regex: '^https?:\/\/.+[^\/]$'
s3_http_continue_timeout:
default: 1
hidden: true
s3_install_cors_rule:
default: true
hidden: true
s3_cdn_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
s3_use_cdn_url_for_all_uploads:
default: false
s3_configure_tombstone_policy:
default: true
s3_use_acls:
default: true
s3_enable_access_control_tags:
default: false
hidden: true
s3_access_control_tag_key:
default: "discourse:acl"
hidden: true
min: 1
max: 128
s3_access_control_tag_public_value:
default: "public"
hidden: true
min: 1
max: 256
s3_access_control_tag_private_value:
default: "private"
hidden: true
min: 1
max: 256
s3_presigned_get_url_expires_after_seconds:
default: 300
hidden: true
min: 60
max: 604800
allow_profile_backgrounds:
client: true
default: true
automatically_download_gravatars: true
uploaded_avatars_allowed_groups:
default: "10"
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
default_avatars:
default: ""
type: url_list
client: true
avatar_sizes:
default: "24|48|72|96|144|288"
type: list
list_type: compact
client: true
hidden: true
external_system_avatars_enabled:
default: true
client: true
hidden: true
validator: "ExternalSystemAvatarsValidator"
external_system_avatars_url:
default: "/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png"
client: true
regex: '^((https?:)?\/)?\/.+[^\/]'
external_emoji_url:
default: ""
client: true
area: "emojis"
restrict_letter_avatar_colors:
default: ""
type: list
list_type: compact
validator: "ColorListValidator"
selectable_avatars_mode:
default: disabled
client: true
type: enum
choices:
- disabled
- everyone
- tl1
- tl2
- tl3
- tl4
- staff
- no_one
validator: "SelectableAvatarsModeValidator"
selectable_avatars_random_on_signup:
default: true
selectable_avatars:
default: ""
client: true
type: uploaded_image_list
allow_all_attachments_for_group_messages: false
image_quality:
enum: "ImageQualitySetting"
client: true
default: 90
png_to_jpg_quality:
default: 0
min: 0
max: 100
hidden: true
recompress_original_jpg_quality:
default: 0
min: 0
max: 100
hidden: true
image_preview_jpg_quality:
default: 0
min: 0
max: 100
hidden: true
allow_staff_to_upload_any_file_in_pm:
default: true
client: true
strip_image_metadata: true
min_ratio_to_crop:
type: float
default: 0.22
min: 0
max: 1
simultaneous_uploads:
client: true
default: 15
min: 0
max: 30
decompressed_theme_max_file_size_mb:
default: 1000
hidden: true
decompressed_backup_max_file_size_mb:
default: 100000
hidden: true
composer_media_optimization_image_enabled:
default: true
client: true
composer_media_optimization_image_bytes_optimization_threshold:
default: 524288
hidden: true
client: true
composer_media_optimization_image_resize_dimensions_threshold:
default: 1920
hidden: true
client: true
composer_media_optimization_image_resize_width_target:
default: 1920
hidden: true
client: true
composer_media_optimization_image_resize_pre_multiply:
default: false
hidden: true
client: true
composer_media_optimization_image_resize_linear_rgb:
default: false
hidden: true
client: true
composer_media_optimization_image_encode_quality:
default: 0
client: true
hidden: true
composer_media_optimization_image_convert_enabled:
default: false
hidden: true
client: true
upcoming_change:
status: "alpha"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/402705"
allow_enabled_for:
- everyone
composer_media_optimization_gif_conversion_threshold:
default: 512000
hidden: true
client: true
composer_media_optimization_debug_mode:
default: false
client: true
hidden: true
composer_ios_media_optimisation_image_enabled:
default: true
client: true
hidden: true
video_thumbnails_enabled:
default: true
client: true
hidden: true
video_conversion_enabled:
default: false
validator: "VideoConversionEnabledValidator"
video_conversion_service:
type: enum
default: "aws_mediaconvert"
choices:
- "aws_mediaconvert"
mediaconvert_role_arn:
default: ""
mediaconvert_endpoint:
default: ""
hidden: true
mediaconvert_output_subdirectory:
default: "transcoded"
validator: "MediaconvertOutputSubdirectoryValidator"
trust:
default_trust_level:
default: 0
enum: "TrustLevelSetting"
area: "trust_levels"
default_invitee_trust_level:
default: 1
enum: "TrustLevelSetting"
area: "trust_levels"
create_topic_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
topic_timers_allowed_groups:
default: "1|2|14" # auto group admins, moderators, trust_level_4
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
edit_wiki_post_allowed_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
edit_post_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
self_wiki_allowed_groups:
default: "1|2|13" # auto group admins, moderators, trust_level_3
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
send_email_messages_allowed_groups:
default: "1|2|14" # auto group admins, moderators, trust_level_4
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
flag_post_allowed_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "flags|group_permissions"
allow_all_users_to_flag_illegal_content:
default: false
area: "flags"
client: true
email_address_to_report_illegal_content:
default: ""
area: "flags"
client: true
post_links_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
embedded_media_post_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
profile_background_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
user_card_background_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
invite_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
ignore_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
allow_flagging_staff: true
send_tl1_welcome_message: true
send_tl2_promotion_message: true
tl1_requires_topics_entered:
default: 5
area: "trust_levels"
tl1_requires_read_posts:
default: 30
client: true
area: "trust_levels"
tl1_requires_time_spent_mins:
default: 10
area: "trust_levels"
tl2_requires_topics_entered:
default: 20
area: "trust_levels"
tl2_requires_read_posts:
default: 100
area: "trust_levels"
tl2_requires_time_spent_mins:
default: 60
area: "trust_levels"
tl2_requires_days_visited:
default: 15
max: 36500
area: "trust_levels"
tl2_requires_likes_received:
default: 1
area: "trust_levels"
tl2_requires_likes_given:
default: 1
area: "trust_levels"
tl2_requires_topic_reply_count:
default: 3
area: "trust_levels"
tl3_time_period:
default: 100
min: 1
max: 1000000
area: "trust_levels"
tl3_requires_days_visited:
default: 50
max: 36500
area: "trust_levels"
tl3_requires_topics_replied_to:
default: 10
area: "trust_levels"
tl3_requires_topics_viewed:
default: 25
max: 100
area: "trust_levels"
tl3_requires_topics_viewed_cap:
default: 250
area: "trust_levels"
tl3_requires_posts_read:
default: 25
max: 100
area: "trust_levels"
tl3_requires_posts_read_cap:
default: 2000
max: 99000
area: "trust_levels"
tl3_requires_topics_viewed_all_time:
default: 200
area: "trust_levels"
tl3_requires_posts_read_all_time:
default: 500
area: "trust_levels"
tl3_requires_max_flagged:
default: 5
area: "trust_levels"
tl3_promotion_min_duration:
default: 100
max: 10000
area: "trust_levels"
tl3_requires_likes_given:
default: 30
area: "trust_levels"
tl3_requires_likes_received:
default: 20
area: "trust_levels"
tl3_links_no_follow:
default: false
client: true
area: "trust_levels"
delete_all_posts_and_topics_allowed_groups:
default: "1|2" # auto group admins, moderators
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
edit_all_topic_groups:
default: "13"
type: group_list
disallowed_groups: "4"
area: "group_permissions"
edit_all_post_groups:
default: "1|2|14" # auto group admins, moderators, and TL4
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
disallowed_groups: "4"
area: "group_permissions"
security:
detailed_404: false
enforce_second_factor_on_external_auth:
client: true
default: true
area: "login"
enforce_second_factor:
client: true
type: enum
default: "no"
choices:
- "no"
- "staff"
- "all"
area: "login"
force_https:
default: false
same_site_cookies:
default: Lax
hidden: true
type: enum
choices:
- Lax
- Strict
- Disabled
- None
regex: "^(Lax|Strict|Disabled|None)$"
enable_escaped_fragments: true
allow_index_in_robots_txt: true
allow_indexing_non_canonical_urls:
default: true
hidden: true
moderators_manage_categories:
default: false
client: true
moderators_manage_groups:
default: false
client: true
moderators_change_post_ownership:
client: true
default: false
change_post_ownership_allowed_groups:
type: group_list
list_type: compact
default: ""
disallowed_groups: "4"
moderators_view_emails:
client: true
default: false
moderators_view_ips:
default: true
client: true
moderators_view_sso_details:
default: false
client: true
moderators_change_trust_levels:
default: true
non_crawler_user_agents:
hidden: true
default: "trident|webkit|gecko|chrome|safari|msie|opera|goanna|discourse"
type: list
list_type: compact
crawler_user_agents:
hidden: true
default: "rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor|lighthouse|google-inspectiontool|gptbot|claudebot|anthropic-ai|brightbot|googleother|yeti|perplexity-user|claude-user"
type: list
list_type: compact
browser_update_user_agents:
hidden: true
default: "MSIE 6|MSIE 7|MSIE 8|MSIE 9|Xbox|PlayStation"
type: list
list_type: compact
crawler_check_bypass_agents:
hidden: true
default: "cubot|MetaIAB"
# 38365/55967=Baidu, 140577=Ahrefs, 210743=Babbar, 7941=Internet Archive,
# 13238=Yandex, 45102=Alibaba
crawler_asns:
hidden: true
default: "38365|55967|140577|210743|7941|13238|45102"
type: list
list_type: compact
# 16509/14618=AWS, 16276=OVH, 136907/55990=Huawei Cloud,
# 24940=Hetzner, 396982=Google Cloud, 8075=Microsoft, 51747=Internet Vikings,
# 13335=Cloudflare, 45090=Tencent Cloud, 23724=China Telecom IDC,
# 37963=Alibaba Cloud, 55960=Sinnet, 203020=HostRoyale,
# 63835=China Telecom Changsha IDC, 58540=China Telecom Jinan IDC,
# 58541=China Telecom Qingdao IDC, 58563=China Telecom Hubei IDC,
# 58461=China Telecom Hangzhou IDC
crawler_detection_datacenter_asns:
hidden: true
default: "16509|16276|14618|136907|24940|396982|8075|51747|13335|45090|55990|23724|37963|55960|203020|63835|58540|58541|58563|58461"
type: list
list_type: compact
cors_origins:
default: ""
type: list
list_type: simple
keep_old_ip_address_count:
default: 0
hidden: true
use_admin_ip_allowlist:
default: false
client: true
blocked_ip_blocks:
default: ""
type: list
list_type: compact
allowed_internal_hosts:
default: ""
type: list
allowed_onebox_iframes:
default: "*"
type: list
allow_any: false
choices: "['*'] + Onebox::Engine.all_iframe_origins"
allowed_iframes:
default: "https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/*/embed/preview/|https://www.instagram.com/|https://open.spotify.com/"
type: list
list_type: simple
client: true
validator: "AllowedIframesValidator"
allowed_crawler_user_agents:
type: list
default: ""
list_type: compact
requires_confirmation: "simple"
blocked_crawler_user_agents:
type: list
default: "mauibot|semrushbot|ahrefsbot|blexbot|seo spider"
list_type: compact
requires_confirmation: "simple"
slow_down_crawler_user_agents:
type: list
default: "gptbot|claudebot|anthropic-ai|brightbot"
list_type: compact
requires_confirmation: "simple"
slow_down_crawler_rate: 60
llms_txt:
default: ""
type: upload
authorized_extensions: "txt|md"
max_file_size_kb: 512
content_security_policy:
default: true
requires_confirmation: "simple_on_disable"
content_security_policy_report_only:
default: false
content_security_policy_report_uri:
default: ""
regex: '\Ahttps?://[^\s;,]+\z'
regex_error: "site_settings.errors.invalid_csp_report_uri"
content_security_policy_frame_ancestors:
default: true
content_security_policy_script_src:
type: simple_list
default: ""
validator: "CspScriptSrcValidator"
invalidate_inactive_admin_email_after_days:
default: 365
min: 0
max: 36500
allow_embedding_site_in_an_iframe:
default: false
hidden: true
send_old_credential_reminder_days:
default: 0
hidden: true
disable_onebox_media_download_controls:
default: false
hidden: true
can_permanently_delete:
default: false
client: true
requires_confirmation: "simple_on_enable"
suppress_secured_categories_from_admin:
default: false
include_secure_categories_in_tag_counts:
default: false
display_personal_messages_tag_counts:
default: false
cross_origin_opener_policy_header:
default: "same-origin-allow-popups"
type: enum
choices:
- "unsafe-none"
- "same-origin"
- "same-origin-allow-popups"
hidden: true
cross_origin_opener_unsafe_none_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
hidden: true
area: "group_permissions"
cache_control_bfcache_compatibility:
default: false
client: true
hidden: true
onebox:
post_onebox_maxlength:
default: 500
locale_default:
ja: 200
zh_CN: 200
zh_TW: 200
blocked_onebox_domains:
default: ""
type: host_list
list_type: compact
max_oneboxes_per_post:
default: 50
client: true
allowed_inline_onebox_domains:
default: ""
type: list
list_type: compact
enable_inline_onebox_on_all_domains:
default: true
inline_onebox_user_agent:
default: ""
hidden: true
onebox_user_agent:
default: ""
hidden: true
onebox_locale:
default: ""
type: enum
enum: "OneboxLocaleSiteSetting"
area: "localization"
force_custom_user_agent_hosts:
default: "http://codepen.io"
type: list
force_get_hosts:
default: "us.battle.net|news.yahoo.com|*.medium.com"
type: list
hidden: true
facebook_app_access_token:
default: ""
secret: true
block_onebox_on_redirect:
default: false
github_onebox_access_tokens:
default: ""
type: list
secret: true
list_type: secret
spam:
add_rel_nofollow_to_user_content: true
hide_post_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 6
cooldown_minutes_after_hiding_posts: 10
silence_new_user_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 3
area: "flags"
num_users_to_silence_new_user:
default: 3
area: "flags"
notify_mods_when_user_silenced: false
flag_sockpuppets:
default: false
area: "flags"
newuser_spam_host_threshold: 3
allowed_spam_host_domains:
default: ""
type: list
list_type: simple
levenshtein_distance_spammer_emails:
default: 2
max: 3
max_new_accounts_per_registration_ip: 3
min_ban_entries_for_roll_up: 5
max_age_unmatched_emails: 365
max_age_unmatched_ips: 365
num_flaggers_to_close_topic:
default: 5
area: "flags"
auto_close_topic_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 9
num_hours_to_close_topic:
default: 4
min: 1
auto_respond_to_flag_actions:
default: true
area: "flags"
min_first_post_typing_time:
default: 3000
hidden: true
fast_typing_threshold:
type: enum
default: standard
choices:
- disabled
- low
- standard
- high
auto_silence_fast_typers_on_first_post: true
auto_silence_fast_typers_max_trust_level:
default: 0
enum: "TrustLevelSetting"
auto_silence_first_post_regex: ""
high_trust_flaggers_auto_hide_posts:
default: true
area: "flags"
cooldown_hours_until_reflag:
default: 24
min: 0
slow_mode_prevents_editing: true
reviewable_claiming:
client: true
type: enum
default: disabled
choices:
- disabled
- optional
- required
reviewable_default_topics:
default: false
client: true
reviewable_default_visibility:
client: true
type: enum
default: low
enum: "ReviewablePrioritySetting"
reviewable_low_priority_threshold:
default: 0
min: 0
reviewable_revision_reasons:
default: "Duplicate|Does not meet posting guidelines"
type: list
client: true
rate_limits:
unique_posts_mins: 5
rate_limit_create_topic: 15
rate_limit_create_post: 5
rate_limit_new_user_create_post: 30
rate_limit_search_anon_global_per_minute:
hidden: true
default: 150
rate_limit_search_anon_user_per_minute:
hidden: true
default: 15
rate_limit_search_anon_global_per_second:
hidden: true
default: 8
rate_limit_search_anon_user_per_second:
hidden: true
default: 2
rate_limit_search_user:
hidden: true
default: 30
max_topics_per_day: 20
max_personal_messages_per_day: 20
limit_admin_personal_messages_per_day:
default: 0
min: 0
hidden: true
max_likes_per_day: 50
max_bookmarks_per_day: 20
max_flags_per_day:
default: 20
area: "flags"
max_edits_per_day: 30
max_invites_per_day: 10
max_topic_invitations_per_day: 30
max_topic_invitations_per_minute: 5
max_topics_in_first_day: 3
max_replies_in_first_day: 10
tl1_max_topics_in_first_day: 6
tl1_max_replies_in_first_day: 30
tl2_additional_likes_per_day_multiplier: 1.5
tl3_additional_likes_per_day_multiplier: 2
tl4_additional_likes_per_day_multiplier: 3
tl2_additional_edits_per_day_multiplier: 1.5
tl3_additional_edits_per_day_multiplier: 2
tl4_additional_edits_per_day_multiplier: 3
tl2_additional_flags_per_day_multiplier:
default: 1.5
area: "flags"
tl3_additional_flags_per_day_multiplier:
default: 2
area: "flags"
tl4_additional_flags_per_day_multiplier:
default: 3
area: "flags"
alert_admins_if_errors_per_minute:
client: true
default: 0
alert_admins_if_errors_per_hour:
client: true
default: 0
max_prints_per_hour_per_user:
default: 5
client: true
min: 0
max_logins_per_ip_per_hour:
min: 1
default: 30
max_logins_per_ip_per_minute:
min: 1
default: 6
max_post_deletions_per_minute:
min: 0
default: 2
max_post_deletions_per_day:
min: 0
default: 10
invite_link_max_redemptions_limit:
min: 1
max: 1000000
default: 5000
client: true
invite_link_max_redemptions_limit_users:
min: 1
max: 1000000
default: 10
client: true
max_allowed_secondary_emails:
default: 10
hidden: true
client: true
max_batch_presign_multipart_per_minute:
default: 20
hidden: true
max_presigned_put_per_minute:
default: 10
hidden: true
max_create_multipart_per_minute:
default: 10
hidden: true
max_complete_multipart_per_minute:
default: 10
hidden: true
max_uploads_per_minute:
default: 10
hidden: true
user_api_key_clients_create_per_day:
default: 3
min: 1
max: 10
hidden: true
developer:
force_hostname:
hidden: true
default: ""
port:
hidden: true
default: ""
enable_chunked_encoding:
hidden: true
client: true
default: true
long_polling_base_url:
hidden: true
client: true
default: "/"
background_polling_interval:
hidden: true
client: true
default: 60000
max: 99000
polling_interval:
hidden: true
client: true
default: 3000
max: 99000
anon_polling_interval:
hidden: true
client: true
default: 25000
max: 99000
active_user_rate_limit_secs:
default: 60
hidden: true
verbose_localization:
default: false
client: true
hidden: true
top_topics_formula_log_views_multiplier:
default: 2
hidden: true
top_topics_formula_first_post_likes_multiplier:
default: 0.5
hidden: true
top_topics_formula_least_likes_per_post_multiplier:
default: 3
hidden: true
rebake_old_posts_count:
hidden: true
default: 80
min: 1
migrate_to_new_scheme:
hidden: true
default: false
max_new_topics:
default: 500
client: true
hidden: true
wizard_enabled:
default: true
hidden: true
bypass_wizard_check:
default: false
hidden: true
bootstrap_error_pages:
hidden: true
default: false
enable_safe_mode:
default: true
client: true
include_associated_account_ids:
default: false
hidden: true
max_sidebar_section_links:
default: 50
hidden: true
instrument_gc_stat_per_request:
default: false
hidden: true
instrument_image_processing:
default: false
hidden: true
warn_critical_js_deprecations:
default: true
client: true
hidden: true
warn_critical_js_deprecations_message:
default: ""
client: true
hidden: true
custom_flags_limit:
default: 50
hidden: true
client: true
site_setting_verbose_client_logging:
default: false
client: true
hidden: true
navigation:
navigation_menu:
client: true
default: "sidebar"
type: enum
enum: "NavigationMenuSiteSetting"
area: "navigation"
default_navigation_menu_categories:
type: category_list
default: ""
client: true
area: "navigation|categories"
default_navigation_menu_tags:
type: tag_list
default: ""
client: true
area: "navigation"
default_sidebar_switch_panel_position:
default: "bottom"
type: enum
client: true
choices:
- "top"
- "bottom"
area: "navigation"
sidebar_seeded:
default: false
hidden: true
embedding:
embed_full_app:
default: false
client: true
area: "embedding"
embed_full_app_signin_flow:
default: true
client: true
area: "embedding"
suppress_third_party_analytics_in_embed:
default: true
area: "embedding"
embed_by_username:
default: ""
type: username
hidden: true
embed_post_limit:
default: 100
hidden: true
embed_topic_limit_per_page:
default: 200
hidden: true
embed_title_scrubber:
default: ""
hidden: true
blocked_embed_selectors:
default: ""
hidden: true
allowed_embed_classnames:
default: "emoji"
hidden: true
legal:
tos_url:
client: true
default: ""
area: "legal"
privacy_policy_url:
client: true
default: ""
area: "legal"
faq_url:
client: true
default: ""
area: "legal"
log_anonymizer_details:
default: true
area: "legal"
display_eu_visitor_stats:
default: false
client: true
area: "legal"
backups:
site_archived:
default: false
client: true
enable_backups:
default: true
client: true
allow_restore:
default: false
backup_location:
default: "local"
type: enum
enum: "BackupLocationSiteSetting"
client: true
maximum_backups:
client: true
default: 5
remove_older_backups:
client: true
default: ""
backup_frequency:
min: 0
max: 30
default: 7
s3_backup_bucket:
default: ""
regex: '^[a-z0-9\-\/]+$' # can't use '.' when using HTTPS
s3_inventory_bucket:
hidden: true
default: ""
regex: '^[a-z0-9\-\/_]+$' # can't use '.' when using HTTPS
s3_inventory_bucket_region:
hidden: true
default: ""
s3_disable_cleanup:
default: false
backup_time_of_day:
default: "3:30"
regex: "^((0?(0|1|2|3|4|5|6|7|8|9)|(10|11|12|13|14|15|16|17|18|19|20|21|22|23))):\\d\\d$"
backup_with_uploads: true
backup_gzip_compression_level_for_uploads:
default: 1
min: 1
max: 9
hidden: true
include_thumbnails_in_backups:
default: false
include_s3_uploads_in_backups:
default: false
hidden: true
client: true
search:
prioritize_exact_search_title_match:
default: true
hidden: true
max_duplicate_search_index_terms:
default: 6
hidden: true
use_pg_headlines_for_excerpt:
default: false
hidden: true
client: true
search_max_indexed_word_length:
default: 100
hidden: true
search_ranking_normalization:
default: "0"
hidden: true
search_ranking_weights:
default: ""
hidden: true
validator: "SearchRankingWeightsValidator"
min_search_term_length:
client: true
default: 3
locale_default:
zh_CN: 1
zh_TW: 1
ko: 1
ja: 1
allow_anonymous_search:
default: true
refresh: true
search_tokenize_chinese:
default: false
validator: "SearchTokenizeChineseValidator"
search_tokenize_japanese:
default: false
validator: "SearchTokenizeJapaneseValidator"
search_prefer_recent_posts: false
search_recent_posts_size:
default: 1000000
max: 10000000
search_recent_regular_posts_offset_post_id:
default: 0
hidden: true
search_enable_recent_regular_posts_offset_size:
default: 200000
hidden: true
log_search_queries:
client: true
default: true
search_query_log_max_size:
default: 1000000
max: 1000000
search_query_log_max_retention_days:
default: 365 # 1 year
max: 1825 # 5 years
search_ignore_accents:
default: false
locale_default:
ar: true
ca: true
cs: true
el: true
es: true
fa_IR: true
fr: true
hu: true
pt: true
pt_BR: true
ro: true
sk: true
tr_TR: true
category_search_priority_low_weight:
default: 0.8
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
area: "categories"
category_search_priority_high_weight:
default: 1.2
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
area: "categories"
search_page_size:
default: 50
hidden: true
search_default_sort_order:
default: 0 # "relevance"
client: true
type: enum
enum: "SearchSortOrderSiteSetting"
search_experience:
default: search_icon
client: true
type: enum
enum: "SearchExperienceSiteSetting"
themeable: true
uncategorized:
version_checks:
client: true
default: true
area: "site_admin"
include_in_discourse_discover:
default: false
area: "site_admin"
new_version_emails:
default: true
area: "site_admin"
send_welcome_message: true
suppress_uncategorized_badge:
client: true
default: true
area: "categories_and_tags"
header_dropdown_category_count:
client: true
default: 8
area: "navigation|categories"
slug_generation_method:
default: "ascii"
enum: "SlugSetting"
client: true
locale_default:
ja: "none"
zh_CN: "none"
zh_TW: "none"
permalink_normalizations:
default: ""
type: list
list_type: simple
validator: "RegexpListValidator"
area: "permalinks"
minimum_topics_similar:
default: 50
area: "posts_and_topics"
previous_visit_timeout_hours:
default: 1
area: "users"
staff_like_weight: 3
topic_view_duration_hours:
default: 8
area: "stats_and_thresholds"
user_profile_view_duration_hours:
default: 8
area: "stats_and_thresholds"
# Summary mode
summary_score_threshold:
default: 15
area: "posts_and_topics"
summary_posts_required:
default: 50
area: "posts_and_topics"
summary_likes_required:
default: 1
area: "posts_and_topics"
summary_percent_filter:
default: 20
area: "posts_and_topics"
summary_max_results:
default: 100
area: "posts_and_topics"
summary_timeline_button:
client: true
default: false
area: "posts_and_topics"
automatic_topic_heat_values:
default: true
area: "stats_and_thresholds"
# View heat thresholds
topic_views_heat_low:
client: true
default: 1000
area: "stats_and_thresholds"
topic_views_heat_medium:
client: true
default: 2000
area: "stats_and_thresholds"
topic_views_heat_high:
client: true
default: 3500
area: "stats_and_thresholds"
# Post/Like heat thresholds
topic_post_like_heat_low:
client: true
default: 0.5
area: "stats_and_thresholds"
topic_post_like_heat_medium:
client: true
default: 1.0
area: "stats_and_thresholds"
topic_post_like_heat_high:
client: true
default: 2.0
area: "stats_and_thresholds"
# History edit heat thresholds
history_hours_low:
client: true
default: 12
area: "stats_and_thresholds"
history_hours_medium:
client: true
default: 24
area: "stats_and_thresholds"
history_hours_high:
client: true
default: 48
area: "stats_and_thresholds"
# Cold map thresholds
cold_age_days_low:
default: 14
max: 36500
client: true
area: "stats_and_thresholds"
cold_age_days_medium:
default: 90
max: 36500
client: true
area: "stats_and_thresholds"
cold_age_days_high:
default: 180
max: 36500
client: true
area: "stats_and_thresholds"
# Warnings
educate_until_posts:
default: 2
area: "users"
get_a_room_threshold:
default: 3
area: "stats_and_thresholds"
dont_feed_the_trolls_threshold:
default: 2
area: "stats_and_thresholds"
dominating_topic_minimum_percent:
default: 40
area: "stats_and_thresholds"
pm_warn_user_last_seen_months_ago:
default: 24
area: "users"
global_notice:
default: ""
client: true
area: "site_admin"
has_login_hint:
default: false
hidden: true
# Nothing past this threshold is ever considered new
# this is calculated dynamically every 15 minutes
min_new_topics_time:
default: 0
hidden: true
# Category IDs
general_category_id:
default: -1
hidden: true
client: true
area: "categories"
meta_category_id:
default: -1
hidden: true
area: "categories"
staff_category_id:
default: -1
hidden: true
client: true
area: "categories"
uncategorized_category_id:
default: -1
hidden: true
area: "categories"
default_composer_category:
client: true
type: category
default: ""
validator: "DefaultComposerCategoryValidator"
area: "posts_and_topics|categories"
moderator_guide_topic:
type: "topic"
default: ""
client: true
notify_about_reviewable_item_after:
type: float
default: 48
use_site_small_logo_as_system_avatar:
default: true
area: "site_admin"
enable_listing_suspended_users_on_search:
default: false
area: "site_admin"
disable_system_edit_notifications:
default: true
area: "notifications"
disable_category_edit_notifications:
default: false
area: "notifications"
disable_tags_edit_notifications:
default: false
area: "notifications"
notification_consolidation_threshold:
default: 3
min: 0
area: "notifications"
likes_notification_consolidation_window_mins:
default: 120
min: 1
area: "notifications"
linked_notification_consolidation_window_mins:
default: 120
min: 1
area: "notifications"
delete_drafts_older_than_n_days:
default: 180
max: 36500
area: "posts_and_topics"
delete_merged_stub_topics_after_days:
default: 7
min: -1
area: "posts_and_topics"
backup_drafts_to_pm_length:
default: 0
hidden: true
view_user_route:
default: "summary"
hidden: true
client: true
tos_topic_id:
default: -1
hidden: true
guidelines_topic_id:
default: -1
hidden: true
privacy_topic_id:
default: -1
hidden: true
welcome_topic_id:
default: -1
hidden: true
admin_quick_start_topic_id:
default: -1
hidden: true
client: true
automatically_unpin_topics:
default: true
client: true
area: "posts_and_topics"
read_time_word_count:
default: 500
client: true
locale_default:
ja: 350
zh_CN: 350
zh_TW: 350
area: "posts_and_topics"
topic_page_title_includes_category:
default: true
client: true
area: "posts_and_topics"
native_app_install_banner_ios:
default: false
area: "site_admin"
native_app_install_banner_android:
default: false
area: "site_admin"
ios_app_id:
default: "1173672076"
hidden: true
android_app_id:
default: "com.discourse"
hidden: true
pwa_display_browser_regex:
default: "a^"
hidden: true
app_association_android:
default: ""
textarea: true
area: "site_admin"
app_association_ios:
default: ""
textarea: true
area: "site_admin"
share_anonymized_statistics:
default: true
area: "site_admin"
enable_powered_by_discourse:
default: true
client: true
area: "site_admin"
auto_handle_queued_age:
default: 60
min: 0
penalty_step_hours:
default: "24|72|168|720"
type: "list"
list_type: "compact"
penalty_include_post_message:
default: false
client: true
svg_icon_subset:
default: ""
type: "list"
list_type: "compact"
client: true
area: "site_admin"
always_include_topic_excerpts:
default: false
hidden: true
allow_bulk_invite:
default: true
client: true
area: "users"
max_bulk_invites:
default: 50000
hidden: true
skip_email_bulk_invites:
default: false
hidden: true
max_api_invites:
default: 200
hidden: true
overridden_robots_txt:
default: ""
hidden: true
show_category_definitions_in_topic_lists:
default: false
hidden: true
client: true
area: "categories"
max_topic_query_page_param:
default: 2000
min: 100
hidden: true
allow_changing_staged_user_tracking:
default: false
area: "users"
splash_screen_image:
default: ""
type: upload
authorized_extensions: "svg"
area: "interface"
validator: "UploadSettingValidator"
suggest_weekends_in_date_pickers:
client: true
default: true
show_bottom_topic_map:
client: true
default: true
area: "posts_and_topics"
show_topic_map_in_topics_without_replies:
client: true
default: true
area: "posts_and_topics"
concord_in_wizard:
default: false
hidden: true
enable_site_owner_onboarding:
client: true
default: true
hidden: true
site_owner_onboarding_max_days:
default: 5
hidden: true
enable_welcome_banner:
client: true
default: true
themeable: true
area: "interface"
welcome_banner_image:
client: true
default: ""
type: upload
area: "interface"
welcome_banner_text_color:
client: true
type: color
default: ""
validator: "CssColorWithBlankValidator"
area: "interface"
welcome_banner_location:
client: true
enum: "WelcomeBannerLocation"
default: "above_topic_content"
area: "interface"
welcome_banner_page_visibility:
client: true
enum: "WelcomeBannerPageVisibility"
default: "top_menu_pages"
area: "interface"
user_preferences:
default_email_digest_frequency:
enum: "DigestEmailSiteSetting"
default: 10080
area: "user_defaults"
default_include_tl0_in_digests:
default: false
area: "user_defaults"
default_email_level:
enum: "EmailLevelSiteSetting"
default: 1
area: "user_defaults"
default_email_messages_level:
enum: "EmailLevelSiteSetting"
default: 0
area: "user_defaults"
default_email_mailing_list_mode:
default: false
area: "user_defaults"
default_email_mailing_list_mode_frequency:
enum: "MailingListModeSiteSetting"
default: 1
area: "user_defaults"
disable_mailing_list_mode:
default: true
client: true
area: "user_defaults"
default_email_previous_replies:
enum: "PreviousRepliesSiteSetting"
default: 2
area: "user_defaults"
default_email_in_reply_to:
default: false
area: "user_defaults"
default_hide_profile:
default: false
area: "user_defaults"
default_hide_presence:
default: false
area: "user_defaults"
default_other_new_topic_duration_minutes:
enum: "NewTopicDurationSiteSetting"
default: 2880
area: "user_defaults"
default_other_auto_track_topics_after_msecs:
enum: "AutoTrackDurationSiteSetting"
default: 300000
area: "user_defaults"
default_other_notification_level_when_replying:
enum: "NotificationLevelWhenReplyingSiteSetting"
default: 2
area: "notifications"
default_other_external_links_in_new_tab:
default: false
area: "user_defaults"
default_other_enable_quoting:
default: true
area: "user_defaults"
default_other_enable_smart_lists:
default: true
area: "user_defaults"
default_other_dynamic_favicon:
default: false
area: "user_defaults"
default_other_skip_new_user_tips:
default: false
area: "user_defaults"
default_other_like_notification_frequency:
enum: "LikeNotificationFrequencySiteSetting"
default: 1
area: "notifications"
default_topics_automatic_unpin:
default: true
client: true
area: "user_defaults"
default_categories_watching:
type: category_list
default: ""
area: "categories|user_defaults"
default_categories_tracking:
type: category_list
default: ""
area: "categories|user_defaults"
default_categories_muted:
type: category_list
default: ""
area: "categories|user_defaults"
default_categories_watching_first_post:
type: category_list
default: ""
area: "categories|user_defaults"
default_categories_normal:
type: category_list
default: ""
area: "categories|user_defaults"
mute_all_categories_by_default:
default: false
client: true
area: "categories|user_defaults"
default_tags_watching:
type: tag_list
default: ""
area: "user_defaults"
default_tags_tracking:
type: tag_list
default: ""
area: "user_defaults"
default_tags_muted:
type: tag_list
default: ""
area: "user_defaults"
default_tags_watching_first_post:
type: tag_list
default: ""
area: "user_defaults"
default_text_size:
type: enum
default: normal
client: true
choices: "DefaultTextSizeSetting.values"
area: "fonts"
default_title_count_mode:
type: enum
default: notifications
choices:
- notifications
- contextual
area: "user_defaults"
enable_offline_indicator:
default: false
client: true
area: "user_defaults"
default_sidebar_link_to_filtered_list:
default: false
area: "navigation"
default_sidebar_show_count_of_new_items:
default: false
area: "navigation"
default_composition_mode:
default: 1
enum: "CompositionModeSiteSetting"
area: "posts_and_topics|user_defaults"
default_other_enable_markdown_monospace_font:
default: true
area: "posts_and_topics|user_defaults"
default_watched_precedence_over_muted:
client: true
default: false
area: "categories_and_tags|user_defaults"
mcp:
mcp_server_enabled:
default: false
client: true
area: "mcp"
requires_confirmation: simple_on_enable
mcp_server_instructions:
default: ""
textarea: true
area: "mcp"
mcp_cache_ttl_ms:
default: 300000
min: 0
max: 86400000
area: "mcp"
mcp_oauth_client_id_metadata_policy:
type: enum
default: "any_domain"
enum: "McpOauthClientIdMetadataPolicy"
area: "mcp"
mcp_oauth_client_id_metadata_domains:
type: host_list
default: ""
area: "mcp"
depends_on:
- mcp_oauth_client_id_metadata_policy
depends_on_values:
mcp_oauth_client_id_metadata_policy:
- approved_domains
depends_behavior: "hidden"
dependent_setting_display: "inline"
mcp_access_token_lifetime_minutes:
default: 60
min: 5
max: 1440
area: "mcp"
mcp_refresh_token_lifetime_days:
default: 30
min: 1
max: 365
area: "mcp"
mcp_authorization_code_lifetime_seconds:
default: 300
min: 60
max: 600
area: "mcp"
mcp_global_rate_limit_per_minute:
default: 120
min: 10
max: 10000
area: "mcp"
mcp_audit_log_retention_days:
default: 90
min: 1
max: 3650
area: "mcp"
mcp_max_request_bytes:
default: 1048576
min: 16384
max: 5242880
hidden: true
mcp_max_response_bytes:
default: 5242880
min: 16384
max: 10485760
hidden: true
api:
retain_web_hook_events_period_days:
default: 30
max: 36500
retain_web_hook_events_aggregate_days:
default: 720
max: 36500
retry_web_hook_events:
default: false
api_key_last_used_epoch:
default: "" # Value is added in a migration
hidden: true
revoke_api_keys_unused_days:
default: 180
max: 36500
revoke_api_keys_maxlife_days:
default: 0
max: 36500
hidden: true
user_api:
allow_user_api_key_scopes:
default: "read|write|message_bus|push|notifications|session_info|one_time_password"
type: list
allow_user_api_key_client_scopes:
default: ""
type: list
hidden: true
push_api_secret_key:
default: ""
hidden: true
user_api_key_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
allowed_user_api_push_urls:
default: ""
type: list
hidden: true
allowed_user_api_auth_redirects:
default: "https://api.discourse.org/api/auth_redirect|discourse://auth_redirect"
type: list
revoke_user_api_keys_unused_days:
default: 180
max: 36500
revoke_user_api_keys_maxlife_days:
default: 0
max: 36500
hidden: true
max_user_api_key_expiry_days:
default: 365
max: 36500
hidden: true
unused_registered_user_api_key_clients_days:
default: 30
max: 36500
hidden: true
create_user_api_key_client_ip_rate_limit_override_ips:
default: ""
type: list
hidden: true
verbose_user_api_key_device_auth_logging:
default: false
hidden: true
tags:
tagging_enabled:
client: true
default: true
refresh: true
area: "categories_and_tags"
tag_style:
client: true
type: enum
default: "simple"
choices:
- simple
- bullet
- box
preview: '<div class="discourse-tags"><span class="discourse-tag {{value}}">tag1</span><span class="discourse-tag {{value}}">tag2</span></div>'
area: "categories_and_tags"
max_tags_per_topic:
default: 5
client: true
area: "categories_and_tags"
enable_max_tags_per_email_subject:
default: false
client: true
area: "categories_and_tags"
max_tags_per_email_subject:
default: 5
client: true
min: 0
area: "categories_and_tags"
max_tag_length:
default: 20
client: true
area: "categories_and_tags"
create_tag_allowed_groups:
default: "1|2|13" # auto group admins, moderators, trust_level_3
mandatory_values: "1" # auto group admins
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
edit_tags_allowed_groups:
default: "1|2" # auto group admins, moderators
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
tag_topic_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
disallowed_groups: "4"
client: true
area: "group_permissions"
max_tag_search_results:
client: true
default: 5
min: 1
max: 1000
area: "categories_and_tags"
max_tags_in_filter_list:
client: true
default: 30
min: 1
refresh: true
area: "categories_and_tags"
tags_sort_alphabetically:
client: true
default: false
refresh: true
area: "categories_and_tags"
tags_listed_by_group:
client: true
default: false
area: "categories_and_tags"
pm_tags_allowed_for_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
disallowed_groups: "4"
area: "group_permissions"
suppress_overlapping_tags_in_list:
default: false
client: true
area: "categories_and_tags"
remove_muted_tags_from_latest:
client: true
type: enum
default: always
enum: RemoveMutedTagsFromLatestSiteSetting
area: "categories_and_tags"
force_lowercase_tags:
default: true
client: true
area: "categories_and_tags"
create_post_for_category_and_tag_changes:
default: false
area: "categories_and_tags|categories"
automatically_clean_unused_tags:
default: false
area: "categories_and_tags|categories"
dashboard:
site_traffic_explorer_event_limit:
default: 200000
type: integer
min: 1
max: 1000000
area: "reports"
verbose_user_stat_count_logging:
hidden: true
default: false
hot_topics_gravity:
hidden: true
default: 1.2
hot_topics_recent_days:
hidden: true
default: 7
admin_allow_filter_untranslated_text:
hidden: true
default: false
client: true
experimental:
enable_user_menu_mentions_tab:
default: false
client: true
hidden: true
upcoming_change:
status: "beta"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/415579"
enable_markdown_endpoints:
default: false
hidden: true
client: true
upcoming_change:
status: "stable"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/413006"
permanent_warning: false
allow_enabled_for:
- everyone
enable_generated_llms_txt:
default: false
hidden: true
client: true
upcoming_change:
status: "beta"
impact: "feature,all_members"
allow_enabled_for:
- everyone
learn_more_url: "https://meta.discourse.org/t/-/411435"
reporting_improvements:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "permanent"
impact: "feature,staff"
learn_more_url: "https://meta.discourse.org/t/-/395768"
enable_auto_grid_images:
default: true
client: true
area: "experimental"
enable_new_checkbox_style:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "permanent"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/403284"
body_class: true
enable_new_reordering_controls:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "alpha"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/414613"
enable_composer_redesign:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "beta"
impact: "other,all_members"
body_class: true
learn_more_url: "https://meta.discourse.org/t/-/407849"
enable_main_outlet_grid_layout_change:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "beta"
impact: "other,all_members"
body_class: true
learn_more_url: "https://meta.discourse.org/t/-/414357"
enable_composer_toolbar_customization:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "alpha"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/412749"
enable_category_hashtag_cards:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "experimental"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/412529"
prioritize_recently_used_tags:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "experimental"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/410419"
rename_faq_to_guidelines:
default: false
hidden: true
client: true
upcoming_change:
impact: "feature,all_members"
status: "stable"
learn_more_url: "https://meta.discourse.org/t/-/395099"
enable_form_templates:
client: true
default: true
dsa_reporting_enabled:
client: true
default: false
area: "experimental"
dsa_notice_group:
default: "1"
type: group
area: "experimental"
dsa_community_rules:
type: objects
default: []
area: "experimental"
schema:
name: Community rule
identifier: ground
properties:
ground:
type: string
textarea: true
required: true
validations:
max_length: 500
explanation:
type: string
textarea: true
required: true
validations:
max_length: 500
dsa_moderation_appeal_email:
default: ""
type: email
area: "experimental"
experimental_impersonation_time_limit_minutes:
default: 15
hidden: true
area: "experimental"
enable_unified_new:
default: false
hidden: true
client: true
refresh: true
upcoming_change:
status: "stable"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/404728"
enable_rich_text_paste:
client: true
default: true
area: "experimental"
lazy_load_categories_groups:
default: ""
type: group_list
list_type: compact
area: "group_permissions|experimental"
hidden: true
reviewable_old_moderator_actions:
default: true
hidden: true
client: true
floating_dismiss_topics_on_mobile:
default: false
hidden: true
client: true
upcoming_change:
status: "permanent"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/387322"
body_class: true
enable_simplified_category_creation:
default: false
hidden: true
client: true
upcoming_change:
status: "permanent"
impact: "feature,staff"
learn_more_url: "https://meta.discourse.org/t/-/394971"
enable_new_defaults_for_trust_level_3_requirements:
default: false
hidden: true
client: true
upcoming_change:
status: "permanent"
impact: "site_setting_default,all_members"
learn_more_url: "https://meta.discourse.org/t/-/397098"
permanent_warning: false
allow_enabled_for:
- everyone
experimental_topic_category_change_notification:
default: false
hidden: true
modernize_foundation_theme:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
impact: "feature,all_members"
status: "beta"
learn_more_url: "https://meta.discourse.org/t/-/395331"
body_class: true
enable_horizon_high_context_topic_cards:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "stable"
impact: "site_setting_default,all_members"
learn_more_url: "https://meta.discourse.org/t/-/402843"
permanent_warning: false
allow_enabled_for:
- everyone
granular_anonymous_and_logged_in_groups_permissions:
default: false
client: true
hidden: true
area: "experimental"
upcoming_change:
status: "beta"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/402273"
allow_enabled_for:
- everyone
dashboard_improvements:
default: false
hidden: true
client: true
upcoming_change:
status: "permanent"
impact: "feature,admins"
learn_more_url: "https://meta.discourse.org/t/-/404528"
improved_crawler_detection:
default: false
hidden: true
client: true
upcoming_change:
status: "experimental"
impact: "other,all_members"
learn_more_url: "https://meta.discourse.org/t/-/409316"
allow_enabled_for:
- everyone
admin_dashboard_reports_seeded:
default: false
hidden: true
enable_invite_modal_with_roles:
default: false
hidden: true
client: true
upcoming_change:
status: "stable"
impact: "feature,admins"
learn_more_url: "https://meta.discourse.org/t/-/407727"
update_pending_users_reminder_default:
default: false
hidden: true
client: true
upcoming_change:
status: "alpha"
impact: "site_setting_default,all_members"
learn_more_url: "https://meta.discourse.org/t/-/408429"
permanent_warning: false
allow_enabled_for:
- everyone
update_whispers_allowed_groups_default:
default: false
hidden: true
client: true
upcoming_change:
status: "alpha"
impact: "site_setting_default,staff"
learn_more_url: "https://meta.discourse.org/t/-/414354"
permanent_warning: false
allow_enabled_for:
- everyone
sidebar_user_navigation:
default: false
hidden: true
client: true
upcoming_change:
status: "experimental"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/413150"