-
Notifications
You must be signed in to change notification settings - Fork 11
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
Initial contribution of Age_Verification.yaml #50
base: main
Are you sure you want to change the base?
Initial contribution of Age_Verification.yaml #50
Conversation
Update the design proposal for Age Verification API specifications
To start the discussion
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks
Proposition of User StoryUser Story: KYC Age Verification - Verify the age of a user
|
Add firstName and FamilyName attributes to be compared with MNO information
Addition of MiddleNames
Find a draft proposal of API documentation (to be reviewed) |
with Huub (KPN) proposition: assurance level
Hi @GillesInnov35 , all, Regarding the draft User Story above, it looks good to me. Just some comments for error corrections:
limlited -> limited
the KYC service (API) -> the Age Verification service (API)
the KYC Match API operations -> the Age Verificaiton API operations Thanks. |
assuranceLevel is now a enum (Low, Substancial, High) and not a score.
Thanks a lot @ToshiWakayama-KDDI , errors have been corrected. |
Corrections, updated Design and description
@ToshiWakayama-KDDI, @HuubAppelboom , @KevScarr, @fernandopradocabrillo I've updated this design proposal. Let me know if it's ok according to your comments |
Hi @ToshiWakayama-KDDI and @GillesInnov35 , I wanted to bring to your attention a concern regarding the proposed change from 'unverified' to 'not available' for age verification. Context Changing the status from 'unverified' to 'not available' could have significant implications for verification processes and overall system efficiency because some users are typically classified as 'unverified' due to the lack of mandatory identity verification (e.g. UK prepaid users). Best regards. |
@luislopezcorpas , thanks for your comment.
In this case my thought was that verifiedStatus should be returned to false, shouldn't it ? unverified must be removed from the ageCheck enumeration and the description as prposed by @ToshiWakayama-KDDI .
BR |
Thanks, @GillesInnov35 , @luislopezcorpas , Actially I would like to propose the following for correction, based on our agreement in Issue #81: ---Current (Line 257 around)---
---Proposal---
Can I propose the above change directly into the yaml file, @GillesInnov35 ? I am not sure how to do it.. Do you have any problem, @luislopezcorpas ? Thanks, |
Hi @GillesInnov35 , all, I have another proposal for clarification of API Description part for ##Otputs, Line 40 around~ : ---Current---
---Proposed---
Thanks. |
Hi @GillesInnov35 , all, Another proposal for Request Body Example, LIne 127 around~ : ---Current---
---Proposeal backgrounds--- ---Proposal---
Thanks. |
@ToshiWakayama-KDDI @GillesInnov35 properties:
|
Regarding your suggestion: phoneNumber: '+34629255833' [Note: Only required in case a 2-legged flow has been agreed between API Provider and API Consumer; otherwise, none] I would not recommend to add "otherwise, none", otherwise you have people adding phoneNumber: 'none' literally to the request, complicating the processing. It may be better to simply omit it. Here is a suggestion: |
hi @ToshiWakayama-KDDI , @HuubAppelboom , Thanks. if approved I can update the yaml file. |
Please @GillesInnov35 , @ToshiWakayama-KDDI , @HuubAppelboom , Before approval, I'm reviewing internally in VF. I need some time. I'll come back as soon as possible. Thanks! |
we should have also to update error code sections according what has been proposed by Eric for Tenure API camaraproject/Tenure#11 and the new recommended template for info.description proposed in camaraproject/Commonalities#324. |
All rigth Toshi, No problem with changing "true, false, unverified, and not available" to "true, false, and not available" in ageCheck if verifiedStatus is keept as optional |
Hi @GillesInnov35 , @HuubAppelboom , @luislopezcorpas , This is my last proposal to the current YAML, which was shared in Issue #81. As we have decided to make phoneNumber 'not included in the request' for Age Verification API, I think we need to modify the Error handling part of the API Description, becuase current text is not applicable. (I think it is ok because Guidlielines is just a guideline.) I would propose this here in PR to incoporate into the current YAML, as there is discrepancy existing. The following is an idea for modification. ---Current--- Identifying a device from the access tokenThis specification defines the Handling of device information:Optional phoneNumber for 3-legged tokens:
Validation mechanism:
Error handling for unidentifiable devices:
Restrictions for tokens without an associated authenticated identifier:
---Proposed change--- Identifying a device from the access tokenThis specification defines the Handling of device information:Optional phoneNumber for 3-legged tokens:
|
Thank you, @GillesInnov35 ,
May I ask one question? I understand the new recommended template proposed in camaraproject/Commonalities#324 is for v0.5 Spring25. Are error sections that have been proposed by Eric for Tenure API aligned with commonalities v0.5? Thanks, |
hi @ToshiWakayama-KDDI , I guess @rartych and Eric will confirm. From what I compared it seems to be fully aligned with https://github.com/camaraproject/Commonalities/blob/a9caf6472908abc60fdd203fe33040e0caa259a7/artifacts/CAMARA_common.yaml. Thanks Gilles |
Hi @GillesInnov35 ,
Thanks. Yeah. I think we should release the initial version as early as possible, as GSMA is pushing us. So, basically it is fine with me to include those error codes in advance, as long as they are aligned with Commonalities v0.5 i.e. for Spring25 meta. Shoud I look at this Tenure YAML https://github.com/camaraproject/Tenure/pull/11/files ? But I would also like to iterate my last proposal above #50 (comment) , as I believe we should do this customisation because, for Age Verification API, we have decided to omit phoneNumber attribute in the request body, so there is no optional phoneNumber and no need for validation between phoneNumber input and phoneNumber derived from 3-legged access token. Template is just a template (not must), and we should customise it for our Age Verification API. Hope everyone agrees with this. Thanks, |
Hi @ToshiWakayama-KDDI I'm sorry I think I've missed this discussion, can you point me to the conversatation where it was decided to drop the phone number from the request? Thanks!! |
Thanks for your comment. Sure. (1) GitHub Issue #81 Discussions before Meeting 2024-10-29 (2) Discussion at the Meeting 2024-10-29 https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/30867809/2024-10-29+KYC+Match+Fill-in+Age+Veri+Tenure+Number+Rec+Sub+Status+Minutes#Age-Verification-API--Repo It seemed that only KDDI was against removing optional phoneNumber. (3) GitHub Issue #81 Discussion after the Meeting 2024-10-29 #81 (comment) Then, our agreed core spec of Age Verification was modified as: Hope this helps, but please let me know if you need anything else or if you have any other questions. Best regards, |
Hi @GillesInnov35 ,
I have looked through the latest Tenure yaml file, and I think it is fine with me to follow their error responses. There might be some differences because of diffferent scope of Age Verification API and Tenure API, though. Other than this, I have also checked Commonalities PR #324 (camaraproject/Commonalities#324) to find the new sentences about "Identifying the phone number from the access token" part as below. We need to modify the same part of Age Verification based on this. ======== Identifying the phone number from the access tokenThis API requires the API consumer to identify a phone number as the subject of the API as follows:
This approach simplifies API usage for API consumers using a three-legged access token to invoke the API by relying on the information that is associated with the access token and was identified during the authentication process. Error handling:
======== For the above new sentences, I still believe we need to cusutomise them. As we have decided no phoneNumber input for 3-legged access token cases, we do not need to consider "the optional Thanks. |
Updates according to propositions
hi @ToshiWakayama-KDDI , I don't get clearly what you'd like to update/add. I've updated the yaml with your and @HuubAppelboom propositions (I hope all of them have been included, excepted the last one). |
Thank you, @GillesInnov35 . I will take a look, and will get what I would like to update/add clear. Thanks, |
"400": | ||
$ref: '#/components/responses/Generic400' | ||
"401": | ||
$ref: '#/components/responses/Generic401' | ||
"403": | ||
$ref: '#/components/responses/Generic403' | ||
"404": | ||
$ref: '#/components/responses/Generic404' | ||
"406": | ||
$ref: '#/components/responses/Generic406' | ||
"415": | ||
$ref: '#/components/responses/Generic415' | ||
"422": | ||
$ref: '#/components/responses/Generic422' | ||
"429": | ||
$ref: '#/components/responses/Generic429' | ||
"500": | ||
$ref: '#/components/responses/Generic500' | ||
"503": | ||
$ref: '#/components/responses/Generic503' | ||
"504": | ||
$ref: '#/components/responses/Generic504' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current proposal in Commonalities is to only include the relevant errors (401, 403 and 429) in addition to functionality errors that the WG might include. The motive is that common errors are expected to be implemented by all services so there is no need to include them in the yaml API definition. I would remove the rest just for simplicity (406, 415, 500, 503, and 504).
"400": | |
$ref: '#/components/responses/Generic400' | |
"401": | |
$ref: '#/components/responses/Generic401' | |
"403": | |
$ref: '#/components/responses/Generic403' | |
"404": | |
$ref: '#/components/responses/Generic404' | |
"406": | |
$ref: '#/components/responses/Generic406' | |
"415": | |
$ref: '#/components/responses/Generic415' | |
"422": | |
$ref: '#/components/responses/Generic422' | |
"429": | |
$ref: '#/components/responses/Generic429' | |
"500": | |
$ref: '#/components/responses/Generic500' | |
"503": | |
$ref: '#/components/responses/Generic503' | |
"504": | |
$ref: '#/components/responses/Generic504' | |
"400": | |
$ref: '#/components/responses/Generic400' | |
"401": | |
$ref: '#/components/responses/Generic401' | |
"403": | |
$ref: '#/components/responses/Generic403' | |
"404": | |
$ref: '#/components/responses/Generic404' | |
"422": | |
$ref: '#/components/responses/Generic422' | |
"429": | |
$ref: '#/components/responses/Generic429' |
Source: camaraproject/Commonalities#329
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @fernandopradocabrillo , at Orange only 406 - NOT_ACCEPTABLE (The server cannot produce a response matching the content requested by the client through Accept-* headers) has been currently removed from our study.
For example 504 - TIME OUT is a common error use case, isn't it ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @fernandopradocabrillo , hi @GillesInnov35 ,
For me, I am not sure if we need the following errors. Do we need them? Could you advise me in what case these errors may happen, please?
- 400 KNOW_YOUR_CUSTOMER.INVALID_PARAM_COMBINATION
- 403 KNOW_YOUR_CUSTOMER.INVALID_TOKEN_CONTEXT
Many thanks,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @GillesInnov35 . I would agree to remove 406 - NOT_ACCEPTABLE.
Best regards,
Toshi
description: Operations to verify the age of a user. | ||
|
||
paths: | ||
/ageverify: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can't the endpoint be just /verify?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, but no, we can't. This path name was agreed by Sub Project in the early stage and it has not been changed since then. Technically, maybe yes, but we KDDI would not agree to change it.
Thanks,
Toshi
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi @fernandopradocabrillo , @ToshiWakayama-KDDI , /verify is already used for number-verification API.
For Tenure API /check-tenure has been choosen. May be verify-age could be proposed if the previous one is not approved by all.
Gilles
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not really a big deal, just a comment to simplify, I hadn't noticed it before. For me /verify or /verify-age is more align with the rest of CAMARA APIs, but I'm late to this conversation so I will live with whatever you decide 😶
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @fernandopradocabrillo , Thanks, @GillesInnov35 ,
I would like to stick to the existing 'ageverify', if it can be accepted by all. I think 'ageverify' is not prohibited by Commonalities, and alignment with other CAMARA APIs may be a subjective matter. But if you have problem with 'ageverify', please let me/us know. Otherwise, let's keep it.
Best regards,
Toshi
Other errors may be returned as specified below. | ||
# Identifying a device from the access token |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we align with commonalities for Spring25 we need to update this section
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
Co-authored-by: Fernando Prado Cabrillo <[email protected]>
hi @GillesInnov35 , hi @fernandopradocabrillo , As we have added the ageThreshold value range, we need the following error, I think: Thanks, |
What type of PR is this?
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewers:
Changelog input
Additional documentation