On Mon, May 28, 2018 at 5:03 PM, Sanjeewa Malalgoda <[email protected]>
wrote:

>
>
> On Mon, May 28, 2018 at 3:23 PM, Harsha Kumara <[email protected]> wrote:
>
>> Hi All,
>>
>> We are working on releasing a ballerina based micro gateway with APIM
>> 2.5.0. We are providing are Cli Tool which allow users to generate
>> ballerina executables and runtime archives based on provided configurations.
>>
>> High Level Architecture
>> [image: image.png]
>>
>> *Micro gateway distribution structure*
>>
>> micro-gw
>>     ├── bin
>>     │   ├── micro-gw.bat
>>     │   └── micro-gw.sh
>>     ├── lib
>>     │   └── ballerina-0.970.0
>>     ├── temp
>>     │   └── path.txt
>>     └── templates
>>         ├── api.mustache
>>         ├── config.mustache
>>         └── gateway_config.mustache
>>         └── policy_template.mustache
>>
>>
>> *Core Cli Commands*
>>
>>    - *micro-gw setup/init (with inputs username, label name and
>>    password(*optional
>> *)) *
>>       - This command will create basic project structure. Initially
>>       consumer key and secret will be generated by taking user inputs and
>>       retrieve the api definitions of given label type in the argument. If 
>> user
>>       provides new label, there will be new directory structure for that 
>> label
>>       will be created under projects directory.
>>       - *projects* directory contains directories for each label and
>>       ballerina source file will be created for each API under particular 
>> label
>>       - *config.yaml* contains configurations related to publisher, key
>>       manager connections, consumer key and secret which are common across 
>> all
>>       labels
>>       - *gateway_config.yaml* contains configurations specific to labels
>>       such as docker/kubernetes
>>
>> Shouldn't we provide  publisher URL along with this command? If publisher
> is hosted server and micro gateway runs within local machine then we may
> need to point to that publisher(something similar to current micro gateway
> scenario).
>
The init/setup command will only create the project structure.
Communicating with the Publisher, pulling the API definition and building
the corresponding .balx file & the runnable distribution happens with the
build command.

>
>>
>> *           Generated Project Structure*
>>
>> micro-gw-resources
>>
>>     ├── conf
>>
>>     │   └── config.yaml
>>
>>     └── projects (folder name is same as label name)
>>
>>         ├── accounts
>>
>>         │   ├── src
>>
>>         │   │   ├── companyAccounts_v1.0.0.bal
>>
>>         │   │   └── salesforce_v1.0.0.bal
>>
>>         │   └── target
>>
>>         │       ├── accounts.balx
>>
>>         │       └── accounts.zip
>>
>>         ├── finance
>>
>>         │   ├── src
>>
>>         │   │   ├── invoices_v2.0.0.bal
>>
>>         │   │   └── payments_v2.1.0.bal
>>
>>         │   └── target
>>
>>         │       ├── finance.balx
>>
>>         │       └── finance.zip
>>
>>         ├── gateway-config
>>
>>         │   └── gateway-config.yaml
>>
>>         └── sales
>>
>>             ├── src
>>
>>             │   ├── customers_v3.0.0.bal
>>
>>             │   └── leads_v4.0.0.bal
>>
>>             └── target
>>
>>                 ├── sales.balx
>>
>>                 └── sales.zip
>>
>> I think we can directly point this directory to composer and implement
> some custom mediation logic there. In case synapse API have its own
> mediation sequence which we cannot directly translate to ballerina.
>
This would be a limitation. Running any custom mediation sequences in the
micro gw will not be supported.

>
>>    - *micro-gw build (with inputs label name)*
>>       - This command build single balx out of all APIs belongs to given
>>       label. If docker/kubernetes configurations specified, then archive
>>       will be generated. This archive will embeds bre, generated balx which
>>       someone can take and run without configuring anything.
>>       - This command also outputs APIs which have updated and commands
>>       which are available to run in target folder
>>    - *micro-gw run (with label name)*
>>       - This command will use to run the balx generated for given label.
>>
>> Please share your suggestions and improvements.
>>
>>
>> Thanks,
>> Harsha
>> --
>> Harsha Kumara
>> Associate Technical Lead, WSO2 Inc.
>> Mobile: +94775505618
>> Blog:harshcreationz.blogspot.com
>>
>
>
>
> --
> *Sanjeewa Malalgoda*
> WSO2 Inc.
> Mobile : +94 712933253
>
> <http://sanjeewamalalgoda.blogspot.com/>blog :http://sanjeewamalalgoda.
> blogspot.com/ <http://sanjeewamalalgoda.blogspot.com/>
>
>
>


-- 
Thanks and Regards,

Isuru H.
+94 716 358 048* <http://wso2.com/>*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to