# 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.
#
#
# 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
#
# 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.
# type: group                 - A single group ID.
# 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.
#
required:
  title:
    client: true
    default: "Discourse"
    area: "about"
  site_description:
    default: ""
    area: "about"
  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
  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
  company_name:
    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: ""
    type: upload
  manifest_screenshots:
    type: list
    list_type: simple
    default: ""
  favicon:
    default: ""
    client: true
    type: upload
  apple_touch_icon:
    default: ""
    client: true
    type: upload
  opengraph_image:
    default: ""
    type: upload
  twitter_summary_large_image:
    default: ""
    type: upload

basic:
  display_local_time_in_user_card:
    client: true
    default: false
  allow_user_locale:
    client: true
    default: false
  set_locale_from_accept_language_header:
    default: false
    client: true
    validator: "AllowUserLocaleEnabledValidator"
  set_locale_from_cookie:
    default: false
    client: true
    validator: "AllowUserLocaleEnabledValidator"
  set_locale_from_param:
    default: false
    client: true
    validator: "AllowUserLocaleEnabledValidator"
  support_mixed_text_direction:
    client: true
    default: false
  categories_topics:
    default: 20
    validator: "CategoriesTopicsValidator"
  suggested_topics:
    client: true
    default: 5
    max: 2000
  limit_suggested_to_category:
    default: false
  suggested_topics_unread_max_days_old:
    default: 90
    min: 0
    max: 36500
  suggested_topics_max_days_old:
    default: 365
    min: 7
    max: 36500
  ga_version:
    type: enum
    default: v4_gtag
    choices:
      - v3_analytics
      - v4_gtag
  ga_universal_tracking_code:
    client: true
    default: ""
    regex: "^(UA|G)-[\\w-]+"
  ga_universal_domain_name:
    client: true
    default: "auto"
  ga_universal_auto_link_domains:
    default: ""
    type: list
    list_type: simple
  gtm_container_id:
    client: true
    default: ""
    regex: "^GTM-"
  top_menu:
    client: true
    refresh: true
    type: list
    list_type: simple
    default: "latest|new|unread|hot|categories"
    regex: "latest"
    regex_error: "site_settings.errors.must_include_latest"
    validator: RegexPresenceValidator
    allow_any: false
    choices:
      - latest
      - new
      - unread
      - unseen
      - top
      - categories
      - read
      - posted
      - bookmarks
      - hot
    area: "navigation"
  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
  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
  share_links:
    client: true
    type: list
    list_type: simple
    default: "twitter|facebook|email"
    allow_any: false
    choices:
      - twitter
      - facebook
      - email
  allow_username_in_share_links:
    client: true
    default: true
  share_quote_visibility:
    client: true
    type: enum
    default: "all"
    choices:
      - none
      - anonymous
      - all
  share_quote_buttons:
    client: true
    type: list
    list_type: simple
    default: "twitter|email"
    allow_any: false
    choices:
      - twitter
      - facebook
      - email
  desktop_category_page_style:
    client: true
    enum: "CategoryPageStyle"
    default: "categories_and_latest_topics"
    area: "navigation"
  mobile_category_page_style:
    client: true
    enum: "MobileCategoryPageStyle"
    default: "categories_with_featured_topics"
    area: "navigation"
  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"
  max_category_nesting:
    client: true
    default: 2
    min: 2
    max: 3
    hidden: true
  enable_mobile_theme:
    client: true
    default: true
    hidden: true
  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
  default_dark_mode_color_scheme_id:
    default: -1
    type: enum
    enum: "ColorSchemeSetting"
    client: true
  relative_date_duration:
    client: true
    default: 30
  topics_per_period_in_top_summary:
    default: 20
    min: 1
  topics_per_period_in_top_page:
    default: 50
    min: 1
  top_page_default_timeframe:
    client: true
    default: "yearly"
    type: enum
    choices:
      - all
      - yearly
      - quarterly
      - monthly
      - weekly
      - daily
  fixed_category_positions:
    client: true
    default: false
  fixed_category_positions_on_create:
    client: true
    default: false
  enable_badges:
    client: true
    default: true
  show_badges_in_post_header:
    client: true
    default: true
  enable_badge_sql:
    client: true
    default: false
    hidden: true
  max_favorite_badges:
    client: true
    default: 2
    min: 0
    max: 6
  whispers_allowed_groups:
    type: group_list
    list_type: compact
    default: ""
    allow_any: false
    refresh: true
    area: "group_permissions"
  hidden_post_visible_groups:
    type: group_list
    list_type: compact
    default: "14"
    allow_any: false
    refresh: true
    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"
  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: "arial"
    choices: "BaseFontSetting.values"
    refresh: true
    type: list
    list_type: font
    area: "fonts"
    allow_any: false
  heading_font:
    default: "arial"
    choices: "BaseFontSetting.values"
    refresh: true
    type: list
    list_type: font
    area: "fonts"
    allow_any: false
  enable_sitemap:
    default: true
  sitemap_page_size:
    default: 10000
  enable_user_tips:
    client: true
    default: true
    refresh: true
  page_loading_indicator:
    client: true
    type: enum
    default: "slider"
    choices:
      - spinner
      - slider
    area: "navigation"
  show_user_menu_avatars:
    client: true
    default: false
  about_page_hidden_groups:
    default: ""
    type: group_list
    area: "group_permissions"
  adobe_analytics_tags_url:
    default: ""
    regex: "assets.adobedtm.com"
  extended_site_description:
    default: ""
    max: 10_000
    hidden: true
    area: "about"
  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

