Setting for resource token expiry notifications to inherited members

What does this MR do and why?

Setting for resource token expiry notifications to inherited members. Part 1 of 3 to implement this feature. Part 2 will add a group setting, and part 3 will implement the additional functionality. Documentation changes will be included in part 3.

Adds an instance setting for whether project and group expiry notification emails should be sent to only direct group or project members (current behavior) or direct and inherited members of the group or project.

This setting, and a related group setting, will be gated behind a feature flag while we work out performance and noise issues with sending additional emails for access token expiry.

Changelog: added

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After
Screenshot_2024-10-04_at_10.58.33_AM Screenshot_2024-10-04_at_10.57.53_AM

How to set up and validate locally

  1. Enable the feature flag for the whole instance: Feature.enable(:pat_expiry_inherited_members_notification, :instance)
  2. Visit Admin Settings Preferences Email: https://gdk.test:3443/admin/application_settings/preferences#js-email-settings
  3. Update the setting and confirm it is persisted in the db

Related to #463016 (closed)

Edited by Andrew Evans

Merge request reports

Loading