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

First iteration of Event Def Spec #209

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

jischr
Copy link
Contributor

@jischr jischr commented Sep 24, 2024

This PR addresses #158

@jischr jischr requested a review from a team as a code owner September 24, 2024 16:52
1. The "title" and "description" of the schema must be meaningful and indicative of its function.
1. The naming of all schema properties MUST be indicative of its function.
1. Schemas may not be removed, only deprecated. Any changes to schemas must follow semantic versioning.

Copy link
Contributor

Choose a reason for hiding this comment

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

Should we specify JSON schema for the SET and call out all the mandatory claims of the SET are required? This will help developers to generate entire container objects, rather than only the sub-object events

Copy link
Contributor

Choose a reason for hiding this comment

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

That would greatly complicate these schemas and also make it impossible to ever change the details of SET specification in the SSF spec.

This specification defines how to translate normative SSF, CAEP, RISC event requirements into a JSON Schema. {{JSONSchema}} is a standardized way to describe the structure, constraints, and data types within a JSON document. JSON Schemas can also be used as {{JSONSchemaValidation}} to automatically check if a JSON document adheres to the defined schema, ensuring data integrity.

Using JSON Schema to describe SSF has the following benefits:
- Allows machine readability to auto generation of stubs.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Allows machine readability to auto generation of stubs.
- Allows machine readability for the auto generation of stubs.

- It enables a faster process to create, update and get approval for new event types.
- JSON schema, rather than spec texts, is a more appropriate format to describe event types.
- It also allows event types to be versioned independently thus reducing the friction between the SSF core specification and event type publication.
- Allows more events to be incorporated easily in the standards space beyond the usecases and charters of CAEP, RISC etc.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Allows more events to be incorporated easily in the standards space beyond the usecases and charters of CAEP, RISC etc.
- Allows more events to be incorporated easily in the standards space beyond the use cases and charters of CAEP, RISC etc.


# JSON Schema Defintion

The following section describes how a map a SSF event to a JSON Schema Document.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The following section describes how a map a SSF event to a JSON Schema Document.
The following section describes how to map a SSF event to a JSON Schema Document.


The following section describes how a map a SSF event to a JSON Schema Document.

As defined in {{Section 4.3 of JSON Schema}}, a JSON Schema document, also called a "schema", is a JSON document used to describe another JSON Document, known as an instance.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do these links work correctly? I thought that the text within the brackets had to match something in the references section. I would expect it to look like Section 4.3 of {{JSONSchema}}, but I could be wrong.


As defined in {{Section 4.3 of JSON Schema}}, a JSON Schema document, also called a "schema", is a JSON document used to describe another JSON Document, known as an instance.

A JSON Schema document describes the instance of SSF SET event "payload" ({{Section 2 of SET}}). As such, the schema will defined the claims that pertian to the specific SSF event type. The $id for the schema document MUST be the same as the event identifier of the SET.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
A JSON Schema document describes the instance of SSF SET event "payload" ({{Section 2 of SET}}). As such, the schema will defined the claims that pertian to the specific SSF event type. The $id for the schema document MUST be the same as the event identifier of the SET.
A JSON Schema document describes the instance of SSF SET event "payload" ({{Section 2 of SET}}). As such, the schema will define the claims that pertain to the specific SSF event type. The $id for the schema document MUST be the same as the event identifier of the SET.

1. The "title" and "description" of the schema must be meaningful and indicative of its function.
1. The naming of all schema properties MUST be indicative of its function.
1. Schemas may not be removed, only deprecated. Any changes to schemas must follow semantic versioning.

Copy link
Contributor

Choose a reason for hiding this comment

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

That would greatly complicate these schemas and also make it impossible to ever change the details of SET specification in the SSF spec.


1. Author(s) of the pull request MUST be at least a contributing member of the OpenID Foundation.
1. The Pull Request MUST contain a human readable description of the new SSF event type.
1. The $id of the schema MUST be publicly accesbile on the internet and resolve to the schema document.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to worry about broken or stale URLs? Should there be a process for handling those?


1. Author(s) of the pull request MUST be at least a contributing member of the OpenID Foundation.
1. The Pull Request MUST contain a human readable description of the new SSF event type.
1. The $id of the schema MUST be publicly accesbile on the internet and resolve to the schema document.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
1. The $id of the schema MUST be publicly accesbile on the internet and resolve to the schema document.
1. The $id of the schema MUST be publicly accessible on the internet and resolve to the schema document.

1. The $id of the schema MUST be publicly accesbile on the internet and resolve to the schema document.
1. The "title" and "description" of the schema must be meaningful and indicative of its function.
1. The naming of all schema properties MUST be indicative of its function.
1. Schemas may not be removed, only deprecated. Any changes to schemas must follow semantic versioning.
Copy link
Contributor

Choose a reason for hiding this comment

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

How will we mark schemas as deprecated?

RFC6711:
RFC8176:
SSF:
target: http://openid.net/specs/openid-sse-framework-1_0.html
Copy link
Contributor

Choose a reason for hiding this comment

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

This is referencing a very out of date draft. Please update to draft 3: https://openid.net/specs/openid-sharedsignals-framework-1_0-03.html

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.

5 participants