login:
  invite_only:
    refresh: true
    client: true
    default: false
  login_required:
    refresh: true
    client: true
    default: false
  must_approve_users:
    client: true
    default: false
  invite_code: ""
  enable_local_logins:
    client: true
    default: true
  enable_local_logins_via_email:
    client: true
    default: true
    validator: "EnableLocalLoginsViaEmailValidator"
  enable_passkeys:
    client: true
    default: true
    hidden: true
  allow_new_registrations:
    client: true
    default: true
  enable_signup_cta:
    client: true
    default: true
  enable_google_oauth2_logins:
    default: false
  google_oauth2_client_id: ""
  google_oauth2_client_secret:
    default: ""
    secret: true
  google_oauth2_prompt:
    default: ""
    type: list
    choices:
      - ""
      - "none"
      - "consent"
      - "select_account"
  google_oauth2_hd:
    default: ""
  google_oauth2_hd_groups_service_account_admin_email:
    default: ""
  google_oauth2_hd_groups_service_account_json:
    default: ""
    textarea: true
  google_oauth2_verbose_logging:
    default: false
  enable_twitter_logins:
    default: false
  twitter_consumer_key:
    default: ""
    regex: "^[\\w+-]+$"
  twitter_consumer_secret:
    default: ""
    regex: "^[\\w+-]+$"
    secret: true
  enable_facebook_logins:
    default: false
  facebook_app_id:
    client: true
    default: ""
    regex: "^\\d+$"
  facebook_app_secret:
    default: ""
    regex: "^[a-f0-9]+$"
    secret: true
  enable_github_logins:
    default: false
  github_client_id:
    default: ""
    regex: "^[a-zA-Z0-9\\.]+$"
  github_client_secret:
    default: ""
    regex: "^[a-f0-9]+$"
    secret: true
  enable_discord_logins:
    default: false
  discord_client_id:
    default: ""
  discord_secret:
    default: ""
    secret: true
  discord_trusted_guilds:
    default: ""
    type: list
    list_type: simple
  enable_linkedin_oidc_logins:
    default: false
    validator: "LinkedinOidcCredentialsValidator"
  linkedin_oidc_client_id:
    default: ""
    regex: "^[a-z0-9]+$"
  linkedin_oidc_client_secret:
    default: ""
    regex: "^[a-zA-Z0-9_=\\.]+$"
    secret: true
  auth_skip_create_confirm:
    default: false
    client: true
  auth_immediately:
    default: true
  auth_overrides_email:
    default: false
    validator: "SsoOverridesEmailValidator"
    client: true
  auth_overrides_username: false
  auth_overrides_name: false
  enable_discourse_connect:
    client: true
    default: false
    validator: "EnableSsoValidator"
  discourse_connect_allowed_redirect_domains:
    default: ""
    type: list
    list_type: simple
  verbose_discourse_connect_logging: false
  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?:\/\/.+[^\/]$'
  discourse_connect_secret:
    default: ""
    secret: true
  discourse_connect_overrides_groups: false
  discourse_connect_overrides_bio: false
  discourse_connect_overrides_avatar:
    default: false
    client: true
  discourse_connect_overrides_profile_background: false
  discourse_connect_overrides_location: false
  discourse_connect_overrides_website: false
  discourse_connect_overrides_card_background: false
  discourse_connect_not_approved_url: ""
  discourse_connect_csrf_protection:
    default: true
    hidden: true
  enable_discourse_connect_provider: false
  discourse_connect_provider_secrets:
    default: ""
    type: list
    list_type: secret
    secret: true
    placeholder:
      key: "sso_provider.key_placeholder"
      value: "sso_provider.value_placeholder"
  blocked_email_domains:
    default: "mailinator.com"
    type: host_list
    list_type: simple
  allowed_email_domains:
    default: ""
    type: host_list
    list_type: simple
  normalize_emails:
    default: true
  auto_approve_email_domains:
    default: ""
    type: host_list
    list_type: simple
  hide_email_address_taken:
    client: true
    default: true
  log_out_strict: false
  pending_users_reminder_delay_minutes:
    min: -1
    default: 480
  persistent_sessions: true
  maximum_session_age:
    default: 1440
    min: 1
    max: 175200
  full_page_login:
    default: false
    client: true
  show_signup_form_email_instructions:
    client: true
    default: true
  show_signup_form_username_instructions:
    client: true
    default: false
  show_signup_form_full_name_instructions:
    client: true
    default: false
  show_signup_form_password_instructions:
    client: true
    default: false

