Skip to content

feat(notifications): Introduce the LWS notifications specification as an optional service#129

Closed
laurensdeb wants to merge 9 commits into
mainfrom
notifications-spec
Closed

feat(notifications): Introduce the LWS notifications specification as an optional service#129
laurensdeb wants to merge 9 commits into
mainfrom
notifications-spec

Conversation

@laurensdeb
Copy link
Copy Markdown
Contributor

@laurensdeb laurensdeb commented Apr 13, 2026

Resolves #103

This is a class 4 change to the protocol. It will need discussion and a WG vote before merging.

This pull request introduces support for notifications in the project, including documentation and specification updates. The most important changes are grouped below:

Documentation and Specification Updates:

  • Added a reference to the new notifications suite in the main README.md file to document its availability.
  • Updated the Discovery.html example to enhance the NotificationService by specifying supported subscriptionType values, clarifying available notification mechanisms.
  • Introducing an optional Notifications specification defining the mechanics of three distinct subscription types, i.e. Webhooks, SSE, and Websockets.

Note: This is a draft PR, any feedback is welcome however.


Preview | Diff

Introduce a notifications subsystem for LWS with three channels:
Server-Sent Events, WebSocket, and Webhooks.

Key design decisions:
- Single NotificationService with subscriptionType array
- LWS-specific envelope wrapping Activity Streams 2.0 events
- phase property (post-commit) for future admission controller extensibility
- topic property for subscription targets (avoids items collision)
- Webhook authentication via HTTP Message Signatures (RFC 9421)
- inbox aligned with access-request-grant-proposal pattern

Files:
- lws10-notifications/index.html: New subspecification
- lws10-core/Discovery.html: Updated NotificationService example
- README.md: Added notifications to specs list
- Clarify MAY support / MUST advertise pattern for notifications
- Make phase OPTIONAL, use PascalCase (PostCommit)
- Remove forward references to future specifications
- Add Subscriber to terminology, use consistently throughout
- Add Subscription Scope section (recursive container subscriptions)
- Add Subscription Authorization section (delivery-time authz,
  subcontainer filtering, authorization change handling)
- Tighten object structure normatively (nested id/type requirements)
- Add authentication verification relationship per CID 1.0
- Add Activity Streams 2.0 terms to vocabulary table
- Add PostCommit as vocabulary term
- Source external terms from CID-1.0 instead of generic Security Vocab
Replace the Webhook Endpoint term with Inbox — a URL controlled by a
subscriber or other agent to which a server delivers notifications
via HTTP POST. This aligns with the inbox concept used in the
access-request-grant-proposal and makes the term reusable across
LWS subspecifications.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@laurensdeb can you link to this from the notifications section of the core document so it easy to discover the preview.

Reference the lws10-notifications specification with a summary of the
three notification channels (SSE, WebSocket, Webhooks) and shared data model.
@elf-pavlik
Copy link
Copy Markdown
Member

Solid Notifications also have EventSource channel type and I'm not aware about a single implementation.
In my implementatin combination of StreamingHTTP channels and Webhook channels takes care of all the requirements.

@acoburn
Copy link
Copy Markdown
Member

acoburn commented Apr 13, 2026

This proposal can be previewed at the provided link

@laurensdeb
Copy link
Copy Markdown
Contributor Author

Superseded by #161 (base notifications + webhooks) and #162 (WebSocket + SSE streaming channels, draft).

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.

LWS Notifications Feature

5 participants