Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .devrev/repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
deployable: true
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Global code owner
* @dhananjayj-dev
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ let configuration = FeatureConfiguration.default
| `enableSupportChatStreaming` | `Bool` | `false` | When `true`, enables real-time AI agent response streaming in PLuG conversations (WebSocket streaming, optimistic UI, animated text). |
| `supportWidgetArticleSearchFilters` | `ArticleSearchFilters?` | `nil` | Optional filters for PLuG article search (widget and CMDK). Applied automatically when the support widget is ready. |
| `maskAllTextByDefault` | `Bool` | `false` | When `true`, every view that displays text — including labels, buttons, and SwiftUI `Text` views — is automatically masked in session recordings. When `false` (the default), only text input fields (`UITextField`, `UITextView`) are auto-masked. |
| `networkObservability` | `NetworkObservabilitySettings?` | `nil` | Optional configuration for capturing network requests in session replays. Pass `nil` (the default) to leave network observability off. See [Network observability](#network-observability). |
| `networkObservability` | `NetworkObservabilityConfiguration?` | `nil` | Optional configuration for capturing network requests in session replays. Pass `nil` (the default) to leave network observability off. See [Network observability](#network-observability). |

Use the designated initializer to override any combination of options:

Expand Down Expand Up @@ -842,13 +842,13 @@ DevRev.trackScreenName("profile-screen")

Network observability captures outgoing network requests (URL, method, status, and timing) and attaches them to session replays, helping you correlate user activity with the underlying network traffic.

The feature is **off by default**. To enable it, pass a `NetworkObservabilitySettings` instance via `FeatureConfiguration.networkObservability` while configuring the SDK:
The feature is **off by default**. To enable it, pass a `NetworkObservabilityConfiguration` instance via `FeatureConfiguration.networkObservability` while configuring the SDK:

```swift
DevRev.configure(
appID: "abcdefg12345",
featureConfiguration: FeatureConfiguration(
networkObservability: NetworkObservabilitySettings(
networkObservability: NetworkObservabilityConfiguration(
enabled: true,
allowlist: ["*.myapp.com/*", "https://api.example.org/*"],
pathRedactionPatterns: ["users/*", "orders/*/items"],
Expand All @@ -867,7 +867,7 @@ DevRev.configure(

##### Network observability reference

`NetworkObservabilitySettings` controls which requests are captured and how their data is sanitized before being recorded.
`NetworkObservabilityConfiguration` controls which requests are captured and how their data is sanitized before being recorded.

| Property | Type | Default | Description |
|----------|------|---------|-------------|
Expand All @@ -881,11 +881,11 @@ DevRev.configure(
| `customSensitiveKeys` | `[String]?` | `nil` | Extra keys whose values are redacted in query params, JSON bodies, headers, and form data, merged with the built-in list. Matched case-insensitively as a substring, so `"org_id"` also redacts `"sub_org_id"`. |

> [!NOTE]
> A ready-made `NetworkObservabilitySettings.default` is available: network observability enabled, but with no allowlist (so nothing is captured until you set one), no path redaction, and response bodies and timing breakdown excluded.
> A ready-made `NetworkObservabilityConfiguration.default` is available: network observability enabled, but with no allowlist (so nothing is captured until you set one), no path redaction, and response bodies and timing breakdown excluded.

##### Remote configuration on DevRev portal (Coming soon)

Network observability can be controlled remotely from the DevRev web app, without shipping an app update. When remote configuration is fetched, it **overrides** the developer-set `NetworkObservabilitySettings` values.
Network observability can be controlled remotely from the DevRev web app, without shipping an app update. When remote configuration is fetched, it **overrides** the developer-set `NetworkObservabilityConfiguration` values.

- Setting `enabled` to `false` remotely stops all network interception immediately.
- Changes to the allowlist, path redaction patterns, and event caps apply immediately (hot-toggle) — no relaunch required.
Expand Down
Loading