users:
  min_username_length:
    client: true
    default: 3
    validator: "MinUsernameLengthValidator"
  max_username_length:
    client: true
    default: 20
    validator: "MaxUsernameLengthValidator"
  unicode_usernames:
    default: false
    client: true
    validator: "UnicodeUsernameValidator"
  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}'
  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"
    mandatory_values: "admin|moderator|administrator|mod|sys|system|you|name|username|user|nickname|discourse|discourseorg|discourseforum|all|here"
  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"
  block_common_passwords:
    default: true
    requires_confirmation: "simple"
  username_change_period: 3
  email_editable:
    client: true
    default: true
  logout_redirect:
    client: true
    default: ""
  full_name_requirement:
    type: enum
    default: hidden_at_signup
    enum: "FullNameRequirement"
  enable_names:
    client: true
    default: true
  invite_expiry_days:
    default: 90
    client: true
    max: 36500
  invites_per_page:
    client: true
    default: 40
    hidden: true
  delete_user_max_post_age:
    client: true
    default: 60
  delete_all_posts_max:
    client: true
    default: 15
    min: 1
  delete_user_self_max_post_count:
    default: 1
    min: -1
  redirect_users_to_top_page: true
  prioritize_username_in_ux:
    client: true
    default: true
  prioritize_full_name_in_ux:
    client: true
    default: false
    hidden: true
  email_token_valid_hours:
    default: 48
    min: 1
  purge_unactivated_users_grace_period_days:
    default: 14
    max: 36500
  public_user_custom_fields:
    type: list
    list_type: simple
    default: ""
  staff_user_custom_fields:
    type: list
    list_type: simple
    default: ""
  enable_user_directory:
    client: true
    default: true
  allow_anonymous_posting:
    default: false
    client: true
  allow_anonymous_likes:
    default: false
    client: true
  anonymous_posting_min_trust_level:
    default: 1
    enum: "TrustLevelSetting"
    client: true
    hidden: true
  anonymous_posting_allowed_groups:
    default: "3|11" # auto group staff and trust_level_1
    type: group_list
    allow_any: false
    refresh: true
    validator: "AtLeastOneGroupValidator"
    area: "group_permissions"
  anonymous_account_duration_minutes:
    default: 10080
    max: 99000
  allow_users_to_hide_profile:
    default: true
    client: true
  hide_user_profiles_from_public:
    default: false
    client: true
  hide_new_user_profiles:
    default: true
  allow_featured_topic_on_user_profiles:
    default: true
    client: true
  show_inactive_accounts:
    default: false
  allowed_user_website_domains:
    default: ""
    type: list
    list_type: simple
  hide_suspension_reasons:
    default: false
    client: true
  log_personal_messages_views: false
  ignored_users_count_message_threshold:
    default: 5
    client: true
    min: 1
  ignored_users_message_gap_days:
    default: 365
    client: true
    min: 1
    max: 36500
  clean_up_inactive_users_after_days:
    default: 730
    min: 0
    max: 36500
  clean_up_unused_staged_users_after_days:
    default: 365
    min: 0
    max: 36500
  user_selected_primary_groups:
    default: false
    client: true
  max_notifications_per_user:
    default: 10000
    hidden: true
    area: "notifications"
  gravatar_name:
    default: Gravatar
    client: true
  gravatar_base_url:
    default: www.gravatar.com
    client: true
  gravatar_login_url:
    default: /emails
    client: true
  max_bookmarks_per_user:
    default: 2000
    hidden: true
  use_email_for_username_and_name_suggestions:
    default: false
  use_name_for_username_suggestions:
    default: true
  hide_user_activity_tab:
    default: false
    client: true
  delete_associated_accounts_on_password_reset:
    default: false
  enable_user_status:
    client: true
    default: false

groups:
  enable_group_directory:
    client: true
    default: true
  group_in_subject:
    default: false
  enable_category_group_moderation:
    client: true
    default: false

