discourse/app/models
Alan Guo Xiang Tan 898b71da88
PERF: Add indexes to speed up notifications queries by user menu (#26048)
Why this change?

There are two problematic queries in question here when loading
notifications in various tabs in the user menu:

```
SELECT "notifications".*
FROM "notifications"
LEFT JOIN topics ON notifications.topic_id = topics.id
WHERE "notifications"."user_id" = 1338 AND (topics.id IS NULL OR topics.deleted_at IS NULL)
ORDER BY notifications.high_priority AND NOT notifications.read DESC,
  NOT notifications.read AND notifications.notification_type NOT IN (5,19,25) DESC,
  notifications.created_at DESC
LIMIT 30;
```

and

```
EXPLAIN ANALYZE SELECT "notifications".*
FROM "notifications"
LEFT JOIN topics ON notifications.topic_id = topics.id
WHERE "notifications"."user_id" = 1338
AND (topics.id IS NULL OR topics.deleted_at IS NULL)
AND "notifications"."notification_type" IN (5, 19, 25)
ORDER BY notifications.high_priority AND NOT notifications.read DESC, NOT notifications.read DESC, notifications.created_at DESC LIMIT 30;
```

For a particular user, the queries takes about 40ms and 26ms
respectively on one of our production instance where the user has 10K notifications while the site has 600K notifications in total.

What does this change do?

1. Adds the `index_notifications_user_menu_ordering` index to the `notifications` table which is
   indexed on `(user_id, (high_priority AND NOT read) DESC, (NOT read)
DESC, created_at DESC)`.

1. Adds a second index `index_notifications_user_menu_ordering_deprioritized_likes` to the `notifications`
   table which is indexed on `(user_id, (high_priority AND NOT read) DESC, (NOT read AND notification_type NOT IN (5,19,25)) DESC, created_at DESC)`. Note that we have to hardcode the like typed notifications type here as it is being used in an ordering clause.

With the two indexes above, both queries complete in roughly 0.2ms. While I acknowledge that there will be some overhead in insert,update or delete operations. I believe this trade-off is worth it since viewing notifications in the user menu is something that is at the core of using a Discourse forum so we should optimise this experience as much as possible.
2024-03-06 16:52:19 +08:00
..
concerns FIX: Always trust admin and moderators with post edits (#25602) 2024-02-08 13:10:26 +10:00
about.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
admin_dashboard_data.rb DEV: Drop Ember 3 feature flag 2024-02-26 12:22:05 +00:00
admin_dashboard_general_data.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
admin_dashboard_index_data.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
allowed_pm_user.rb
anonymous_user.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
api_key.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
api_key_scope.rb FEATURE: Add recover api scopes (#25978) 2024-02-29 15:49:29 -07:00
application_request.rb PERF: Use native postgres upsert for ApplicationRequest (#20706) 2023-03-17 09:35:29 +00:00
associated_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
auto_track_duration_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
backup_draft_post.rb
backup_draft_topic.rb
backup_file.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
backup_location_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
backup_metadata.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
badge.rb DEV: Drop deprecated Badge#image column (#25536) 2024-02-02 14:09:55 +08:00
badge_grouping.rb DEV: Set limits for text fields on BadgeGrouping 2023-05-15 09:54:54 +02:00
badge_type.rb
base_font_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
bookmark.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
category.rb FIX: Cache keys should be strings (#25791) 2024-02-21 10:55:48 -06:00
category_and_topic_lists.rb
category_custom_field.rb DEV: Add true_fields method for CustomFields (#24876) 2023-12-14 11:06:21 -06:00
category_featured_topic.rb DEV: Prefer nested queries (#23464) 2023-09-25 19:38:54 +03:00
category_form_template.rb DEV: Apply form template to categories (#20337) 2023-02-23 11:18:14 -08:00
category_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
category_list.rb PERF: Reduce ActiveRecord allocations in `CategoryList#find_relevant_topics` (#25950) 2024-02-29 12:19:04 +08:00
category_page_style.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
category_required_tag_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
category_search_data.rb
category_setting.rb DEV: Switch over category settings to new table - Part 3 (#20657) 2023-09-12 09:51:49 +08:00
category_tag.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
category_tag_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
category_tag_stat.rb FIX: Update category tag stats with new or deleted (#21531) 2023-05-18 12:46:44 +03:00
category_user.rb FIX: more performance improvement for PostAlert job (#22487) 2023-07-13 09:02:23 +10:00
child_theme.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
color_scheme.rb UX: Update selected colour var (#25500) 2024-01-31 09:32:38 +01:00
color_scheme_color.rb
color_scheme_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
custom_emoji.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
developer.rb DEV: Make every DistributedCache lazily instantiated (#23147) 2023-08-18 10:59:11 -05:00
digest_email_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
directory_column.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
directory_item.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
discourse_connect.rb DEV: lint against Layout/EmptyLineBetweenDefs (#24914) 2023-12-15 23:46:04 +08:00
discourse_version_check.rb
dismissed_topic_user.rb
do_not_disturb_timing.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
draft.rb SECURITY: Limit number of drafts per user and length of `draft_key` 2023-09-12 15:31:26 -03:00
draft_sequence.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
email_change_request.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
email_level_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
email_log.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
email_style.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
email_token.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
embeddable_host.rb SECURITY: Remove bypass for base_url (#19995) 2023-01-25 13:50:45 +02:00
embedding.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
emoji.rb FEATURE: Add an emoji deny list site setting (#20929) 2023-04-13 15:38:54 +08:00
emoji_set_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
external_upload_stub.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
form_template.rb FEATURE: support to initial values for form templates through /new-topic (#23313) 2023-08-29 18:41:33 -03:00
given_daily_like.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
global_setting.rb DEV: Fix Lint/BooleanSymbol (#24747) 2023-12-06 13:19:09 +01:00
group.rb DEV: Change Group.trusted_group_ids to use const (#25639) 2024-02-12 12:36:00 +10:00
group_archived_message.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
group_associated_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
group_category_notification_default.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
group_custom_field.rb DEV: Add true_fields method for CustomFields (#24876) 2023-12-14 11:06:21 -06:00
group_history.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
group_mention.rb
group_request.rb DEV: Bump the limits on group request text fields 2023-05-24 09:57:46 +02:00
group_tag_notification_default.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
group_user.rb DEV: Make more group-based settings client: false (#25585) 2024-02-08 09:43:34 +10:00
ignored_user.rb
imap_sync_log.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
incoming_domain.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
incoming_email.rb DEV: add topic_id index to incoming_emails table (#26004) 2024-03-04 13:50:01 +10:00
incoming_link.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
incoming_links_report.rb FIX: Respect date range in top traffic sources report (#25599) 2024-02-08 11:17:59 -05:00
incoming_referer.rb
invite.rb DEV: lint against Layout/EmptyLineBetweenDefs (#24914) 2023-12-15 23:46:04 +08:00
invite_redeemer.rb UX: Improve invite error message when a user uses an email that has already redeemed (#25695) 2024-02-27 18:24:20 +08:00
invited_group.rb
invited_user.rb
javascript_cache.rb DEV: Introduce `DISCOURSE_ASSET_URL_SALT` (#24596) 2023-11-28 11:28:40 +00:00
like_notification_frequency_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
linked_topic.rb
locale_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
mailing_list_mode_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
muted_user.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
navigation_menu_site_setting.rb FEATURE: Remove support for legacy navigation menu (#23752) 2023-10-09 07:24:10 +08:00
new_topic_duration_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
notification.rb PERF: Add indexes to speed up notifications queries by user menu (#26048) 2024-03-06 16:52:19 +08:00
notification_level_when_replying_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
oauth2_user_info.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
onceoff_log.rb
optimized_image.rb DEV: Allow rebakes to generate optimized images at the same time 2024-01-16 14:33:16 +01:00
permalink.rb FEATURE: Permalinks for users (#25552) 2024-02-05 17:31:31 +01:00
plugin_store.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
plugin_store_row.rb
post.rb FEATURE: Auto generate and display video preview image (#25633) 2024-02-14 13:43:53 -07:00
post_action.rb DEV: Remove deprecated PostAction.remove_act method (#24126) 2023-10-27 10:02:14 +08:00
post_action_type.rb FEATURE: Add new 'illegal' flag reason (#25498) 2024-02-07 10:12:22 +08:00
post_analyzer.rb FIX: user got notified about a mention inside a chat message quote (#24229) 2023-11-08 23:13:25 +04:00
post_custom_field.rb DEV: Add true_fields method for CustomFields (#24876) 2023-12-14 11:06:21 -06:00
post_detail.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
post_hotlinked_media.rb DEV: use HTML5 version of loofah (#21522) 2023-06-20 09:49:22 +08:00
post_mover.rb FIX: Post moved small action links should respect subfolder installs (#24336) 2023-11-13 11:06:25 +08:00
post_reply.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
post_reply_key.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
post_revision.rb FIX: keep first post edit history when moving/merging (#22966) 2023-08-03 22:04:35 -03:00
post_search_data.rb
post_stat.rb
post_stripper.rb FIX: user got notified about a mention inside a chat message quote (#24229) 2023-11-08 23:13:25 +04:00
post_timing.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
previous_replies_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
private_message_topic_tracking_state.rb DEV: Fix various typos (#24461) 2023-11-20 16:49:49 +01:00
problem_check_tracker.rb DEV: Add DB backed problem checks to support perform_every config (#25834) 2024-02-27 11:17:39 +08:00
published_page.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
push_subscription.rb
quoted_post.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
remote_theme.rb DEV: Add `skip_migrations` param when importing remote theme (#25218) 2024-01-11 14:04:02 +08:00
remove_muted_tags_from_latest_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
report.rb FIX: Radar chart not widely available. (#25368) 2024-01-22 11:21:28 -03:00
reviewable.rb FEATURE: Add Revise... option for queued post reviewable (#23454) 2023-10-13 11:28:31 +10:00
reviewable_claimed_topic.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_flagged_post.rb FIX: Allow the flags to be cleaned up (#25085) 2024-01-02 18:32:50 +08:00
reviewable_history.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_post.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_priority_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_queued_post.rb DEV: Housekeeping for CleanUpUploads job (#24361) 2023-11-20 09:50:09 +10:00
reviewable_score.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_sensitivity_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
reviewable_user.rb FEATURE: Add Revise... option for queued post reviewable (#23454) 2023-10-13 11:28:31 +10:00
s3_region_site_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
screened_email.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
screened_ip_address.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
screened_url.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
search_log.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
search_sort_order_site_setting.rb FEATURE: Add setting & preference for search sort default order (#24428) 2023-11-20 10:43:58 +10:00
shared_draft.rb
shelved_notification.rb
sidebar_section.rb SECURITY: limit amount of links in custom sidebar section (#22543) 2023-07-11 15:25:01 -06:00
sidebar_section_link.rb FIX: public sidebar sections belong to system user (#20972) 2023-04-05 10:52:18 +10:00
sidebar_url.rb FEATURE: Initial admin sidebar navigation (#24789) 2023-12-18 11:48:25 +10:00
single_sign_on_record.rb
site.rb FIX: Preload parent categories for sidebar (#25726) 2024-02-16 16:39:18 +02:00
site_setting.rb DEV: Make more group-based settings client: false (#25585) 2024-02-08 09:43:34 +10:00
sitemap.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
skipped_email_log.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
slug_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
stat.rb FEATURE: call hub API to update Discourse discover enrollment. (#25634) 2024-02-23 11:42:28 +05:30
stylesheet_cache.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
summarization_strategy.rb FEATURE: Custom content summarization strategies. (#21813) 2023-06-13 14:21:46 -03:00
summary_section.rb FEATURE: Regenerate outdated summaries. (#22718) 2023-07-20 15:25:46 -03:00
tag.rb DEV: lint against Layout/EmptyLineBetweenDefs (#24914) 2023-12-15 23:46:04 +08:00
tag_group.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
tag_group_membership.rb
tag_group_permission.rb
tag_search_data.rb
tag_user.rb DEV: Fix various rubocop lints (#24749) 2023-12-06 23:25:00 +01:00
theme.rb FEATURE: Add experimental option for strict-dynamic CSP (#25664) 2024-02-16 11:16:54 +00:00
theme_field.rb DEV: Centralise logic for validating a theme setting value (#25764) 2024-02-21 08:08:26 +08:00
theme_modifier_set.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
theme_setting.rb DEV: Set a bytesize limit for `ThemeSetting#json_value` (#25761) 2024-02-21 08:09:37 +08:00
theme_settings_migration.rb FEATURE: Theme settings migrations (#24071) 2023-11-02 08:10:15 +03:00
theme_svg_sprite.rb FIX: Always clear caches after committing the current transaction (#22550) 2023-07-12 09:49:28 -05:00
theme_translation_override.rb DEV: Use the theme cache helper for settings 2022-02-21 09:45:14 +00:00
top_lists.rb
top_menu_item.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
top_topic.rb FIX: Prevent concurrent updates to top_topics (#19854) 2023-01-12 14:03:26 -06:00
topic.rb DEV: Add post_id parameter to reset_bump_date route (#25372) 2024-02-15 16:42:42 +11:00
topic_allowed_group.rb
topic_allowed_user.rb
topic_converter.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
topic_custom_field.rb DEV: Add true_fields method for CustomFields (#24876) 2023-12-14 11:06:21 -06:00
topic_embed.rb FEATURE: Cache embed contents in the database (#25133) 2024-01-05 10:09:31 -03:00
topic_featured_users.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_group.rb DEV: Enable `unless` cops 2023-02-21 10:30:48 +01:00
topic_hot_score.rb FEATURE: apply pinning to hot topic lists (#25690) 2024-02-15 18:27:54 +11:00
topic_invite.rb
topic_link.rb FEATURE: support silent internal links (#25472) 2024-01-30 17:03:58 +11:00
topic_link_click.rb DEV: Remove old deprecation warnings where constants already removed (#22140) 2023-06-16 11:26:26 +08:00
topic_list.rb FIX: muted tags breaking hot page when filtered to tags (#25824) 2024-02-23 17:11:39 +11:00
topic_notifier.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_participant_groups_summary.rb FEATURE: display PM participant group names in the topics list. (#21677) 2023-05-31 19:32:06 +05:30
topic_participants_summary.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_poster.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_posters_summary.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_search_data.rb
topic_tag.rb SECURITY: Default tags to show count of topics in unrestricted categories (#19916) 2023-01-20 09:50:24 +08:00
topic_thumbnail.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
topic_timer.rb DEV: Fix various rubocop lints (#24749) 2023-12-06 23:25:00 +01:00
topic_tracking_state.rb DEV: Make more group-based settings client: false (#25585) 2024-02-08 09:43:34 +10:00
topic_user.rb FIX: more performance improvement for PostAlert job (#22487) 2023-07-13 09:02:23 +10:00
topic_view_item.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
translation_override.rb DEV: Add endpoint for dismissing outdated translations (#22509) 2023-07-19 23:06:13 +08:00
trust_level3_requirements.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
trust_level_and_staff_and_disabled_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
trust_level_and_staff_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
trust_level_setting.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
unsubscribe_key.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
upload.rb PERF: Use `-ping` option to ImageMagick `identify` command (#25713) 2024-02-16 07:39:49 +08:00
upload_reference.rb DEV: Use UploadReference instead of ChatUpload in chat (#19947) 2023-01-24 13:28:21 +10:00
user.rb DEV: Convert header to glimmer (#25214) 2024-02-23 11:08:15 -07:00
user_action.rb DEV: Add a plugin modifier for user_action_stream_builder (#25691) 2024-02-16 10:24:39 +10:00
user_api_key.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_api_key_scope.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_archived_message.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_associated_account.rb
user_associated_group.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_auth_token.rb DEV: Add more debugging information to AR query logs on GitHub actions (#25237) 2024-01-12 13:06:29 +08:00
user_auth_token_log.rb
user_avatar.rb PERF: Better query performance for user avatar consistency check. (#25342) 2024-01-22 18:33:39 +01:00
user_badge.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
user_badges.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_bookmark_list.rb SECURITY: Impose a upper bound on limit params in various controllers 2023-07-28 12:53:46 +01:00
user_custom_field.rb DEV: Add true_fields method for CustomFields (#24876) 2023-12-14 11:06:21 -06:00
user_email.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_export.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_field.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_field_option.rb FIX: Validate value of custom dropdown user fields - dropdowns and multiple selects (#13890) 2021-07-30 13:50:47 -04:00
user_history.rb DEV: Implement staff logs for user columns edits (#21774) 2023-06-07 17:19:58 -05:00
user_ip_address_history.rb
user_notification_schedule.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_open_id.rb
user_option.rb FIX: muted tags breaking hot page when filtered to tags (#25824) 2024-02-23 17:11:39 +11:00
user_profile.rb DEV: Add rake task for generating avatars from SSO 2023-08-09 20:56:14 +02:00
user_profile_view.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_search.rb FEATURE: Hide user status when user is hiding public profile and presence (#24300) 2024-02-26 17:40:48 +04:00
user_search_data.rb
user_second_factor.rb SECURITY: Limit name field length of TOTP authenticators and security keys 2023-09-12 15:31:17 -03:00
user_security_key.rb SECURITY: Limit name field length of TOTP authenticators and security keys 2023-09-12 15:31:17 -03:00
user_stat.rb DEV: Make more group-based settings client: false (#25585) 2024-02-08 09:43:34 +10:00
user_status.rb FIX: Truncate existing user status to 100 chars (#20044) 2023-01-30 10:49:08 +02:00
user_summary.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_upload.rb
user_visit.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
user_warning.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
username_validator.rb FIX: Disallow invisible Unicode characters in usernames (#21331) 2023-05-02 17:34:53 +10:00
watched_word.rb DEV: update syntax tree to latest (#24623) 2023-11-29 16:38:07 +11:00
web_crawler_request.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
web_hook.rb FEATURE: granular webhooks (#23070) 2023-10-09 03:35:31 +00:00
web_hook_event.rb DEV: Apply syntax_tree formatting to `app/*` 2023-01-09 14:14:59 +00:00
web_hook_event_type.rb FIX: active webhook types exclude inactive plugins (#26022) 2024-03-05 12:47:04 +11:00
web_hook_event_types_hook.rb FEATURE: granular webhooks (#23070) 2023-10-09 03:35:31 +00:00