Remove FingerprintJS from all systems#14360
Merged
Merged
Conversation
Instruments three key contest interactions following the existing
'Remix Contest:' event prefix and {remixContestId, trackId} property
shape used by the host/pick-winners events:
- REMIX_CONTEST_VIEW: contest page/screen first resolves trackId+eventId
- REMIX_CONTEST_ENTER: user taps Enter Contest / Upload Remix
- REMIX_CONTEST_VIEW_SUBMISSIONS: user opens the submissions tab
Mobile submissions-tab firing uses useFocusedTab from
react-native-collapsible-tab-view because the contest tabs mount
eagerly (lazy: false) — a plain mount effect would fire even for
users who only view the Details tab.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…t sections Bug 1 (web): Align static explore section visibility with SearchResults render condition — hide sections when inputValue is set (during debounce window) in addition to when showSearchResults is true, so Premium and other filters applied via the filter pills always suppress unfiltered curated sections. Bug 2 (web): Guard empty-state tile behind !isPending in AlbumResultsPage and PlaylistResultsPage so the NoResultsTile is not shown while the query is still in its initial loading phase, preventing a spurious empty-state flash when combining "Downloads Available" + "Electronic" genre filters. Bug 3 (mobile): Include category !== 'all' in the showSearch guard on the explore screen so tapping a content-type pill (Tracks, Albums, etc.) immediately shows the filtered SearchResults without requiring a second filter to be added. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove the app from the list immediately on delete click rather than waiting for the API response. Restores previous state on error. Moves list update from onSuccess to onMutate (with cancelQueries to avoid race conditions) and adds onError rollback.
Drop the `@fingerprintjs/fingerprintjs-pro*` packages and visitor-ID plumbing from web, mobile, common, libs, identity service, and the anti-abuse-oracle. Sign-in no longer collects a visitorId; the identity service no longer offers the fingerprint-based OTP bypass (new devices always require OTP, OTP_BYPASS_EMAILS still bypasses); and AAO drops the per-fingerprint device-count scoring and the Fingerprints table/UI. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 8fc5327 The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
🌐 Web preview readyPreview URL: https://audius-web-preview-pr-14360.audius.workers.dev Unique preview for this PR (deployed from this branch). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fully removes FingerprintJS from the codebase — web, mobile, common, libs, identity service, and the anti-abuse-oracle.
services/fingerprint.ts, droppedfingerprintClientfrom the store context, and stopped collecting avisitorIdduring sign-in / OAuth login (FINGERPRINT_*env vars removed).services/fingerprint/FingerprintClient, removed it fromstoreContextandservices/index.ts, droppedvisitorIdfromauthService.signIn.fpClient.js,fpHelpers.js, the/fproute, theFingerprintsmodel (table left in place; can be dropped via a follow-up migration), and thefpServerApiKeyconfig.requiresOtpno longer takes avisitorId— new devices always require OTP; theOTP_BYPASS_EMAILSlist still bypasses.authentication.jsandidSignals.jscleaned up accordingly. Updatedtest/lib/app.jsand removed the obsolete "skips otp for recognized devices" test.userFingerprintsanduseFingerprintDeviceCountfromidentity.ts, dropped the fingerprint device-count term fromgetUserNormalizedScore, and removed the Fingerprints table / column from the user-attestation UI inserver.tsx.visitorIdparameter fromAccount.loginandIdentityService.getFn.@fingerprintjs/fingerprintjs-pro,@fingerprintjs/fingerprintjs-pro-react-native, and@fingerprintjs/fingerprintjs-pro-server-apifrom web/common/mobile/identity-servicepackage.jsons;package-lock.jsonregenerated.The
FingerprintsSequelize migration is left in place — the table can be dropped in a separate follow-up.Test plan
OTP_BYPASS_EMAILSaddress → no OTP (bypass still works).@audius/web,@audius/mobile,@audius/common,@audius/sdk-legacy, identity-service, and anti-abuse-oracle.🤖 Generated with Claude Code