posting:
  min_post_length:
    client: true
    min: 1
    default: 20
    locale_default:
      ja: 8
      zh_CN: 8
      zh_TW: 8
  min_first_post_length:
    client: true
    min: 1
    default: 20
    locale_default:
      ja: 8
      zh_CN: 8
      zh_TW: 8
  min_personal_message_post_length:
    client: true
    min: 1
    default: 10
    locale_default:
      ja: 3
      zh_CN: 3
      zh_TW: 3
  max_post_length:
    client: true
    default: 32000
    max: 150000
  topic_featured_link_enabled:
    client: true
    default: true
  body_min_entropy:
    default: 7
    locale_default:
      ja: 3
      zh_CN: 3
      zh_TW: 3
  min_topic_views_for_delete_confirm:
    client: true
    default: 5000
  min_topic_title_length:
    client: true
    default: 15
    min: 1
    locale_default:
      ja: 6
      zh_CN: 6
      zh_TW: 6
  max_topic_title_length:
    client: true
    default: 255
    min: 5
    max: 255
  title_min_entropy:
    default: 10
    locale_default:
      ja: 3
      zh_CN: 3
      zh_TW: 3
  allow_uppercase_posts:
    default: false
    locale_default:
      ja: true
  max_consecutive_replies:
    default: 3
  enable_filtered_replies_view:
    default: false
    client: true
  title_prettify:
    default: true
    locale_default:
      ja: false
      zh_CN: false
      zh_TW: false
  title_remove_extraneous_space:
    default: false
    locale_default:
      en: true
      en_GB: true
  title_fancy_entities: true
  min_personal_message_title_length:
    client: true
    default: 2
    min: 1
  max_emojis_in_title:
    default: 1
    area: "emojis"
  default_emoji_reactions:
    type: emoji_list
    default: +1|heart|tada
    client: true
  allow_uncategorized_topics:
    client: true
    default: false
    refresh: true
  allow_duplicate_topic_titles: false
  allow_duplicate_topic_titles_category: false
  min_title_similar_length:
    client: true
    default: 10
    locale_default:
      ja: 4
      zh_CN: 4
      zh_TW: 4
  enable_system_message_replies:
    default: true
  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
    area: "group_permissions"
  editing_grace_period: 300
  editing_grace_period_max_diff: 100
  editing_grace_period_max_diff_high_trust: 400
  staff_edit_locks_post: false
  shared_drafts_category:
    type: category
    default: ""
  shared_drafts_min_trust_level:
    default: "staff"
    enum: "TrustLevelAndStaffSetting"
    hidden: true
  shared_drafts_allowed_groups:
    default: "3" # auto group staff
    type: group_list
    allow_any: false
    refresh: true
    validator: "AtLeastOneGroupValidator"
    area: "group_permissions"
  post_edit_time_limit:
    default: 1440
    max: 10080
  tl2_post_edit_time_limit:
    default: 43200
    max: 525600
  edit_history_visible_to_public:
    client: true
    default: true
  delete_removed_posts_after:
    client: true
    default: 24
    max: 876000
  notify_users_after_responses_deleted_on_flagged_post:
    default: false
  traditional_markdown_linebreaks:
    client: true
    default: false
  enable_markdown_typographer:
    client: true
    default: true
  enable_markdown_linkify:
    client: true
    default: true
  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"
  markdown_typographer_quotation_marks:
    client: true
    type: list
    list_type: compact
    validator: "MarkdownTypographerQuotationMarksValidator"
    default: "“|”|‘|’"
    locale_default:
      de: "„|“|‚|‘"
      fr: "«\xA0|\xA0»|‹\xA0|\xA0›"
  suppress_reply_directly_below:
    client: true
    default: true
  suppress_reply_directly_above:
    client: true
    default: true
  suppress_reply_when_quoting:
    default: true
  remove_full_quote:
    default: true
  max_reply_history:
    default: 1
    client: true
  post_undo_action_window_mins: 10
  enable_mentions:
    default: true
    client: true
  max_mentions_per_post:
    default: 10
    area: "notifications"
  max_users_notified_per_group_mention:
    default: 100
    client: true
    area: "notifications"
  newuser_max_replies_per_topic: 3
  newuser_max_mentions_per_post:
    default: 2
    area: "notifications"
  here_mention:
    default: "here"
    validator: "NotUsernameValidator"
    client: true
  max_here_mentioned: 10
  min_trust_level_for_here_mention:
    default: "2"
    enum: "TrustLevelAndStaffSetting"
    hidden: true
  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
    area: "group_permissions"
  title_max_word_length:
    default: 30
    locale_default:
      ja: 50
      ko: 50
      zh_CN: 50
      zh_TW: 50
  allowed_link_domains:
    default: ""
    type: list
  newuser_max_links: 2
  newuser_max_embedded_media:
    client: true
    default: 1
  newuser_max_attachments:
    client: true
    default: 0
  post_excerpt_maxlength:
    default: 300
    max: 1000
    locale_default:
      ja: 120
      zh_CN: 120
      zh_TW: 120
  topic_excerpt_maxlength:
    default: 220
    max: 1000
    locale_default:
      ja: 120
      zh_CN: 120
      zh_TW: 120
  default_subcategory_on_read_only_category:
    client: true
    default: false
  show_pinned_excerpt_mobile:
    client: true
    default: true
  show_pinned_excerpt_desktop:
    client: true
    default: true
  display_name_on_posts:
    client: true
    default: false
  show_time_gap_days:
    default: 7
    max: 36500
    client: true
  short_progress_text_threshold:
    client: true
    default: 10000
    max: 99000
  default_code_lang:
    client: true
    default: "auto"
  warn_reviving_old_topic_age: 180
  autohighlight_all_code:
    client: true
    default: false
  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
  show_copy_button_on_codeblocks:
    client: true
    default: true
    hidden: true
  delete_old_hidden_posts: true
  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"
  approve_post_count:
    default: 0
  approve_unless_trust_level:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  approve_new_topics_unless_trust_level:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  approve_suspect_users:
    default: true
  approve_unless_staged:
    default: false
  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
  code_formatting_style:
    client: true
    type: enum
    default: "code-fences"
    choices:
      - code-fences
      - 4-spaces-indent
  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
  max_allowed_message_recipients:
    default: 30
    min: 1
  disable_watched_word_checking_in_user_fields:
    hidden: true
    default: false
  watched_words_regular_expressions:
    client: true
    default: false
  enable_diffhtml_preview:
    hidden: true
    default: false
    client: true
  enable_fast_edit:
    default: true
    client: true
  enable_quote_copy:
    default: true
    client: true
  old_post_notice_days:
    default: 14
    max: 36500
    client: true
  new_user_notice_tl:
    default: 2
    enum: "TrustLevelSetting"
  returning_user_notice_tl:
    default: 2
    enum: "TrustLevelSetting"
  returning_users_days:
    default: 120
    max: 36500
  review_media_unless_trust_level:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  blur_tl0_flagged_posts_media:
    default: true
    client: true
  enable_page_publishing:
    default: false
  show_published_pages_login_required:
    default: false
  skip_auto_delete_reply_likes: 5
  review_every_post:
    default: false
  max_draft_length:
    default: 400_000
    hidden: true
  max_drafts_per_user:
    default: 10_000
    hidden: true
  max_form_template_title_length:
    default: 100
    min: 5
    max: 255
  max_form_template_content_length:
    default: 5000
    max: 150000
  group_pm_user_limit:
    default: 1000
    type: integer
    min: 1
    hidden: true

