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

r1.1 #31

Merged
merged 17 commits into from
Jul 30, 2024
Merged

r1.1 #31

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
248 changes: 47 additions & 201 deletions CHANGELOG.md

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,15 @@ Repository to describe, develop, document, and test the SimpleEdgeDiscovery API

## Release Information
<!-- Use/uncomment one or multiple the following options -->
The sub project has no (pre)releases yet, work in progress is within the main branch
<!-- Pre-releases of this sub project are available in https://github.com/camaraproject/§repo_name§/releases -->
Pre-releases of this sub project are available in https://github.com/camaraproject/SimpleEdgeDiscovery/releases
<!-- The latest public release is available here: https://github.com/camaraproject/§repo_name§/releases/latest -->
<!-- For changes see [CHANGELOG.md](https://github.com/camaraproject/§repo_name§/blob/main/CHANGELOG.md) -->
For changes see [CHANGELOG.md](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/main/CHANGELOG.md)

## Contributing
* Meetings (as part of EdgeCloud API Family)
* [Registration/Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/94237809115?password=05fb6d8a-a913-47d8-b003-db75ecdaa5d9)
* Schedule: Tuesdays 16h-17 CET, every two weeks.
* Minutes: Access [meeting minutes] (update this link to your wiki page using the "Share" link).
* Minutes: Access [meeting minutes](https://wiki.camaraproject.org/display/CAM/EdgeCloud+Meeting+Minutes).
* Mailing List
* Subscribe / Unsubscribe to the mailing list of this Sub Project [https://lists.camaraproject.org/g/sp-simple-edge-discovery](https://lists.camaraproject.org/g/sp-simple-edge-discovery).
* A message to the community of this Sub Project can be sent using [[email protected]]([email protected]).
6 changes: 3 additions & 3 deletions code/API_definitions/simple-edge-discovery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ openapi: 3.0.3
info:
title: Simple Edge Discovery API
version: 0.11.0-rc.1
x-camara-commonalities: 0.4.0
description: |
# Find the closest Edge Cloud Zone
---
Expand Down Expand Up @@ -219,12 +220,11 @@ info:
# Further info and support

---
contact:
email: [email protected]

license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
x-camara-commonalities: 0.4.0

externalDocs:
description: Product documentation at CAMARA.
url: https://github.com/camaraproject/EdgeCloud
Expand Down
2 changes: 1 addition & 1 deletion code/Test_definitions/simple-edge-discovery.feature
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#* ---license-end
#*/

Feature: CAMARA Simple Edge Discovery API, v0.10.0 - Operation readClosestEdgeCloudZone
Feature: CAMARA Simple Edge Discovery API - Operation readClosestEdgeCloudZone

Background:
Given an environment at "apiRoot"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Simple Edge Discovery (EDS) API User Story
# Simple Edge Discovery API User Story

| **Item** | **Details** |
| ---- | ------- |
| ***Summary*** | As an application developer belonging to an enterprise, I want to discover (using either my application server/backend service, or an HTTP application client on the end user terminal) the closest Edge Cloud Zone to a given end user's terminal. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Application service providers, network operators, application developers. The API allows a check to see if End User consent is required: if consent is required, the End User will be an actor in the consent flow. <br>
**Scope:** | Get closest Edge Cloud Zone to a target UE |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:BusinessManager and Customer:Administrator have been onboarded to the CSP's API platform.</li><li>The Customer:BusinessManager has successfully subscribed to the Simple Edge Discovery product from the product catalog.</li><li>The Customer:Administrator has onboarded the Customer:User to the platform.</li><li>The Customer:User has obtained a valid identifier for the target UE, or, will make the API request from an application client on a UE connected to the operator's network.</li>|
| ***Activities/Steps*** | **Starts when:** The customer application server/client makes a GET request to the Simple Edge Discovery API to query the closest Edge Cloud Zone to the target UE (an end user terminal). The target UE is either implicitly identified (e.g. by its source IP when the request is made by an application client on a UE attached to the operator network), identified in a 3-legged consent flow including a device object, or explicitly identified in the encrypted GET request header)<br>**Ends when:** The Simple Edge Discovery API responds to the customer application server|client . |
| ***Post-conditions*** | Optional - the customer may decide to act upon the information by connecting the end user application client to the application server instance hosted at the closest Edge Cloud Zone, and/or spin up an application server instance at that closest Edge Cloud Zone if not currently hosted there. |
| ***Exceptions*** | the network is unable to calculate the closest Edge Cloud Zone to the end user terminal. An HTTP 500 response code will indicate an issue with the provided end user terminal identity and that the request should not be retried without correction. HTTP 500 indicates an internal network error and the request may be retried. |
| ***Summary*** | As an application developer belonging to an enterprise, I want to discover (using either my application server/backend service, or an HTTP application client on the end-user device) the closest Edge Cloud Zone to a given end-user's device. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Application service providers, network operators, application developers. The API allows a check to see if end-user consent is required: if consent is required, the end-user will be an actor in the consent flow. <br>
**Scope:** | Get the name of the Edge Cloud Zone closest to a given end-user's device |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:BusinessManager and Customer:Administrator have been onboarded to the CSP's API platform.</li><li>The Customer:BusinessManager has successfully subscribed to the Simple Edge Discovery product from the product catalog.</li><li>The Customer:Administrator has onboarded the Customer:User to the platform.</li><li>The Customer:User has obtained a valid identifier for the target device, or, will make the API request from an application client on a device connected to the operator's network.</li>|
| ***Activities/Steps*** | **Starts when:** The customer application server/client makes a GET request to the Simple Edge Discovery API to query the closest Edge Cloud Zone to the target device (an end-user device). The target device is either implicitly identified (e.g. by its source IP when the request is made by an application client on a device attached to the operator network), identified in a 3-legged consent flow including a device object, or explicitly identified in the encrypted GET request header.<br>**Ends when:** The Simple Edge Discovery API responds to the customer application server|client . |
| ***Post-conditions*** | Optional - the customer may decide to act upon the information by connecting the end-user application client to the application server instance hosted at the closest Edge Cloud Zone, and/or spin up an application server instance at that closest Edge Cloud Zone if not currently hosted there. |
| ***Exceptions*** | the network is unable to calculate the closest Edge Cloud Zone to the end-user device. An HTTP 500 response code will indicate an issue with the provided end-user device identity and that the request should not be retried without correction. HTTP 500 indicates an internal network error and the request may be retried. |

## API Workflows
### Simple Edge Discovery
#### Scenario 1: direct request from application client on end user device
#### Scenario 1: direct request from application client on end-user device

Constraints:
- Network: cellular (4G/5G) or fixed/Wi-Fi network with an Edge Cloud Zone deployment.
Expand All @@ -34,9 +34,9 @@ sequenceDiagram
Application Client->>App Client: lookup app server endpoint (Edge Cloud Zone name)
Application Client->>Operator: connect to app server endpoint
else no local mapping
Application Client->>Application Server: name if closest Egde Cloud Zone for app
Application Client->>Application Server: name of closest Egde Cloud Zone for app
opt spin up instance on closest Edge Cloud Zone
Application Server->>Edge Cloud Zone: create instance(MEC platform name)
Application Server->>Edge Cloud Zone: create instance(Edge Cloud Zone)
Edge Cloud Zone->>Application Server: instance endpoint
Application Server->>Application Client: instance endpoint
end
Expand All @@ -46,15 +46,14 @@ sequenceDiagram

Constraints:
- Network: cellular (4G/5G) or fixed/Wi-Fi network with an Edge Cloud Zone deployment.
- Application: none, browser or app calls API over HTTP
- Northbound Interface only (no 'UNI' client SDK required)
- Dependency: the call must include an identifier for the terminal (UE) for which 'closest MEC' is being calculated
- Application: none, browser or app calls API over HTTP (no client SDK required)
- Dependency: the call must include an identifier for the device (device) for which 'closest MEC' is being calculated

Note: the Edge CLoud Zone platform may be hosted by the operator or a 3rd party hyperscaler (in which case the developer will need an account with that hyperscaler to create instances)

```mermaid
sequenceDiagram
Note over Application Server, Operator: PRE developer has acquired an identifier for the terminal in question
Note over Application Server, Operator: PRE developer has acquired an identifier for the device in question
Note over Application Server, Operator: PRE App developer registered, <br/> authenticated and authorised
Application Server->>Operator: GET /edge-cloud-zones?filter=closest {header: device identifier(s)}
Operator->>Application Server: name of closest Edge Cloud Zone
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# API Readiness Checklist

Checklist for simple-edge-discovery v0.11.0 in r0.11.0-rc.1
Checklist for simple-edge-discovery v0.11.0-rc.1 in r1.1

| Nr | API release assets | alpha | release-candidate | initial<br>public | stable<br> public | Status | Comments |
|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:|
| 1 | API definition | M | M | M | M | Y | [link](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/main/code/API_definitions/simple-edge-discovery.yaml) |
| 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 | |
| 3 | Guidelines from ICM applied | O | M | M | M | Y | |
| 4 | API versioning convention applied | M | M | M | M | Y | |
| 5 | API documentation | M | M | M | M | Y | [link](https://github.com/camaraproject/SimpleEdgeDiscovery/blob/main/code/API_definitions/simple-edge-discovery.yaml) |
| 6 | User stories | O | O | O | M | Y | [link](https://github.com/camaraproject/SimpleEdgeDiscovery/tree/main/documentation/API_documentation/SED_User_Story.md) |
| 7 | Basic API test cases & documentation | O | M | M | M | Y | [link](https://github.com/camaraproject/SimpleEdgeDiscovery/tree/main/code/Test_definitions) |
| 8 | Enhanced API test cases & documentation | O | O | O | M | N | |
| 5 | API documentation | M | M | M | M | Y | [link](/code/API_definitions/simple-edge-discovery.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) |
Kevsy marked this conversation as resolved.
Show resolved Hide resolved
| 8 | Enhanced API test cases & documentation | O | O | O | M | M | [link](/code/Test_definitions) |
| 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 | [link](https://github.com/camaraproject/SimpleEdgeDiscovery/tree/main/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | N | |
| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | Y | [link](https://www.open-gateway.com) |