Skip to content

Commit 3be274d

Browse files
authored
chore(feedback): Remove references to deprecated submit-user-feedback endpoint (getsentry#10941)
1 parent 7817b5e commit 3be274d

File tree

12 files changed

+35
-35
lines changed

12 files changed

+35
-35
lines changed

develop-docs/application/feedback-architecture.mdx

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ title: User Feedback Architecture
44

55
**The goal of this doc is to give engineers an in-depth understanding of User Feedback's backend.**
66
It will:
7+
78
1. describe the relevant ingestion pipelines, data models, and functions.
89
2. explain the difference between “feedback”, “user reports”, and “crash reports”, and why we built and need to support each.
910

1011
## Creation sources
12+
1113
When broken down, there are **5** ways to create feedback in our system 😵‍💫.
1214
(But 4 of them, related to user reports, are quite similar!) A good reference is the
1315
`FeedbackCreationSource(Enum)` in [create_feedback.py](https://github.com/getsentry/sentry/blob/2b642e149c79b251e1c2f4339fc73d656347d74e/src/sentry/feedback/usecases/create_feedback.py#L33-L33).
@@ -21,15 +23,17 @@ release, url, etc.
2123
`USER_REPORT_ENVELOPE`: [The older format](https://develop.sentry.dev/sdk/envelopes/#user-feedback) with name/email/comments, that requires
2224
`event_id` to link a Sentry error event.
2325

24-
`USER_REPORT_DJANGO_ENDPOINT`: [The Web API](https://docs.sentry.io/api/projects/submit-user-feedback/)
26+
`USER_REPORT_DJANGO_ENDPOINT`: [The deprecated Web API](https://docs.sentry.io/api/projects/submit-user-feedback/)
2527

2628
`CRASH_REPORT_EMBED_FORM`: The [crash report modal](https://docs.sentry.io/product/user-feedback/#crash-report-modal)
2729

2830
## How feedback is stored
31+
2932
On the backend, each feedback submission in Sentry's UI is **an un-grouped issue occurrence**,
3033
saved via the [issues platform](https://develop.sentry.dev/issue-platform/).
3134
The entrypoint is [**`create_feedback_issue()`**](https://github.com/getsentry/sentry/blob/2b642e149c79b251e1c2f4339fc73d656347d74e/src/sentry/feedback/usecases/create_feedback.py#L184-L184),
3235
which
36+
3337
1. filters feedback with empty or spam messages. Note **anonymous feedbacks are not filtered** (missing name and/or email).
3438
2. sends to issues pipeline in a standardized format. To make sure it is never grouped, we use a random UUID for the fingerprint.
3539

@@ -63,7 +67,8 @@ event[”contexts”][”feedback”] = {
6367
- This doc refers to the payload format (`event` in the pseudo-code above) as a “**feedback event”**.
6468
- The feedback [widget](https://docs.sentry.io/platforms/javascript/user-feedback/#user-feedback-widget), which is installed by default, sends these envelopes.
6569
- API: for SDK v8.0.0+, we use the `sendFeedback` function.
66-
<br/><br/>
70+
<br />
71+
<br />
6772

6873
### Ingest diagram
6974

@@ -73,13 +78,15 @@ event[”contexts”][”feedback”] = {
7378
In Relay v24.5.1, we migrated feedback to its own kafka topic + consumer,
7479
`ingest-feedback-events`. This decouples risk and ownership from errors
7580
(`ingest-events`).
76-
<br/>
81+
82+
<br />
7783

7884
### Attachments
7985

8086
We only use attachments for the widget’s screenshot feature, which allows users
8187
to submit **at most 1 screenshot per feedback**. Attachments are another [item type](https://develop.sentry.dev/sdk/envelopes/#attachment)
8288
in an envelope.
89+
8390
- SDK v8.0.0+, Relay v24.5.1+: Sends the feedback and attachment items in the same envelope.
8491
- SDK < v8, all Relay versions: Sends a separate envelope for each item.
8592

@@ -100,12 +107,15 @@ user_report = {
100107
"comments": <optional str>,
101108
}
102109
```
103-
<br/>
110+
111+
<br />
104112

105113
### Ingest diagram
114+
106115
![](https://mermaid.ink/svg/pako:eNp9VNtq3DAQ_ZVBEHAgy77vQ6EkDfShF7KhUKzFaOXZtYgtqbpsCUn-vaOxvWmT3frF4-HozJkzIz8J7VoUK7EPyndwfyOtTDFvx8812hQeS0qmgN6F1KBtvTM21VIsc8Sw2CG2W6UfpNiMQB1U7JoJPrhW9YS9Lkm44yT8MPh7ghMdvf6uuctWJ-NsrG_nCBYQsgVjIeAOQ8AwlYrqgE1RMVYrSaAndmZokmuO0iZdqBIek42JMeNJHlgsPsCzFJ9vAQ9kAfjgNMaIrRTPZ9jfZpnjbMlj2xcXgPaAvfMI3njsjWWA8r7-6XKAj973Rqviw2bWNZ8oau6wVzwhDhihSIc3uqqN3WNMC5WS0t1AjcTNJZOPAAa_t3BWNc4ZlG2BRwojIk7yZjHfv63vi5A3-3GG_NTJ9wvzX2VsYgTfq7RzYSjZkz4ziWs0LVAeMFS0hZMhTutMrJZmSmvIlrzi-JilSxGTC1hXX-fwcnMCSG18KiuypvuhBl4Pm7eqrtbltbym2T10jrrg02MDpafJLm4yLrNvST87e2oVvYtpHzDWFZk2xVKMerjcLOVXxmDIG95aFs2K_qUUV4LUD8q0dO2fpAWQInU4EHZFYW_2XZJC2hcCqpzc-tFqsUoh45UYhd4YRXd1EKud6iNlsTVU68v4I-H_ycsfwTWaqg)
107116
[diagram source](https://mermaid.live/edit#pako:eNp9VNtq3DAQ_ZVBEHAgy77vQ6EkDfShF7KhUKzFaOXZtYgtqbpsCUn-vaOxvWmT3frF4-HozJkzIz8J7VoUK7EPyndwfyOtTDFvx8812hQeS0qmgN6F1KBtvTM21VIsc8Sw2CG2W6UfpNiMQB1U7JoJPrhW9YS9Lkm44yT8MPh7ghMdvf6uuctWJ-NsrG_nCBYQsgVjIeAOQ8AwlYrqgE1RMVYrSaAndmZokmuO0iZdqBIek42JMeNJHlgsPsCzFJ9vAQ9kAfjgNMaIrRTPZ9jfZpnjbMlj2xcXgPaAvfMI3njsjWWA8r7-6XKAj973Rqviw2bWNZ8oau6wVzwhDhihSIc3uqqN3WNMC5WS0t1AjcTNJZOPAAa_t3BWNc4ZlG2BRwojIk7yZjHfv63vi5A3-3GG_NTJ9wvzX2VsYgTfq7RzYSjZkz4ziWs0LVAeMFS0hZMhTutMrJZmSmvIlrzi-JilSxGTC1hXX-fwcnMCSG18KiuypvuhBl4Pm7eqrtbltbym2T10jrrg02MDpafJLm4yLrNvST87e2oVvYtpHzDWFZk2xVKMerjcLOVXxmDIG95aFs2K_qUUV4LUD8q0dO2fpAWQInU4EHZFYW_2XZJC2hcCqpzc-tFqsUoh45UYhd4YRXd1EKud6iNlsTVU68v4I-H_ycsfwTWaqg)
108-
<br/>
117+
118+
<br />
109119

110120
### Shimming to feedback
111121

@@ -125,7 +135,7 @@ Simplified diagram:
125135
![](https://mermaid.ink/svg/pako:eNpdULtuwzAM_BWBUwIkzm4UXZq1QIF0MwNDlllLTfSoKAUokvx7ZasZWi06kMfj8a6g_EjQwhRl0OJ9j06Ux9rYPvn-g2gcpDqJ7fZZ3BCapkG4CXZ5kN3qMH-7l7NRJ-0z0_qIDtPSfAx8ZYqGWNCFXOLkI83zIfSffqirKu4QKEYfWQTPSYToFTGLmQVH8fRXbZfDKBPxIlXoUyTuVghvvxihOqnSi5X_B9XdsAFL0UozlgSucw0habLFZFvg2Uw6IaC7F6LMyR--nYI2xUwbqB72Rpbk7KNIoyk3vtZIl2TvP_9DeX4)
126136
[diagram source](https://mermaid.live/edit#pako:eNpdULtuwzAM_BWBUwIkzm4UXZq1QIF0MwNDlllLTfSoKAUokvx7ZasZWi06kMfj8a6g_EjQwhRl0OJ9j06Ux9rYPvn-g2gcpDqJ7fZZ3BCapkG4CXZ5kN3qMH-7l7NRJ-0z0_qIDtPSfAx8ZYqGWNCFXOLkI83zIfSffqirKu4QKEYfWQTPSYToFTGLmQVH8fRXbZfDKBPxIlXoUyTuVghvvxihOqnSi5X_B9XdsAFL0UozlgSucw0habLFZFvg2Uw6IaC7F6LMyR--nYI2xUwbqB72Rpbk7KNIoyk3vtZIl2TvP_9DeX4)
127137

128-
<br/>
138+
<br />
129139

130140
### Envelopes
131141

@@ -134,7 +144,8 @@ User reports are also sent to Relay in [envelope format](https://develop.sentry.
134144
item header will read `"user_report"`.**
135145

136146
The SDK function that sends these is `captureUserFeedback`.
137-
<br/>
147+
148+
<br />
138149

139150
### Django endpoint
140151

@@ -143,7 +154,8 @@ to Sentry, with
143154
`/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/user-feedback/`.
144155

145156
See [https://docs.sentry.io/api/projects/submit-user-feedback/](https://docs.sentry.io/api/projects/submit-user-feedback/).
146-
<br/>
157+
158+
<br />
147159

148160
### Crash reports
149161

@@ -154,8 +166,9 @@ data is the same as user reports.
154166
You can install it as an [SDK integration](https://docs.sentry.io/platforms/javascript/user-feedback/#crash-report-modal).
155167

156168
We implement it as a Django view:
157-
* URL: `/api/embed/error-page/`
158-
* Python Class: `error_page_embed.ErrorPageEmbedView`
169+
170+
- URL: `/api/embed/error-page/`
171+
- Python Class: `error_page_embed.ErrorPageEmbedView`
159172

160173
Crash reports are also shimmed to feedback. The pipeline is the same as the
161174
`/user-feedback` endpoint.
@@ -187,11 +200,14 @@ filters, **skipping emails if:**
187200
---
188201

189202
## Feature flags for self-hosted
203+
190204
To disable all UI features and/or ingestion, set these to false:
191-
* `organizations:user-feedback-ui`
192-
* `organizations:feedback-visible`
193-
* `organizations:user-feedback-ingest`
205+
206+
- `organizations:user-feedback-ui`
207+
- `organizations:feedback-visible`
208+
- `organizations:user-feedback-ingest`
194209

195210
To disable auto spam filters, set these to false:
196-
* `organizations:user-feedback-spam-filter-ingest`
197-
* `organizations:user-feedback-spam-filter-actions`
211+
212+
- `organizations:user-feedback-spam-filter-ingest`
213+
- `organizations:user-feedback-spam-filter-actions`

docs/platforms/android/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ The user feedback API allows you to collect user feedback while utilizing your o
1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. For example, to get the `eventId`, you can use <PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink> or the return value of the method capturing an event.
1414

1515
<PlatformContent includePath="user-feedback/sdk-api-example/" />
16-
17-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/apple/common/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ The user feedback API allows you to collect user feedback while utilizing your o
1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. For example, to get the `eventId`, you can use <PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink> or the return value of the method capturing an event.
1414

1515
<PlatformContent includePath="user-feedback/sdk-api-example/" />
16-
17-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/dart/user-feedback/index.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ When a user experiences an error, Sentry provides the ability to collect additio
1111
The user feedback API allows you to collect user feedback while utilizing your own UI. You can use the same programming language you have in your app to send user feedback. In this case, the SDK creates the HTTP request so you don't have to deal with posting data via HTTP.
1212

1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. There are several ways to get the `eventId`:
14+
1415
- use {<PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink>}
1516
- use the return value of any method capturing an event.
1617
- use `Sentry.lastEventId` to get the ID of the last event sent.
1718

1819
<PlatformContent includePath="user-feedback/sdk-api-example/" />
19-
20-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/dotnet/common/user-feedback/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ User Feedback for **[ASP.NET](/platforms/dotnet/guides/aspnet/user-feedback/#int
1414

1515
</Note>
1616

17-
You can create a form to collect the user input in your preferred framework, and use the SDK's API to send the information to Sentry. You can also use the widget, as described below. If you'd prefer an alternative to the widget or do not have a JavaScript frontend, you can use this API or a [Web API](/api/projects/submit-user-feedback/).
17+
You can create a form to collect the user input in your preferred framework, and use the SDK's API to send the information to Sentry. You can also use the widget, as described below. If you'd prefer an alternative to the widget or do not have a JavaScript frontend, you can use this API:
1818

1919
```csharp {tabTitle:C#}
2020
using Sentry;

docs/platforms/flutter/user-feedback/index.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ When a user experiences an error, Sentry provides the ability to collect additio
1111
The user feedback API allows you to collect user feedback while utilizing your own UI. You can use the same programming language you have in your app to send user feedback. In this case, the SDK creates the HTTP request so you don't have to deal with posting data via HTTP.
1212

1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. There are several ways to get the `eventId`:
14+
1415
- use {<PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink>}
1516
- use the return value of any method capturing an event.
1617
- use `Sentry.lastEventId` to get the ID of the last event sent.
1718

1819
<PlatformContent includePath="user-feedback/sdk-api-example/" />
19-
20-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/java/common/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ The user feedback API allows you to collect user feedback while utilizing your o
1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. For example, to get the `eventId`, you can use <PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink> or the return value of the method capturing an event.
1414

1515
<PlatformContent includePath="user-feedback/sdk-api-example/" />
16-
17-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/kotlin-multiplatform/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,3 @@ When a user experiences an error, Sentry provides the ability to collect additio
1111
The user feedback API allows you to collect user feedback while utilizing your own UI. You can use the same programming language you have in your app to send user feedback. In this case, the SDK creates the HTTP request so you don't have to deal with posting data via HTTP.
1212

1313
<PlatformContent includePath="user-feedback/sdk-api-example/" />
14-
15-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/native/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ The user feedback API allows you to collect user feedback using your own UI. You
1313
Sentry pairs the feedback with the original event, giving you additional insight into issues. In order to do this, Sentry needs the `eventId`. For example, to get the `eventId`, you can use <PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink> or the return value of the method capturing an event.
1414

1515
<PlatformContent includePath="user-feedback/sdk-api-example/" />
16-
17-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

docs/platforms/react-native/user-feedback/index.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,3 @@ The user feedback API allows you to collect user feedback while utilizing your o
1111
Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `eventId` to be able to associate the user feedback to the corresponding event. For example, to get the `eventId`, you can use <PlatformLink to="/configuration/options/#before-send"><PlatformIdentifier name="before-send" /></PlatformLink> or the return value of the method capturing an event.
1212

1313
<PlatformContent includePath="user-feedback/sdk-api-example/" />
14-
15-
Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly.

0 commit comments

Comments
 (0)