Skip to main content

Privacy overview

Beta

This page documents Bugsee React Native SDK 7.x, which is in beta and can change between betas. The stable release is 6.x: see the 6.x documentation. Upgrading? See Migrating from 6.x to 7.x.

Bugsee does not stream data continuously. The SDK keeps what it captures in a rolling buffer on the device, as long as the duration launch option, and send it only when a report is created: by a crash or an error, from the report dialog, or from your code. The data in a report (screen video, touches, console and native logs, network traffic, breadcrumbs, attributes and the text the user typed) can contain personal data, so the SDK gives you a control at each point where that data is recorded.

The controls work in four places:

  • On screen. <BugseeSecure> masks a component in the video and the report screenshot, and drops the touches on it. Bugsee.setSecureRectangles masks regions you measure yourself. Bugsee.startBlackout() blanks the whole screen for a sensitive flow. The native SDKs also mask password fields on their own.
  • At record time. A log, network or breadcrumb filter sees each event before it is recorded, and can rewrite or drop it. The filters fail closed: a filter that throws, rejects, or returns something it should not drops the event rather than recording it unfiltered.
  • Before upload. A report handler can change the summary, description, severity, labels and attributes of a report before it is sent.
  • On the device. Launch options turn whole streams off, and Bugsee.deleteCollectedDataOnDevice deletes the captured data while the SDK is stopped.
PageCovers
Video<BugseeSecure>, setSecureRectangles, startBlackout / endBlackout, password fields, the view hierarchy, and the video and screenshot options.
Console logsTurning log capture off, captureLogsLevel, and redacting lines with setLogFilter.
NetworkTurning network capture off, body options, the built-in redaction, and redacting events with setNetworkFilter.
BreadcrumbsBreadcrumb options and redacting breadcrumbs with setBreadcrumbFilter.
ReportWhat a report carries, what a report handler can change, attributes and the user identifier.
CleanupdeleteCollectedDataOnDevice, and clearing attributes and the user identifier.

Things to know​

  • Install filters before Bugsee.launch. A filter applies to what is recorded after it is installed, so set the log, network and breadcrumb filters, and the report handler, at the top of your startup code.
  • Android auto-launch. With autoLaunch (see Expo), the SDK records from process start on Android, before any JavaScript runs. Logs, network events and breadcrumbs captured before your code calls the filter setters are recorded unfiltered, and the regions you mark with <BugseeSecure> or setSecureRectangles are not masked until they mount or are set. Automatic masking of password fields and FLAG_SECURE windows does not depend on them; see Privacy: Video. Do not use auto-launch if that window must be filtered.
  • Filters and development reloads. A filter is a function in the JavaScript runtime. After a JavaScript reload the filters stay on while nothing in the new runtime answers them, so network events and breadcrumbs are lost until your code installs the filter again. On Android the log filter is turned off on reload, so log lines are recorded unfiltered until setLogFilter runs again. Install the filters first thing in your startup code.
  • Performance spans. With performance monitoring on (the default), the SDK records a performance transaction for each HTTP request, carrying its URL, and on iOS spans for file operations, carrying file paths. They are included in every report. Your network filter does not reach them. Span URLs get the built-in network redaction on Android, and are recorded in full, query string included, on iOS; see Privacy: Network. com.bugsee.option.performance.enabled set to false turns them off. See Performance monitoring.
  • The platforms differ. On Android the built-in network redaction runs before your network filter; on iOS your filter replaces it. See Privacy: Network.
  • The report handler is not a redaction boundary for every report. It does not run for every crash (an Android native crash never reaches it), and it cannot remove the video, the screenshot, the logs or the network traffic from a report. Data that must never leave the device has to be kept out where it is recorded: masked on screen, or dropped by a filter.

Bugsee also sends data outside reports: Bugsee.notify notifications, and the messages of the feedback chat. Neither carries video or logs.

It remains the responsibility of the application developer to keep sensitive data out of reports before they leave the device.

Found an issue, typo, or wrong statement on this page? Report it now →