email:
  email_time_window_mins:
    default: 10
    client: true
  personal_email_time_window_seconds: 20
  email_posts_context: 5
  digest_min_excerpt_length:
    default: 100
    locale_default:
      ja: 50
      zh_CN: 50
      zh_TW: 50
  digest_topics:
    default: 5
    min: 1
    max: 20
  digest_posts:
    default: 5
    min: 0
    max: 20
  digest_other_topics:
    default: 5
    min: 0
    max: 20
  suppress_digest_email_after_days:
    default: 180
    max: 36500
  digest_suppress_categories:
    type: category_list
    default: ""
  digest_suppress_tags:
    type: tag_list
    default: ""
  disable_digest_emails:
    default: false
    client: true
  apply_custom_styles_to_digest: true
  email_accent_bg_color:
    type: color
    default: "#2F70AC"
    validator: "CssColorValidator"
  email_accent_fg_color:
    type: color
    default: "#FFFFFF"
    validator: "CssColorValidator"
  email_link_color:
    type: color
    default: "#006699"
    validator: "CssColorValidator"
  show_topic_featured_link_in_digest: false
  email_custom_headers: "Auto-Submitted: auto-generated"
  email_subject: "[%{site_name}] %{optional_pm}%{optional_cat}%{topic_title}"
  reply_by_email_enabled:
    default: false
    validator: "ReplyByEmailEnabledValidator"
  reply_by_email_address:
    default: ""
    validator: "ReplyByEmailAddressValidator"
  alternative_reply_by_email_addresses:
    default: ""
    validator: "AlternativeReplyByEmailAddressesValidator"
  find_related_post_with_key:
    default: true
  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: true
  strip_incoming_email_lines: false
  email_in:
    default: false
    client: true
  email_in_min_trust:
    default: 2
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  email_in_authserv_id:
    default: ""
  email_in_spam_header:
    type: enum
    default: "none"
    choices:
      - none
      - X-Spam-Flag
      - X-Spam-Status
      - X-SES-Spam-Verdict
  enable_imap:
    default: false
    client: true
    hidden: true
  enable_imap_write:
    default: false
    hidden: true
  enable_imap_idle:
    default: false
    hidden: true
  enable_smtp:
    default: false
    client: true
  imap_polling_period_mins:
    default: 5
  imap_polling_old_emails:
    default: 1000
  imap_polling_new_emails:
    default: 250
  imap_batch_import_email:
    default: 100
  email_prefix: ""
  email_site_title: ""
  disable_emails:
    client: true
    type: enum
    default: "no"
    choices:
      - "no"
      - "yes"
      - "non-staff"
  strip_images_from_short_emails: true
  short_email_length: 2800
  display_name_on_email_from:
    default: true
  unsubscribe_via_email:
    default: true
  unsubscribe_via_email_footer:
    default: false
  disallow_reply_by_email_after_days:
    default: 90
    max: 36500
  delete_email_logs_after_days:
    default: 90
    max: 36500
  max_emails_per_day_per_user: 100
  enable_staged_users: true
  maximum_staged_users_per_email: 10
  maximum_recipients_per_new_group_email:
    default: 10
    min: 1
  auto_generated_allowlist:
    default: ""
    type: list
    list_type: simple
  block_auto_generated_emails: true
  ignore_by_title:
    type: list
    list_type: simple
    default: ""
  mailgun_api_key:
    default: ""
    regex: '^((key-)?\h{32}|\h{32}-\h{8}-\h{8})$'
    secret: true
  sendgrid_verification_key:
    default: ""
    secret: true
  mailjet_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
  bounce_score_erode_on_send:
    default: 0.1
    hidden: true
  soft_bounce_score:
    default: 1
    min: 1
  hard_bounce_score:
    default: 2
    min: 2
  reset_bounce_score_after_days:
    default: 30
    max: 36500
  blocked_attachment_content_types:
    type: list
    default: "pkcs7|x-vcard|pgp-keys|pgp-signature"
    list_type: compact
  blocked_attachment_filenames:
    type: list
    default: "smime.p7s|signature.asc|winmail.dat"
    list_type: compact
  forwarded_emails_behaviour:
    type: enum
    default: hide
    choices:
      - hide
      - quote
      - create_replies
  always_show_trimmed_content: false
  trim_incoming_emails: true
  private_email: false
  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
  post_excerpts_in_emails: false
  raw_email_max_length: 220000
  raw_rejected_email_max_length: 4000
  delete_rejected_email_after_days:
    default: 90
    validator: "DeleteRejectedEmailAfterDaysValidator"
  enable_secondary_emails:
    client: true
    default: true
    hidden: true
  max_participant_names:
    default: 10
    hidden: true
  require_change_email_confirmation: false
  view_raw_email_allowed_groups:
    type: group_list
    list_type: compact
    default: "1|2"
    allow_any: false
    refresh: true
    area: "group_permissions"

