Skip to content

Conversation

@jischr
Copy link
Contributor

@jischr jischr commented Dec 29, 2025

This PR starts to address adding Receiver requirements. More diffs will likely come in another PR.

Issue #294

@jischr jischr requested a review from a team as a code owner December 29, 2025 21:19

#### Stream Control {#receivers-stream-control}

The following Stream Configuration API Methods MUST be supported:
Copy link
Contributor

Choose a reason for hiding this comment

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

I think CAEP Interop-compatible SSF receivers should also be able to delete streams they have created themselves.
Without support for a delete operation in the CAEP Interop profile, proprietary cleanup operations are always necessary.
The conformance tests currently also require support for stream deletion in order to be able to clean up appropriately after testing.

Copy link
Contributor

Choose a reason for hiding this comment

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

So I propose to add:

**Deleting a Stream**
: Receivers MUST be able to delete a Stream on the Transmitter using valid
authorization.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree on this. Let me add it

@tulshi
Copy link
Contributor

tulshi commented Jan 6, 2026

General comment: Instead of generic language such as "provide stream configuration", "provide current stream status", etc., should we specify the management API calls that need to be supported? E.g. "When a Receiver makes a Read Stream Configuration call as described in section 8.1.1.2 of the SSF spec to the Transmitter with valid authorization, the Transmitter MUST respond with a valid Stream Configuration as described in section 8.1.1. of the SSF spec.

### Streams {#transmitter-common-stream-configuration}

In all streams created by the Transmitter, the following MUST be true:
For all streams requests received by the Transmitter, the following MUST be true:
Copy link
Contributor

Choose a reason for hiding this comment

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

"Management API calls" instead of "streams requests"?

: A Receiver MUST be able to verify the liveness of the Stream by requesting
that the Transmitter send it a Stream Verification event by providing a valid
authorization
: A Transmitter MUST be able to support a Stream Verification event from a
Copy link
Contributor

Choose a reason for hiding this comment

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

Transmitters need to support the Stream Verification API method, and send the verification event. I think the language in this line conflates the two.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

let me clarify this.

Receivers MUST be able to accept events using:

* Push-Based Security Event Token (SET) Delivery Using HTTP {{RFC8935}}
* Poll-Based Security Event Token (SET) Delivery Using HTTP {{RFC8936}}
Copy link
Contributor

Choose a reason for hiding this comment

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

We should say "any one of the two transports", rather than both.


### JWKS URI {#receiver-jwks-uri}

The Receiver MUST obtain the signature key through the "jwks_uri" from the
Copy link
Contributor

Choose a reason for hiding this comment

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

The jwks_uri is optional for Transmitters, because Receivers can use poll delivery to receive unsigned events. I'm not sure whether we are supporting unsigned events in the interop spec, but please verify this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Though the profile mentions:
All events MUST be signed using the RS256 algorithm using a minimum of 2048-bit keys.

I dont see mention of unsigned events.

https://openid.net/specs/openid-caep-interoperability-profile-1_0-ID1.html#section-2.6

@jischr
Copy link
Contributor Author

jischr commented Jan 7, 2026

General comment: Instead of generic language such as "provide stream configuration", "provide current stream status", etc., should we specify the management API calls that need to be supported? E.g. "When a Receiver makes a Read Stream Configuration call as described in section 8.1.1.2 of the SSF spec to the Transmitter with valid authorization, the Transmitter MUST respond with a valid Stream Configuration as described in section 8.1.1. of the SSF spec.

I agree. The organization is a bit lacking and i want to match the language a bit closer to SSF.

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