You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 'master' of https://github.com/getsentry/sentry-docs:
Add "Data Collected" page for Godot SDK (and more) (#13533)
Clarify FK docs (#13562)
Clarify db index docs (#13561)
Remove non-functioning video embed (#13557)
Masinette integrations elba (#13503)
Incorporate Uptime Monitors Into The Crons Management Page (#13507)
feat(javascript): Add "Data Collected" (#13527)
docs(relay): remove entries that are not scrubbed by default (#13555)
flutter: Add note to app start integration (#13479)
ref(flutter): move custom zone handling code snippet from init to troubleshooting (#13478)
docs(python): add uv option to python install instructions (#13510)
add docs for supabase integration (#13545)
feat(native): add view hierarchy to develop docs (#13544)
feat(autofix): Update autofix images (#13540)
Ad alerts and dashboard page to new quickstart guide (#13522)
Add data enrichment page to new onboarding guide (#13508)
Add first onboarding guide to docs (#13462)
(feat) Sentry MCP Documentation (#13524)
feat(Capacitor): Migration guides for version 2 (#13022)
docs(js): move API-related content from Manual Setup to APIs page (#13327)
Copy file name to clipboardExpand all lines: develop-docs/backend/application-domains/database-migrations/index.mdx
+4-3
Original file line number
Diff line number
Diff line change
@@ -135,11 +135,12 @@ generally prefer that, since it averages the load out over a longer period of ti
135
135
136
136
### Indexes
137
137
138
-
We prefer to create indexes on large existing tables with `CREATE INDEX CONCURRENTLY`. Our migration framework will do this automatically when creating
139
-
a new index. Note that when `CONCURRENTLY` is used we can't run the migration in a transaction, so it's important to use `atomic = False` to run these.
138
+
These are automatically handled by the migration framework, you can just create them on the Django model and generate the migration.
140
139
141
140
When adding indexes to large tables you should use a `is_post_deployment` migration as creating the index could take longer than the migration statement timeout of 5s.
142
141
142
+
Note: These are created using `CONCURRENTLY`, so it's important to not set `atomic = True` for migrations that contain indexes. This is disabled by default.
143
+
143
144
### Deleting columns
144
145
145
146
This is complicated due to our deploy process. When we deploy, we run migrations, and then push out the application code, which takes a while. This means that if we just delete a column or model, then code in sentry will be looking for those columns/tables and erroring until the deploy completes. In some cases, this can mean Sentry is hard down until the deploy is finished.
@@ -419,7 +420,7 @@ This second PR will contain only the migration and related boilerplate.
419
420
420
421
### Foreign Keys
421
422
422
-
Creating foreign keys is mostly fine, but for some large/busy tables like `Project`, `Group`it can cause problems due to difficulties in acquiring a lock. You can still create a Django level foreign key though, without creating a database constraint. To do so, set `db_constraint=False` when defining the key.
423
+
Creating foreign keys is mostly fine, but for some large/busy tables like `Project` and `Group`the migration can fail due to difficulties in acquiring a lock on the table. The general procedure here is to retry the migration until it goes through - The migration framework adds a lock acquisition timeout, so it's safe to do this.
The Native SDK allows you to attach a `view-hierarchy.json` file that follows the structure described in [RFC#33](https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md). This is mainly meant for downstream SDKs (e.g., [sentry-godot](https://github.com/getsentry/sentry-godot/pull/143)).
8
+
9
+
10
+
To add a view hierarchy attachment, the path to the file has to be configured when initializing the SDK. It will monitor the file and upload it along with any event or crash that is sent to Sentry:
When using `Crashpad` as the crash-capturing backend in the Native SDK, the file must have the exact name `view-hierarchy.json` to be parsed correctly by the ingestion pipeline.
19
+
</Alert>
20
+
21
+
Along with the file appearing in the _Attachments_ tab, it is visualized on the issue as such:
description: "Learn about Sentry's Elba integration."
5
+
---
6
+
7
+
This integration connects Sentry with Elba's access review platform to provide organizations with a comprehensive solution for managing and reviewing user access within Sentry.
8
+
This helps users enhance security, ensure compliance, and improve operational efficiency by providing:
9
+
10
+
- Risk Reduction: Regular access reviews help identify and eliminate unnecessary or unauthorized access, reducing the risk of data breaches and insider threats.
11
+
- Proactive Management: Early detection of permission anomalies allows for prompt corrective actions.
12
+
13
+
It connects to Sentry's API to fetch detailed information about organization members, including their roles, team memberships, and permission levels. The retrieved data is presented within Elba's platform, where administrators can systematically review each user's access rights. And, The platform analyzes user permissions to identify potential security risks, such as excessive privileges or outdated access, and provides recommendations for remediation.
14
+
15
+
16
+
This integration is maintained and supported by Elba. For more details, or questions, feel free to contact [email protected].
17
+
18
+
## Install and Configure
19
+
20
+
<Alert>
21
+
22
+
Sentry Owner, Manager, or Admin permissions are required to install this integration.
23
+
24
+
</Alert>
25
+
26
+
1. Navigate to **Settings > Integrations > Elba**
27
+
28
+
2. Follow the full [Elba installation instructions](https://sentry.elba.security/install).
// The SDK creates it's own custom zone on web for automatic error and breadcrumb tracking on web.
105
-
// This could lead to zone mismatch errors if you needed to call `WidgetsBinding.ensureInitialized()` before Sentry in a cusom zone.
106
-
// With `Sentry.runZonedGuarded` you still get convenient auto error and breadcrumb tracking and can also call `WidgetsBinding.ensureInitialized()` before Sentry.
107
-
Sentry.runZonedGuarded(() async {
108
-
WidgetsBinding.ensureInitialized();
109
-
110
-
// Errors before init will not be handled by Sentry
111
-
112
-
await SentryFlutter.init(
113
-
(options) {
114
-
options.dsn = '___PUBLIC_DSN___';
115
-
// Adds request headers and IP for users, for more info visit:
116
-
// https://docs.sentry.io/platforms/dart/guides/flutter/data-management/data-collected/ for more info
117
-
options.sendDefaultPii = true;
118
-
// ___PRODUCT_OPTION_START___ performance
119
-
// Set tracesSampleRate to 1.0 to capture 100% of transactions for tracing.
120
-
// We recommend adjusting this value in production.
121
-
options.tracesSampleRate = 1.0;
122
-
// ___PRODUCT_OPTION_END___ performance
123
-
// ___PRODUCT_OPTION_START___ profiling
124
-
// The sampling rate for profiling is relative to tracesSampleRate
125
-
// Setting to 1.0 will profile 100% of sampled transactions:
126
-
// Note: Profiling alpha is available for iOS and macOS since SDK version 7.12.0
127
-
options.profilesSampleRate = 1.0;
128
-
// ___PRODUCT_OPTION_END___ profiling
129
-
},
130
-
appRunner: () => runApp(
131
-
SentryWidget(
132
-
child: MyApp(),
133
-
),
134
-
),
135
-
);
136
-
} (error, stackTrace) {
137
-
// Automatically sends errors to Sentry, no need to do any
138
-
// captureException calls on your part.
139
-
// On top of that, you can do your own custom stuff in this callback.
140
-
});
141
-
142
-
// you can also configure SENTRY_DSN, SENTRY_RELEASE, SENTRY_DIST, and
143
-
// SENTRY_ENVIRONMENT via Dart environment variable (--dart-define)
144
-
}
145
-
```
146
-
147
99
## Verify
148
100
149
101
Verify that your app is sending events to Sentry by adding the following snippet, which includes an intentional error. You should see the error reported in Sentry within a few minutes.
// The SDK creates it's own custom zone on web for automatic error and breadcrumb tracking on web.
71
-
// This could lead to zone mismatch errors if you needed to call `WidgetsBinding.ensureInitialized()` before Sentry in a cusom zone.
72
-
// With `Sentry.runZonedGuarded` you still get convenient auto error and breadcrumb tracking and can also call `WidgetsBinding.ensureInitialized()` before Sentry.
73
-
Sentry.runZonedGuarded(() async {
74
-
WidgetsBinding.ensureInitialized();
75
-
76
-
// Errors before init will not be handled by Sentry
77
-
78
-
await SentryFlutter.init(
79
-
(options) {
80
-
options.dsn = '___PUBLIC_DSN___';
81
-
// Adds request headers and IP for users, for more info visit:
// Set tracesSampleRate to 1.0 to capture 100% of transactions for tracing.
86
-
// We recommend adjusting this value in production.
87
-
options.tracesSampleRate = 1.0;
88
-
// ___PRODUCT_OPTION_END___ performance
89
-
// ___PRODUCT_OPTION_START___ profiling
90
-
// The sampling rate for profiling is relative to tracesSampleRate
91
-
// Setting to 1.0 will profile 100% of sampled transactions:
92
-
// Note: Profiling alpha is available for iOS and macOS since SDK version 7.12.0
93
-
options.profilesSampleRate = 1.0;
94
-
// ___PRODUCT_OPTION_END___ profiling
95
-
},
96
-
appRunner: () => runApp(
97
-
SentryWidget(
98
-
child: MyApp(),
99
-
),
100
-
),
101
-
);
102
-
} (error, stackTrace) {
103
-
// Automatically sends errors to Sentry, no need to do any
104
-
// captureException calls on your part.
105
-
// On top of that, you can do your own custom stuff in this callback.
106
-
});
107
-
108
-
// you can also configure SENTRY_DSN, SENTRY_RELEASE, SENTRY_DIST, and
109
-
// SENTRY_ENVIRONMENT via Dart environment variable (--dart-define)
110
-
}
111
-
```
112
-
113
65
## Verify
114
66
115
67
Verify that your app is sending events to Sentry by adding the following snippet, which includes an intentional error. You should see the error reported in Sentry within a few minutes.
Copy file name to clipboardExpand all lines: docs/platforms/dart/guides/flutter/troubleshooting.mdx
+33-1
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ If you need help solving issues with Sentry's Flutter SDK, you can read the edge
8
8
9
9
## Support 16 KB Page Sizes on Android
10
10
11
-
Starting with Android 15, AOSP supports devices with a 16 KB page size. If your app uses NDK libraries (directly or via an SDK), you’ll need to rebuild it for compatibility with these devices.
11
+
Starting with Android 15, AOSP supports devices with a 16 KB page size. If your app uses NDK libraries (directly or via an SDK), you'll need to rebuild it for compatibility with these devices.
12
12
13
13
Update to Sentry Flutter SDK version `8.11.0` and above order to support 16 KB page sizes on Android devices.
14
14
@@ -73,6 +73,38 @@ This is an [issue](https://github.com/flutter/flutter/issues/135245) with Flutte
73
73
74
74
For prior versions, you can work around this by configuring the SDK only to take screenshots when the app is in the `resumed` state. To do this, set `SentryFlutterOptions.attachScreenshotOnlyWhenResumed` to `true`.
75
75
76
+
## Zone Mismatch Error on Web
77
+
78
+
By default, the Sentry Flutter SDK creates a custom zone on web for automatic error and breadcrumb tracking. This can lead to zone mismatch errors when your application calls `WidgetsBinding.ensureInitialized()` before initializing Sentry.
79
+
80
+
To resolve this issue, use the `Sentry.runZonedGuarded` method to initialize both your application and Sentry within the same zone. This approach ensures proper zone consistency throughout your application:
// Note: Errors in this zone are already sent to Sentry automatically.
102
+
// This callback lets you add your own custom error handling (like logging)
103
+
// in addition to Sentry's reporting.
104
+
});
105
+
}
106
+
```
107
+
76
108
## Using Flutter Multi-view for Web
77
109
78
110
Multi-view embedding was introduced in Flutter 3.24. You'll find a detailed guide about it in the [Flutter docs](https://docs.flutter.dev/platform-integration/web/embedding-flutter-web) .
description: "See what data is collected by the Sentry SDK."
4
+
sidebar_order: 1
5
+
---
6
+
7
+
Sentry takes data privacy very seriously and has default settings in place that prioritize data safety, especially when it comes to personally identifiable information (PII) data. When you add the Sentry SDK to your application, you allow it to collect data and send it to Sentry during the runtime of your application.
8
+
9
+
The category types and amount of data collected vary, depending on the integrations you've enabled in the Sentry SDK. Here's a list of data categories the Sentry Native SDK collects:
10
+
11
+
## User Information
12
+
13
+
By default, the Sentry SDK doesn't send any information about users, such as email address, user ID, or username. However, if the <PlatformLinkto="/configuration/options/#send-default-pii">`send_default_pii` option</PlatformLink> is enabled, Sentry backend services will infer the user's IP address based on the incoming request.
The Sentry SDK collects information about the device, such as the name, version and build of your operating system or Linux distribution. This information is sent to Sentry by default.
29
+
30
+
## Screenshots
31
+
32
+
The <PlatformLinkto="/enriching-events/screenshots">screenshot feature</PlatformLink> is disabled by default. If you choose to enable this feature in options, any screenshots captured may contain sensitive data visible in the application at the time of the error.
33
+
34
+
## Godot Log File
35
+
36
+
By default, the Sentry SDK automatically attaches the Godot log file to events it sends. Since this log file contains all messages printed in your code and by the engine itself, it may inadvertently include sensitive information. To enhance privacy protection, you can disable the <PlatformLinkto="/configuration/options/#attach-log">`attach_log` option</PlatformLink> in the Godot Project Settings.
37
+
38
+
## Thread Stack Information
39
+
40
+
At the time of a crash, the stack of each thread is collected and sent to Sentry as part of the Minidump snapshot for `crashpad` backend. This information is sent to Sentry by default, but dropped after processing the event in the backend.
41
+
42
+
These files are not stored by default, but you can <PlatformLinkto="/data-management/store-minidumps-as-attachments/">enable Minidump Storage</PlatformLink> in the Sentry organization or project settings.
description: "Learn more about taking screenshots when an error occurs. Sentry pairs the screenshot with the original event, giving you additional insight into issues."
4
+
---
5
+
6
+
Sentry makes it possible to automatically take a screenshot and include it as an attachment when a user experiences an error, an exception or a crash.
7
+
8
+
This feature is only available for SDKs with a user interface, like the ones for mobile and desktop applications. It's also limited by whether taking a screenshot is possible or not. For example, in some environments, like native iOS, taking a screenshot requires the UI thread, which often isn't available in the event of a crash. Another example where a screenshot might not be available is when the event happens before the screen starts to load. So inherently, this feature is a best effort solution.
9
+
10
+
## Enabling Screenshots
11
+
12
+
Because screenshots may contain <PlatformLinkto="/data-management/sensitive-data/">PII</PlatformLink>, they are an opt-in feature. To attach screenshots to your events, navigate to **Project Settings > Sentry > Options** and enable the **Attach Screenshot** option:
13
+
14
+

15
+
16
+
Or, like so, if you're <PlatformLinkto="/configuration/options/">configuring things programatically</PlatformLink>:
17
+
18
+
```GDScript
19
+
extends SentryConfiguration
20
+
21
+
func _configure(options: SentryOptions):
22
+
options.attach_screenshot = true
23
+
```
24
+
25
+
## Viewing Screenshots
26
+
27
+
If one is available, you'll see a thumbnail of the screenshot when you click on a specific issue from the [**Issues**](https://demo.sentry.io/issues/) page.
0 commit comments