Analysis of Commonalities 0.6.0
(DRAFT)
Updates from r3.2 (rc-1) to r3.3 (public release) are highlighted in blue.
See the table below summarizing changes
Changelog
Added
CAMARA API Design Guide document by @rartych in #441
CAMARA API Event Subscription and Notification Guide document by @bigludo7 in #442
Links to CAMARA API Event Subscription and Notification Guide in artifacts by @rartych in #453
Updated Glossary with Terminology from Device Identifier API by @eric-murray in camaraproject#454
Text description for duration format fields by @PedroDiez in camaraproject#459
Event versioning section added to Guide document by @tanjadegroot in #475
Not Documented Error Responses info.description section by @PedroDiez in #457
Enhancements Subscription/Notification Architecture for Fall25 by @PedroDiez in #464
Gherkin Feature: x-correlator format checking step since Fall25 by @PedroDiez in #480
Added event-notification feature file template by @bigludo7 in #470
Added Pairwise Pseudonymous Identifier to glossary by @eric-murray in #485
Recommendation and examples to provide schema context in test definitions by @PedroDiez in #492
Continuous release numbering guidelines in CAMARA API Design Guide by @tanjadegroot in #505
Changed
Align 401 wording in Notification Cloud Events Artifact by @PedroDiez in #449
Updated
typesproperty ofSubscriptionallowing more than one event type per subscription by @eric-murray in #432 and clarification on using multiple event types by @rartych in #477Request response definitions and other clarifications in chapter 5 of API Design Guide by @rartych in camaraproject#450
X-Correlator Format changed by @PedroDiez in camaraproject#463
Updated Security chapter in CAMARA-API-Design-Guide.md by @rartych in camaraproject#467
Sorting Logic Enhancements in CAMARA-API-Design-Guide.md by @PedroDiez in camaraproject#471
Linting rules definition updated by @rartych in camaraproject#466
Updated .gherkin-lintrc by @rartych in #472
Editorial improvements of Guide documents and keyword capitalization by @rartych in #494 and #501
Linting rules updated by @rartych in #502
Changed Mandatory Description for date-time string format and updated template files by @PedroDiez in #497
Fixed
Missing bullet point for Mandatory Errors restored in CAMARA API Design Guide by @rartych in #488
Editorial improvements of Guide documents by @rartych in #494
Clarified that the DeviceResponse schema is not mandatory by @eric-murray in #490
ErrorInfo scheme unification in CAMARA_common.yaml and event-subscription-template.yaml by @rartych in #506
Removed
Removed AUTHENTICATION_REQUIRED error code by @eric-murray in #429
API Design Guidelines document was deprecated by @rartych in #441
Removed IDENTIFIER_MISMATCH error and introduced DeviceResponse object by @eric-murray in #455
Removed IDENTIFIER_MISMATCH from testing artifacts by @jlurien in #479
Analysis
This sections presents of main changes that need to be introduced in API definitions and analysis of impact of changes.
PR | Changes | Required changes in OAS | Breaking change for API Provider implementation | Breaking change for API Client implementation |
|---|---|---|---|---|
This PR removes the 401 | Potentially YES | Potentially YES | NO | |
Update `types` property of `Subscription` schema in event-subscription-template.yaml #432 | API sub-projects are free to decide to allow more than one event type per subscription. Use
Clarified in PR #477 | Potentially YES (subscription APIs - only if the API wants to use the new possibility) | Potentially YES (subscription APIs only) | NO |
the API provider must not respond with an error if the identifiers do not match, but instead use only one of the supplied identifiers and indicate which one in the API response. APIs that accept the Changes in test definitions as indicated in PR #479 Clarified in PR #490 | YES | YES | NO | |
Mandatory text proposed | YES | NO | NO | |
Mandatory text proposed when | Potentially YES | NO (change required only if proprietary string format was used for duration attribute) | NO (change required only if proprietary string format was used for duration attribute) | |
Update x-correlator pattern Use schema defined in the row below
| YES | NO | NO | |
Added schema XCorrelator and respective test schema:
$ref: "#/components/schemas/XCorrelator"
schemas:
XCorrelator:
type: string
pattern: ^[a-zA-Z0-9-_:;.\/<>{}]{0,256}$
example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46"
| YES | NO | NO | |
3.4 3.2 3.3 Added | YES (subscription APIs only) | YES (subscription APIs only) | YES (subscription APIs only) | |
The template for Subscription API test definition (Gherkin file) added | NO | NO | NO | |
Added event-notification feature file template #470 | Test definition template to be used by CAMARA subprojects when an event subscription resource is provided | NO | NO | NO |
Recommendation and examples to provide schema context in test definitions #492 | Every feature may include a context after the | NO | NO | NO |
Changed Mandatory Description for date-time string format and updated template files #497 | Mandatory text shortened: `It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z)`. Additional sentence can be removed, but can stay as non-mandatory text in the description of string parameter with | OPTIONAL | NO | NO |
Clarified that the DeviceResponse schema is not mandatory #490 | The If used in a response definition, however, the API provider:
Related to PR #455 | implemeted in M3 with #455 | implemeted in M3 with #455 | NO |
ErrorInfo scheme unification in CAMARA_common.yaml and event-subscription-template.yaml #506 | Change ErrorInfo schema in API specification to the schema defined in CAMARA_common.yaml
As indicated in Commonalities #515 change of order of properties in ErrorInfo schema is confusing. Subprojects should follow API Design Guide where the original order of properties is defined: status->code->message | OPTIONAL | NO | NO |