Registration Features - MVC
## Release Notes Starting with GitLab version 14.1, [Registration Features](https://docs.gitlab.com/ee/development/service_ping/index.html#registration-features-program) will give free self-managed users running GitLab EE can receive paid features by registering with GitLab and sending us activity data via [Service Ping](https://docs.gitlab.com/ee/development/service_ping/index.html#what-is-service-ping). The paid feature available in this offering is [Email from GitLab](https://docs.gitlab.com/ee/tools/email.html). Administrators can use this [Premium](https://about.gitlab.com/pricing/premium/) feature to streamline their workflow by emailing all or some instance users directly from the Admin Area. ## Summary We’re going to launch an MVC of a new offering internally called “Registration Features” for self-managed users (free and paid). This offering will give users of EE (paid or free) the ability to turn on a specific paid feature set in exchange for turning on Usage Ping. Reference: https://gitlab.com/groups/gitlab-org/-/epics/6274 ## MVC The MVC approach is very light, we will tie the ability to turn on a paid feature setting when Service Ping (fka Usage Ping) is enabled. ### Feature set When the user enables Service Ping, we will provide the ability to turn on the `Registration Features` which currently includes [Email from GitLab](https://docs.gitlab.com/ee/tools/email.html) ### Flow 1. User installs EE version [xx]+ 1. Service Ping (fka Usage Ping) is default `On` _(current behavior)_ 1. In admin settings, as a sub-setting of Usage Ping, there is a new setting: `Team Performance Features: on/off` _(new)_ 1. This new setting is default `Off` and only available to flip to `On` if Service Ping is set to `On` _(new)_ 1. If Service Ping is set to `Off` , the new setting becomes unavailable for selection and automatically set to `No` where it was previously flipped `On` _(new)_ 1. A tooltip or small text is displayed near the new setting with explanations in the various states about the ability set it to `On` as it relates to Service Ping _(new)_ ## Success Criteria 1. [x] A new sub-setting of Service Ping (fka Usage Ping) is created and has conditional behavior based on Service Ping status 1. [x] UX: https://gitlab.com/gitlab-org/gitlab/-/issues/333015 1. [x] FE: https://gitlab.com/gitlab-org/gitlab/-/issues/333018 1. [x] When the new sub-setting is `On`, the [feature set](https://gitlab.com/groups/gitlab-org/-/epics/6144#feature-set) is provisioned in the instance 1. [x] BE: https://gitlab.com/gitlab-org/gitlab/-/issues/333019 1. [x] When Service Ping is `Off`: https://gitlab.com/gitlab-org/gitlab/-/issues/333021 1. The new sub-setting is set to `Off` 1. The new sub-setting is disabled for selection 1. The instance no longer receives the [paid feature](https://gitlab.com/groups/gitlab-org/-/epics/6144#feature-set) 1. [x] Helpful text is provided to explain the conditions of the `On/Off` toggle for the new sub-setting https://gitlab.com/gitlab-org/gitlab/-/issues/333022 ## Designs Note, the designs below are **demonstrating the wrong feature**. We have since changed the feature being offered, but I'm leaving these designs for reference re: format (spacing, font, color, etc). 1. Design for "not allowed" state: https://gitlab.com/gitlab-org/gitlab/-/issues/333015/designs/not-allowed.png 1. Design for "allowed" state: https://gitlab.com/gitlab-org/gitlab/-/issues/333015/designs/allowed.png ### Design with new feature ![Screen_Shot_2021-06-23_at_3.29.38_PM](/uploads/29d2e552bdba862a123c0a7d2ec203bf/Screen_Shot_2021-06-23_at_3.29.38_PM.png) ## Docs Updates 1. [x] Creation of `Registration Features` subsection on Usage Ping docs page 1. Docs issue: https://gitlab.com/gitlab-org/gitlab/-/issues/334428 1. Docs MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64735
epic