Skip to content

Commit

Permalink
Merge pull request #183 from fernandopradocabrillo/prepare-r2.1
Browse files Browse the repository at this point in the history
Spring25 - M3 Milestone - Prepare r2.1
  • Loading branch information
fernandopradocabrillo authored Feb 13, 2025
2 parents 77dde1f + dcfd855 commit 5268c30
Show file tree
Hide file tree
Showing 9 changed files with 130 additions and 65 deletions.
61 changes: 58 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Table of contents

- **[r2.1](#r21)**
- **[r1.3](#r13)**
- **[r1.2](#r12)**
- **[r1.1](#r11)**
Expand All @@ -11,9 +12,63 @@

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

* for each first alpha or release-candidate API version, all changes since the release of the previous public API version
* for subsequent alpha or release-candidate API versions, the delta with respect to the previous pre-release
* for a public API version, the consolidated changes since the release of the previous public API version
* 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

# r2.1

## Release Notes

This release contains the definition and documentation of
* sim-swap 2.0.0-rc.1
* sim-swap-subscriptions 0.2-rc.1

The API definition(s) are based on
* Commonalities v0.5.0-rc.1
* Identity and Consent Management v0.3.0-rc.1


## sim-swap 2.0.0-rc.1

**sim-swap 2.0.0-rc.1 is the pre-release for v2.0.0 of the Sim Swap API.**

- API definition **with inline documentation**:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap.yaml&nocors)
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/SimSwap/blob/r2.1/code/API_definitions/sim-swap.yaml)

### Added
* Add management of monitoredPeriod in sim swap for retrieve-date operation by @bigludo7 in https://github.com/camaraproject/SimSwap/pull/153
* Include pattern for x-correlator header by @fernandopradocabrillo in https://github.com/camaraproject/SimSwap/pull/183

### Changed
* Update sim-swap-check.feature by @bigludo7 in https://github.com/camaraproject/SimSwap/pull/168
* Update test wording to avoid confusion with "activation" terminology by @fernandopradocabrillo in https://github.com/camaraproject/SimSwap/pull/170
* Sim swap alignement with commonalities 0.5 by @bigludo7 in https://github.com/camaraproject/SimSwap/pull/180

## Sim Swap Subscriptions v0.2.0-rc.1

- API definition **with inline documentation**:
- OpenAPI [YAML spec file](https://github.com/camaraproject/SimSwap/blob/r2.1/code/API_definitions/sim-swap-subscriptions.yaml)
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap-subscriptions.yaml&nocors)
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap-subscriptions.yaml)

### Added
* [Sim-Swap-Subscription]: Add TerminationReason SUBSCRIPTION_DELETED by @daniel-dierich in https://github.com/camaraproject/SimSwap/pull/177
* Include pattern for x-correlator header by @fernandopradocabrillo in https://github.com/camaraproject/SimSwap/pull/183

### Changed
* Sim swap subscriptions alignement with commonalities 0.5 by @bigludo7 in https://github.com/camaraproject/SimSwap/pull/179

### Removed
* [sim-swap-subscriptions]: remove `allof` in `sinkcredential` by @dfischer-tech in https://github.com/camaraproject/SimSwap/pull/175

## New Contributors
* @dfischer-tech made their first contribution in https://github.com/camaraproject/SimSwap/pull/175

**Full Changelog**: https://github.com/camaraproject/SimSwap/compare/r1.3...r2.1

# r1.3

Expand Down
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,21 @@ Repository to describe, develop, document and test the SimSwap API family
## Status and released versions

* 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 available release**.
* `NEW`: Release r1.3 features following APIs:
* version 1.0.0 of the **API sim-swap** - available [here](https://github.com/camaraproject/SimSwap/tree/r1.3)
* `NEW`: Release r2.1 features following APIs:
* version 2.0.0-rc.1 of the **API sim-swap** - available [here](https://github.com/camaraproject/SimSwap/tree/r2.1)
* API definitions **with inline documentation**:
* OpenAPI [YAML](https://github.com/camaraproject/SimSwap/blob/r1.3/code/API_definitions/sim-swap.yaml)
* [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r1.3/code/API_definitions/sim-swap.yaml&nocors)
* [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r1.3/code/API_definitions/sim-swap.yaml)
* version 0.1.1 of the **API sim-swap-subscriptions** - available [here](https://github.com/camaraproject/SimSwap/tree/r1.3)
* API definitions **with inline documentation**:
* OpenAPI [YAML](https://github.com/camaraproject/SimSwap/blob/r1.3/code/API_definitions/sim-swap-subscriptions.yaml)
* [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r1.3/code/API_definitions/sim-swap-subscriptions.yaml&nocors)
* [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r1.3/code/API_definitions/sim-swap-subscriptions.yaml)

* The latest public release is available here: https://github.com/camaraproject/SimSwap/releases/latest
* Other releases of this sub project are available in https://github.com/camaraproject/SimSwap/releases
* For changes see [CHANGELOG.md](https://github.com/camaraproject/Simswap/blob/main/CHANGELOG.md)
* OpenAPI [YAML](https://github.com/camaraproject/SimSwap/blob/r2.1/code/API_definitions/sim-swap.yaml)
* [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap.yaml&nocors)
* [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap.yaml)
* version 0.2.0-rc.1 of the **API sim-swap-subscriptions** - available [here](https://github.com/camaraproject/SimSwap/tree/r2.1)
* API definitions **with inline documentation**:
* OpenAPI [YAML](https://github.com/camaraproject/SimSwap/blob/r2.1/code/API_definitions/sim-swap-subscriptions.yaml)
* [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap-subscriptions.yaml&nocors)
* [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/SimSwap/r2.1/code/API_definitions/sim-swap-subscriptions.yaml)

* The latest public release is available here: https://github.com/camaraproject/SimSwap/releases/latest
* Other releases of this sub project are available in https://github.com/camaraproject/SimSwap/releases
* For changes see [CHANGELOG.md](https://github.com/camaraproject/Simswap/blob/main/CHANGELOG.md)

## Contributing

Expand Down
18 changes: 11 additions & 7 deletions code/API_definitions/sim-swap-subscriptions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ info:
#### phoneNumber presence:
These rules apply for subscription:
- If 3-legged access token is used, the POST and GET{id} requests & responses must NOT provide thev``phoneNumber``. For GET (list) only subscription(s) for this exactly phone number is/are retrieved (implicit filtering).
- If 3-legged access token is used, the POST and GET{id} requests & responses must NOT provide the ``phoneNumber``. For GET (list) only subscription(s) for this exactly phone number is/are retrieved (implicit filtering).
- If 2-legged access token is used, for POST and GET{id}, the presence of ``phoneNumber`` in the request & response is mandatory. For GET (list) the device identifier (``phoneNumber``) could be used as filtering criteria.
#### sinkCredential presence:
Expand All @@ -60,11 +60,11 @@ info:
# Authorization and authentication
The "Camara Security and Interoperability Profile" provides details on how a client requests an access token. Please refer to Identify and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the Profile.
The "Camara Security and Interoperability Profile" provides details of how an API consumer requests an access token. Please refer to Identity and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the profile.
Which specific authorization flows are to be used will be determined during onboarding process, happening between the API Client and the API Provider, taking into account the declared purpose for accessing the API, while also being subject to the prevailing legal framework dictated by local legislation.
The specific authorization flows to be used will be agreed upon during the onboarding process, happening between the provider of the application consuming the API and the operator's API exposure platform, taking into account the declared purpose for accessing the API, whilst also being subject to the prevailing legal framework dictated by local legislation.
It is important to remark that in cases where personal user data is processed by the API, and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of 3-legged access tokens becomes mandatory. This measure ensures that the API remains in strict compliance with user privacy preferences and regulatory obligations, upholding the principles of transparency and user-centric data control.
In cases where personal data is processed by the API and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of three-legged access tokens is mandatory. This ensures that the API remains in compliance with privacy regulations, upholding the principles of transparency and user-centric privacy-by-design.
# Identifying the device from the access token
Expand All @@ -87,14 +87,14 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
x-camara-commonalities: 0.5.0
version: 0.2.0-rc.1
x-camara-commonalities: 0.5

externalDocs:
description: Product documentation at CAMARA
url: https://github.com/camaraproject/
servers:
- url: '{apiRoot}/sim-swap-subscriptions/vwip'
- url: '{apiRoot}/sim-swap-subscriptions/v0.2rc1'
variables:
apiRoot:
default: http://localhost:9091
Expand Down Expand Up @@ -331,11 +331,15 @@ components:
description: Correlation id for the different services
schema:
type: string
pattern: ^[a-zA-Z0-9-]{0,55}$
example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46"
headers:
x-correlator:
description: Correlation id for the different services
schema:
type: string
pattern: ^[a-zA-Z0-9-]{0,55}$
example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46"
schemas:
PhoneNumber:
type: string
Expand Down
16 changes: 10 additions & 6 deletions code/API_definitions/sim-swap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ info:
# Authorization and authentication
The "Camara Security and Interoperability Profile" provides details on how a client requests an access token. Please refer to Identify and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the Profile.
The "Camara Security and Interoperability Profile" provides details of how an API consumer requests an access token. Please refer to Identity and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the profile.
Which specific authorization flows are to be used will be determined during onboarding process, happening between the API Client and the API Provider, taking into account the declared purpose for accessing the API, while also being subject to the prevailing legal framework dictated by local legislation.
The specific authorization flows to be used will be agreed upon during the onboarding process, happening between the provider of the application consuming the API and the operator's API exposure platform, taking into account the declared purpose for accessing the API, whilst also being subject to the prevailing legal framework dictated by local legislation.
It is important to remark that in cases where personal user data is processed by the API, and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of 3-legged access tokens becomes mandatory. This measure ensures that the API remains in strict compliance with user privacy preferences and regulatory obligations, upholding the principles of transparency and user-centric data control.
In cases where personal data is processed by the API and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of three-legged access tokens is mandatory. This ensures that the API remains in compliance with privacy regulations, upholding the principles of transparency and user-centric privacy-by-design.
# Identifying the phone number from the access token
Expand All @@ -67,13 +67,13 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
x-camara-commonalities: 0.5.0
version: 2.0.0-rc.1
x-camara-commonalities: 0.5
externalDocs:
description: Product documentation at Camara
url: https://github.com/camaraproject/SimSwap
servers:
- url: "{apiRoot}/sim-swap/vwip"
- url: "{apiRoot}/sim-swap/v2rc1"
variables:
apiRoot:
default: http://localhost:9091
Expand Down Expand Up @@ -195,11 +195,15 @@ components:
description: Correlation id for the different services
schema:
type: string
pattern: ^[a-zA-Z0-9-]{0,55}$
example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46"
headers:
x-correlator:
description: Correlation id for the different services
schema:
type: string
pattern: ^[a-zA-Z0-9-]{0,55}$
example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46"
schemas:
SimSwapInfo:
type: object
Expand Down
6 changes: 3 additions & 3 deletions code/Test_definitions/sim-swap-check.feature
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Feature: CAMARA SIM Swap API, 2.0.0 - Operation checkSimSwap
Feature: CAMARA SIM Swap API, 2.0.0-rc.1 - Operation checkSimSwap

# Input to be provided by the implementation to the tester
#
# Testing assets:
#
# References to OAS spec schemas refer to schemas specifies in sim_swap.yaml, version 2.0.0
# References to OAS spec schemas refer to schemas specifies in sim_swap.yaml, version 2.0.0-rc.1
#
# check if SIM swap has been performed during a past period

Background: Common checkSimSwap setup
Given the resource "sim-swap/v2/check"
Given the resource "sim-swap/v2rc1/check"
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" is set to a UUID value
Expand Down
10 changes: 5 additions & 5 deletions code/Test_definitions/sim-swap-retrieveDate.feature
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
Feature: CAMARA SIM Swap API, 2.0.0 - Operation retrieveSimSwapDate
Feature: CAMARA SIM Swap API, 2.0.0-rc.1 - Operation retrieveSimSwapDate

# Input to be provided by the implementation to the tester
#
# Testing assets:
#
# References to OAS spec schemas refer to schemas specifies in sim_swap.yaml, version 2.0.0
# References to OAS spec schemas refer to schemas specifies in sim_swap.yaml, version 2.0.0-rc.1
#
# Get timestamp of last MSISDN <-> IMSI pairing change for the provided phone number.

Background: Common retrieveSimSwapDate setup
Given the resource "sim-swap/v2/retrieve-date"
Given the resource "sim-swap/v2rc1/retrieve-date"
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" is set to a UUID value
And the request body is set by default to a request body compliant with the schema

# This first scenario serves as a minimum, not testing any specific verificationResult
@retrieve_sim_swap_date_1_generic_success_scenario
Scenario: Common validations for any sucess scenario
Scenario: Common validations for any success scenario
Given a valid phone number identified by the token or provided in the request body
When the request "retrieveSimSwapDate" is sent
Then the response status code is 200
Expand Down Expand Up @@ -127,7 +127,7 @@ Feature: CAMARA SIM Swap API, 2.0.0 - Operation retrieveSimSwapDate

@retrieve_sim_swap_date_401.4_expired_access_token
Scenario: Expired access token
# alternative to scenario @retrieve_sim_swap_date_401.2_expired_access_token
# alternative to scenario @retrieve_sim_swap_date_401.2_expired_access_token
Given the header "Authorization" is set to an expired access token
And the request body is set to a valid request body
When the request "retrieveSimSwapDate" is sent
Expand Down
6 changes: 3 additions & 3 deletions code/Test_definitions/sim-swap-subscriptions.feature
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Feature: CAMARA sim swap subscriptions API, v0.2.0
Feature: CAMARA sim swap subscriptions API, v0.2.0-rc.1
# Input to be provided by the implementation to the tester
#
# Testing assets:
# * A mobile line identified by its phone number "phoneNumber" associated with a sim card 1
# * Be able to perform a sim swap for this mobile line shifting from sim card 1 to sim card 2
# * a callback url identified as "callbackUrl" allows to receive notification
#
# References to OAS spec schemas refer to schemas specifies in sim-swap-subscriptions.yaml, version v0.1.1
# References to OAS spec schemas refer to schemas specifies in sim-swap-subscriptions.yaml, version v0.2.0-rc.1

Background: Common subscriptions setup
Given the resource "/sim-swap-subscriptions/v0.2/subscriptions" as BaseURL |
Given the resource "/sim-swap-subscriptions/v0.2rc1/subscriptions" as BaseURL |
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" is set to a UUID value
Expand Down
Loading

0 comments on commit 5268c30

Please sign in to comment.