Ctrl K
ComunidadGuías…

config/site_settings.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 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"