node-solid-server
node-solid-server copied to clipboard
Basic prep
This PR implements PREP/Solid-PREP as an alternative to the existing notifications mechanism in NSS which was deprecated for security reasons.
PREP/Solid-PREP bring many improvements to the existing notifications mechanism in NSS, as illustrated in this table:
WebSockets API | Solid Notifications | PREP/Solid-PREP | |
---|---|---|---|
Transport | WebSockets | Multiple | HTTP Streaming |
Discovery | Headers | Discovery Resource Link Headers |
Headers |
Initialization | |||
AuthN/Z | No | Yes | Yes |
RoundTrips | 2 | 1-2 | 0[^1]-1 |
Features | |||
State | No | Yes | Yes |
Rate | No | Optional | No |
Termination | |||
End Time | Undefined | Negotiated | Negotiated |
Closing | Undefined | Automatic | Automatic |
Notifications | |||
Format | Custom | RDF/AS2 | Any[^2] |
Target | Yes | Yes | Yes |
Activity | No | Yes | Yes |
Object URL | No | Yes | Yes |
Time | No | Yes | Yes |
Content Negotiation | No | Yes | Yes |
Deltas | No | In Development | Optional |
Error Messages | No | In Development | In Development |
The last published version of Solid Protocol and the ED mentions that WebSockets-API that NSS uses does not include an authentication mechanism. That was the main reasons why Solid-CG's notifications panel deprecated the WebSockets-API and transitioned Solid to the Solid Notifications Protocol. Solid-PREP is part of this incubation work in the CG.
[^1]: PREP can fetch notifications along with the representation body in the response. [^2]: Solid-PREP serves notifications that are identical to Solid Notifications Protocol, with suitable content negotiation requesting an RDF media-type.