Skip to content
Merged
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
44 changes: 43 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ NOTE:

## Table of contents

- [r2.2](#r22---Fall25-public-release)
- [r2.1 - rc](#r21---rc)
- [r1.3](#r13)
- [r1.2 - rc](#r12---rc)
Expand All @@ -23,6 +24,48 @@ The below sections record the changes for each API version in each release as fo

NOTE: SimpleEdgeDiscovery is part of the EdgeCloud API Sub Project, and was previously developed within the [EdgeCloud](https://github.com/camaraproject/EdgeCloud) repository. Two releases were made within EdgeCloud, v0.81 and r0.9.3-rc. These releases also include the other EdgeCloud APIs and materials, so the changelog below highlights only the changes related to SimpleEdgeDiscovery. Further information and links to the releases in EdgeCloud can be found below.

# r2.2 - Fall25 public release

This public release contains the definition and documentation of
* simple-edge-discovery v2.0.0

The API definition(s) are based on
* Commonalities v0.6.0 (r3.3)
* Identity and Consent Management v0.4.0 (r3.3)

It contains the **following breaking changes** compared to the last public release [r1.3](#r13):

* The API's single operation has been refactored from GET to POST
* The operation resource URI has changed from `/edge-cloud-zones?filter=closest` to `/retrieve-closest-edge-cloud-zone`
* One or more device identifiers must be passed either via a 3-legged access token or in the request body.

- API definition with inline documentation:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.2/code/API_definitions/simple-edge-discovery.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.2/code/API_definitions/simple-edge-discovery.yaml)
- [OpenAPI YAML spec file](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/r2.2/code/API_definitions/simple-edge-discovery.yaml)

### Added

- [x] fix: added DeviceResponse object by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/102
- [x] fix: added section on non-documented errors by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/92

### Changed

- [x] refactor!: changed discovery operation method from GET to POST by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/78
- [x] docs: updated examples and usage description following refactoring to POST by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/81
- [x] refactor!: feature file updated to reflect change from GET to POST by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/118
- [x] fix: updated 200 OK Response to a schema object by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/117
- [x] fix: changed XCorrelator to an object and added resulting $refs by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/116
- [x] fix: updated x-correlator pattern by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/93
- [x] fix: updated x-camara-commonalities to 0.6 by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/101
- [x] test: updated x-correlator in .feature to assert compliance with common schema by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/114
- [x] docs: updated ref to Commonalities version in Device object description

### Removed

- [x] fix: removed 401 AUTHENTICATION_REQUIRED by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/90
- [x] fix: removed 422 IDENTIFIER MISMATCH by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/89

# r2.1 - rc
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I see that r2.1 has been replaced with r2.2.
my understanding is that r2.1 needs to be retained and a new section for r2.2 needs to be added. like how the table of contents has it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks Mahesh - good catch, I've put it back now.


This release candidate contains the definition and documentation of
Expand Down Expand Up @@ -64,7 +107,6 @@ It contains the **following breaking changes** compared to the last public relea
- [x] fix: removed 401 AUTHENTICATION_REQUIRED by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/90
- [x] fix: removed 422 IDENTIFIER MISMATCH by @Kevsy in https://github.com/camaraproject/SimpleEdgeDiscovery/pull/89


# r1.3

This release contains the definition and documentation of
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ Incubating API Repository to evolve and maintain the definitions and documentati

* Note: 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 a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest public release**.

* **The latest pre-release is [r2.1 - rc](https://github.com/camaraproject/SimpleEdgeDiscovery/releases/tag/r2.1), with the following API version:**
* **NEW: public release [r2.2](https://github.com/camaraproject/SimpleEdgeDiscovery/releases/tag/r2.2) is available, with the following API version:**

* **simple-edge-discovery v2.0.0-rc.1**
[[YAML]](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/r2.1/code/API_definitions/simple-edge-discovery.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.1/code/API_definitions/simple-edge-discovery.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.1/code/API_definitions/simple-edge-discovery.yaml)
* **simple-edge-discovery v2.0.0**
[[YAML]](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/r2.2/code/API_definitions/simple-edge-discovery.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.2/code/API_definitions/simple-edge-discovery.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/SimpleEdgeDiscovery/r2.2/code/API_definitions/simple-edge-discovery.yaml)

* Previous releases and pre-releases are available [here](https://github.com/camaraproject/SimpleEdgeDiscovery/releases)
* For changes see [CHANGELOG.md](/CHANGELOG.md)
Expand Down
8 changes: 4 additions & 4 deletions code/API_definitions/simple-edge-discovery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
openapi: 3.0.3
info:
title: Simple Edge Discovery
version: wip
version: 2.0.0
x-camara-commonalities: 0.6
description: |
# Find the closest Edge Cloud Zone
Expand All @@ -20,7 +20,7 @@ info:
physical (GPS) location of a user device is not a reliable way to determine
the closest Edge Cloud Zone, due to the way operator networks are routed -
so the operator will calculate the Edge Cloud Zone with the
_shortest network path_to the network-attached device identified in the API
_shortest network path_ to the network-attached device identified in the API
request.

Once you have the name of the closest Edge Cloud Zone to the user device,
Expand Down Expand Up @@ -57,7 +57,7 @@ info:

## Passing device identifier(s) in the request
At least one of the following device identifiers must be provided, unless
using a 3-legged access toekn (see next section):
using a 3-legged access token (see next section):
- Phone number (i.e. MSISDN)
- Network Access Identifier assigned by the mobile network operator for the device
- IPv6 address
Expand Down Expand Up @@ -189,7 +189,7 @@ externalDocs:
url: https://github.com/camaraproject/EdgeCloud

servers:
- url: "{apiRoot}/simple-edge-discovery/vwip"
- url: "{apiRoot}/simple-edge-discovery/v2"
variables:
apiRoot:
default: https://localhost:9091
Expand Down
21 changes: 11 additions & 10 deletions code/Test_definitions/simple-edge-discovery.feature
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloudZone
Feature: CAMARA Simple Edge Discovery API, v2.0.0 - Operation readClosestEdgeCloudZone

Background:
Given an environment at "apiRoot"
And the resource "/simple-edge-discovery/vwip/retrieve-closest-edge-cloud-zone" |
And the resource "/simple-edge-discovery/v2/retrieve-closest-edge-cloud-zone" |
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 Expand Up @@ -32,12 +32,13 @@ Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloud

@simple_edge_discovery_error_scenario_01_404_device_cannot_be_identified
Scenario: Error because the device cannot be identified
Given the request "readClosestEdgeCloudZone" is sent
When the provided identifier(s) cannot be matched to a device
Then the response status code is 422
Given that the device cannot be identified from the access token
And the request body property "$.device" is compliant with the request body schema but does not identify a valid device
When the request "readClosestEdgeCloudZone" is sent
Then the response status code is 404
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response header "Content-Type" is "application/json"
And the response property "$.status" is 400
And the response property "$.status" is 404
And the response property "$.code" is "IDENTIFIER_NOT_FOUND"
And the response property "$.message" contains a user friendly text

Expand All @@ -48,7 +49,7 @@ Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloud
Then the response status code is 422
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response header "Content-Type" is "application/json"
And the response property "$.status" is 400
And the response property "$.status" is 422
And the response property "$.code" is "UNSUPPORTED_IDENTIFIER"
And the response property "$.message" contains a user friendly text

Expand All @@ -59,7 +60,7 @@ Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloud
Then the response status code is 422
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response header "Content-Type" is "application/json"
And the response property "$.status" is 400
And the response property "$.status" is 422
And the response property "$.code" is "MISSING_IDENTIFIER"
And the response property "$.message" contains a user friendly text

Expand All @@ -70,7 +71,7 @@ Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloud
Then the response status code is 403
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response header "Content-Type" is "application/json"
And the response property "$.status" is 400
And the response property "$.status" is 403
And the response property "$.code" is "INVALID_TOKEN_CONTEXT"
And the response property "$.message" contains a user friendly text

Expand All @@ -81,7 +82,7 @@ Feature: CAMARA Simple Edge Discovery API, vwip - Operation readClosestEdgeCloud
Then the response status code is 422
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response header "Content-Type" is "application/json"
And the response property "$.status" is 400
And the response property "$.status" is 422
And the response property "$.code" is "SERVICE_NOT_APPLICABLE"
And the response property "$.message" contains a user friendly text

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# API Readiness Checklist

Checklist for simple-edge-discovery v2.0.0-rc.1
Checklist for simple-edge-discovery v2.0.0

| Nr | API release assets | alpha | release-candidate | initial<br>public | stable<br> public | Status | Comments |
|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:|
| 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/simple-edge-discovery.yaml) |
| 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 | [r3.2](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.2) |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/Commonalities/releases/tag/r3.3) |
| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.3) |
| 4 | API versioning convention applied | M | M | M | M | Y | |
| 5 | API documentation | M | M | M | M | Y | in yaml |
| 6 | User stories | O | O | O | M | Y | [link](/documentation/API_documentation/SimpleEdgeDiscovery_User_Story.md) |
| 7 | Basic API test cases & documentation | O | M | M | M | Y | [link](/code/Test_definitions) |
| 8 | Enhanced API test cases & documentation | O | O | O | M | Y | [link](/code/Test_definitions) |
| 9 | Test result statement | O | O | O | M | N | N |
| 9 | Test result statement | O | O | O | M | Y | see [issue #128](https://github.com/camaraproject/SimpleEdgeDiscovery/issues/128) |
| 10 | API release numbering convention applied | M | M | M | M | Y | Y |
| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | Y | see (1) |
Expand Down