files:
  max_image_size_kb:
    client: true
    default: 4096
    max: 102400
    type: file_size_restriction
  max_attachment_size_kb:
    client: true
    default: 4096
    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
  theme_download_screenshots:
    default: false
    hidden: true
  authorized_extensions:
    client: true
    default: "jpg|jpeg|png|gif|heic|heif|webp|avif"
    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
  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_secret_access_key:
    default: ""
    secret: true
  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_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
  allow_uploaded_avatars:
    client: true
    default: "0"
    enum: "TrustLevelAndStaffAndDisabledSetting"
    hidden: true
  uploaded_avatars_allowed_groups:
    default: "10"
    type: group_list
    allow_any: false
    refresh: true
    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
  external_system_avatars_enabled:
    default: true
    client: 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:
    default: ""
    client: true
    type: uploaded_image_list
  allow_all_attachments_for_group_messages: false
  png_to_jpg_quality:
    default: 95
    min: 1
    max: 100
  recompress_original_jpg_quality:
    default: 90
    min: 1
    max: 100
  image_preview_jpg_quality:
    default: 90
    min: 1
    max: 100
  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: 5
    min: 0
    max: 20
  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
    client: true
  composer_media_optimization_image_resize_dimensions_threshold:
    default: 1920
    client: true
  composer_media_optimization_image_resize_width_target:
    default: 1920
    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: 75
    client: true
  composer_media_optimization_debug_mode:
    default: false
    client: true
    hidden: true
  composer_ios_media_optimisation_image_enabled:
    default: false
    client: true
    hidden: true
  video_thumbnails_enabled:
    default: true
    client: true
    hidden: true

trust:
  default_trust_level:
    default: 0
    enum: "TrustLevelSetting"
    area: "trust_levels"
  default_invitee_trust_level:
    default: 1
    enum: "TrustLevelSetting"
    area: "trust_levels"
  min_trust_to_create_topic:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_to_edit_wiki_post:
    default: 1
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_to_edit_post:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_to_allow_self_wiki:
    default: 3
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_to_send_email_messages:
    default: "4"
    enum: "TrustLevelAndStaffSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_to_flag_posts:
    default: 1
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  allow_tl0_and_anonymous_users_to_flag_illegal_content:
    default: false
    area: "flags"
    client: true
  email_address_to_report_illegal_content:
    default: ""
    area: "flags"
    client: true
  min_trust_to_post_links:
    default: 0
    enum: "TrustLevelSetting"
    hidden: 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
    area: "group_permissions"
  min_trust_to_post_embedded_media:
    default: 0
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_level_to_allow_profile_background:
    default: 0
    client: true
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_level_to_allow_user_card_background:
    default: 0
    client: true
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_level_to_allow_invite:
    default: 2
    enum: "TrustLevelSetting"
    hidden: true
  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
    area: "group_permissions"
  min_trust_level_to_allow_ignore:
    default: 2
    enum: "TrustLevelSetting"
    client: true
    hidden: true
  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
    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: 500
    area: "trust_levels"
  tl3_requires_posts_read:
    default: 25
    max: 100
    area: "trust_levels"
  tl3_requires_posts_read_cap:
    default: 20000
    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: 14
    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"
  tl4_delete_posts_and_topics:
    default: false
    client: true
    hidden: true
    area: "trust_levels"
  delete_all_posts_and_topics_allowed_groups:
    default: ""
    type: group_list
    allow_any: false
    refresh: true
    area: "group_permissions"
  edit_all_topic_groups:
    default: "13"
    type: group_list
    area: "group_permissions"
  edit_all_post_groups:
    default: "14"
    type: group_list
    area: "group_permissions"

security:
  detailed_404: false
  enforce_second_factor_on_external_auth:
    client: true
    default: true
  enforce_second_factor:
    client: true
    type: enum
    default: "no"
    choices:
      - "no"
      - "staff"
      - "all"
  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_and_groups:
    default: false
    client: true
  moderators_change_post_ownership:
    client: true
    default: false
  moderators_view_emails:
    client: true
    default: false
  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"
    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"
  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/|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
  blocked_crawler_user_agents:
    type: list
    default: "mauibot|semrushbot|ahrefsbot|blexbot|seo spider"
    list_type: compact
  slow_down_crawler_user_agents:
    type: list
    default: "gptbot|claudebot|anthropic-ai|brightbot"
    list_type: compact
  slow_down_crawler_rate: 60
  content_security_policy:
    default: true
  content_security_policy_report_only:
    default: false
  content_security_policy_collect_reports:
    default: false
    hidden: true
  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
    hidden: true
  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"

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
  onebox_user_agent:
    default: ""
    hidden: true
  onebox_locale:
    default: ""
    type: enum
    enum: "OneboxLocaleSiteSetting"
  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
  cache_onebox_response_body:
    default: false
    hidden: true
  cache_onebox_response_body_domains:
    default: ""
    type: list
    hidden: true
  cache_onebox_user_agent:
    default: ""
    hidden: true
  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: 3000
  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
  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
  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: 2
    max: 1000000
    default: 5000
    client: true
  invite_link_max_redemptions_limit_users:
    min: 2
    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
  flush_timings_secs:
    client: true
    default: 60
  active_user_rate_limit_secs: 60
  verbose_localization:
    default: false
    client: true
  top_topics_formula_log_views_multiplier:
    default: 2
  top_topics_formula_first_post_likes_multiplier:
    default: 0.5
  top_topics_formula_least_likes_per_post_multiplier:
    default: 3
  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
  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

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"
  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"
  admin_sidebar_enabled_groups:
    type: group_list
    list_type: compact
    default: "1|2"
    allow_any: false
    refresh: true
    area: "group_permissions|navigation"

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:
  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: ""
  automatic_backups_enabled:
    default: true
  backup_frequency:
    min: 1
    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
  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
  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"
  category_search_priority_high_weight:
    default: 1.2
    hidden: true
    validator: "CategorySearchPriorityWeightsValidator"
  search_page_size:
    default: 50
    hidden: true
  search_default_sort_order:
    default: 0 # "relevance"
    client: true
    type: enum
    enum: "SearchSortOrderSiteSetting"

