Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define WebPushSubscription2022 type for Solid Notifications #64

Merged
merged 3 commits into from
May 19, 2022

Conversation

uvdsl
Copy link
Collaborator

@uvdsl uvdsl commented Apr 15, 2022

Dear all,

I propose a first draft for defining the WebPushSubscription2022 type, based on my original submission, as decided in the Notifications Panel meeting on 2022-03-22 (see solid/notifications-panel#52).

This PR addresses #35.

While writing this draft, I noticed that several existing issues need to be resolved prior to finishing this draft, including but not limited to #36, #62 and #63.

I deeply appreciate any feedback.

@elf-pavlik
Copy link
Member

elf-pavlik commented Apr 15, 2022

I will review it this weekend, meanwhile, I pushed your branch to my fork so that GitHub action renders it. I still need to set up the rendering preview for each PR. Preview of this branch at d5ff597 is available here: https://elf-pavlik.github.io/notifications/webpush-subscription-2022

@elf-pavlik elf-pavlik self-requested a review April 15, 2022 20:15
Copy link
Member

@acoburn acoburn left a comment

Choose a reason for hiding this comment

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

This looks like a great start. I look forward to discussing this more in depth at an upcoming panel meeting

<li>
**Establish Subscription:**
The *subscriber* subscribes to the *browser messaging service* to receive Web Push notifications using the `vapidPublicKey` of the *subscription service*.
In return, the *subscriber* retrieves the `endpoint`, `auth` and `p256dh` values.
Copy link
Member

Choose a reason for hiding this comment

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

We're trying to move away from the use of endpoint. Depending on the context, we generally use subscription, topic or source. It seems that subscription might be best suited here, but I'll leave that up to you.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This particular endpoint is the "Push Endpoint" of the PUSH API. Discussion in the other comment on code.

However, I did use the term subscription endpoint which I now have replaced with Notification Subscription API as used by the Notifications Protocol.

webpush-subscription-2022.bs Outdated Show resolved Hide resolved
webpush-subscription-2022.bs Outdated Show resolved Hide resolved
%% Issue(62):

: endpoint
:: The `endpoint` property indicates the "Push Endpoint" as defined in the [[!PUSH-API]] specification.
Copy link
Member

Choose a reason for hiding this comment

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

The Push API, does refer to this as an "endpoint", but in our context, subscription is likely the better term

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hm. I am hesitant to call the property 'subscription' / pushSubscription.

  • the property name is already defined by the Push API
  • the property is also called endpoint in the corresponding JS implementation of the Push API.
    I think renaming this property would make it more confusing to an implementer.

On the other hand,

A push subscription has an associated push endpoint. It MUST be the absolute URL exposed by the push service where the application server can send push messages to. A push endpoint MUST uniquely identify the push subscription.

indicates that the endpoint is quite the overloaded term when they try to say that the URL identifies the push subscription.

If I had to switch from endpoint to something else, I'd prefer pushSubscription over subscription just to be explicit which one is meant.

Copy link
Member

Choose a reason for hiding this comment

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

Since this is a property on the subscription request, not the subscription response I would not use subscription here. I think other subscription types call this endpoint a target, since the publisher of notifications, should deliver them to that target` endpoint.

webpush-subscription-2022.bs Outdated Show resolved Hide resolved
"Aaron Coburn",
"Sarven Capadisli"
],
"href": "https://solid.github.io/notifications/protocol",
Copy link
Member

Choose a reason for hiding this comment

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

not to change now, but just FYI that this will (soon?) be under the https://solidproject/TR/ URI space

"elf Pavlik",
"Dmitri Zagidulin"
],
"href": "https://solid.github.io/solid-oidc",
Copy link
Member

Choose a reason for hiding this comment

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

not to change now, but just FYI that this will (soon?) be under the https://solidproject/TR/ URI space

Copy link
Member

@elf-pavlik elf-pavlik left a comment

Choose a reason for hiding this comment

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

If we think we need resolve endpoint / target on subscription request as separate issue

Copy link
Member

@csarven csarven left a comment

Choose a reason for hiding this comment

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

Approving (and will follow with a merge) as per https://github.com/solid/notifications-panel/blob/main/meetings/2022-05-05.md#define-webpushsubscription2022-type-for-solid-notifications with the understanding that there are no significant blockers or objections for this document to be added here as the initial Editors Draft. The work on the work item can continue - including issues that it needs a solution for, as well as the unresolved conversations here.

Thanks for kicking this off.

@csarven csarven merged commit 41751b7 into solid:main May 19, 2022
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.

4 participants