Discourse 2.1.0.beta6 Release Notes

New features in 2.1.0.beta6

Specify locale via SSO

You can now specify a user’s default locale on Discourse via SSO. Discourse will now accept locale and locale_force_update as part of the SSO payload. See https://github.com/discourse/discourse/commit/e6970151a67f010412029b230c5e94314fcc63af for more details.

Erode bounce score every time an email is sent

Discourse tracks email bounces to ensure that we stop sending email to an address that is repeatedly failing. Now, whenever an email is successful a small we erode the bounce score. This helps auto correct so users continue to receive email even if there is an erratic failure or two.

Split Themes and Components

Continuing our work to improve Discourse theming we’ve started to split themes and components. Each customization is either a theme or a component, it cannot be both. Users are now prompted to choose between a theme or a component when it is created. Note: splitting themes and components is ongoing and more changes will follow in Discourse 2.2.

Zendesk Importer

@neil wrote a new importer to that uses the Zendesk API to move content to Discourse. See our list of importers to discover more.

Rails Plugin Generator

Writing a new Discourse plugin? Take advantage of the new plugin generator to create the initial files and directory structure. See Rails plugin generator for all the details.


Even more!

But wait, there’s more! We do our best to highlight new features and changes for you, but there’s always too many changes to detail. For a full list of new features, bug fixes, UX improvements, and more, be sure to review the Additional Features and Fixes listed below.

Security Updates

This beta includes 2 security fix for issues reported by our community and HackerOne.

  • Prevents XSS in local-dates
  • Prevent users from modifying custom fields

Plugin improvements

Data Explorer

  • Don’t save placeholder text if description is empty
  • Sort queries by last_run_at as default
  • Improved username alignment
  • Render creation date instead of run date if query was never run
  • Make entire row clickable
  • Improve padding while editing a query and text-field width consistency
  • Force refresh model to update last_run_at after a query is run


  • Added translations files (can now be translated via Transifex


  • Update vote counts only if voters are visible


  • Do not load instagram video instead just display preview image


  • Don’t break the site if ENV variables aren’t present

Staff Notes

  • Use trash-icon to delete staff note


  • Display quick link to Patron’s detail page in admin user page
  • Sync groups after saving webhook data for the user
  • Sync local patrons to groups in dedicated job

Additional Features and Fixes

Click to expand

New Features

  • Adds support for seconds in local-dates
  • Displays “today” if event is… today
  • Zendesk importer that uses its API to get data
  • Correctly store width and height on uploads
  • Add Content-Type header to CORS
  • Hide enable_personal_email_messages and min_trust_to_send_email_messages
  • Use S3 dualstack endpoints
  • Makes reports loadable in bulk
  • Pop revise modal on post edited notification
  • Clean up PostReplyKey records.
  • Make initial admins TL1

Bug Fixes

  • Changing component settings should trigger refresh for parent theme CSS
  • Use tight list format for GDocs html to markdown
  • Allow user actions to be saved even if the post has nil user
  • Reset email preferences controller.
  • Changing tag name class to data attribute
  • Poll avatar spacing too large
  • Don’t try to send invite email when invite was deleted
  • Prevents remove user btn to overflow parent
  • Keep emojis and remove clicks count on html to markdown
  • Keep emojis and remove clicks count
  • Queue heartbeats in readonly modes
  • /rules route showed error page
  • Mobile admin menu iOS rendering bug
  • Drop title updates through RSS feeds
  • Links in rss feeds are sometimes wrong on subfolder installs
  • Use proper markdown syntax for image urls
  • Term should be handled as text
  • Find tags with non-latin names
  • Second factor input for username password is disabled when hidden.
  • Redirect to wrong URL after account creation on subfolder install
  • Update TopicEmbed’s title and user correctly
  • Improve last_modified date returned for avatars
  • Remove diacritics instead of transliterating
  • Remove diacritics when tokenizing html for search
  • Prefills username for new message on first post (#6305)
  • Create BaseDropper functions in a different schema.
  • Post time query filter not set correctly when loaded from params.
  • Avoid race condition creating posts
  • Don’t allow inviting more than max_allowed_message_recipients
  • Don’t allow inviting more than max_allowed_message_recipients setting allows
  • Tag intersection not populating
  • Uses localized string for 429 in reports
  • Better handling of no prev30Days
  • Don’t send email when the post was deleted
  • Handle rate limiting from nginx
  • Counters were showing future instead of past
  • Better message if request for report is rate limited
  • Defer actions in a static method
  • Client duplicate registration should be cleaned up
  • Improve support for subfolder S3 CDN
  • Flagged Post custom fields were not respecting type
  • Upload URLs from S3 on subfolder installs
  • Only allow printable characters in uploads filename

UX Changes

  • Improve email testing admin tool.
  • Reserved_usernames should be a compact list
  • More compact polls on mobile
  • Show only the expand icon in lightboxes on mobile.
  • Improve copying from IP lookup component.
  • Do not show the groups directory if disabled.
  • Styles for user-cards should the same with badges on / off
  • Super short tags shouldn’t display on same line as title
  • Youtube embed title overlaps with select-kit
  • Show full name on /latest page
  • Keyboard shortcuts will automatically select hovered post
  • Blue “Resend Activation Email” button in wizzard
  • Don’t show the whisper toggle when replying to a whisper
  • Wizard resends activation email when user exists