uncategorized:
  version_checks:
    client: true
    default: true
  include_in_discourse_discover:
    default: false
  new_version_emails: true
  send_welcome_message: true

  suppress_uncategorized_badge:
    client: true
    default: true

  header_dropdown_category_count:
    client: true
    default: 8
    area: "navigation"

  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"

  max_similar_results: 5
  minimum_topics_similar: 50

  previous_visit_timeout_hours: 1
  staff_like_weight: 3
  topic_view_duration_hours: 8
  user_profile_view_duration_hours: 8

  # Summary mode
  summary_score_threshold: 15
  summary_posts_required: 50
  summary_likes_required: 1
  summary_percent_filter: 20
  summary_max_results: 100
  summary_timeline_button:
    client: true
    default: false

  automatic_topic_heat_values: true

  # View heat thresholds
  topic_views_heat_low:
    client: true
    default: 1000
  topic_views_heat_medium:
    client: true
    default: 2000
  topic_views_heat_high:
    client: true
    default: 3500

  # Post/Like heat thresholds
  topic_post_like_heat_low:
    client: true
    default: 0.5
  topic_post_like_heat_medium:
    client: true
    default: 1.0
  topic_post_like_heat_high:
    client: true
    default: 2.0

  # History edit heat thresholds
  history_hours_low:
    client: true
    default: 12
  history_hours_medium:
    client: true
    default: 24
  history_hours_high:
    client: true
    default: 48

  # Cold map thresholds
  cold_age_days_low:
    default: 14
    max: 36500
    client: true
  cold_age_days_medium:
    default: 90
    max: 36500
    client: true
  cold_age_days_high:
    default: 180
    max: 36500
    client: true

  # Warnings
  educate_until_posts: 2
  sequential_replies_threshold: 2
  get_a_room_threshold: 3
  dont_feed_the_trolls_threshold: 2
  dominating_topic_minimum_percent: 40
  disable_avatar_education_message: false
  pm_warn_user_last_seen_months_ago: 24

  global_notice:
    default: ""
    client: true
  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
  meta_category_id:
    default: -1
    hidden: true
  staff_category_id:
    default: -1
    hidden: true
  uncategorized_category_id:
    default: -1
    hidden: true
  default_composer_category:
    client: true
    type: category
    default: ""
    validator: "DefaultComposerCategoryValidator"

  notify_about_reviewable_item_after:
    type: float
    default: 48

  use_site_small_logo_as_system_avatar:
    default: true

  enable_listing_suspended_users_on_search:
    default: false

  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

  delete_merged_stub_topics_after_days:
    default: 7
    min: -1

  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

  bootstrap_mode_min_users:
    default: 50
    client: true
    max: 5000

  bootstrap_mode_enabled:
    default: false
    client: true
    hidden: true

  automatically_unpin_topics:
    default: true
    client: true

  read_time_word_count:
    default: 500
    client: true
    locale_default:
      ja: 350
      zh_CN: 350
      zh_TW: 350

  topic_page_title_includes_category:
    default: true
    client: true

  native_app_install_banner_ios: false

  native_app_install_banner_android: false

  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

  app_association_ios:
    default: ""
    textarea: true

  share_anonymized_statistics: true

  enable_powered_by_discourse:
    default: true
    client: true

  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

  always_include_topic_excerpts:
    default: false
    hidden: true

  allow_bulk_invite:
    default: true
    client: true

  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

  create_revision_on_bulk_topic_moves:
    default: true

  allow_changing_staged_user_tracking: false

  use_polymorphic_bookmarks:
    client: true
    default: true
    hidden: true

  splash_screen:
    default: true

  suggest_weekends_in_date_pickers:
    client: true
    default: true

  show_bottom_topic_map:
    client: true
    default: true

  show_topic_map_in_topics_without_replies:
    client: true
    default: true

