This guide identifies all the places where users might publicly or inadvertently share personally identifiable information (PII) through their own actions in Discourse, and how administrators can restrict or manage these options.
Required user level: Administrator
Users have multiple ways to voluntarily share information about themselves in Discourse, both intentionally and accidentally. Understanding these areas helps administrators implement appropriate safeguards and educate users about privacy best practices.
Summary
Unlike data that Discourse stores automatically (IP addresses, emails, authentication credentials), this guide covers places where users actively choose to share information. Users can share PII through their profile information, in posts and messages, through custom fields, user status, and other community features. Many of these features can be disabled or restricted by site administrators to reduce the risk of accidental PII exposure.
Where users can publicly share PII
Users can share personally identifiable information in multiple areas throughout Discourse:
- Username - Publicly visible across the site on all posts and interactions
- Name - Optional display name that can appear alongside the username
- Profile (about me) - Biographical information section on user profiles
- Location - Optional location field visible on user cards and profiles
- Posts - Including topics, replies, personal messages, chat messages, and comments
- Custom fields - Additional fields defined by site administrators (such as “occupation” or “company”)
- User status - Temporary status messages like “away”, “working from home”, etc.
-
Tags - A user trying really hard to share information might create a tag such as
my-name-is-jenny-call-me-at-867-5309
Many of these features can be disabled or restricted by site administrators.
Personal messages are not end-to-end encrypted. Site administrators can access PM content, and moderators may have access depending on your site configuration.
Profile-based PII exposure
Username
The username is publicly visible across the site and appears on all posts, topics, and user interactions. Users choose their username during registration.
Administrator options:
- You cannot disable usernames (they’re required for Discourse)
- Set
min_username_lengthandmax_username_lengthto control username format - Set
username_change_periodto allow a grace period where users can change their own username in case they did not understand the implications of their choice when they were signing up for an account. The default value is 3 days. After the username change period has expired, users must request a username change from the site Admin, who can change the username from the user Admin profile.
Name
The “name” field (sometimes referred to as “full name”) is an optional field that can display alongside the username.
Administrator options:
- Disable name display with the
enable_namessite setting - Control name requirements with the
full_name_requirementsetting - Use
prioritize_username_in_uxto emphasize usernames over names throughout the interface
Profile “about me”
Users can add biographical information to their profile, which is publicly visible by default.
Administrator options:
- Enable
hide_user_profiles_from_publicto disable user cards, user profiles, and the user directory for anonymous users - Enable
allow_users_to_hide_profileto let users choose to hide their own profiles - Set
default_hide_profileto true to hide all new user profiles by default
Location
Users can optionally specify their location, which appears on their user card and profile.
Administrator options:
- This field cannot be individually disabled; it is always available as an optional field for users. However, hiding profiles (see above) will prevent public access
- Educate users about privacy implications of sharing location data
Custom fields
Administrators can create custom user fields that appear during signup and on user profiles. These fields might inadvertently collect PII.
Administrator options:
- Carefully review all custom user fields for PII collection
- Only create custom fields that are necessary for your community
- Consider making sensitive fields optional rather than required
- Use the “Show on public profile” option judiciously
User status
The user status feature allows users to set a temporary status message (like “away” or “working from home”) with an emoji and optional expiration time.
Administrator options:
- User status is disabled by default and managed with the
enable_user_statussite setting - If enabled, educate users about not including PII in status messages
Content-based PII exposure
Posts and replies
Users can include PII in any content they post, including:
- Topics
- Replies
- Comments (on Embed Discourse comments on another website via Javascript )
- Personal messages (PMs)
- Chat messages (if Chat plugin is enabled)
Administrator options:
- Use AI Triage or the
watched_wordsfeature to flag or block specific patterns (phone numbers, addresses, etc.) - Administrators and moderators can quickly intervene to edit or remove any PII in content through built-in staff actions: editing, deleting, and reviewing the queue for flagged or held content.
- Use the
edit_history_visible_to_publicsetting to globally control who can see edit history after PII removal or theHide Revisionbutton in the edit composer for one-off PII removals.
Topics
Topic titles are publicly visible (unless in a private category) and may inadvertently contain PII.
Administrator options:
- Use staff actions to quickly edit topic titles that contain PII
- Consider making sensitive discussion areas private categories
Chat messages
If the Discourse Chat plugin is enabled, users can share PII in chat channels and direct messages.
Administrator options:
- Carefully configure which groups have access to chat
Tag-based PII exposure
Users with appropriate permissions can create tags. In extreme cases, a user might create a tag that contains PII.
Example: A user trying really hard to share their phone number might create a tag such as my-name-is-jenny-call-me-at-867-5309
Administrator options:
- Restrict tag creation to trusted user levels with the
Create tag allowed groupssetting
Last edited by @MarkDoerr 2025-12-11T16:33:19Z
Check document
Perform check on document: