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

Issue 116 - Added support for receiver streams #120

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 55 additions & 9 deletions openid-sharedsignals-framework-1_0.md
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,9 @@ Content-Type: application/json
"https://tr.example.com/jwks.json",
"delivery_methods_supported": [
"urn:ietf:rfc:8935",
"urn:ietf:rfc:8936"],
"urn:ietf:rfc:8936",
"urn:ietf:rfc:8935:receive",
"urn:ietf:rfc:8936:receive"],
"configuration_endpoint":
"https://tr.example.com/ssf/mgmt/stream",
"status_endpoint":
Expand Down Expand Up @@ -837,17 +839,42 @@ delivery

> method

> > **Receiver-Supplied**, the specific delivery method to be used. This can be
any one of "urn:ietf:rfc:8935" (push) or "urn:ietf:rfc:8936" (poll), but
not both.
> > **Requestor-Supplied**, the specific delivery method to be used. This can be
any one of "urn:ietf:rfc:8935" (push transmitter), "urn:ietf:rfc:8936" (poll
transmitter), "urn:ietf:rfc:8935:receive" (push receiver), or
"urn:ietf:rfc:8936:receive" (poll receiver) but not more than one.0

> endpoint_url

> > The location at which the push or poll delivery will take place. If the
`method` value is "urn:ietf:rfc:8935" (push), then this value MUST
be supplied by the Receiver. If the `method` value is
"urn:ietf:rfc:8936" (poll), then this value MUST be supplied by the
Transmitter.
be supplied by the requestor (from the receiver). If the `method` value is
"urn:ietf:rfc:8936" (poll), then this value is supplied in the response
by the transmitting server. If the `method` value is "urn:ietf:rfc:8935:receive"
than the receiver server SHALL respond with a supplied value. And, if the
`method` value is "urn:ietf:rfc:8936:receive", than the value is supplied
by the requestor based on the value issued by the transmitter.

> authorization_header

> > The HTTP Authorization header to be used, if any, when delivering events.
* Method `urn:ietf:rfc:8935` - provided by the requestor to the trasmitter to
use with the receiver supplied `endpoint_url`.
* Method `urn:ietf:rfc:8936` - asserted in the stream creation response
by the transmitter for use by the receiver.
* Method `urn:ietf:rfc8935:receive` - asserted in the stream creation
response by the receiver for use by the transmitter.
* Method `urn:ietf:rfc8936:receive` - provided by the requestor to the
receiver with the transmitter supplied `endpoint_url`.

> poll_config

> > An object containing a set of RFC8936 polling parameters requested to be
used by a polling receiver when polling a transmitter. The parameters specified
MAY include `maxEvnets`, `returnImmediately` and `timeoutSecs`. The receiver

Choose a reason for hiding this comment

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

typo!

Suggested change
MAY include `maxEvnets`, `returnImmediately` and `timeoutSecs`. The receiver
MAY include `maxEvents`, `returnImmediately` and `timeoutSecs`. The receiver

MAY choose to override these values and assert the final settings in its
response. When omitted, the default behavior described by RFC8936 SHALL be
used.

min_verification_interval

Expand All @@ -870,7 +897,7 @@ the Event Transmitter responds with a "201 Created" response containing a
[JSON][RFC7159] representation of the stream’s configuration in the body.

The HTTP POST request MAY contain the Receiver-Supplied values of the Stream
Configuration ({{stream-config}}) object:
Configuration ({{stream-config}}) object, for example:

* `events_requested`
* `delivery` : Note that in the case of the POLL method, the `endpoint_url` value is
Expand All @@ -881,7 +908,26 @@ MUST assume that the `method` is "urn:ietf:rfc:8936" (poll). The
Transmitter MUST include a `delivery` property in the response with this
`method` property and a `endpoint_url` property.

The following is a non-normative example request to create an Event Stream:
The following table describes each method, the attributes, their mutability, and
whether transmitter or receiver asserts the values relative to the stream creation requestor.

| Method | Attribute | Generated By | Mutability |
| :-------------------------| :--------------------| :-----------| :----------|
| Push Receiver | | | |
| urn:ietf:rfc:8935:receive | endpoint_url | receiver | generated |
| urn:ietf:rfc:8935:receive | authorization_header | receiver | generated |
| Push Transmitter | | | |
| urn:ietf:rfc:8935 | endpoint_url | receiver | modifiable |
| urn:ietf:rfc:8935 | authorization_header | receiver | modifiable |
| Poll Receiver | | | |
| urn:ietf:rfc:8936:receive | endpoint_url | transmitter | modfiable |
| urn:ietf:rfc:8936:receive | authorization_header | transmitter | modifiable |
| urn:ietf:rfc:8936:receive | poll_config | | modifiable |
| Poll Transmitter | | | |
| urn:ietf:rfc:8936 | endpoint_url | transmitter | generated |
| urn:ietf:rfc:8936 | authorization_header | transmitter | generated |

The following is a non-normative example request to create a Push Transmitter Event Stream:

~~~ http
POST /ssf/stream HTTP/1.1
Expand Down