Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
85 changes: 85 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Table of Contents

- [2.1 - rc](#r21---rc)
- [r1.2](#r12)
- [r1.1 - rc](#r11---rc)
- [v0.1.0](#v010)
Expand All @@ -15,6 +16,90 @@ The below sections record the changes for each API version in each release as fo
* 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 - rc

## Release Notes

This release contains the definition and documentation of
* Blockchain Public Address v0.3.0-rc.1
* Blockchain Public Address Validation v0.1.0-rc.1

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

## Blockchain Public Address v0.3.0-rc.1

**Blockchain Public Address v0.3.0-rc.1 is the first release-candidate version for v0.3.0 of the Blockchain Public Address API.**
- **This version contains changes compared to v0.2.0, and it is not backward compatible:**
- Removal of `401 - AUTHENTICATION_REQUIRED`
- New pattern for `x-correlator`
- Addition of a new section `# Additional CAMARA error responses` in `info.description` field
- Addition of `422 - BLOCKCHAIN_PUBLIC_ADDRESS.UNSUPPORTED_ENHANCED_VALIDATION`
- Addition of `400 - BLOCKCHAIN_PUBLIC_ADDRESS.INVALID_NONCE`
- Addition of `400 - BLOCKCHAIN_PUBLIC_ADDRESS.INVALID_SIGNATURE`
- Addition of `400 - BLOCKCHAIN_PUBLIC_ADDRESS.BOTH_NONCE_SIGNATURE_REQUIRED`


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

**Main changes since [r1.2](#r12)**

### Added
* Binding enforcement procedure, including addition of new errors `422 - BLOCKCHAIN_PUBLIC_ADDRESS.UNSUPPORTED_ENHANCED_VALIDATION`, `400 - BLOCKCHAIN_PUBLIC_ADDRESS.INVALID_NONCE`, `400 - BLOCKCHAIN_PUBLIC_ADDRESS.INVALID_SIGNATURE` and `400 - BLOCKCHAIN_PUBLIC_ADDRESS.BOTH_NONCE_SIGNATURE_REQUIRED` in https://github.com/camaraproject/BlockchainPublicAddress/pull/76, https://github.com/camaraproject/BlockchainPublicAddress/pull/95 and https://github.com/camaraproject/BlockchainPublicAddress/pull/97.
* New section `# Additional CAMARA error responses` in `info.description` field in https://github.com/camaraproject/BlockchainPublicAddress/pull/99.

### Changed
* New pattern for `x-correlator` and model aligment with Commonalities in https://github.com/camaraproject/BlockchainPublicAddress/pull/99.
* Update User Stories adding a new user story for Binding Enforcement and making some wording alignment in https://github.com/camaraproject/BlockchainPublicAddress/pull/100.
* Update Gherkin feature files, adding a new test for testing invalid x-correlator value in all API endpoints, adding a specific test to check binding enforcement in `bindBlockchainPublicAddress` endpoint and making some wording alignments with Commonalities in https://github.com/camaraproject/BlockchainPublicAddress/pull/101.

### Fixed
* N/A

### Removed
* `401 - AUTHENTICATION_REQUIRED` error in https://github.com/camaraproject/BlockchainPublicAddress/pull/99.

## New Contributors
* N/A

## Blockchain Public Address Validation v0.1.0-rc.1

**Blockchain Public Address Validation v0.1.0-rc.1 is the first release-candidate version for v0.1.0 of the Blockchain Public Address Validation API.**
- **This version defines a new API:**
- Initial version covering the following functionality and related endpoints:
- New endpoint `createBlockchainPublicAddressValidationNonce`, to generate a nonce (one-time challenge) in order to be able to perform binding enforcement in binding process defined in Blockchain Public Address API.


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

### Added
* Baseline API specification definition in https://github.com/camaraproject/BlockchainPublicAddress/pull/76.
* New section `# Additional CAMARA error responses` in `info.description` field in https://github.com/camaraproject/BlockchainPublicAddress/pull/102.

### Changed
* New pattern for `x-correlator` and model aligment with Commonalities in https://github.com/camaraproject/BlockchainPublicAddress/pull/102.
* Generate User Stories in https://github.com/camaraproject/BlockchainPublicAddress/pull/103.
* Generate Gherkin feature file, aligned with Commonalities in https://github.com/camaraproject/BlockchainPublicAddress/pull/104.

### Fixed
* N/A

### Removed
* `401 - AUTHENTICATION_REQUIRED` error in https://github.com/camaraproject/BlockchainPublicAddress/pull/102.

## New Contributors
* N/A


**Full Changelog**: https://github.com/camaraproject/BlockchainPublicAddress/compare/r1.2...r2.1

## r1.2

## Release Notes
Expand Down
29 changes: 19 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,33 @@ Sandbox API Repository to describe, develop, document, and test the BlockchainPu

* API Repository [wiki page](https://lf-camaraproject.atlassian.net/wiki/x/KDHe)


## Scope
* Service APIs for “Blockchain Public Address” (see APIBacklog.md)
* This API allows to manage a Blockchain Public Address associated to a phone number, i.e. to retrieve the blockchain public address(es) and to bind/unbind a Blockchain Public Address. The Blockchain Public Address is utilized as Decentralized Identifier (DID). With the proposed API, API providers offer API consumers the following capability: pairing phone number with Blockchain Public Address whenever this 3rd party wants to offer its customers a way to make transactions more easily based on the phone number instead of the Blockchain Public Address.
* Service APIs for “Blockchain Public Address” (see APIBacklog.md)
* It provides the API consumer with the ability to:
* Blockchain Public Address API:
* Manage a Blockchain Public Address associated to a phone number, i.e. to retrieve the blockchain public address(es) and to bind/unbind a Blockchain Public Address. The Blockchain Public Address is utilized as Decentralized Identifier (DID). With the proposed API, API providers offer API consumers the following capability: pairing phone number with Blockchain Public Address whenever this 3rd party wants to offer its customers a way to make transactions more easily based on the phone number instead of the Blockchain Public Address.
* Optional binding enforcement procedure, ensuring both `phoneNumber` and `blockchainPublicAddress` belongs to the same owner (i.e. person), within binding process by means of the checking of provided `nonce` and `signature` fields. To generate `nonce` below mentioned Blockchain Public Address Validation API has been designed, and `signature` generation is an off-chain process.
* Blockchain Public Address Validation API:
* Manage generation of a nonce (one-time challenge) to be used in binding enforcemnet procedure.
* Describe, develop, document and test the APIs (with 1-2 Telcos)
* Started: June 2023

## Release Information
* Note: Please be aware that the project will have 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**.

* **The Release [r1.2](https://github.com/camaraproject/BlockchainPublicAddress/releases/tag/r1.2) for the Blockchain Public Address APIs is available.**
<br>This is a public release.
* **The pre-release [r2.1 - rc](https://github.com/camaraproject/BlockchainPublicAddress/releases/tag/r2.1) for the Blockchain Public Address APIs is available.**
<br>This is a release candidate. Until the public release there are bug fixes to be expected. The release candidate is suitable for implementors, but it is not recommended to use the APIs with customers in productive environments.

* The release **r2.1 - rc** is available in [r2.1](https://github.com/camaraproject/BlockchainPublicAddress/releases/tag/r2.1), and includes the following APIs:
- API name: Blockchain Public Address - API Definition v0.3.0-rc.1 with inline documentation:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r2.1/code/API_definitions/blockchain-public-address.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r2.1/code/API_definitions/blockchain-public-address.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/BlockchainPublicAddress/blob/r2.1/code/API_definitions/blockchain-public-address.yaml)

* The release **r1.2** is available in [r1.2](https://github.com/camaraproject/BlockchainPublicAddress/releases/tag/r1.2), and includes the following APIs:
* API definition of Blockchain Public Address API is version 0.2.0 (with inline documentation):
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r1.2/code/API_definitions/blockchain-public-address.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r1.2/code/API_definitions/blockchain-public-address.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/BlockchainPublicAddress/blob/r1.2/code/API_definitions/blockchain-public-address.yaml)
- API name: Blockchain Public Address Validation - API Definition v0.1.0-rc.1 with inline documentation:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r2.1/code/API_definitions/blockchain-public-address-validation.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/BlockchainPublicAddress/r2.1/code/API_definitions/blockchain-public-address-validation.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/BlockchainPublicAddress/blob/r2.1/code/API_definitions/blockchain-public-address-validation.yaml)

* Other releases of this sub project are available in [BlockchainPublicAddress Releases](https://github.com/camaraproject/BlockchainPublicAddress/releases)
* For changes see [CHANGELOG.md](/CHANGELOG.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
version: 0.1.0-rc.1
x-camara-commonalities: 0.6
externalDocs:
description: Product documentation at Camara
url: https://github.com/camaraproject/BlockchainPublicAddress
servers:
- url: "{apiRoot}/blockchain-public-address-validation/vwip"
- url: "{apiRoot}/blockchain-public-address-validation/v0.1rc1"
variables:
apiRoot:
default: http://localhost:9091
Expand Down
4 changes: 2 additions & 2 deletions code/API_definitions/blockchain-public-address.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
version: 0.3.0-rc.1
x-camara-commonalities: 0.6
externalDocs:
description: Product documentation at Camara
url: https://github.com/camaraproject/BlockchainPublicAddress
servers:
- url: "{apiRoot}/blockchain-public-address/vwip"
- url: "{apiRoot}/blockchain-public-address/v0.3rc1"
variables:
apiRoot:
default: http://localhost:9091
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Feature: CAMARA Blockchain Public Address API, v0.2 - Operation bindBlockchainPublicAddress
Feature: CAMARA Blockchain Public Address API, v0.3.0-rc.1 - Operation bindBlockchainPublicAddress
# Input to be provided by the implementation to the tester
#
# Implementation indications:
Expand All @@ -8,10 +8,10 @@ Feature: CAMARA Blockchain Public Address API, v0.2 - Operation bindBlockchainPu
# * A phone number and several blockchainPublicAddress in order to be able to perform bindings
#
#
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.2.0
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.3.0-rc.1

Background: Common bindBlockchainPublicAddress setup
Given the resource "/blockchain-public-address/v0.2/blockchain-public-addresses"
Given the resource "/blockchain-public-address/v0.3rc1/blockchain-public-addresses"
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,4 +1,4 @@
Feature: CAMARA Blockchain Public Address API, v0.2 - Operation deleteBlockchainPublicAddress
Feature: CAMARA Blockchain Public Address API, v0.3.0-rc.1 - Operation deleteBlockchainPublicAddress
# Input to be provided by the implementation to the tester
#
# Implementation indications:
Expand All @@ -8,10 +8,10 @@ Feature: CAMARA Blockchain Public Address API, v0.2 - Operation deleteBlockchain
# * A phone number with several existing bindings to be able to perform unbindings
#
#
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.2.0
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.3.0-rc.1

Background: Common deleteBlockchainPublicAddress setup
Given the resource "/blockchain-public-address/v0.2/blockchain-public-addresses/{id}"
Given the resource "/blockchain-public-address/v0.3rc1/blockchain-public-addresses/{id}"
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,4 +1,4 @@
Feature: CAMARA Blockchain Public Address API, v0.2 - Operation retrieveBlockchainPublicAddress
Feature: CAMARA Blockchain Public Address API, v0.3.0-rc.1 - Operation retrieveBlockchainPublicAddress
# Input to be provided by the implementation to the tester
#
# Implementation indications:
Expand All @@ -8,10 +8,10 @@ Feature: CAMARA Blockchain Public Address API, v0.2 - Operation retrieveBlockcha
# * A phone number with several existing bindings to be able to perform queries
#
#
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.2.0
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address.yaml, version 0.3.0-rc.1

Background: Common retrieveBlockchainPublicAddress setup
Given the resource "/blockchain-public-address/v0.2/blockchain-public-addresses/retrieve-blockchains"
Given the resource "/blockchain-public-address/v0.3rc1/blockchain-public-addresses/retrieve-blockchains"
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,4 +1,4 @@
Feature: CAMARA Blockchain Public Address Validation API, vwip - Operation createBlockchainPublicAddressValidationNonce
Feature: CAMARA Blockchain Public Address Validation API, v0.1.0-rc.1 - Operation createBlockchainPublicAddressValidationNonce
# Input to be provided by the implementation to the tester
#
# Implementation indications:
Expand All @@ -8,10 +8,10 @@ Feature: CAMARA Blockchain Public Address Validation API, vwip - Operation creat
# * A valid blockchainPublicAddress in order to be able to generate nonces
#
#
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address-validation.yaml, version wip
# References to OAS spec schemas refer to schemas specifies in blockchain-public-address-validation.yaml, version 0.1.0-rc.1

Background: Common createBlockchainPublicAddressValidationNonce setup
Given the resource "/blockchain-public-address-validation/vwip/blockchain-public-addresses"
Given the resource "/blockchain-public-address-validation/v0.1rc1/blockchain-public-addresses"
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
1 change: 0 additions & 1 deletion documentation/API_documentation/README.MD

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# API Readiness Checklist

Checklist for BlockChain Public Address v0.2.0 in r1.2
Checklist for BlockChain Public Address v0.3.0-rc.1 in r2.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 | [link](/code/API_definitions/blockchain-public-address.yaml) |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r2.3](https://github.com/camaraproject/Commonalities/releases/tag/r2.3) |
| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r2.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r2.3) |
| 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) |
| 4 | API versioning convention applied | M | M | M | M | Y | |
| 5 | API documentation | M | M | M | M | Y | [link](/code/API_definitions/blockchain-public-address.yaml) |
| 6 | User stories | O | O | O | M | Y | [link](/documentation/API_documentation/blockchain-public-address-User-Story.md) |
Expand All @@ -16,7 +16,7 @@ Checklist for BlockChain Public Address v0.2.0 in r1.2
| 10 | API release numbering convention applied | M | M | M | M | Y | |
| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | N | |
| 13 | API description (for marketing) | O | O | M | M | | [wiki link](https://lf-camaraproject.atlassian.net/wiki/xxx) |
| 13 | API description (for marketing) | O | O | M | M | Y | [wiki link](https://lf-camaraproject.atlassian.net/wiki/x/KDHe) |

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.
Expand Down
Loading