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/keys/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* *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/>*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
