Skip to content
Closed
Show file tree
Hide file tree
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
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Changelog CAMARA SessionInsights

## Table of Contents

- **[r1.1](#r11)**

**Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.**

The below sections record the changes for each API version in each release as follows:

- for an alpha release, the delta with respect to the previous release
- for the first release-candidate, all changes since the last public release
- for subsequent release-candidate(s), only the delta to the previous release-candidate
- for a public release, the consolidated changes since the previous public release

# r1.1

## Release Notes

This release contains the definition and documentation of

- session-insights v0.1.0-rc.1

The API definition(s) are based on

- Commonalities v0.6.0
- Identity and Consent Management v0.4.0

## session-insights v0.1.0-rc.1

**Initial contribution of Session Insights API definition, including initial documentation, linting, test cases, and OpenAPI spec.**

- API definition **with inline documentation**:
- OpenAPI [YAML spec file](https://github.com/camaraproject/SessionInsights/blob/r1.1/main/code/API_definitions/session-insights.yaml)

Choose a reason for hiding this comment

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

Suggested change
- OpenAPI [YAML spec file](https://github.com/camaraproject/SessionInsights/blob/r1.1/main/code/API_definitions/session-insights.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/SessionInsights/blob/r1.1/code/API_definitions/session-insights.yaml)

- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SessionInsights/r1.1/code/API_definitions/session-insights.yaml&nocors)
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SessionInsights/r1.1/code/API_definitions/session-insights.yaml)

- @benhepworth did most of the work on this initial release
- @kevsy helped out and co-authored several PRs and participated in PR reviews
- This "release" is only tagged to document the history of the API, it is not intended to be used by implementors or API customers
- It was originally an implementation by the CableLabs team, and is now maintained by the Camara Project

Choose a reason for hiding this comment

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

Suggested change
- It was originally an implementation by the CableLabs team, and is now maintained by the Camara Project
- It was originally an implementation by the CableLabs team, and is now maintained by the CAMARA Project


### Added

- Publish initial yaml
- Add Linting
- Add Test cases
- Align with Commonalities 0.6
- Update User Story

### Changed

### Fixed

### Removed

*Full Changelog**: [https://github.com/camaraproject/SessionInsights/commits/r1.1](https://github.com/camaraproject/SessionInsights/commits/r1.1)
4 changes: 2 additions & 2 deletions code/API_definitions/session-insights.yaml

Choose a reason for hiding this comment

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

line 10: the concept of API "family" is deprecated --> In this paragraph, change both "Connectivity Insights API family" and "Connectivity Insights API" to "Connectivity Insights API group".

line 64: Camara --> CAMARA

Choose a reason for hiding this comment

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

lines 77 / 78: should the tags section not have "Session Insights" and the description related to that ?

Choose a reason for hiding this comment

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

some comments to better understand the API:

In the info.description field:

  • instead of "network operator", use "API provider".

  • I am confused between:

    • the parameter SessionId (schema defined line 312)
    • the id property of the SessionBase object (line 354)
    • the applicationSessionId also a property of the SessionBase object (line 358)
      they have very little or no description and I also do not see it clarified elsewhere, maybe one is more intented as a name ? If we need all of these ids, what is the relation between them (if any), and what is their purpose
  • some info is missing on the cardinality of object relation:

    • 1 device, multiple applications ?
    • application, 1 application-profile ?
    • 1 application, multiple sessions ?
    • 1 session, ... ?
  • the Authorization and Authentication section: how is the link made between this section on device and the actual APIs ? extend the section with some info about this

  • same for the next error code section

  • the term KPIs and KPI metrics seem to be used interchangeably - preferably pick only one

  • change "existing Application Profile" to "selected Application Profile" (from the list of available profiles obtained with the GET application-profiles API) - can be more explicity described in the info.description section

  • line 24: change "Application Profile Integration" to "Use of Application Profiles API"

  • RCA abbreviation not to be used - use "event indicating the problem cause" or something

  • line 33: what is WMM ? no abbreviations

Choose a reason for hiding this comment

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

This API uses implicit notifications and e.g. the sink and sink credentials definitions should be aligned to the Event Guide - https://github.com/camaraproject/Commonalities/blob/r3.2/documentation/CAMARA-API-Event-Subscription-and-Notification-Guide.md

for detailed help on alignment please seealso the wiki: Commonalities r3.2 alignment please check (see https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/132218881/Analysis+of+Commonalities+0.6.0-rc.1+changes, e.g. for subscription APIs:

  • including add sink pattern and specific 400 - INVALID_SINK error
  • Update types property of SubscriptionRequest to allow more than one event type per subscription (optional)
  • Update types property of SubscriptionRequest to use SubscriptionEventType schema (enum of defined types)
  • 3.2 subscription-started event (optional event)
  • 3.3 subscription-updated event (optional event)
  • 3.4 subscription-ends --> subscription-ended (event name change)

Choose a reason for hiding this comment

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

The error definitions are missing the examples section in the content.application/json part
please see: https://github.com/camaraproject/Commonalities/blob/r3.2/artifacts/CAMARA_common.yaml
line 236 and after

Choose a reason for hiding this comment

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

the security aspects are missing from the API - securitySchemes in

  • paths
  • components section
  • on the sink (aligned to Commonalities)

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.3
info:
title: Session Insights API
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
title: Session Insights API
title: Session Insights

version: wip
version: 0.1.0-rc.1
x-camara-commonalities: 0.6
license:
name: Apache 2.0
Expand Down Expand Up @@ -65,7 +65,7 @@ externalDocs:
url: https://github.com/camaraproject/SessionInsights

servers:
- url: "{apiRoot}/session-insights/vwip"
- url: "{apiRoot}/session-insights/v0.1rc1"
variables:
apiRoot:
default: http://localhost:9091
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Feature: CAMARA Session Insights API, v0.1.0-rc.1 - Operation createSession

Background: Common createSession setup
Given an environment at "apiRoot"
And the resource "/session-insights/vwip/sessions"
And the resource "/session-insights/v0.1rc1/sessions"
And the header "Content-Type" is set to "application/json"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Feature: CAMARA Session Insights API, v0.1.0-rc.1 - Operation deleteSession

Background: Common deleteSession setup
Given an environment at "apiRoot"
And the resource "/session-insights/vwip/sessions/{sessionId}"
And the resource "/session-insights/v0.1rc1/sessions/{sessionId}"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
And the path parameter "sessionId" is set by default to an existing session sessionId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Feature: CAMARA Session Insights API, v0.1.0-rc.1 - Operation getSession

Background: Common getSession setup
Given an environment at "apiRoot"
And the resource "/session-insights/vwip/sessions/{sessionId}"
And the resource "/session-insights/v0.1rc1/sessions/{sessionId}"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
And the path parameter "sessionId" is set by default to an existing session sessionId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Feature: CAMARA Session Insights API, v0.1.0-rc.1 - Operation retrieveSessionsBy

Background: Common retrieveSessionsByDevice setup
Given an environment at "apiRoot"
And the resource "/session-insights/vwip/retrieve-sessions"
And the resource "/session-insights/v0.1rc1/retrieve-sessions"
And the header "Content-Type" is set to "application/json"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Feature: CAMARA Session Insights API, v0.1.0-rc.1 - Operation sendSessionMetrics

Background: Common sendSessionMetrics setup
Given an environment at "apiRoot"
And the resource "/session-insights/vwip/sessions/{sessionId}/metrics"
And the resource "/session-insights/v0.1rc1/sessions/{sessionId}/metrics"
And the header "Content-Type" is set to "application/json"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
# API Readiness Checklist

Checklist for api-name api-version in rx.y.
Checklist for api-name api-version v0.1.0-rc.1 in r1.1.

| Nr | API release assets | alpha | release-candidate | initial<br>public | stable<br> public | Status | Reference information |
|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:|
| 1 | API definition | M | M | M | M | Y | [/code/API_definitions/session-insights.yaml](/code/API_definitions/session-insights.yaml) |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | Comm. release nr |
| 3 | Guidelines from ICM applied | O | M | M | M | tbd | ICM release nr |
| 4 | API versioning convention applied | M | M | M | M | tbd | |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r1.1](https://github.com/camaraproject/SessionInsights/releases/tag/r1.1) |

Choose a reason for hiding this comment

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

Suggested change
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r1.1](https://github.com/camaraproject/SessionInsights/releases/tag/r1.1) |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.2](https://github.com/camaraproject/Commonalities/releases/tag/r3.2) |

| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r1.1](https://github.com/camaraproject/SessionInsights/releases/tag/r1.1) |

Choose a reason for hiding this comment

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

Suggested change
| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r1.1](https://github.com/camaraproject/SessionInsights/releases/tag/r1.1) |
| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.2](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.2) |

| 4 | API versioning convention applied | M | M | M | M | Y | |

Choose a reason for hiding this comment

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

Suggested change
| 4 | API versioning convention applied | M | M | M | M | Y | |
| 4 | API versioning convention applied | M | M | M | M | Y | 0.1.0-rc.1 |

| 5 | API documentation | M | M | M | M | Y | in yaml |
| 6 | User stories | O | O | O | M | Y | [/documentation/API_documentation/SessionInsights_User_Story.md](/documentation/API_documentation/SessionInsights_User_Story.md) |
| 7 | Basic API test cases & documentation | O | M | M | M | N | |
| 8 | Enhanced API test cases & documentation | O | O | O | M | N | |
| 9 | Test result statement | O | O | O | M | N | issue link |
| 10 | API release numbering convention applied | M | M | M | M | tbd | |
| 11 | Change log updated | M | M | M | M | tbd | [relative link](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | N | comment |
| 13 | API description (for marketing) | O | O | M | M | Y | [https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/94011619/SessionInsights](https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/94011619/SessionInsights) |
| 7 | Basic API test cases & documentation | O | M | M | M | Y | [/code/Test_definitions](/code/Test_definitions) |
| 8 | Enhanced API test cases & documentation | O | O | O | M | Y | |
| 9 | Test result statement | O | O | O | M | N | |
| 10 | API release numbering convention applied | M | M | M | M | Y | |
| 11 | Change log updated | M | M | M | M | Y | [/CHANGELOG.md](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | N | |
| 13 | API description (for marketing) | O | O | M | M | Y | [wiki link](https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/94011619/SessionInsights) |

Choose a reason for hiding this comment

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

Suggested change
| 13 | API description (for marketing) | O | O | M | M | Y | [wiki link](https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/94011619/SessionInsights) |
| 13 | API description (for marketing) | O | O | M | M | Y | [wiki link](https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/90538343/ConnectivityInsights+Session+Insights+API+description) |


To fill the checklist:

- in the line above the table, replace the api-name, api-version and the rx.y by their actual values for the current API version and release.
- in the Status column, put "Y" (yes) if the release asset is available or fulfilled in the current release, a "N" (no) or a "tbd". Example use of "tbd" is in case an alpha or release-candidate API version does not yet provide all mandatory assets for the release.
- in the Reference information column, provide the relative links (from the API repository home folder) to the release asset once available, the applicable release numbers (not versions) of Commonalities and ICM, and any other relevant links or information.
Expand Down