Commit ddeb6e8
feat(flags): add python onboarding sidebar (#80871)
## what does this pr do?
- this pr implements part of the feature flag onboarding sidebar
specified in these
[designs](https://www.figma.com/design/6w2ju2MlyuGRLKm2PKpotD/Specs%3A-Feature-Flag-Onboarding?node-id=0-1&node-type=canvas&t=UPuG14gRVUNLLQvo-0).
- relates to getsentry/team-replay#502.
- currently, only the python onboarding is done, as i want to get
feedback on how i've structured it before doing javascript. (javascript
& python are the only two SDKs we'll do for now.)
- deletes the setup integration modal introduced in
#80437, which is no longer
needed.
## flow walkthrough
The sidebar is triggered by the "set up integration" button on the
feature flags table on issue details.
<img width="686" alt="SCR-20241115-nhtq"
src="https://github.com/user-attachments/assets/a4fecf37-a2b1-4795-aa11-f612035792c3">
It opens a flyout sidebar, which explains onboarding instructions for
how to set up feature flag integrations. Depending on whether
OpenFeature is selected (which allows for an additional dropdown to pick
another provider) or another SDK, the instructions will vary.
### LD:
<img width="474" alt="SCR-20241115-njpv"
src="https://github.com/user-attachments/assets/6a638bd4-a9ac-4fb1-8646-3a55362fb6b3">
### OpenFeature with LD:
<img width="464" alt="SCR-20241115-nkwd"
src="https://github.com/user-attachments/assets/622fe30d-5a66-4638-9314-de621c9f1578">
### signing secret
At the bottom of the sidebar is a spot to post a signing secret, which
is what we use to verify the integration. This posts to the
`/signing-secret/` endpoint:
https://github.com/getsentry/sentry/blob/9dfbc5a6629127614e04b8e95b9b280ccd8e1ea1/src/sentry/api/urls.py#L2072-L2076
https://github.com/user-attachments/assets/a94c92a6-0b46-465e-b805-b1bef2f43460
when the token is saved, a success banner appears:
<img width="459" alt="SCR-20241115-nmxv"
src="https://github.com/user-attachments/assets/73c5841f-52d8-494d-a905-81dfe1b8cbec">
## video demos
triggering from issue details:
https://github.com/user-attachments/assets/06505803-ab2f-477d-a053-2269b9af1be7
example of what it would look like if OpenFeature had multiple options:
https://github.com/user-attachments/assets/5893ac06-b1f3-4925-b124-b609440c6e33
## todo (this PR):
- [x] fix/test the secret endpoint
- [x] fill in links for docs
## todo (followups)
- javascript onboarding
- figure out CTA details (another way the sidebar can be triggered)
- if we detect that `event.contexts.flags` is not undefined, we should
hide the first half of the onboarding as specified in the designs
- analytics charts1 parent a674e58 commit ddeb6e8
File tree
14 files changed
+769
-233
lines changed- static/app
- components
- events/featureFlags
- onboarding/gettingStartedDoc
- utils
- sidebar
- data
- gettingStartedDocs/python
- utils/analytics
14 files changed
+769
-233
lines changedLines changed: 3 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
| |||
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 13 | + | |
18 | 14 | | |
19 | 15 | | |
20 | 16 | | |
| |||
80 | 76 | | |
81 | 77 | | |
82 | 78 | | |
| 79 | + | |
83 | 80 | | |
84 | 81 | | |
85 | 82 | | |
| |||
95 | 92 | | |
96 | 93 | | |
97 | 94 | | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | 95 | | |
106 | 96 | | |
107 | 97 | | |
| |||
195 | 185 | | |
196 | 186 | | |
197 | 187 | | |
198 | | - | |
| 188 | + | |
199 | 189 | | |
200 | 190 | | |
201 | 191 | | |
| |||
Lines changed: 119 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
0 commit comments