Skip to content

fix: Ensure that notifications on legacy http integrations navigate to the origin#1349

Merged
fadi-george merged 10 commits intoplayer-model-mainfrom
itrush-fix-http-click
Feb 26, 2026
Merged

fix: Ensure that notifications on legacy http integrations navigate to the origin#1349
fadi-george merged 10 commits intoplayer-model-mainfrom
itrush-fix-http-click

Conversation

@itrush
Copy link
Contributor

@itrush itrush commented Aug 11, 2025

Ensure that notifications on legacy http integrations navigate to the origin

Details

There was an issue with legacy HTTP integrations where the defaultNotificationUrl was never saved in the DB. As the result if a notification was sent without explicit launch url, the service worker logic would default to the worker's scope which is in the os.tc domain. This in turn would redirect users to OneSignal dashboard rather than to the customer's site.

To account for missing default notification url, we try to get the default URL from the app config on notification click and save it to the DB for the future use. Choosing between notification received and clicked to add this logic, decided on notification clicked to avoid doing extra api call when the user may never click the notification.

Verified in Chrome, Firefox and Safari that when clicking on a notification it redirects to the origin instead of the os.tc domain.

Note: will only merge it after Thanksgiving

Systems Affected

  • WebSDK
  • Backend
  • Dashboard

Validation

Tests

There seem to be no tests for the service worker flows so didn't add any new ones 🤔 Did an extensive manual test in Chrome, Safari and Firefox.

Info

Checklist

  • All the automated tests pass or I explained why that is not possible
  • I have personally tested this on my machine or explained why that is not possible
  • I have included test coverage for these changes or explained why they are not needed

Programming Checklist
Interfaces:

  • Don't use default export
  • New interfaces are in model files

Functions:

  • Don't use default export
  • All function signatures have return types
  • Helpers should not access any data but rather be given the data to operate on.

Typescript:

  • No Typescript warnings
  • Avoid silencing null/undefined warnings with the exclamation point

Other:

  • Iteration: refrain from using elem of array syntax. Prefer forEach or use map
  • Avoid using global OneSignal accessor for context if possible. Instead, we can pass it to function/constructor so that we don't call OneSignal.context

Screenshots

Info

http.notification.click.fix.mov

Checklist

  • I have included screenshots/recordings of the intended results or explained why they are not needed

Related Tickets

https://app.asana.com/1/780103692902078/project/1211950939908862/task/1210115044974433?focus=true



This change is Reviewable

@itrush itrush force-pushed the itrush-fix-http-click branch from 02fee96 to 976d696 Compare November 18, 2025 00:39
@itrush itrush changed the title [wip] fix http click Ensure that notifications on legacy http integrations navigate to the origin Nov 18, 2025
@itrush itrush marked this pull request as ready for review November 18, 2025 19:18
@itrush itrush requested a review from jkasten2 November 18, 2025 19:18
Copy link
Member

@jkasten2 jkasten2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logic looks good to me, just one comment on types.

@itrush itrush force-pushed the itrush-fix-http-click branch 4 times, most recently from 6571574 to beac82e Compare December 3, 2025 00:22
@itrush itrush requested a review from jkasten2 December 3, 2025 00:28
@fadi-george
Copy link
Contributor

Changes look good, I'll test it some more.

@fadi-george fadi-george force-pushed the itrush-fix-http-click branch 3 times, most recently from 6884031 to 5ab0bb0 Compare February 26, 2026 00:04
@fadi-george fadi-george force-pushed the player-model-main branch 4 times, most recently from c9d1df2 to 233eb9c Compare February 26, 2026 00:20
fadi-george and others added 10 commits February 25, 2026 16:58
Code already handles each property separately so there's no reason to
force passing the whole object.
There was an issue with legacy HTTP integrations where the
defaultNotificationUrl was never saved in the DB. To account for this,
we try to get the default URL from the app config on notification click
and save it to the DB for the future use.

Choosing between notification received and clicked to add this logic,
decided on notification clicked to avoid doing extra api call when the
user may never click the notification.
@fadi-george fadi-george force-pushed the itrush-fix-http-click branch from 5ab0bb0 to 6a0bc4e Compare February 26, 2026 03:37
@fadi-george
Copy link
Contributor

Verified original issue and fix though had to use something like proxyman to give it my local built service worker.

@fadi-george fadi-george changed the title Ensure that notifications on legacy http integrations navigate to the origin fix: Ensure that notifications on legacy http integrations navigate to the origin Feb 26, 2026
@fadi-george fadi-george merged commit 18cf90d into player-model-main Feb 26, 2026
2 checks passed
@fadi-george fadi-george deleted the itrush-fix-http-click branch February 26, 2026 03:40
fadi-george added a commit that referenced this pull request Feb 26, 2026
…o the origin (#1349)

Co-authored-by: Fadi George <fadii925@gmail.com>
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.

3 participants