Hi, Please find the implementation details,that we are going to do for achieving above mentioned new approach.
Below configuration will be added to api-manager.xml [default this config
section will be commented out],to define the external stores,that we are
going to publish from APIPublisher.
<ExternalAPIStores>
<ExternalAPIStore>
<Name>Store1</Name>
<Type>WSO2</Type>
<Endpoint>http://localhost:9763/store</Endpoint>
<Username>xxxxx</Username>
<Password>xxxxx</Password>
</ExternalAPIStore>
<ExternalAPIStore>
<Name>ProgrammableWeb</Name>
<Type>xxx</Type>
<Endpoint>xxxxx</Endpoint>
</ExternalAPIStore>
<ExternalAPIStore>
<Name>Store2</Name>
<Type>WSO2</Type>
<Endpoint>http://localhost:9763/store?tenant=wso2</Endpoint>
<Username>xxxxx</Username>
<Password>xxxxx</Password>
</ExternalAPIStore>
</ExternalAPIStores>
In above configuration,based on <type> attribute of each external
APIStore,it will be differentiated.Note as the first,we are going to give
support for WSO2 APIStores and later it will be extend to support other
types of stores [eg:programmableweb] as well
*APIPublisher changes*
In APIPublisher UI, there will be only two visibility options as ;
1) Allowed Anonymous Access -Visible to anonymous/every user
2) Restricted by Roles -Restrict by users' roles
And additionally,if the above 'ExternalAPIStores' configuration is
uncommented,the option called "Publish to External APIStores" will be
showed in UI to share the API across APIStores.These external APIStores
could be WSO2 based APIStores [eg: tenant based stores] or other ones.
[image: Inline image 2]
To publish to external APIStores addition to the embedded APIStore of
running Publisher,we'll be using their specific exposed APIs and first
we'll be focusing only on publishing APIs to WSO2 APIStores.For that we'll
be used the APIPublisher exposed REST API[1].
*APIStore changes*
*
*
The current logic of iterating tenant registries to get APIs will be
removed and,
If the APIManager running in MT mode,
1) If try to access /Store as an anonymous user ->the urls for the tenant
stores will be showed in APIStore[/store]
2) If try to access /Store as a tenant user ->The store will be redirect to
tenant store [/store?tenant=?]
Else if APIM running in super tenant mode,the permitted APIs will display
in APIStore[/store] based on API visibility.
Feedbacks welcome..
*
*
*
*
[1]* *http://docs.wso2.org/wiki/display/AM140/Publisher+APIs
Thanks;
On Tue, Jul 30, 2013 at 12:44 AM, Nuwan Bandara <[email protected]> wrote:
> Hi
>
> With the new proposal the previous "super tenant store" will be a store of
> "stores". If we take an example lets assume there are two tenants WSO2 and
> Foo, the super tenant store will just show URLs of WSO2 store and Foo
> Store, where users can navigate to.
>
> When an anonymous user goes to one of these store, (s)he will only see the
> public APIs of that tenant.
>
> Subsequently the older super store will be replaced by a simple OOTB
> store, where any tenant can push APIs. its like a public store hosted
> somewhere, which anybody can push APIs.
>
> Regards,
> /Nuwan
>
>
> On Tue, Jul 30, 2013 at 1:08 PM, Nuwan Dias <[email protected]> wrote:
>
>> On Tue, Jul 30, 2013 at 12:45 PM, Sumedha Rubasinghe <[email protected]>wrote:
>>
>>> This discussion happened as part of *Enterprise Store* discussion.
>>> Participants: Nuwan, Azeez, Sanjiva, Srinath, NuwanD, Lalaji, Sanjeewa,
>>> Sumedha
>>>
>>> *Current Functionality:*
>>> 1. At the point of publishing an API, publisher can select the
>>> visibility scope (one of Globally visible, selected tenants, tenant only
>>> [private/public]).
>>> 2. Based on selected scope, APIs will be created with correct set of
>>> permission indicators in WSO2 Governance Registry
>>> 3. @ the point of populating a store, based on the store type APIs will
>>> be fetched from tenant registries
>>>
>>> *Limitations in this approach:*
>>> 1. Assumption of single registry for all tenants (fetching, publishing
>>> criteria fails with tenant partitioning)
>>> 2. High computational cost for populating global tenant store (also
>>> known as super tenant store)
>>> 3. API publishing is only supported for WSO2 API Store type
>>> 4. Tight coupling with WSO2 API Store semantics for API publishing &
>>> fetching
>>>
>>> *New Approach:*
>>> 1. At the point of publishing an API, it can also be published to
>>> multiple (external) stores
>>> 2. These stores will be defined through configuration (run time
>>> registration can be considered for future work, limited by lack of standard
>>> API for publishing API)
>>>
>>> 3. APIs will published to external stores through their APIs. This has
>>> several design considerations:
>>> - Any API store can be integrated to WSO2 API Publisher through this
>>> approach
>>> - WSO2 API Store will also be treated as an external one
>>> - Concept of Super Tenant Store will no longer be applicable ***
>>> - If an API is shared with another tenant store, it will be stored in
>>> that tenant's storage (if sharing is removed, relevant removal should
>>> follow)
>>>
>>> 4. *** When navigated to http://<IP/Domain>/store (formally known as
>>> Super tenant's store), it will show a list of tenant store URLs only
>>>
>>
>> Right now we do not allow a tenant user (when logged in) to view other
>> tenant stores. You can view other tenant stores if you are a super tenant
>> user or when you are in anonymous mode (not logged in). If this behavior is
>> to remain as it is, what is the purpose of displaying other tenant's store
>> URLs on the /store?
>>
>> 5. This concept should be supported in WSO2 Generic Store as well
>>>
>>
>>> Feedback welcome.
>>>
>>
>> Thanks,
>> NuwanD.
>>
>>>
>>> --
>>> /sumedha
>>> b : bit.ly/sumedha
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Nuwan Dias
>>
>> Senior Software Engineer - WSO2, Inc. http://wso2.com
>> email : [email protected]
>> Phone : +94 777 775 729
>>
>
>
>
> --
> *Thanks & Regards,
>
> Nuwan Bandara
> Technical Lead; **WSO2 Inc. *
> *lean . enterprise . middleware | http://wso2.com *
> *blog : http://nuwanbando.com; email: [email protected]; phone: +94 11 763
> 9629
> *
> <http://www.nuwanbando.com/>
>
--
Lalaji Sureshika
WSO2, Inc.; http://wso2.com/
email: [email protected]; cell: +94 71 608 6811
blog: http://lalajisureshika.blogspot.com
<<Screenshot-23.png>>
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
