UX Stories: Code Suggestions for Self-Managed
**Status:** {+Proposal pending UX review+} GitLab Plus' [Iteration 1](https://gitlab.com/groups/gitlab-org/-/epics/10528https://gitlab.com/groups/gitlab-org/-/epics/10528) will enable Code Suggestions for SM developers using VS code IDEs. This requires UX consideration between two personas, and three environments. * An instance administrator, who manages the self-managed instance. They will need to perform actions on GitLab SaaS and in their self-managed instance. * Developer, who is looking to actually use the code suggestions feature. They will need to perform actions in their IDE. Please refer to https://gitlab.com/gitlab-org/gitlab/-/issues/411676 for a technical overview. ## UX Flow Overview Note: This flow is different between SaaS and self-managed. We need to make this clear in our documentation. | In SaaS | In SM Instance | In User's IDE | |---------|----------------|---------------| | <span dir="">SM admin creates a free personal account</span> \[1\] | | | | <span dir="">SM admin creates personal access token (PAT) for personal account</span> \[2\] | | | | | <span dir="">SM admin stores PAT into SM instance</span> \[3\] | | | | <span dir="">SM admin enables code suggestions functionality for their instances</span> \[4\] | | | | | <span dir="">User configure SM user account against SM instance</span> \[5\] | \[1\], \[2\]: This functionality exists independently of Code Suggestions. \[3\]: This functionality is net new. \[4\], \[5\]: We may be able to inherit design patterns from code suggestions, but will likely need to customize parts of this for SM. ## Key Tasks, by Persona This section describes items we will need to provide documentation #### Instance Administrator <table> <tr> <th>In Scope for MVC?</th> <th>Responsibility</th> </tr> <tr> <td>Yes</td> <td>Accept GitLab's Testing Agreement</td> </tr> <tr> <td>Yes</td> <td>Update GitLab instance to a version that will support Code Suggestions</td> </tr> <tr> <td>Yes</td> <td>Enable Code Suggestions access for their instance</td> </tr> <tr> <td>Yes</td> <td> Create personal account on SaaS * Used to create a personal account token; in MVC this personal token will be used to represent the SM instance to GitLab SaaS </td> </tr> <tr> <td>Yes</td> <td> Connect their self-managed instance to Plus. * We will minimize friction by abstracting away the concept of "Plus" as much as possible * They will need to store their personal account token in their instance </td> </tr> <tr> <td> **Maybe** </td> <td>Configure their self-managed instance to accept an internet connection to Plus.</td> </tr> <tr> <td>No</td> <td> Create service account on SaaS * This will eventually replace the personal account requirement for SM instance administrators </td> </tr> <tr> <td>No</td> <td>Enable / disable access to code suggestions for each individual SM instance user</td> </tr> </table> #### Developer | In Scope for MVC? | Responsibility | |-------------------|----------------| | Yes | Download a Code-Suggestion-compatible version of GitLab's VS Code workflow extension | | Yes | Configure local VS Code IDE with self managed instance | ## Functional Considerations * Code Suggestions is enabled separately from all other AI features. Our solution here should be narrowly scoped but extensible. * Legal constraints: https://gitlab.com/gitlab-org/gitlab/-/issues/412337
epic