Prompt users to double check their account recovery settings
What does this MR do?
Issue: #30065 (closed)
This MR adds callout which will be periodically (quarterly) displayed to our users.
Callout is displayed only on gitlab.com each 3 months and only for users older than 3 months
Reasoning for the database change
Currently we do not track callout dismissal date. This information is required to implement pattern "Require user to dismiss callout again in X months" and might be useful for analytics of other callouts dismissal
Migration output
== 20200129143231 AddDissmisedAtToUserCallouts: migrating =====================
-- add_column(:user_callouts, :dismissed_at, :datetime_with_timezone)
-> 0.0708s
== 20200129143231 AddDissmisedAtToUserCallouts: migrated (0.0712s) ============
Query timings
SELECT 1 AS one
FROM "user_callouts"
WHERE "user_callouts"."user_id" = $USER_ID
AND "user_callouts"."feature_name" = $FEATURE_ID
AND (dismissed_at > '2019-10-31 08:27:40.807105')
LIMIT 1
There is a unique index on user_id
and feature_name
, without the date filter it's an INDEX ONLY
scan. Plan with dismissed_at
filter:
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry - [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
Edited by 🤖 GitLab Bot 🤖