user_preferences:
  default_email_digest_frequency:
    enum: "DigestEmailSiteSetting"
    default: 10080
  default_include_tl0_in_digests: false
  default_email_level:
    enum: "EmailLevelSiteSetting"
    default: 1
  default_email_messages_level:
    enum: "EmailLevelSiteSetting"
    default: 0
  default_email_mailing_list_mode: false
  default_email_mailing_list_mode_frequency:
    enum: "MailingListModeSiteSetting"
    default: 1
  disable_mailing_list_mode:
    default: true
    client: true
  default_email_previous_replies:
    enum: "PreviousRepliesSiteSetting"
    default: 2
  default_email_in_reply_to:
    default: false
  default_hide_profile:
    default: false
  default_hide_presence:
    default: false
  default_other_new_topic_duration_minutes:
    enum: "NewTopicDurationSiteSetting"
    default: 2880
  default_other_auto_track_topics_after_msecs:
    enum: "AutoTrackDurationSiteSetting"
    default: 300000
  default_other_notification_level_when_replying:
    enum: "NotificationLevelWhenReplyingSiteSetting"
    default: 2
    area: "notifications"
  default_other_external_links_in_new_tab: false
  default_other_enable_quoting: true
  default_other_enable_defer: false
  default_other_enable_smart_lists: true
  default_other_dynamic_favicon: false
  default_other_skip_new_user_tips: false
  default_other_like_notification_frequency:
    enum: "LikeNotificationFrequencySiteSetting"
    default: 1
    area: "notifications"

  default_topics_automatic_unpin:
    default: true
    client: true

  default_categories_watching:
    type: category_list
    default: ""
  default_categories_tracking:
    type: category_list
    default: ""
  default_categories_muted:
    type: category_list
    default: ""
  default_categories_watching_first_post:
    type: category_list
    default: ""
  default_categories_normal:
    type: category_list
    default: ""
  mute_all_categories_by_default:
    default: false
    client: true

  default_tags_watching:
    type: tag_list
    default: ""
  default_tags_tracking:
    type: tag_list
    default: ""
  default_tags_muted:
    type: tag_list
    default: ""
  default_tags_watching_first_post:
    type: tag_list
    default: ""

  default_text_size:
    type: enum
    default: normal
    choices:
      - smaller
      - normal
      - larger
      - largest
    area: "fonts"

  default_title_count_mode:
    type: enum
    default: notifications
    choices:
      - notifications
      - contextual
  enable_offline_indicator:
    default: false
    client: true
  default_sidebar_link_to_filtered_list:
    default: false
    area: "navigation"
  default_sidebar_show_count_of_new_items:
    default: false
    area: "navigation"

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
  min_trust_level_for_user_api_key:
    default: 0
    enum: "TrustLevelSetting"
    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
    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
  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

tags:
  tagging_enabled:
    client: true
    default: true
    refresh: true
  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>'
  max_tags_per_topic:
    default: 5
    client: true
  enable_max_tags_per_email_subject:
    default: false
    client: true
  max_tags_per_email_subject:
    default: 5
    client: true
    min: 0
  max_tag_length:
    default: 20
    client: true
  min_trust_to_create_tag:
    default: "3"
    type: enum
    enum: "TrustLevelAndStaffSetting"
    hidden: true
  create_tag_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
    area: "group_permissions"
  min_trust_level_to_tag_topics:
    default: "0"
    enum: "TrustLevelAndStaffSetting"
    client: true
    hidden: true
  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
    client: true
    area: "group_permissions"
  max_tag_search_results:
    client: true
    default: 5
    min: 1
  max_tags_in_filter_list:
    client: true
    default: 30
    min: 1
    refresh: true
  tags_sort_alphabetically:
    client: true
    default: false
    refresh: true
  tags_listed_by_group:
    client: true
    default: false
  pm_tags_allowed_for_groups:
    type: group_list
    list_type: compact
    default: ""
    allow_any: false
    refresh: true
    area: "group_permissions"
  suppress_overlapping_tags_in_list:
    default: false
    client: true
  remove_muted_tags_from_latest:
    client: true
    type: enum
    default: always
    enum: RemoveMutedTagsFromLatestSiteSetting
  watched_precedence_over_muted:
    client: true
    default: false

  force_lowercase_tags:
    default: true
    client: true
  create_post_for_category_and_tag_changes:
    default: false
  automatically_clean_unused_tags:
    default: false

dashboard:
  dashboard_hidden_reports:
    client: true
    type: list
    list_type: compact
    default: ""
    allow_any: true
  dashboard_visible_tabs:
    client: true
    type: list
    list_type: compact
    default: "moderation|security|reports|features"
    allow_any: false
    choices:
      - moderation
      - security
      - reports
      - features
  dashboard_general_tab_activity_metrics:
    client: true
    type: list
    list_type: compact
    default: "page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies"
    allow_any: false
    choices:
      - page_view_total_reqs
      - visits
      - time_to_first_response
      - likes
      - flags
      - user_to_user_private_messages_with_replies
      - signups
  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:
  experimental_rename_faq_to_guidelines:
    default: false
    hidden: true
    client: true
  experimental_hashtag_search_result_limit:
    default: 20
    client: true
    hidden: true
  experimental_form_templates:
    client: true
    default: false
  experimental_new_new_view_groups:
    client: true
    type: group_list
    list_type: compact
    default: ""
    allow_any: false
    refresh: true
    area: "group_permissions|navigation"
  glimmer_topic_list_mode:
    client: true
    type: enum
    choices:
      - disabled
      - auto
      - enabled
    default: auto
  glimmer_post_menu_mode:
    client: true
    type: enum
    choices:
      - disabled
      - auto
      - enabled
    default: auto
  enable_experimental_lightbox:
    default: false
    client: true
    hidden: true
  enable_rich_text_paste:
    client: true
    default: true
  google_oauth2_hd_groups:
    default: false
    validator: GoogleOauth2HdGroupsValidator
  lazy_load_categories_groups:
    default: ""
    type: group_list
    list_type: compact
    area: "group_permissions"
  use_overhauled_theme_color_palette:
    default: false
    hidden: true
