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).

>
>
> *           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.

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

Reply via email to