Skip to content

Collect IPv4 and observed IPv6 as device attributes - #465

Draft
anglinb wants to merge 4 commits into
developfrom
codex/device-ip-collection
Draft

anglinb wants to merge 4 commits into
developfrom
codex/device-ip-collection

Conversation

@anglinb

@anglinb anglinb commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Changes in this pull request

Add a best-effort IPv4 request alongside existing enrichment and expose ipV4, ipV6, ipV4ObservedAt, and ipV6ObservedAt in device attributes. Each family is retained separately; malformed or stale observations are omitted. Collection does not wait on the network during configuration or purchases, attempts are coalesced for 15 minutes, and the public IPv4 request sends no user attributes or API key. Keep these observations out of the legacy device-to-user attribute copy.

IPv6 is taken from the existing enrichment response when that connection uses IPv6. Deploy https://github.com/superwall/paywall-next/pull/4160 before releasing this change. It does not guarantee IPv6 on dual-stack devices. Mobile wrappers inherit this when they adopt the native release; no wrapper versions are bumped here.

Validation: :superwall:testDebugUnitTest filtered to DeviceIPCollectorTest and DeviceHelperMemoizationTest — 9 tests passed. SDK and unit-test sources compiled. Added README contract and changelog. Full suite, UI/demo validation, ktlint, and online documentation remain unchecked.

Checklist

  • All unit tests pass.
  • All UI tests pass.
  • Demo project builds and runs.
  • I added/updated tests or detailed why my change isn't tested.
  • I added an entry to the CHANGELOG.md for any breaking changes, enhancements, or bug fixes.
  • I have run ktlint in the main directory and fixed any issues.
  • I have updated the SDK documentation as well as the online docs.
  • I have reviewed the contributing guide

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants