Yeah +1 to make it /generate-token On Thu, Jun 29, 2017 at 12:49 PM, Bhathiya Jayasekara <[email protected]> wrote:
> yes, +1. > > On Thu, Jun 29, 2017 at 12:47 PM, Nuwan Dias <[email protected]> wrote: > >> /generate-tokens should be /generate-token right? Because we're just >> generating 1 token. >> >> On Thu, Jun 29, 2017 at 12:29 PM, Uvindra Dias Jayasinha < >> [email protected]> wrote: >> >>> +1, looks good >>> >>> On 29 June 2017 at 12:27, Malintha Amarasinghe <[email protected]> >>> wrote: >>> >>>> >>>> >>>> On Thu, Jun 29, 2017 at 12:20 PM, Harsha Kumara <[email protected]> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Thu, Jun 29, 2017 at 11:43 AM, Malintha Amarasinghe < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> Bhathiya and I had a discussion about this and came up with the below >>>>>> approach regarding POST /provide-keys. >>>>>> >>>>>> 1.Creates a new resource in /keys collection providing the key type. >>>>>> (Similar to semi-manual client registration). >>>>>> >>>>>> POST /applications/{applicationId}/keys >>>>>> >>>>>> *Request:* >>>>>> >>>>>> POST /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "keyType": "PRODUCTION" >>>>>> } >>>>>> >>>>>> *Response* >>>>>> >>>>>> HTTP/1.1 201 CREATED >>>>>> Location: https://localhost:9292/api/am/ >>>>>> store/v1/applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/k >>>>>> eys/PRODUCTION >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials", "password" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback", >>>>>> "keyType": "PRODUCTION" >>>>>> } >>>>>> >>>>>> Seems we are thinking keyType as a resource. We will need to add a >>>>> validation for keyType at implementation layer. +1 for the approach. >>>>> >>>> Yeah we will need a validation since the only allowed key types are >>>> PRODUCTION and SANDBOX. >>>> >>>>> >>>>>> 2. Get all keys >>>>>> >>>>>> GET /applications/{applicationId}/keys >>>>>> >>>>>> >>>>>> *Request:* >>>>>> >>>>>> GET /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys >>>>>> >>>>>> >>>>>> *Response:* >>>>>> >>>>>> HTTP/1.1 200 OK >>>>>> { >>>>>> "count": 2, >>>>>> "items": [ >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials", "password" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback", >>>>>> "keyType": "PRODUCTION" >>>>>> }, >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials", "password" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback", >>>>>> "keyType": "SANDBOX" >>>>>> } >>>>>> >>>>>> ] >>>>>> } >>>>>> >>>>>> >>>>>> 3. Get a single key detail >>>>>> >>>>>> GET /applications/{applicationId}/keys/{keyType} >>>>>> >>>>>> *Request* >>>>>> >>>>>> GET /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys/PRODUCTION >>>>>> >>>>>> >>>>>> *Response* >>>>>> >>>>>> HTTP/1.1 200 OK >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials", "password" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback", >>>>>> "keyType": "PRODUCTION" >>>>>> } >>>>>> >>>>>> 4. Update a key >>>>>> >>>>>> PUT /applications/{applicationId}/keys/{keyType} >>>>>> >>>>>> *We will only allow updating supported grant types and callback URLs >>>>>> for individual keys.* >>>>>> >>>>>> *Request* >>>>>> >>>>>> PUT /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys/PRODUCTION >>>>>> >>>>>> >>>>>> { >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback-updated", >>>>>> } >>>>>> >>>>>> *Response:* >>>>>> >>>>>> HTTP/1.1 200 OK >>>>>> >>>>>> { >>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>> "supportedGrantTypes": [ >>>>>> "client-credentials" >>>>>> ], >>>>>> "callbackUrl": "http://localhost/callback-updated", >>>>>> "keyType": "PRODUCTION" >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> Thanks >>>>>> Malintha >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Jun 28, 2017 at 1:37 PM, Bhathiya Jayasekara < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> As discussed in [1], I split generate keys operation into 2, and >>>>>>> added "provide-keys" operation for semi-manual client registration. >>>>>>> Here is >>>>>>> the final list with sample requests and responses. >>>>>>> >>>>>>> >>>>>>> POST /applications/{applicationId}/generate-keys >>>>>>> >>>>>>> { >>>>>>> "keyType": "PRODUCTION", >>>>>>> "grantTypesToBeSupported": [ >>>>>>> "client-credentials", "password" >>>>>>> ], >>>>>>> "callbackUrl": "http://localhost/callback"} >>>>>>> >>>>>>> >>>>>>> Response >>>>>>> >>>>>>> { >>>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>>> "supportedGrantTypes": [ >>>>>>> "client-credentials", "password" >>>>>>> ], >>>>>>> "callbackUrl": "http://localhost/callback", >>>>>>> "keyType": "PRODUCTION"} >>>>>>> >>>>>>> >>>>>>> >>>>>>> POST /applications/{applicationId}/provide-keys >>>>>>> >>>>>>> { >>>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxxxx", >>>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>>> "keyType": "PRODUCTION"} >>>>>>> >>>>>>> >>>>>>> Response >>>>>>> >>>>>>> { >>>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>>>>> "supportedGrantTypes": [ >>>>>>> "client-credentials", "password" >>>>>>> ], >>>>>>> "callbackUrl": "http://localhost/callback", >>>>>>> "keyType": "PRODUCTION"} >>>>>>> >>>>>>> >>>>>>> >>>>>>> POST /applications/{applicationId}/generate-tokens >>>>>>> >>>>>>> { >>>>>>> "consumerKey": "xxxxxxxxxxxxxxxxxxxxx", >>>>>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyyyyy", >>>>>>> "validityPeriod": 3600, >>>>>>> "scopes": "read write delete", >>>>>>> "revokeToken": "zzzzzzzzzzzzzzzzzzzzz"} >>>>>>> >>>>>>> >>>>>>> Response >>>>>>> >>>>>>> { >>>>>>> "accessToken": "aaaaaaaaaaaaaaaaaaaaaaaaa", >>>>>>> "tokenScopes": "read write", >>>>>>> "validityTime": 3600} >>>>>>> >>>>>>> >>>>>>> >>>>>>> [1] [APIM][C5] Splitting "Generate Keys" operation in Store REST API >>>>>>> >>>>>>> Thanks, >>>>>>> -- >>>>>>> *Bhathiya Jayasekara* >>>>>>> *Associate Technical Lead,* >>>>>>> *WSO2 inc., http://wso2.com <http://wso2.com>* >>>>>>> >>>>>>> *Phone: +94715478185 <+94%2071%20547%208185>* >>>>>>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >>>>>>> <http://www.linkedin.com/in/bhathiyaj>* >>>>>>> *Twitter: https://twitter.com/bhathiyax >>>>>>> <https://twitter.com/bhathiyax>* >>>>>>> *Blog: http://movingaheadblog.blogspot.com >>>>>>> <http://movingaheadblog.blogspot.com/>* >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Malintha Amarasinghe >>>>>> Software Engineer >>>>>> *WSO2, Inc. - lean | enterprise | middleware* >>>>>> http://wso2.com/ >>>>>> >>>>>> Mobile : +94 712383306 <+94%2071%20238%203306> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Harsha Kumara >>>>> Software Engineer, WSO2 Inc. >>>>> Mobile: +94775505618 <+94%2077%20550%205618> >>>>> Blog:harshcreationz.blogspot.com >>>>> >>>> >>>> >>>> >>>> -- >>>> Malintha Amarasinghe >>>> Software Engineer >>>> *WSO2, Inc. - lean | enterprise | middleware* >>>> http://wso2.com/ >>>> >>>> Mobile : +94 712383306 <+94%2071%20238%203306> >>>> >>> >>> >>> >>> -- >>> Regards, >>> Uvindra >>> >>> Mobile: 777733962 >>> >> >> >> >> -- >> Nuwan Dias >> >> Software Architect - WSO2, Inc. http://wso2.com >> email : [email protected] >> Phone : +94 777 775 729 <077%20777%205729> >> > > > > -- > *Bhathiya Jayasekara* > *Associate Technical Lead,* > *WSO2 inc., http://wso2.com <http://wso2.com>* > > *Phone: +94715478185 <+94%2071%20547%208185>* > *LinkedIn: http://www.linkedin.com/in/bhathiyaj > <http://www.linkedin.com/in/bhathiyaj>* > *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* > *Blog: http://movingaheadblog.blogspot.com > <http://movingaheadblog.blogspot.com/>* > -- Malintha Amarasinghe Software Engineer *WSO2, Inc. - lean | enterprise | middleware* http://wso2.com/ Mobile : +94 712383306
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
