Repository navigation
Conversation
During the public review period of the CAEP Interop profile we got the feedback that we should cover the Risk Level Change as a valid use-case for the CAEP Interop Profile. Fixes openid#347
appsdesh
approved these changes
Aug 25, 2026
mike-kiser-sp
approved these changes
Sep 1, 2026
derrumbe
approved these changes
Sep 1, 2026
mike-kiser-sp
pushed a commit
to mike-kiser-sp/sharedsignals
that referenced
this pull request
Sep 1, 2026
Follow-ups to openid#349, all confined to the section it added. - Defer the allowable values of current_level to CAEP rather than enumerating them inline. openid#330 proposes adding UNKNOWN to that enum, which would leave the profile carrying a stale list. The other fields in the section, and Sections 3.1-3.3, already defer to CAEP. - Use "Section 3.8.1" rather than the section sign. The document sets coding: us-ascii, so the section sign is transliterated and the published text currently renders as "1.0 S.3.8.1". - Strip trailing whitespace from three definition list terms, which kramdown would otherwise treat as line breaks. - Restore the trailing newline at end of file. No normative change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 10, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 10, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 11, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 11, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 15, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 15, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 21, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 21, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 23, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 23, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 24, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 24, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 28, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 28, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 29, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 29, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 30, 2026
The CAEP Interop Profile added risk-level-change as a fourth qualifying use case (section 3.4, openid/sharedsignals#349), but the suite's hard-coded interop event list only knew the original three: a transmitter supporting only risk-level-change was failed, and one sending it got no payload validation at all. - risk-level-change joins CAEP_INTEROP_EVENT_TYPES (qualifying-use-case checks, per-subject event generation, format-coverage bookkeeping and the events the suite requests as a receiver all follow from the set) - new OIDSSFValidateCaepRiskLevelChangeEvent validates the CAEP 1.0 section 3.8 fields: principal (REQUIRED, open-ended per "or any other entity" - unknown values are logged, not rejected), current_level (REQUIRED, LOW/MEDIUM/HIGH), previous_level (OPTIONAL, same values; absence means unknown), risk_reason (string when present) - the interop reason_admin requirement (CAEPIOP 3.4) applies to it like the other use cases, and the emulated transmitter's example event now carries a reason_admin - summaries and messages list the fourth use case Closes #1961 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jogu
pushed a commit
to openid-certification/conformance-suite
that referenced
this pull request
Sep 30, 2026
The current certification review period targets the published CAEP Interop Profile 1.0 draft-01, whose qualifying use cases are sections 3.1-3.3 (session-revoked, credential-change, device-compliance-change). risk-level-change exists only as section 3.4 of the working-group head (openid/sharedsignals#349) and is not part of the document under review, and real transmitter implementations largely do not support it yet. Split the event sets accordingly: the CAEP interop transmitter test now derives its REQUIRED events only from the qualifying trio, so a transmitter advertising risk-level-change (or any other CAEP type) is no longer forced to trigger it during the run - voluntarily delivered events are still fully validated against CAEP 1.0 Final 3.8, with the WG-head-only reason_admin requirement downgraded to a warning. The advertised-support and stream gates count only qualifying use cases, so risk-level-change alone no longer qualifies a stream on either side. Receiver support is unchanged: the emulated transmitter still advertises risk-level-change and generates it for receivers that request it. Generated-event anchors moved from the dangling CAEPIOP-3.4 to OIDCAEP-3.8, which resolves in the published CAEP 1.0 Final. Fold risk-level-change back into the qualifying set once the profile vote lands with section 3.4 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
During the public review period of the CAEP Interop profile we got the feedback that we should cover the Risk Level Change as a valid use-case for the CAEP Interop Profile.
Fixes #347