Re: [Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Damith Wickramasinghe
Hi Tishan,

When it comes to UI level we need a clear separation of import , export and
temporary streams. Ideally in UI we can have separate color coding to these
three streams but once this stream component dragged and dropped we need to
select whether its a 'import/export/temporary and CEP stream ID can be
either import or export and Siddhi Stream ID is the temporary one. I think
having import/export/temporary (we can decide a better name for temporary)
is much more understandable IMO . WDYT ?

Regards,
Damith.

On Wed, Jun 8, 2016 at 12:11 PM, Tishan Dahanayakage 
wrote:

> Hi Nayantara,
>
> Where can I find the scope of this project? Are we planning on decomposing
> queries in future or not?
>
> Also when handling stream as you may already know there are stream
> definitions in databridge level and also Siddhi level. Inside a execution
> plan we map a databridge definition to Siddhi definition and vise versa. I
> suppose that is what you are trying to do with stream name and stream
> definition attributes in properties window. If that is the case I suggest
> we have the parameters as 'CEP Stream ID' and 'Siddhi Stream ID' apart from
> 'Definition' and 'import/export/temporary'. If it isn't the case please
> explain.
>
> Thanks,
> /Tishan
>
> On Wed, Jun 8, 2016 at 11:39 AM, Malaka Silva  wrote:
>
>> Hi Nayantara
>> ​,
>>
>> With this GUI can we create queries on demand or should be predefined?​
>>
>> On Wed, Jun 8, 2016 at 11:01 AM, Nayantara Jeyaraj 
>> wrote:
>>
>>> ​I am currently working on the Design and Implementation of the Siddhi
>>> Visual Editor for WSO2's CEP. The tasks completed and on-going have been
>>> listed out below. Your input will be appreciated.
>>>
>>> The interface will consist of a Toolbox/palette, a canvas and a
>>> Properties panel that appears upon clicking the toolbar icon of each
>>> element.
>>>
>>> *Tasks completed:*
>>>
>>>-
>>>
>>>Functionality that enables dragging an object from the palette and
>>>dropping it onto the canvas.
>>>-
>>>
>>>Permitting the Creation of multiple connections between anchors from
>>>varied sources and storing data in an array regarding the connections for
>>>further utilization.
>>>-
>>>
>>>Deleting Connections along with the parent element.
>>>
>>> *Currently working on:*
>>>
>>>-
>>>
>>>Changing the property attributes such as stream name and stream
>>>definition of dropped elements (Stream name will be displayed on the
>>>respective icon when saved).
>>>
>>> *Eg:*
>>>
>>> from TempStream
>>>
>>> select roomNo, temp
>>>
>>> insert into RoomTempStream;
>>>
>>>
>>> *The toolbar will hold:*
>>>
>>> 1. A stream icon
>>>
>>> 2. A query icon
>>>
>>> Once a stream has been dragged on to the canvas, the
>>> type(import/export/temporary) can be selected in the properties panel and
>>> thereafter it will be validated against the available schema and
>>> dropped(The validation part has not been done yet). Then a query can
>>> consume one or more event streams and generate a new event stream from
>>> them.
>>>
>>> *A Tempstream will be created with the following attributes:*
>>>
>>> define stream TempStream(deviceID long, roomNo int, temp double);
>>>
>>> So when the event stream icon is dropped onto the canvas, the properties
>>> panel for that event stream appears permitting the set up of the event
>>> stream.
>>>
>>> *Requested Stream Property Data in the properties panel:*
>>>
>>> Event stream type: import/ export/ temporary
>>>
>>> Event stream Name: 
>>>
>>> Event stream definition:  Derived from an existing stream
>>>
>>> Following this, a query can consume this stream. The query will not be
>>> decomposed into its minuscule details but will be merely considered as one
>>> unit.
>>>
>>> From the above example, the query filters out only the temperature of
>>> the respective room from the TempStream and generates a new RoomTempStream.
>>>
>>>
>>> The Visual Representation of the above ( Relevant icons will be used):
>>>
>>> tempStream ->  query  ->  RoomTempStream
>>>
>>>
>>> Th following query types can be chosen when dealing with the query object
>>>
>>> 1. Pass-through (Prioritized at present)
>>>
>>> 2. Filters
>>>
>>> 3. Window
>>>
>>> 4. Joins
>>>
>>>
>>> Fig1: BasicUI developed to date
>>>
>>>
>>> ​
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>>
>> Best Regards,
>>
>> Malaka Silva
>> Senior Technical Lead
>> M: +94 777 219 791
>> Tel : 94 11 214 5345
>> Fax :94 11 2145300
>> Skype : malaka.sampath.silva
>> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
>> Blog : http://mrmalakasilva.blogspot.com/
>>
>> WSO2, Inc.
>> lean . enterprise . middleware
>> http://www.wso2.com/
>> http://www.wso2.com/about/team/malaka-silva/
>> 
>> https://store.wso2.com/store/
>>
>> Save a tree -Cons

Re: [Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Nayantara Jeyaraj
Hi Malaka,
The user will be given the privilege to type in his/her own query. The
conceptualization so far is that, when a query icon is dropped, a
properties panel pops up (just as it did for the stream) and the user can
type in his entire query in a text field.

On Wed, Jun 8, 2016 at 11:39 AM, Malaka Silva  wrote:

> Hi Nayantara
> ​,
>
> With this GUI can we create queries on demand or should be predefined?​
>
> On Wed, Jun 8, 2016 at 11:01 AM, Nayantara Jeyaraj 
> wrote:
>
>> ​I am currently working on the Design and Implementation of the Siddhi
>> Visual Editor for WSO2's CEP. The tasks completed and on-going have been
>> listed out below. Your input will be appreciated.
>>
>> The interface will consist of a Toolbox/palette, a canvas and a
>> Properties panel that appears upon clicking the toolbar icon of each
>> element.
>>
>> *Tasks completed:*
>>
>>-
>>
>>Functionality that enables dragging an object from the palette and
>>dropping it onto the canvas.
>>-
>>
>>Permitting the Creation of multiple connections between anchors from
>>varied sources and storing data in an array regarding the connections for
>>further utilization.
>>-
>>
>>Deleting Connections along with the parent element.
>>
>> *Currently working on:*
>>
>>-
>>
>>Changing the property attributes such as stream name and stream
>>definition of dropped elements (Stream name will be displayed on the
>>respective icon when saved).
>>
>> *Eg:*
>>
>> from TempStream
>>
>> select roomNo, temp
>>
>> insert into RoomTempStream;
>>
>>
>> *The toolbar will hold:*
>>
>> 1. A stream icon
>>
>> 2. A query icon
>>
>> Once a stream has been dragged on to the canvas, the
>> type(import/export/temporary) can be selected in the properties panel and
>> thereafter it will be validated against the available schema and
>> dropped(The validation part has not been done yet). Then a query can
>> consume one or more event streams and generate a new event stream from
>> them.
>>
>> *A Tempstream will be created with the following attributes:*
>>
>> define stream TempStream(deviceID long, roomNo int, temp double);
>>
>> So when the event stream icon is dropped onto the canvas, the properties
>> panel for that event stream appears permitting the set up of the event
>> stream.
>>
>> *Requested Stream Property Data in the properties panel:*
>>
>> Event stream type: import/ export/ temporary
>>
>> Event stream Name: 
>>
>> Event stream definition:  Derived from an existing stream
>>
>> Following this, a query can consume this stream. The query will not be
>> decomposed into its minuscule details but will be merely considered as one
>> unit.
>>
>> From the above example, the query filters out only the temperature of the
>> respective room from the TempStream and generates a new RoomTempStream.
>>
>>
>> The Visual Representation of the above ( Relevant icons will be used):
>>
>> tempStream ->  query  ->  RoomTempStream
>>
>>
>> Th following query types can be chosen when dealing with the query object
>>
>> 1. Pass-through (Prioritized at present)
>>
>> 2. Filters
>>
>> 3. Window
>>
>> 4. Joins
>>
>>
>> Fig1: BasicUI developed to date
>>
>>
>> ​
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> Best Regards,
>
> Malaka Silva
> Senior Technical Lead
> M: +94 777 219 791
> Tel : 94 11 214 5345
> Fax :94 11 2145300
> Skype : malaka.sampath.silva
> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
> Blog : http://mrmalakasilva.blogspot.com/
>
> WSO2, Inc.
> lean . enterprise . middleware
> http://www.wso2.com/
> http://www.wso2.com/about/team/malaka-silva/
> 
> https://store.wso2.com/store/
>
> Save a tree -Conserve nature & Save the world for your future. Print this
> email only if it is absolutely necessary.
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Tishan Dahanayakage
Hi Nayantara,

Where can I find the scope of this project? Are we planning on decomposing
queries in future or not?

Also when handling stream as you may already know there are stream
definitions in databridge level and also Siddhi level. Inside a execution
plan we map a databridge definition to Siddhi definition and vise versa. I
suppose that is what you are trying to do with stream name and stream
definition attributes in properties window. If that is the case I suggest
we have the parameters as 'CEP Stream ID' and 'Siddhi Stream ID' apart from
'Definition' and 'import/export/temporary'. If it isn't the case please
explain.

Thanks,
/Tishan

On Wed, Jun 8, 2016 at 11:39 AM, Malaka Silva  wrote:

> Hi Nayantara
> ​,
>
> With this GUI can we create queries on demand or should be predefined?​
>
> On Wed, Jun 8, 2016 at 11:01 AM, Nayantara Jeyaraj 
> wrote:
>
>> ​I am currently working on the Design and Implementation of the Siddhi
>> Visual Editor for WSO2's CEP. The tasks completed and on-going have been
>> listed out below. Your input will be appreciated.
>>
>> The interface will consist of a Toolbox/palette, a canvas and a
>> Properties panel that appears upon clicking the toolbar icon of each
>> element.
>>
>> *Tasks completed:*
>>
>>-
>>
>>Functionality that enables dragging an object from the palette and
>>dropping it onto the canvas.
>>-
>>
>>Permitting the Creation of multiple connections between anchors from
>>varied sources and storing data in an array regarding the connections for
>>further utilization.
>>-
>>
>>Deleting Connections along with the parent element.
>>
>> *Currently working on:*
>>
>>-
>>
>>Changing the property attributes such as stream name and stream
>>definition of dropped elements (Stream name will be displayed on the
>>respective icon when saved).
>>
>> *Eg:*
>>
>> from TempStream
>>
>> select roomNo, temp
>>
>> insert into RoomTempStream;
>>
>>
>> *The toolbar will hold:*
>>
>> 1. A stream icon
>>
>> 2. A query icon
>>
>> Once a stream has been dragged on to the canvas, the
>> type(import/export/temporary) can be selected in the properties panel and
>> thereafter it will be validated against the available schema and
>> dropped(The validation part has not been done yet). Then a query can
>> consume one or more event streams and generate a new event stream from
>> them.
>>
>> *A Tempstream will be created with the following attributes:*
>>
>> define stream TempStream(deviceID long, roomNo int, temp double);
>>
>> So when the event stream icon is dropped onto the canvas, the properties
>> panel for that event stream appears permitting the set up of the event
>> stream.
>>
>> *Requested Stream Property Data in the properties panel:*
>>
>> Event stream type: import/ export/ temporary
>>
>> Event stream Name: 
>>
>> Event stream definition:  Derived from an existing stream
>>
>> Following this, a query can consume this stream. The query will not be
>> decomposed into its minuscule details but will be merely considered as one
>> unit.
>>
>> From the above example, the query filters out only the temperature of the
>> respective room from the TempStream and generates a new RoomTempStream.
>>
>>
>> The Visual Representation of the above ( Relevant icons will be used):
>>
>> tempStream ->  query  ->  RoomTempStream
>>
>>
>> Th following query types can be chosen when dealing with the query object
>>
>> 1. Pass-through (Prioritized at present)
>>
>> 2. Filters
>>
>> 3. Window
>>
>> 4. Joins
>>
>>
>> Fig1: BasicUI developed to date
>>
>>
>> ​
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> Best Regards,
>
> Malaka Silva
> Senior Technical Lead
> M: +94 777 219 791
> Tel : 94 11 214 5345
> Fax :94 11 2145300
> Skype : malaka.sampath.silva
> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
> Blog : http://mrmalakasilva.blogspot.com/
>
> WSO2, Inc.
> lean . enterprise . middleware
> http://www.wso2.com/
> http://www.wso2.com/about/team/malaka-silva/
> 
> https://store.wso2.com/store/
>
> Save a tree -Conserve nature & Save the world for your future. Print this
> email only if it is absolutely necessary.
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Tishan Dahanayakage
Software Engineer
WSO2, Inc.
Mobile:+94 716481328

Disclaimer: This communication may contain privileged or other confidential
information and is intended exclusively for the addressee/s. If you are not
the intended recipient/s, or believe that you may have received this
communication in error, please reply to the sender indicating that fact and
delete the copy you received and in addition, you should not print, copy,
re-transmit, disseminate, or oth

Re: [Architecture] [Archiecture] ESB - Feature Request - JMS transactions with non-blocking transports

2016-06-07 Thread Malaka Silva
On Tue, Jun 7, 2016 at 10:06 PM, Isuru Udana  wrote:

> Hi Manu,
>
> +1. Good idea.
> I also think it is doable in the way you suggested, however we need to
> investigate little bit more on this.
>
>
>
>
>
>
>
> On Tue, Jun 7, 2016 at 10:00 PM, Manuranga Perera  wrote:
>
>> AFAIK, correct me if I am wrong, the transaction is closed when the
>> thread returns [1].This means we can't use call mediator (or send) with JMS
>> proxy with transactions.
>>
> ​You can use call mediator in blocking mode.​


>
>> If we keep JMS session/context in the message context and only close
>> after the mediation flow is over, we will be able to handle more concurrent
>> JMS requests. WDUT?
>>
> ​Transactions are bind to jms session​

​and creating multiple sessions on demand are expensive. If you want to
implement concurrency still you can do this with
transport.jms.ConcurrentConsumers
​ with proxies. With inbound you can do this with adding multiple workers.​

>
>> [1] https://docs.wso2.com/display/ESB460/JMS+Transactions
>>
>> --
>> With regards,
>> *Manu*ranga Perera.
>>
>> phone : 071 7 70 20 50
>> mail : m...@wso2.com
>>
>
>
>
> --
> *Isuru Udana*
> Technical Lead
> WSO2 Inc.; http://wso2.com
> email: isu...@wso2.com cell: +94 77 3791887
> blog: http://mytecheye.blogspot.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 

Best Regards,

Malaka Silva
Senior Technical Lead
M: +94 777 219 791
Tel : 94 11 214 5345
Fax :94 11 2145300
Skype : malaka.sampath.silva
LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
Blog : http://mrmalakasilva.blogspot.com/

WSO2, Inc.
lean . enterprise . middleware
http://www.wso2.com/
http://www.wso2.com/about/team/malaka-silva/

https://store.wso2.com/store/

Save a tree -Conserve nature & Save the world for your future. Print this
email only if it is absolutely necessary.
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Nayantara Jeyaraj
Hi Malaka,
The user will be given the privilege to type in his/her own query. The
conceptualization so far is that, when a query icon is dropped, a
properties panel pops up (just as it did for the stream) and the user can
type in his entire query in a text field.

On Wed, Jun 8, 2016 at 11:39 AM, Malaka Silva  wrote:

> Hi Nayantara
> ​,
>
> With this GUI can we create queries on demand or should be predefined?​
>
> On Wed, Jun 8, 2016 at 11:01 AM, Nayantara Jeyaraj 
> wrote:
>
>> ​I am currently working on the Design and Implementation of the Siddhi
>> Visual Editor for WSO2's CEP. The tasks completed and on-going have been
>> listed out below. Your input will be appreciated.
>>
>> The interface will consist of a Toolbox/palette, a canvas and a
>> Properties panel that appears upon clicking the toolbar icon of each
>> element.
>>
>> *Tasks completed:*
>>
>>-
>>
>>Functionality that enables dragging an object from the palette and
>>dropping it onto the canvas.
>>-
>>
>>Permitting the Creation of multiple connections between anchors from
>>varied sources and storing data in an array regarding the connections for
>>further utilization.
>>-
>>
>>Deleting Connections along with the parent element.
>>
>> *Currently working on:*
>>
>>-
>>
>>Changing the property attributes such as stream name and stream
>>definition of dropped elements (Stream name will be displayed on the
>>respective icon when saved).
>>
>> *Eg:*
>>
>> from TempStream
>>
>> select roomNo, temp
>>
>> insert into RoomTempStream;
>>
>>
>> *The toolbar will hold:*
>>
>> 1. A stream icon
>>
>> 2. A query icon
>>
>> Once a stream has been dragged on to the canvas, the
>> type(import/export/temporary) can be selected in the properties panel and
>> thereafter it will be validated against the available schema and
>> dropped(The validation part has not been done yet). Then a query can
>> consume one or more event streams and generate a new event stream from
>> them.
>>
>> *A Tempstream will be created with the following attributes:*
>>
>> define stream TempStream(deviceID long, roomNo int, temp double);
>>
>> So when the event stream icon is dropped onto the canvas, the properties
>> panel for that event stream appears permitting the set up of the event
>> stream.
>>
>> *Requested Stream Property Data in the properties panel:*
>>
>> Event stream type: import/ export/ temporary
>>
>> Event stream Name: 
>>
>> Event stream definition:  Derived from an existing stream
>>
>> Following this, a query can consume this stream. The query will not be
>> decomposed into its minuscule details but will be merely considered as one
>> unit.
>>
>> From the above example, the query filters out only the temperature of the
>> respective room from the TempStream and generates a new RoomTempStream.
>>
>>
>> The Visual Representation of the above ( Relevant icons will be used):
>>
>> tempStream ->  query  ->  RoomTempStream
>>
>>
>> Th following query types can be chosen when dealing with the query object
>>
>> 1. Pass-through (Prioritized at present)
>>
>> 2. Filters
>>
>> 3. Window
>>
>> 4. Joins
>>
>>
>> Fig1: BasicUI developed to date
>>
>>
>> ​
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> Best Regards,
>
> Malaka Silva
> Senior Technical Lead
> M: +94 777 219 791
> Tel : 94 11 214 5345
> Fax :94 11 2145300
> Skype : malaka.sampath.silva
> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
> Blog : http://mrmalakasilva.blogspot.com/
>
> WSO2, Inc.
> lean . enterprise . middleware
> http://www.wso2.com/
> http://www.wso2.com/about/team/malaka-silva/
> 
> https://store.wso2.com/store/
>
> Save a tree -Conserve nature & Save the world for your future. Print this
> email only if it is absolutely necessary.
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Dev] Nullable Support for JSON schema - Visual Data Mapper Editor

2016-06-07 Thread Sohani Weerasinghe
Hi All,

As an improvement to nullable support, the representation has been
implemented for xsi:nil as well and if the payload contains xsi:nil as an
attribute then the generated schema will include nullable="true" as shown
below

*Input:*

http://www.w3.org/TR/html4/"; xmlns:xsi="
http://www.w3.org/TR/html4/";>
sample
011265565501
011265565501


*Schema*:

{
  "$schema" : "http://json-schema.org/draft-04/schema#";,
  "nullable" : "true",
  "attributes" : {
"xsi:nil" : {
  "nullable" : "false",
  "id" : "http://wso2jsonschema.org/xsi:nil";,
  "type" : "boolean"
}
  },
  "id" : "http://wso2jsonschema.org";,
  "title" : "h:person",
  "type" : "object",
  "properties" : {
"firstName" : {
  "nullable" : "true",
  "attributes" : {
"xsi:nil" : {
  "nullable" : "false",
  "id" : "http://wso2jsonschema.org/xsi:nil";,
  "type" : "boolean"
}
  },
  "id" : "http://wso2jsonschema.org/firstName";,
  "type" : "object",
  "value" : {
"type" : "string"
  },
  "properties" : { }
},
"phone" : {
  "nullable" : "true",
  "id" : "http://wso2jsonschema.org/phone";,
  "type" : "array",
  "items" : [ {
"attributes" : {
  "xsi:nil" : {
"nullable" : "false",
"id" : "http://wso2jsonschema.org/phone/0/xsi:nil";,
"type" : "boolean"
  },
  "primary" : {
"nullable" : "false",
"id" : "http://wso2jsonschema.org/phone/0/primary";,
"type" : "boolean"
  }
},
"id" : "http://wso2jsonschema.org/phone/0";,
"type" : "object",
"value" : {
  "type" : "number"
},
"properties" : {
  "ext" : {
"nullable" : "true",
"attributes" : {
  "xsi:nil" : {
"nullable" : "false",
"id" : "http://wso2jsonschema.org/phone/0/xsi:nil";,
"type" : "boolean"
  }
},
"id" : "http://wso2jsonschema.org/phone/0/ext";,
"type" : "object",
"value" : {
  "type" : "number"
},
"properties" : { }
  }
}
  } ]
}
  },
  "namespaces" : [ {
"prefix" : "xsi",
"url" : ""
  }, {
"prefix" : "h",
"url" : "http://www.w3.org/TR/html4/";
  } ]
}

Thanks,
Sohani


Sohani Weerasinghe
Senior Software Engineer
WSO2, Inc: http://wso2.com

Mobile  : +94 716439774
Blog :http://christinetechtips.blogspot.com/
Twitter  : https://twitter.com/sohanichristine

On Tue, Jun 7, 2016 at 11:30 AM, Sohani Weerasinghe  wrote:

>
>
> Sohani Weerasinghe
> Senior Software Engineer
> WSO2, Inc: http://wso2.com
>
> Mobile  : +94 716439774
> Blog :http://christinetechtips.blogspot.com/
> Twitter  : https://twitter.com/sohanichristine
>
> On Tue, Jun 7, 2016 at 10:45 AM, Malaka Silva  wrote:
>
>> Hi Sohani,
>>
>> I guess we are dealing with optional input/output here. So in that case
>> are we showing those in a different color or anyway to distinguish?
>>
> @Malaka: Yes, we are going to use a different icon for those nodes.
> eg: If it's an element, then the icon will be something created based on
> the previous icon used for the element, so that it will be displayed as an
> element with nullable
>
>>
>> On execution side this needs to be handled from data mapper mediator.
>>
>> On Tue, Jun 7, 2016 at 9:21 AM, Sohani Weerasinghe 
>> wrote:
>>
>>> Hi All,
>>>
>>> We are in a process of implementing the $subject and please find the
>>> implementation details.
>>>
>>> *Input*:
>>>
>>> http://www.w3.org/TR/html4/";>
>>> sample
>>> 011265565501
>>> 011265565501
>>> 
>>>
>>> After loading the above payload, the generated schema will be as follows
>>>
>>> {
>>>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>>>   *"nullable" : "false"*,
>>>   "id" : "http://wso2jsonschema.org";,
>>>   "title" : "h:person",
>>>   "type" : "object",
>>>   "properties" : {
>>> "firstName" : {
>>>   *"nullable" : "false",*
>>>   "id" : "http://wso2jsonschema.org/firstName";,
>>>   "type" : "string"
>>> },
>>> *"nullable" : "false"*,
>>> "phone" : {
>>>   "id" : "http://wso2jsonschema.org/phone";,
>>>   "type" : "array",
>>>   "items" : [ {
>>> "attributes" : {
>>>   "primary" : {
>>>* "nullable" : "false"*,
>>> "id" : "http://wso2jsonschema.org/phone/0/primary";,
>>> "type" : "boolean"
>>>   }
>>> },
>>> "id" : "http://wso2jsonschema.org/phone/0";,
>>> "type" : "object",
>>> "value" : {
>>>   "type" : "number"
>>> },
>>> "properties" : {
>>>   "ext" : {
>>>* "nullable" : "false",*
>>> "id" : "http://wso2jsonschema.org/phone/0/ext";,
>>> "type" : "number"
>>>   }
>>> }
>>>   } ]
>>> }
>>>   }

Re: [Architecture] Incremental data processing from last event onward[Without buffer]

2016-06-07 Thread Maninda Edirisooriya
[Adding Architecture list]

Hi all,

Timestamp based approach for incremental processing is problematic as we
have gone through long discussions on it and could not come to an
acceptable solution. Instead I think following kind of approach would work.

1. For each incremental analytic script a metadata column is added to the
analytics table with type boolean with name "processed" with value "false".
2. When an incremental script is executed on a data row, that particular
row should get updated with *processed=true.*
3. Next time when the script get executed it can skip all the rows with
field

*processed=true.*
This will avoid the timestamp restriction and buffer time issues and allow
parallel execution on records.
Thanks.


*Maninda Edirisooriya*
Senior Software Engineer

*WSO2, Inc.*lean.enterprise.middleware.

*Blog* : http://maninda.blogspot.com/
*E-mail* : mani...@wso2.com
*Skype* : @manindae
*Twitter* : @maninda

On Wed, Jun 8, 2016 at 11:22 AM, Gihan Anuruddha  wrote:

> Hi Guys,
>
> To fulfill above requirement, we can add query as below and make necessary
> changes to back-end.
>
> *create temporary table t5 using CarbonAnalytics options (tableName "t3",
> schema "x INT, y INT", incrementalParams "t5, -1");*
>
> Basically,  we are passing -1 for buffer time. In the backend, if the
> buffer is -1 we only take last processed event timestamp and fetch the data.
>
> If we insert 3 records and do the commit when the buffer is -1 and then
> next time do the select without inserting any records, we are not getting
> any result since after the saved timestamp there was no new record inserted.
>
> So what do you think about this implementation?
>
> Regards,
> Gihan
>
>
> --
> W.G. Gihan Anuruddha
> Senior Software Engineer | WSO2, Inc.
> M: +94772272595
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Revamping Refactoring Participants for Developer Studio artifacts to prevent corruption of project meta files (artifact.xml and pom.xml files)

2016-06-07 Thread Kavith Lokuhewage
Hi,

We have observed a few scenarios with Developer Studio where the
artifact.xml files and pom.xml files of CApp projects, are getting
corrupted while a user is doing a refactoring operation such as
deleting/renaming project artifacts. After analyzing those scenarios, we
have identified the root causes and below is a report on them and possible
solutions to overcome them properly.


*Problem 1: Deleting multiple artifacts*
When deleting/renaming multiple artifacts in a project at the same
time, artifact.xml file of the project and pom.xml files of CApp projects
which include those artifacts, are getting corrupted sometimes.

For example, think of a scenario where we want to delete multiple registry
resources from a registry project and those resources are included in a
CApp project opened in the same work-space.

When you go to the delete preview window, it shows required changes to
pom.xml of the CApp project and artifact.xml of the registry project,
correctly. Yet at the moment those changes are applied, file gets
corrupted.

Eclipse applies the required changes to a particular file (the list you can
see in delete preview window), *one by one*. To apply them, Eclipse
refactoring API uses text token meta-data - offsets, lengths (and replace
tokens if it is a rename operation) - defined in each change object (delete
preview also uses the same meta-data when displaying diffs for each file).
it has no knowledge about XML content. It is only a text replace API.
The problem is, when we have multiple change objects for a single file,
when the first change is applied to the file, the offsets defined in
subsequent change objects for the same file, are no longer valid. They need
to be re-synced with the modified file by first change. And it goes on same
for each subsequent change.

Since Eclipse is not capable of syncing the offsets as such, we finally get
a corrupted XML file with random strings.

*Solution:*

Syncing up offsets after a change by change is not a salable solution and
anyway Eclipse Refactoring API offers no ways to get it done.

The key point is not have multiple change objects for the same file. A
single change object is capable of containing metadata for multiple tokens.
If we can grab the list of all files which are going to be deleted/renamed
within a single refactoring operation, we can  group all the required
changes by file Id and make single change object - one per each file that
needs modifications.

This achievable with the ISharableParticipant

[1]  interface. This allows us to bind a single RefactoringParticipant
object for a list of files that are going to be refactored. The
createChange method of a shared participant will only be called after all
the files are processed, hence we have time to group all required changes
by file and make composite change objects for each file.



*Problem 2: User modifying aritifact.xml *
When a user has modified a meta file of a project manually, while deleting
or renaming artifacts in that project, meta file gets corrupted randomly.

As I have pointed out previously, we currently use TextFileChange API of
eclipse to implement the refactoring model for these XML meta files. This
API is not XML aware - it only takes token offsets and lengths as
arguments. Furthermore, we are currently using regular expressions and
string search APIs (eg. indexOf) to find token offsets within the meta
files. When a user modifies these XML meta files manually, there seems to
be situations that these regex searches are not working/giving correct
offsets due to changed formatting of the file.


*Solution:*

There is a possibility for fine tuning these regular expressions to
overcome this. However, it is not a reliable solution as we cannot 100%
guarantee that we could capture each possible scenario with regular
expressions.

On the other hand, it is possible to implement a XML aware FileChange
change API using a XML parser as the base. Then, instead of doing regex
based text searches, we can use xpath expressions as the base for change.
The underline parser - regardless of the formatting changes on file - will
take care of replacing or removing the elements matched with the xpath.
However, we again face the issue of keeping the text formatting untouched
during the serialization and de-serialization of XML file as we need to
keep the diff clean for SCM provider. Non-extractive XML parsing [2]  comes
into picture here.

We can utilize a non-extractive XML parsing library such as VTD-XML [3] to
over come the issue of modifying whole XML file. Since VTD-XML API already
deals with offsets and lengths, we can implement a hybrid solution by
extending the TextFileChange API to utilize VTD-XML for parsing the XML and
identifying offsets of the elements which needs to be replaced/removed.


Please shar

Re: [Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Malaka Silva
Hi Nayantara
​,

With this GUI can we create queries on demand or should be predefined?​

On Wed, Jun 8, 2016 at 11:01 AM, Nayantara Jeyaraj 
wrote:

> ​I am currently working on the Design and Implementation of the Siddhi
> Visual Editor for WSO2's CEP. The tasks completed and on-going have been
> listed out below. Your input will be appreciated.
>
> The interface will consist of a Toolbox/palette, a canvas and a Properties
> panel that appears upon clicking the toolbar icon of each element.
>
> *Tasks completed:*
>
>-
>
>Functionality that enables dragging an object from the palette and
>dropping it onto the canvas.
>-
>
>Permitting the Creation of multiple connections between anchors from
>varied sources and storing data in an array regarding the connections for
>further utilization.
>-
>
>Deleting Connections along with the parent element.
>
> *Currently working on:*
>
>-
>
>Changing the property attributes such as stream name and stream
>definition of dropped elements (Stream name will be displayed on the
>respective icon when saved).
>
> *Eg:*
>
> from TempStream
>
> select roomNo, temp
>
> insert into RoomTempStream;
>
>
> *The toolbar will hold:*
>
> 1. A stream icon
>
> 2. A query icon
>
> Once a stream has been dragged on to the canvas, the
> type(import/export/temporary) can be selected in the properties panel and
> thereafter it will be validated against the available schema and
> dropped(The validation part has not been done yet). Then a query can
> consume one or more event streams and generate a new event stream from
> them.
>
> *A Tempstream will be created with the following attributes:*
>
> define stream TempStream(deviceID long, roomNo int, temp double);
>
> So when the event stream icon is dropped onto the canvas, the properties
> panel for that event stream appears permitting the set up of the event
> stream.
>
> *Requested Stream Property Data in the properties panel:*
>
> Event stream type: import/ export/ temporary
>
> Event stream Name: 
>
> Event stream definition:  Derived from an existing stream
>
> Following this, a query can consume this stream. The query will not be
> decomposed into its minuscule details but will be merely considered as one
> unit.
>
> From the above example, the query filters out only the temperature of the
> respective room from the TempStream and generates a new RoomTempStream.
>
>
> The Visual Representation of the above ( Relevant icons will be used):
>
> tempStream ->  query  ->  RoomTempStream
>
>
> Th following query types can be chosen when dealing with the query object
>
> 1. Pass-through (Prioritized at present)
>
> 2. Filters
>
> 3. Window
>
> 4. Joins
>
>
> Fig1: BasicUI developed to date
>
>
> ​
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 

Best Regards,

Malaka Silva
Senior Technical Lead
M: +94 777 219 791
Tel : 94 11 214 5345
Fax :94 11 2145300
Skype : malaka.sampath.silva
LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
Blog : http://mrmalakasilva.blogspot.com/

WSO2, Inc.
lean . enterprise . middleware
http://www.wso2.com/
http://www.wso2.com/about/team/malaka-silva/

https://store.wso2.com/store/

Save a tree -Conserve nature & Save the world for your future. Print this
email only if it is absolutely necessary.
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] ESB Connector for Asana

2016-06-07 Thread Nirthika Rajendran
Ok sure thank you.

On Wed, Jun 8, 2016 at 11:09 AM, Malaka Silva  wrote:

> Looks good. I'll also join.
>
> On Tue, Jun 7, 2016 at 8:23 PM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Hi Malaka,
>>
>> We had a peer review at the Jaffna office. We made the following changes
>> according to their comments.
>>
>>
>>- Change the init method to store the accesstoken in registry.
>>- Format the code according to the WSO2 standards.
>>- Add the INTEGRATION.txt file.
>>- Change the test cases for new init method.
>>
>> We are all ready, Shall we have the review on next Tuesday (14th of June)
>> at 4pm?
>>
>> Thank you
>>
>> On Tue, Jun 7, 2016 at 12:40 PM, Malaka Silva  wrote:
>>
>>> Hi Nirthika,
>>>
>>> Did we had the review? If not shall we plan for this soon.
>>>
>>> On Fri, May 27, 2016 at 10:53 AM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Yes, we can come to the office for review next week

 Thank you.


 On Fri, May 27, 2016 at 7:54 AM, Malaka Silva  wrote:

> Hi Nirthika,
>
> Great can we have a review before publishing next week. You can come
> to our office or have it via google hangout?
>
> On Thu, May 26, 2016 at 8:20 PM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Hi Malaka,
>>
>> We have completed most of the part of asana connector including
>>
>>1. Develop the methods
>>2. Implement integration testing.
>>3. Complete documentation.
>>
>>
>> Thank you,
>> Nirthika R
>>
>> On Wed, May 4, 2016 at 7:45 AM, Malaka Silva  wrote:
>>
>>> Good progress. Keep us posted.
>>>
>>> On Wed, May 4, 2016 at 5:39 AM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Hi Malaka,

 Yesterday we meet our mentor Kesavan to clear some problem in
 integration test. There we correct some errors and now we continue the 
 task.

 Thank you.

 On Tue, May 3, 2016 at 11:58 AM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> ok, thank you.
>
> On Tue, May 3, 2016 at 11:21 AM, Malaka Silva 
> wrote:
>
>> After finishing the integration tests should be fine.
>>
>> On Tue, May 3, 2016 at 9:18 AM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Hi Malaka,
>>>
>>> Thank you, we already have two mentors Miss. Keerthika and Mr.
>>> Kesavan. So if we have any other problem we will contact you.
>>>
>>> Can we have the hangout after finishing the integration test or
>>> it is necessary to do now?
>>>
>>> Thank you.
>>>
>>> On Mon, May 2, 2016 at 9:31 PM, Malaka Silva 
>>> wrote:
>>>
 Hi Nirthika,

 Let us know if you need any assistance to complete this?

 We can have a hangout to review the work you have done so far
 if possible?

 On Wed, Mar 9, 2016 at 4:08 PM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Thank you Malaka,
>
> Sure we also expect that.
>
> On Wed, Mar 9, 2016 at 3:38 PM, Malaka Silva 
> wrote:
>
>> Hi Nirthika,
>>
>> Good progress. We are also planning to arrange a meetup at
>> Jaffna office in April. Feel free to come.
>>
>> On Wed, Mar 9, 2016 at 1:35 PM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Hi Malaka,
>>>
>>> Every members in my team nearly take 10 methods and do the
>>> documentation and integration test for their part also.
>>>
>>> Now we all finished about 40 methods and user documentation.
>>>
>>> This month we have final semi examination, So we plan to
>>> continue the remaining part after the exam.
>>>
>>> Thank you
>>>
>>> Regards,
>>> Nirthika Rajendran
>>>
>>>
>>> On Sun, Feb 21, 2016 at 7:24 AM, Malaka Silva <
>>> mal...@wso2.com> wrote:
>>>
 Hi Nirthika,

 ​Good progress.​


 On Sat, Feb 20, 2016 at 7:51 PM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Thank you Malaka,
>
> Now we finished nearly 35 Methods, and going to develop
> documentation.
> We contact some staff from J

Re: [Architecture] ESB Connector for Asana

2016-06-07 Thread Malaka Silva
Looks good. I'll also join.

On Tue, Jun 7, 2016 at 8:23 PM, Nirthika Rajendran <
nirthika.rajend...@gmail.com> wrote:

> Hi Malaka,
>
> We had a peer review at the Jaffna office. We made the following changes
> according to their comments.
>
>
>- Change the init method to store the accesstoken in registry.
>- Format the code according to the WSO2 standards.
>- Add the INTEGRATION.txt file.
>- Change the test cases for new init method.
>
> We are all ready, Shall we have the review on next Tuesday (14th of June)
> at 4pm?
>
> Thank you
>
> On Tue, Jun 7, 2016 at 12:40 PM, Malaka Silva  wrote:
>
>> Hi Nirthika,
>>
>> Did we had the review? If not shall we plan for this soon.
>>
>> On Fri, May 27, 2016 at 10:53 AM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Yes, we can come to the office for review next week
>>>
>>> Thank you.
>>>
>>>
>>> On Fri, May 27, 2016 at 7:54 AM, Malaka Silva  wrote:
>>>
 Hi Nirthika,

 Great can we have a review before publishing next week. You can come to
 our office or have it via google hangout?

 On Thu, May 26, 2016 at 8:20 PM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Hi Malaka,
>
> We have completed most of the part of asana connector including
>
>1. Develop the methods
>2. Implement integration testing.
>3. Complete documentation.
>
>
> Thank you,
> Nirthika R
>
> On Wed, May 4, 2016 at 7:45 AM, Malaka Silva  wrote:
>
>> Good progress. Keep us posted.
>>
>> On Wed, May 4, 2016 at 5:39 AM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Hi Malaka,
>>>
>>> Yesterday we meet our mentor Kesavan to clear some problem in
>>> integration test. There we correct some errors and now we continue the 
>>> task.
>>>
>>> Thank you.
>>>
>>> On Tue, May 3, 2016 at 11:58 AM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 ok, thank you.

 On Tue, May 3, 2016 at 11:21 AM, Malaka Silva 
 wrote:

> After finishing the integration tests should be fine.
>
> On Tue, May 3, 2016 at 9:18 AM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Hi Malaka,
>>
>> Thank you, we already have two mentors Miss. Keerthika and Mr.
>> Kesavan. So if we have any other problem we will contact you.
>>
>> Can we have the hangout after finishing the integration test or
>> it is necessary to do now?
>>
>> Thank you.
>>
>> On Mon, May 2, 2016 at 9:31 PM, Malaka Silva 
>> wrote:
>>
>>> Hi Nirthika,
>>>
>>> Let us know if you need any assistance to complete this?
>>>
>>> We can have a hangout to review the work you have done so far if
>>> possible?
>>>
>>> On Wed, Mar 9, 2016 at 4:08 PM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Thank you Malaka,

 Sure we also expect that.

 On Wed, Mar 9, 2016 at 3:38 PM, Malaka Silva 
 wrote:

> Hi Nirthika,
>
> Good progress. We are also planning to arrange a meetup at
> Jaffna office in April. Feel free to come.
>
> On Wed, Mar 9, 2016 at 1:35 PM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Hi Malaka,
>>
>> Every members in my team nearly take 10 methods and do the
>> documentation and integration test for their part also.
>>
>> Now we all finished about 40 methods and user documentation.
>>
>> This month we have final semi examination, So we plan to
>> continue the remaining part after the exam.
>>
>> Thank you
>>
>> Regards,
>> Nirthika Rajendran
>>
>>
>> On Sun, Feb 21, 2016 at 7:24 AM, Malaka Silva <
>> mal...@wso2.com> wrote:
>>
>>> Hi Nirthika,
>>>
>>> ​Good progress.​
>>>
>>>
>>> On Sat, Feb 20, 2016 at 7:51 PM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Thank you Malaka,

 Now we finished nearly 35 Methods, and going to develop
 documentation.
 We contact some staff from Jaffna branch as our mentors
 (Ms. M. Keerthika). They also help us

 I will put the time window soon.

 Thank you,
 Nirthika Rajendran.
>

[Architecture] [CEP] Siddhi Extension for calculate percentile values

2016-06-07 Thread Ashen Weerathunga
Hi All,

I'm writing a siddhi extension for calculating percentile values. This will
be implemented as an Aggregate Function Extension under math extensions.
Two input parameter will be required for this function as below:

* percentile(** arg, ** p)*

   - *arg* : values that need to be considered when calculating the
   percentile value
   - *p* : percentile
   - This will return an estimate for pth percentile of arg values.

eg : *percentile(temperature, 95.0)*

   - returns the 95th percentile value of all the temperature events based
   on their arrival and expiry.

Please let me know if you have any suggestions on this.

Thanks,
Ashen

-- 
*Ashen Weerathunga*
Software Engineer
WSO2 Inc.: http://wso2.com
lean.enterprise.middleware

Email: as...@wso2.com
Mobile: +94 716042995 <94716042995>
LinkedIn: *http://lk.linkedin.com/in/ashenweerathunga
*
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] WSO2 Siddhi Visual Editor for CEP

2016-06-07 Thread Nayantara Jeyaraj
​I am currently working on the Design and Implementation of the Siddhi
Visual Editor for WSO2's CEP. The tasks completed and on-going have been
listed out below. Your input will be appreciated.

The interface will consist of a Toolbox/palette, a canvas and a Properties
panel that appears upon clicking the toolbar icon of each element.

*Tasks completed:*

   -

   Functionality that enables dragging an object from the palette and
   dropping it onto the canvas.
   -

   Permitting the Creation of multiple connections between anchors from
   varied sources and storing data in an array regarding the connections for
   further utilization.
   -

   Deleting Connections along with the parent element.

*Currently working on:*

   -

   Changing the property attributes such as stream name and stream
   definition of dropped elements (Stream name will be displayed on the
   respective icon when saved).

*Eg:*

from TempStream

select roomNo, temp

insert into RoomTempStream;


*The toolbar will hold:*

1. A stream icon

2. A query icon

Once a stream has been dragged on to the canvas, the
type(import/export/temporary) can be selected in the properties panel and
thereafter it will be validated against the available schema and
dropped(The validation part has not been done yet). Then a query can
consume one or more event streams and generate a new event stream from
them.

*A Tempstream will be created with the following attributes:*

define stream TempStream(deviceID long, roomNo int, temp double);

So when the event stream icon is dropped onto the canvas, the properties
panel for that event stream appears permitting the set up of the event
stream.

*Requested Stream Property Data in the properties panel:*

Event stream type: import/ export/ temporary

Event stream Name: 

Event stream definition:  Derived from an existing stream

Following this, a query can consume this stream. The query will not be
decomposed into its minuscule details but will be merely considered as one
unit.

>From the above example, the query filters out only the temperature of the
respective room from the TempStream and generates a new RoomTempStream.


The Visual Representation of the above ( Relevant icons will be used):

tempStream ->  query  ->  RoomTempStream


Th following query types can be chosen when dealing with the query object

1. Pass-through (Prioritized at present)

2. Filters

3. Window

4. Joins


Fig1: BasicUI developed to date


​
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [IS] Support for Google reCaptha

2016-06-07 Thread Thanuja Jayasinghe
@Omindu

We have generated the key pair providing 'localhost' as the domain name and
we are going to ship this key pair OOTB with the default pack. So any user
can use this key pair for testing.
If they want to configure it for different domain name, they have to
generate a new key pair for that domain.

@Harsha

reCaptcha requires internet connection, since the user validation depend on
communication between Google.

But we will make the filter more generic, so that we can add CAPTCHA as a
connector.

Thanks,

On Wed, Jun 8, 2016 at 1:44 AM, Harsha Thirimanna  wrote:

> Any plan to support *CAPTCHA *in IS without having internet connection ?
> Because previous version of *CAPTCHA* is OOB service and now we are going
> to use google service. Do we have way to install google service plugin or
> something in offline  within product ?
>
>
> *Harsha Thirimanna*
> Associate Tech Lead; WSO2, Inc.; http://wso2.com
> * *
> *email: **hars...@wso2.com* * cell: +94 71 5186770 *
> *twitter: **http://twitter.com/ *
> *harshathirimannlinked-in: **http:
> **//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
> *
>
> *Lean . Enterprise . Middleware*
>
>
> On Wed, Jun 8, 2016 at 1:38 AM, Omindu Rathnaweera 
> wrote:
>
>> First we need to register at [2] and create an API key pair for the
>>> required domain.
>>
>>
>> Should a product user generate their own key pair and configure the
>> product prior to using reCaptcha ?
>>
>> Regards,
>> Omindu.
>>
>>
>> On Tue, Jun 7, 2016 at 11:33 PM, Thanuja Jayasinghe 
>> wrote:
>>
>>> Hi All,
>>>
>>> I'm working on $subject.
>>>
>>> *Why reCaptcha?*
>>>
>>> *"reCAPTCHA is a free service that protects your website from spam and
>>> abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive
>>> CAPTCHAs to keep automated software from engaging in abusive activities on
>>> your site. It does this while letting your valid users pass through with
>>> ease." -Google[1]*
>>>
>>>
>>> *How does reCaptcha works?*
>>>
>>> First we need to register at [2] and create an API key pair for the
>>> required domain.  The key pair consists of a site key and secret. The site
>>> key used when we display reCaptcha widget on a page. After verification,
>>> new parameter called 'g-recaptcha-response' will be available in the
>>> form which user submits. From the server side we can verify that reCaptcha
>>> response calling the Google API with the secret key.
>>>
>>>
>>> *Where we're going to use reCaptcha?*
>>>
>>> Basically any place which can be vulnerable to Bots attack,
>>>
>>>1. SSO login flow
>>>2. User recovery flows
>>>3. User registration flow
>>>
>>>
>>> *Implementation*
>>>
>>> Conditions to enable reCaptcha is different from one scenario to
>>> another. As an example user registration may enable reCaptcha by default,
>>> but SSO login page may enable it after n failed attempts from a single
>>> user. Also reCaptcha requirements may be different from one tenant to
>>> another.
>>>
>>> So we have introduced filter called "ReCaptchaFilter" to intercept
>>> requests and pass them to a reCaptcha connector which can handle a
>>> particular scenario. Connector will provide following information to the
>>> filter,
>>>
>>>- Whether the connector can handle the request
>>>- Priority of the connector
>>>- Whether the reCapatha verification is needed for the current
>>>request
>>>- Whether that attempt is a successful or not
>>>
>>> Based on above information filter will select a connector which can
>>> handle the incoming request and will validate reCaptcha if needed.
>>>
>>> Also to keep this in a state less manner, IS will do following,
>>>
>>>- Will evaluate the need for reCaptcha at the server side
>>>- Will inform and provide necessary data to the pages if server is
>>>expecting reCaptha validation
>>>
>>>
>>> *OOTB Connectors*
>>>
>>> IS will provide two reCpatcha connectors OOTB as "
>>> SSOLoginReCaptchaConnector" and "PathBasedReCaptchaConnector", which
>>> implement "ReCaptchaConnector" interface. These connectors also
>>> implement "IdentityGovernanceConnector" to enable UI based
>>> configuration management.
>>>
>>> SSOLoginReCaptchaConnector - Can enable reCaptcha after n number of
>>> failed attempts form a single user. This connector does not depend on the
>>> user agent and will take the sum of failed attempts from any agent.
>>> PathBasedReCaptchaConnector - Can validate reCaptcha for a request
>>> path. This will always validate reCaptcha for a given request path.
>>>
>>>
>>> Appreciate your input.
>>>
>>> [1] - https://developers.google.com/recaptcha/intro
>>> [2] - https://www.google.com/recaptcha/admin
>>>
>>> Thanks,
>>> Thanuja
>>> --
>>> *Thanuja Lakmal*
>>> Senior Software Engineer
>>> WSO2 Inc. http://wso2.com/
>>> *lean.enterprise.middleware*
>>> Mobile: +94715979891 +9475800

Re: [Architecture] [IS] Supporting user information recovery scenarios in IS user portal

2016-06-07 Thread Malithi Edirisinghe
Hi All,

I have following concern with regard to moving the account recovery web
application from OOTB supported KAPTCHA to google reCaptcha.

As noted at [1], we should have an API key pair. Thus, we will not be able
to enable this for the webapp by default (with the fresh IS server pack).
Further, previously, captcha validation is a must for recovery API calls(
Ex: Password Recovery).
So does the new implementation enforce that verification?
If it does, we would also not be able to view those recovery options by
default.

@Isura,
Could you please initiate a thread on the design of the new Identity
Management APIs

[1][Architecture] [IS] Support for Google reCapth

Thanks,
Malithi.

On Tue, Jun 7, 2016 at 11:33 AM, Thanuja Jayasinghe 
wrote:

> Hi Omindu,
>
> Yes. We can't use reCaptcha without internet. But the chance of having
> Bots attack from a internal network is very less. So we can either disable
> reCaptcha when server is not connect to the internet or have the old
> captcha implementation.
>
> +1 for keep the existing captcha implementation. But we have to modify
> login, self-registration and recovery flows to add captcha/reCaptcha in a
> pluggable manner.
>
> Thanks,
> Thanuja.
>
> On Tue, Jun 7, 2016 at 11:14 AM, Isura Karunaratne  wrote:
>
>> Hi,
>>
>> On Tue, Jun 7, 2016 at 10:47 AM, Omindu Rathnaweera 
>> wrote:
>>
>>> Hi Isura,
>>>
>>> Since reCaptcha requires to call Google's services for captcha
>>> generation and validation, we won't be able to use the dashboard with
>>> captcha when we are running IS in an environment without internet
>>> connectivity. I'm assuming we are not shipping the old captcha
>>> implementation in 5.3.0 so a user will not be able to switch to an
>>> internally managed captcha implementation with a simple config change.
>>>
>>> It'll be good if we can make the old captcha implementation (or a
>>> similar implementation) available (by means of an extension or a sample
>>> maybe ?) so a user can switch to an internally managed captcha model
>>> without much work. WDYT ?
>>>
>>
>> +1. but, we better to decouple old captcha implementation with recovery
>> flows.
>>
>> Thanks
>> Isura
>>
>>
>>> Regards,
>>> Omindu.
>>>
>>> On Sun, Jun 5, 2016 at 12:35 PM, Malithi Edirisinghe 
>>> wrote:
>>>
 Hi Isura,

 Noted.

 I've got one more concern.
 Initially, as you may have noted in the top most mail, recovery
 scenarios were to be supported in the login page of the end user
 dashboard in IS. But in a consecutive discussion it was highlighted that
 these options should be provided in the default SSO login page. Thus, upon
 a successful recovery or registration, the flow should be as below.

1. End user will be redirected to the login page.
2. End user will enter the credentials
3. End user is authenticated and upon successful authentication
user will be redirected to the Service Provider application (Ex: ACS 
 url of
the SP).

 So at the moment, we are using the param 'sessionDataKey' to map the
 server session across modules, which can be used even here to retrieve the
 respective Service Provider who initiated the flow. But, when it comes to
 recovery with notifications there is no parameter being communicated to
 identify the respective Service Provider. Can we please address this also,
 along with this effort ?

 Thanks,
 Malithi.

 On Sun, Jun 5, 2016 at 8:39 AM, Isura Karunaratne 
 wrote:

> Hi Malithi,
>
> These steps seem to be ok. However we are going to move from KAPCHA to
> google reCaptcha in IS 5.3.0 and this captcha implementation is decoupled
> with each flow you mentioned. So, in new implementation captcha validation
> will happen before invoking to the backend APIs.
>
> In "security questions based password recovery flow", we are going to
> add a new parameter to parameterize the minimum number of questions that
> user should be answered to recover the password. In the previous releases
> (IS 5, IS5.1.0) this is an application side configuration and it was not a
> server side configuration. With IS 5.3.0 onwards tenant admin can define
> the minimum number of questions that user should be answered to recover 
> the
> password.
>
> Thanks
> Isura
>
>
>
> On Fri, Apr 29, 2016 at 11:40 AM, Malithi Edirisinghe <
> malit...@wso2.com> wrote:
>
>> Hi All,
>>
>> We are working on $subject.
>>
>> So with this, we will be supporting below options in the login page
>> of the end user dashboard in IS.
>>
>>1. Forgot Password (Password Recovery)
>>2. Forgot Username (Username Recovery)
>>3. Create an account (Self Signup)
>>
>> Below I have listed the user stories that we identified, to support
>> each option above.
>>
>> *Password Recovery*
>>
>> With the

Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Dakshika Jayathilaka
Hi All,

Ideally, we need to provide an option to re-edit once they generated. AFAIK
we don't have that option yet.

Regards,

*Dakshika Jayathilaka*
PMC Member & Committer of Apache Stratos
Associate Technical Lead
WSO2, Inc.
lean.enterprise.middleware
0771100911

On Tue, Jun 7, 2016 at 11:34 PM, Manuranga Perera  wrote:

> How would a user modify or regenerate with slight change?
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [CEP] Extending the Regression Function to support time window

2016-06-07 Thread Charini Nanayakkara
Hi Seshika.

Noted with thanks. In that case what name would you suggest for these new
extensions (i.e. new regression, outlier and forecast functions)

Regards,
Charini

On Tue, Jun 7, 2016 at 7:13 PM, Seshika Fernando  wrote:

> No, the existing regression function should remain, as its a different
> usecase. There are many instances where we need to perform regression on a
> set of events that are not limited by a time duration. In that case, the
> existing regression implementation will be used. However, the duration
> parameter should be available for outlier and forecast extensions as well.
> So a user should be able to use the outlier/forecast regression functions
> with/without duration parameter. So your new version should be applicable
> to all 3 regression extensions (linear regression, outlier, forecast).
>
> seshi
>
> On Tue, Jun 7, 2016 at 6:32 PM, Charini Nanayakkara 
> wrote:
>
>> Hi Seshika, Suho,
>>
>> Is the existent regression function to be entirely replaced by the new
>> one? If so it's necessary to change implementation of outlier and forecast
>> extensions as well, since those are based on the regression implementation.
>> Furthermore, there's the concern of existent applications being rendered
>> useless if the old version is entirely removed. If it's preferred to keep
>> both, a new name is required for this extension.  Since the regression
>> function supports both time and length, a name such as regressTimeLength
>> would be appropriate IMO. Please give your suggestions.
>>
>> Regards,
>> Charini
>>
>> On Sun, Jun 5, 2016 at 11:28 AM, Seshika Fernando 
>> wrote:
>>
>>> Hi,
>>> The length ceiling is necessary along with the duration parameter. The
>>> reason the batch size was originally implemented was to optimize
>>> performance when large datasets are considered for regression. We need to
>>> be able to give an upper bound. So for example in this case, if user uses a
>>> large duration (24 hours)and there are millions of events, then if we put a
>>> batch size of 1 million it will consider the last 1 million events in the
>>> last 24 hours. Which is a valid use case.
>>>
>>> For this reason, the ability to specify both duration and batch size is
>>> important.
>>>
>>> Seshi
>>> On 2 Jun 2016 14:45, "Charini Nanayakkara"  wrote:
>>>
 Noted with thanks. Will proceed with the implementation likewise.

 Charini

 On Thu, Jun 2, 2016 at 2:28 PM, Sriskandarajah Suhothayan <
 s...@wso2.com> wrote:

> I think having batchSize & duration will be good as this will limit
> the number of events considered, this can help to improve performance as
> well.
>
> Suho
>
> On Thu, Jun 2, 2016 at 1:59 PM, Charini Nanayakkara  > wrote:
>
>> Hi Tishan,
>>
>> For my requirement, having time window alone is adequate. So your
>> point might be valid. However I'm concerned of the re-usability of the
>> extension.
>>
>> @Srinath, WDYT? Which would be the better option? Having a single
>> implementation or two different ones?
>>
>> Thanks
>>
>> On Thu, Jun 2, 2016 at 1:48 PM, Tishan Dahanayakage 
>> wrote:
>>
>>> Charini,
>>>
>>> My knowledge on the on this domain is sparse. Hence I do not know
>>> whether a scenario where time AND length is a valid business case. If 
>>> it is
>>> a valid business case +1 for the design including both parameters in 
>>> same
>>> implementation.
>>>
>>> Thanks
>>> /Tishan
>>>
>>> On Thu, Jun 2, 2016 at 12:54 PM, Charini Nanayakkara <
>>> chari...@wso2.com> wrote:
>>>
 Hi Tishan,

 Yes. Assuming batch size is 5 and time window is 20 mins, only 5
 out of 10 events which arrive within last 5 mins would be processed 
 due to
 batch size constraint (even though all events must be processed if time
 alone was considered). Having separate implementations would work on 
 the
 majority of the scenarios, since only time OR length is usually 
 applicable
 but not both. However, having two implementations would cause trouble 
 in
 the situations where both the time factor and length are important
 (equivalent to AND operation on the two constraints). If our 
 requirement is
 to have only one of the two constraints, we can use a very large value 
 for
 the other parameter (i.e. if we only need to limit number of events 
 based
 on time = 1 sec constraint, we can specify 1,000,000 for batch size
 assuming we have prior knowledge that 1,000,000 events would never 
 arrive
 within 1 sec). IMHO neither of the two options (separate or single
 implementation) are perfect for every scenario. However having a single
 implementation would help address more cases as I understand. What's 
 your
 opinion on

Re: [Architecture] Dep sync strategies for Carbon 4 products in Kubernetes

2016-06-07 Thread Chamila De Alwis
Hi Imesh,


On Wed, Jun 8, 2016 at 5:32 AM, Imesh Gunaratne  wrote:

> ​It would be better if we can implement this feature without tightly
> coupling with the K8S API.​ Therefore I prefer the pull based model than
> this.
>

I agree. This would require different ways of contacting any platform
specific name resolution service to get the list of target containers.


>
>
>> The pull method works the other way, i.e. initiated by the GW worker
>> nodes and has to be run continuously on a loop.
>>
>
> ​This approach can be applied to API-M on any container cluster manager
> (and also on VMs) with very few changes. AFAIU it's matter of changing how
> SSH server and rsync command processes are run on each GW node. K8S can use
> separate containers for these using pods and Mesos can use supervisord [4].
>

I think supervisord would be applicable to any Docker based platform, be it
Kubernetes or Mesos. Is there an additional advantage in going for a
separate container to run sshd with a shared volume?

One complication we'll come across (regardless of whether rsync pull or
push) that I couldn't further elaborate was the artifact synchronization
*between* GW Manager nodes when manager is in HA. This is when there are
multiple GW Manager nodes, fronted with a load balancer. There will be only
one active pod at a given time, and the request will be directed to the
next available pod when the former goes down.

For this, if we use a hostPath approach to share data, we'll also need to
specify a node affinity to limit the node that the pod is spawned on. This
way we can make sure the same location is mounted to every pod. The other
option is to use something like Flocker with a Block storage service,
however IMO it is a too complex method to approach a simple problem.




Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Dep sync strategies for Carbon 4 products in Kubernetes

2016-06-07 Thread Imesh Gunaratne
Hi Chamila,

Thanks for looking into this. Please find my comments inline:

On Tue, Jun 7, 2016 at 6:03 AM, Chamila De Alwis  wrote:
>
>
> In the push method, it's the GW manager that initiates the process.
>
>1. Add a folder watcher (inotifywatch[1]) to
>repository/deployment/server/synapse-configs
>2. When triggered
>   1. Contact Kubernetes API and get list of WORKER_SVC container IPs
>   2. for each container IP, Rsync with --delete
>
> ​It would be better if we can implement this feature without tightly
coupling with the K8S API.​ Therefore I prefer the pull based model than
this.


> The pull method works the other way, i.e. initiated by the GW worker nodes
> and has to be run continuously on a loop.
>

​This approach can be applied to API-M on any container cluster manager
(and also on VMs) with very few changes. AFAIU it's matter of changing how
SSH server and rsync command processes are run on each GW node. K8S can use
separate containers for these using pods and Mesos can use supervisord [4].

[4] https://docs.docker.com/engine/admin/using_supervisord/

Thanks


> Additionally, Kubernetes supports a volume plugin named Git Volume [2],
> which is basically an emptyDir volume with an initial "git clone" command
> done on the provided remote repository.
>
> The issue with this is that there is no push functionality when the
> contents are updated. This might be solved by extending the Git Repo volume
> plugin and writing a Carbon Volume Plugin for Kubernetes, however IMO it
> would come up with the same set of problems we have in the current SVN
> based deployment synchronization, only with an additional code base.
>
> NFS volume based approach was also considered, however because of the
> limitations in moving the mount between the nodes (solutions like Flocker
> works on Block Level storage [3]), and managing read-write capability of
> multiple containers it also seems to be a complex path.
>
> IMO out of these approaches, Rsync is the possible candidate (specifically
> the push method), although it takes a few workarounds to achieve
> functionality. GW Managers would need to synchronize artifacts between
> themselves, as well as towards the worker nodes, and the push job should
> only run from the active manager node.
>
> I highly appreciate any input on this.
>
> [1] - http://linux.die.net/man/1/inotifywatch
> [2] - http://kubernetes.io/docs/user-guide/volumes/#gitrepo
> [3] -
> https://docs.clusterhq.com/en/latest/faq/#can-i-attach-a-single-volume-to-multiple-hosts
>
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Software Engineer | WSO2 | +94772207163
> Blog: code.chamiladealwis.com
>
>
>


-- 
*Imesh Gunaratne*
Software Architect
WSO2 Inc: http://wso2.com
T: +94 11 214 5345 M: +94 77 374 2057
W: https://medium.com/@imesh TW: @imesh
Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [IS] Regenerating client secret/key and revoking an oauth app in OAuth 2.0 implementation

2016-06-07 Thread Harsha Thirimanna
On Mon, Jun 6, 2016 at 1:33 AM, Prabath Siriwardana 
wrote:

> Yes.. We need to have it...


Created a public JIRA to track this
https://wso2.org/jira/browse/IDENTITY-4666​
​

> Since we are now talking about client id and client secret - can we also
> make the app authentication generic - or in other words a given app should
> be able to use the authentication option of its choice. We can still use
> client id as the app identifier...
>
> Thanks!
>
>
> On Sunday, June 5, 2016, Harsha Thirimanna  wrote:
>
>> Hi Prabath/Johan,
>> Do we allow to set an expiration time to this client secret ? Because as
>> in the DCR spec [1], for the response it is required attribute '
>> client_secret_expires_at' and we set it as 0 because of it will never
>> expired.
>>
>> [1]
>> https://openid.net/specs/openid-connect-registration-1_0.html#RegistrationResponse
>>
>>
>> *Harsha Thirimanna*
>> Associate Tech Lead; WSO2, Inc.; http://wso2.com
>> * *
>> *email: **hars...@wso2.com** cell: +94 71 5186770 *
>> *twitter: **http://twitter.com/ *
>> *harshathirimannlinked-in: **http:
>> **//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
>> *
>>
>> *Lean . Enterprise . Middleware*
>>
>>
>> On Fri, Jun 3, 2016 at 5:46 PM, Prabath Siriwardana 
>> wrote:
>>
>>>
>>>
>>> On Thu, Jun 2, 2016 at 10:30 PM, Indunil Upeksha Rathnayake <
>>> indu...@wso2.com> wrote:
>>>
 Hi,
 I am working on implementing regeneration of client secret/key of an
 oauth app and revocation of an oauth app for the next milestone release of
 Identity Server. Appreciate your feedbacks on the following approaches I
 have taken.

 A trusted client would need to update the client secret/key, in order
 to prevent the abuse of revealed client secret/key. So for addressing that,
 I am working on adding two options as *Regenerate Client Secret *and 
 *Regenerate
 Consumer Key* for oauth applications in IS. After a client secret/key
 get regenerated, that will immediately invalidate any active authorization
 code, access token or refresh token, issued to the respective client.

 *Will it be necessary to add two options for revoking client secret and
 key or better to go for a different approach?*

>>>
>>> I guess (as discussed in this thread already) - having the ability to
>>> change the consumer secret would be enough. Changing the consumer key is
>>> bit challanging too - we would have all the analytics data against the
>>> consumer key.
>>>
>>> Also - consumer key is not something - someone would remember and use -
>>> so I don't think its same as the username - so I don't see any need to
>>> change it.
>>>
>>>



 And apart from that planning for the implementation of *Revoking an
 oauth app*. In there the oauth app will be revoked and that also will
 immediately invalidate any active authorization code, access token or
 refresh token, issued to the respective client. In order to activate the
 oauth app again, need to regenerate the client secret.


 *In there to activate the app, better to regenerate "both client key
 and secret" or "either client key or secret"?*

>>>
>>> Revoking an app means - mostly the revoking of its consumer secret (the
>>> previous scenario).
>>>
>>> Another couple of use cases we can address with this:
>>>
>>> 1. Blocking an app temporary - Deactivate the App - and the Activate it
>>> after sometime - nothing to do with the consumer secret revocation.
>>>
>>> 2. Ability to revoke an access token (s) issued on behalf of a user for
>>> a particular app.
>>>
>>> 3. Ability to revoke all the access tokens issued on behalf of a user
>>> across all the apps.
>>>
>>> Thanks & regards,
>>> -Prabath
>>>
>>>


 Really value your ideas/suggestions on improving this feature.

 Thanks and Regards
 --
 Indunil Upeksha Rathnayake
 Software Engineer | WSO2 Inc
 Emailindu...@wso2.com


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Prabath
>>>
>>> Twitter : @prabath
>>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena
>>>
>>> Mobile : +1 650 625 7950
>>>
>>> http://facilelogin.com
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>
> --
> Thanks & Regards,
> Prabath
>
> Twitter : @prabath
> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena
>
> Mobile : +1 650 625 7950
>
> http://facilelogin.com
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/c

Re: [Architecture] [IS] Support for Google reCaptha

2016-06-07 Thread Harsha Thirimanna
Any plan to support *CAPTCHA *in IS without having internet connection ?
Because previous version of *CAPTCHA* is OOB service and now we are going
to use google service. Do we have way to install google service plugin or
something in offline  within product ?


*Harsha Thirimanna*
Associate Tech Lead; WSO2, Inc.; http://wso2.com
* *
*email: **hars...@wso2.com* * cell: +94 71 5186770 *
*twitter: **http://twitter.com/ *
*harshathirimannlinked-in: **http:
**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
*

*Lean . Enterprise . Middleware*


On Wed, Jun 8, 2016 at 1:38 AM, Omindu Rathnaweera  wrote:

> First we need to register at [2] and create an API key pair for the
>> required domain.
>
>
> Should a product user generate their own key pair and configure the
> product prior to using reCaptcha ?
>
> Regards,
> Omindu.
>
>
> On Tue, Jun 7, 2016 at 11:33 PM, Thanuja Jayasinghe 
> wrote:
>
>> Hi All,
>>
>> I'm working on $subject.
>>
>> *Why reCaptcha?*
>>
>> *"reCAPTCHA is a free service that protects your website from spam and
>> abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive
>> CAPTCHAs to keep automated software from engaging in abusive activities on
>> your site. It does this while letting your valid users pass through with
>> ease." -Google[1]*
>>
>>
>> *How does reCaptcha works?*
>>
>> First we need to register at [2] and create an API key pair for the
>> required domain.  The key pair consists of a site key and secret. The site
>> key used when we display reCaptcha widget on a page. After verification,
>> new parameter called 'g-recaptcha-response' will be available in the
>> form which user submits. From the server side we can verify that reCaptcha
>> response calling the Google API with the secret key.
>>
>>
>> *Where we're going to use reCaptcha?*
>>
>> Basically any place which can be vulnerable to Bots attack,
>>
>>1. SSO login flow
>>2. User recovery flows
>>3. User registration flow
>>
>>
>> *Implementation*
>>
>> Conditions to enable reCaptcha is different from one scenario to another.
>> As an example user registration may enable reCaptcha by default, but SSO
>> login page may enable it after n failed attempts from a single user. Also
>> reCaptcha requirements may be different from one tenant to another.
>>
>> So we have introduced filter called "ReCaptchaFilter" to intercept
>> requests and pass them to a reCaptcha connector which can handle a
>> particular scenario. Connector will provide following information to the
>> filter,
>>
>>- Whether the connector can handle the request
>>- Priority of the connector
>>- Whether the reCapatha verification is needed for the current request
>>- Whether that attempt is a successful or not
>>
>> Based on above information filter will select a connector which can
>> handle the incoming request and will validate reCaptcha if needed.
>>
>> Also to keep this in a state less manner, IS will do following,
>>
>>- Will evaluate the need for reCaptcha at the server side
>>- Will inform and provide necessary data to the pages if server is
>>expecting reCaptha validation
>>
>>
>> *OOTB Connectors*
>>
>> IS will provide two reCpatcha connectors OOTB as "
>> SSOLoginReCaptchaConnector" and "PathBasedReCaptchaConnector", which
>> implement "ReCaptchaConnector" interface. These connectors also
>> implement "IdentityGovernanceConnector" to enable UI based configuration
>> management.
>>
>> SSOLoginReCaptchaConnector - Can enable reCaptcha after n number of
>> failed attempts form a single user. This connector does not depend on the
>> user agent and will take the sum of failed attempts from any agent.
>> PathBasedReCaptchaConnector - Can validate reCaptcha for a request path.
>> This will always validate reCaptcha for a given request path.
>>
>>
>> Appreciate your input.
>>
>> [1] - https://developers.google.com/recaptcha/intro
>> [2] - https://www.google.com/recaptcha/admin
>>
>> Thanks,
>> Thanuja
>> --
>> *Thanuja Lakmal*
>> Senior Software Engineer
>> WSO2 Inc. http://wso2.com/
>> *lean.enterprise.middleware*
>> Mobile: +94715979891 +94758009992
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Omindu Rathnaweera
> Software Engineer, WSO2 Inc.
> Mobile: +94 771 197 211
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [IS] Support for Google reCaptha

2016-06-07 Thread Omindu Rathnaweera
>
> First we need to register at [2] and create an API key pair for the
> required domain.


Should a product user generate their own key pair and configure the product
prior to using reCaptcha ?

Regards,
Omindu.


On Tue, Jun 7, 2016 at 11:33 PM, Thanuja Jayasinghe 
wrote:

> Hi All,
>
> I'm working on $subject.
>
> *Why reCaptcha?*
>
> *"reCAPTCHA is a free service that protects your website from spam and
> abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive
> CAPTCHAs to keep automated software from engaging in abusive activities on
> your site. It does this while letting your valid users pass through with
> ease." -Google[1]*
>
>
> *How does reCaptcha works?*
>
> First we need to register at [2] and create an API key pair for the
> required domain.  The key pair consists of a site key and secret. The site
> key used when we display reCaptcha widget on a page. After verification,
> new parameter called 'g-recaptcha-response' will be available in the form
> which user submits. From the server side we can verify that reCaptcha
> response calling the Google API with the secret key.
>
>
> *Where we're going to use reCaptcha?*
>
> Basically any place which can be vulnerable to Bots attack,
>
>1. SSO login flow
>2. User recovery flows
>3. User registration flow
>
>
> *Implementation*
>
> Conditions to enable reCaptcha is different from one scenario to another.
> As an example user registration may enable reCaptcha by default, but SSO
> login page may enable it after n failed attempts from a single user. Also
> reCaptcha requirements may be different from one tenant to another.
>
> So we have introduced filter called "ReCaptchaFilter" to intercept
> requests and pass them to a reCaptcha connector which can handle a
> particular scenario. Connector will provide following information to the
> filter,
>
>- Whether the connector can handle the request
>- Priority of the connector
>- Whether the reCapatha verification is needed for the current request
>- Whether that attempt is a successful or not
>
> Based on above information filter will select a connector which can handle
> the incoming request and will validate reCaptcha if needed.
>
> Also to keep this in a state less manner, IS will do following,
>
>- Will evaluate the need for reCaptcha at the server side
>- Will inform and provide necessary data to the pages if server is
>expecting reCaptha validation
>
>
> *OOTB Connectors*
>
> IS will provide two reCpatcha connectors OOTB as "
> SSOLoginReCaptchaConnector" and "PathBasedReCaptchaConnector", which
> implement "ReCaptchaConnector" interface. These connectors also implement
> "IdentityGovernanceConnector" to enable UI based configuration management.
>
> SSOLoginReCaptchaConnector - Can enable reCaptcha after n number of
> failed attempts form a single user. This connector does not depend on the
> user agent and will take the sum of failed attempts from any agent.
> PathBasedReCaptchaConnector - Can validate reCaptcha for a request path.
> This will always validate reCaptcha for a given request path.
>
>
> Appreciate your input.
>
> [1] - https://developers.google.com/recaptcha/intro
> [2] - https://www.google.com/recaptcha/admin
>
> Thanks,
> Thanuja
> --
> *Thanuja Lakmal*
> Senior Software Engineer
> WSO2 Inc. http://wso2.com/
> *lean.enterprise.middleware*
> Mobile: +94715979891 +94758009992
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Omindu Rathnaweera
Software Engineer, WSO2 Inc.
Mobile: +94 771 197 211
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Manuranga Perera
How would a user modify or regenerate with slight change?
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [IS] Support for Google reCaptha

2016-06-07 Thread Thanuja Jayasinghe
Hi All,

I'm working on $subject.

*Why reCaptcha?*

*"reCAPTCHA is a free service that protects your website from spam and
abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive
CAPTCHAs to keep automated software from engaging in abusive activities on
your site. It does this while letting your valid users pass through with
ease." -Google[1]*


*How does reCaptcha works?*

First we need to register at [2] and create an API key pair for the
required domain.  The key pair consists of a site key and secret. The site
key used when we display reCaptcha widget on a page. After verification,
new parameter called 'g-recaptcha-response' will be available in the form
which user submits. From the server side we can verify that reCaptcha
response calling the Google API with the secret key.


*Where we're going to use reCaptcha?*

Basically any place which can be vulnerable to Bots attack,

   1. SSO login flow
   2. User recovery flows
   3. User registration flow


*Implementation*

Conditions to enable reCaptcha is different from one scenario to another.
As an example user registration may enable reCaptcha by default, but SSO
login page may enable it after n failed attempts from a single user. Also
reCaptcha requirements may be different from one tenant to another.

So we have introduced filter called "ReCaptchaFilter" to intercept requests
and pass them to a reCaptcha connector which can handle a particular
scenario. Connector will provide following information to the filter,

   - Whether the connector can handle the request
   - Priority of the connector
   - Whether the reCapatha verification is needed for the current request
   - Whether that attempt is a successful or not

Based on above information filter will select a connector which can handle
the incoming request and will validate reCaptcha if needed.

Also to keep this in a state less manner, IS will do following,

   - Will evaluate the need for reCaptcha at the server side
   - Will inform and provide necessary data to the pages if server is
   expecting reCaptha validation


*OOTB Connectors*

IS will provide two reCpatcha connectors OOTB as "SSOLoginReCaptchaConnector"
and "PathBasedReCaptchaConnector", which implement "ReCaptchaConnector"
interface. These connectors also implement "IdentityGovernanceConnector" to
enable UI based configuration management.

SSOLoginReCaptchaConnector - Can enable reCaptcha after n number of failed
attempts form a single user. This connector does not depend on the user
agent and will take the sum of failed attempts from any agent.
PathBasedReCaptchaConnector - Can validate reCaptcha for a request path.
This will always validate reCaptcha for a given request path.


Appreciate your input.

[1] - https://developers.google.com/recaptcha/intro
[2] - https://www.google.com/recaptcha/admin

Thanks,
Thanuja
-- 
*Thanuja Lakmal*
Senior Software Engineer
WSO2 Inc. http://wso2.com/
*lean.enterprise.middleware*
Mobile: +94715979891 +94758009992
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Tanya Madurapperuma
Hi Manu,

On Tue, Jun 7, 2016 at 8:05 PM, Manuranga Perera  wrote:

> Hi Tanya,
>
> 1) Are we really generating gadgets, though the wizard or generating
> JSONs? (I personally don't like the former, as we have discussed before)
>
We are generating the gadget not JSONs.

>
> 2) If we are generating, which files are dynamic generated Vs. which files
> are copies? I think it should be possible to figure out by looking at files.
>
You can find the template that we use now at [1]. Rest of the files will be
directly copied from the chart or provider template.

[1]
https://github.com/wso2/carbon-dashboards/tree/master/apps/portal/templates/gadgets/gadget-generation-templates


Thanks,
Tanya

>
> On Tue, Jun 7, 2016 at 5:41 AM, Tanya Madurapperuma 
> wrote:
>
>> Hi all,
>>
>> During an offline discussion with Jerad following modification were
>> suggested regarding the directory structure of the extension model. All
>> these changes are subjected to js and css file locations.
>>
>> *Chart template structure*
>>
>> |── line-chart
>>   │   ├── css
>>   │   │   └── line-chart.css
>>   │   └── js
>>   │   ├── d3.min.js
>>   │   ├── vega.js
>>   │   └── VizGrammar.min.js
>>|── config.json
>>   ├── api.js
>>
>>
>> *Changes to the existing model*
>>
>>- rename index.js to api.js
>>- rename chart-libs folder to js
>>- have a css folder in the same level
>>
>>
>> *Generated gadget structure*
>>
>> └── test_gadget
>> │   │   ├── conf.json
>> │   │   ├── css
>> │   │   │   └── line-chart.css
>> │   │   ├── gadget-controller.jag
>> │   │   ├── gadget.json
>> │   │   ├── index.png
>> │   │   ├── index.xml
>> │   │   └── js
>> │   │   ├── core
>> │   │   │   ├── gadget-core.js
>> │   │   │   ├── line-chart-api.js
>> │   │   │   └── provider-api.js
>> │   │   ├── d3.min.js
>> │   │   ├── vega.js
>> │   │   └── VizGrammar.min.js
>>
>>
>> *Changes to the existing model*
>>
>>- Instead of the *chart-libs* folder inside *js* folder, have a *core
>>*folder inside *js *folder and place chart specific js files in js
>>folder
>>
>>
>> *Folder structure for storing common libs*
>>
>> portal
>>   |── gadget-commons
>>
>>├── css
>>│   └── common.css
>>└── js
>>└── common.js
>>
>>
>> *Changes to the existing model*
>>
>>- Now we have common libs inside portal/libs/common-chart-libs/
>>
>> *chart config.json*
>>
>> "common": {
>> "js": ["common"],
>> "css": ["common"]
>> },
>> "chart": {
>> "js": ["d3.min", "vega", "VizGrammar.min"],
>> "css": ["line-chart"]
>> }
>>
>> *existing config.json*
>>
>> "common-libs" : ["wso2gadgets","chart-utils"],
>> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>>
>> I think this model is cleaner and intuitive than the exiting model.
>> AFAIK existing wizard is only used for IOT analytics. If there are no
>> concerns from them shall we move to this new model?
>>
>> @ Suho, Dunith : WDYT ? Will this incur lot of changes from IOT side?
>> Appreciate your input.
>>
>> Thanks,
>> Tanya
>>
>> --
>> Tanya Madurapperuma
>>
>> Senior Software Engineer,
>> WSO2 Inc. : wso2.com
>> Mobile : +94718184439
>> Blog : http://tanyamadurapperuma.blogspot.com
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> With regards,
> *Manu*ranga Perera.
>
> phone : 071 7 70 20 50
> mail : m...@wso2.com
>



-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Archiecture] ESB - Feature Request - JMS transactions with non-blocking transports

2016-06-07 Thread Isuru Udana
Hi Manu,

+1. Good idea.
I also think it is doable in the way you suggested, however we need to
investigate little bit more on this.







On Tue, Jun 7, 2016 at 10:00 PM, Manuranga Perera  wrote:

> AFAIK, correct me if I am wrong, the transaction is closed when the thread
> returns [1].This means we can't use call mediator (or send) with JMS proxy
> with transactions.
>
> If we keep JMS session/context in the message context and only close after
> the mediation flow is over, we will be able to handle more concurrent JMS
> requests. WDUT?
>
> [1] https://docs.wso2.com/display/ESB460/JMS+Transactions
>
> --
> With regards,
> *Manu*ranga Perera.
>
> phone : 071 7 70 20 50
> mail : m...@wso2.com
>



-- 
*Isuru Udana*
Technical Lead
WSO2 Inc.; http://wso2.com
email: isu...@wso2.com cell: +94 77 3791887
blog: http://mytecheye.blogspot.com/
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [Archiecture] ESB - Feature Request - JMS transactions with non-blocking transports

2016-06-07 Thread Manuranga Perera
AFAIK, correct me if I am wrong, the transaction is closed when the thread
returns [1].This means we can't use call mediator (or send) with JMS proxy
with transactions.

If we keep JMS session/context in the message context and only close after
the mediation flow is over, we will be able to handle more concurrent JMS
requests. WDUT?

[1] https://docs.wso2.com/display/ESB460/JMS+Transactions

-- 
With regards,
*Manu*ranga Perera.

phone : 071 7 70 20 50
mail : m...@wso2.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] BPMN - Bulk Task Reassignment, Substitution feature

2016-06-07 Thread Frank Leymann
I refer to the states defined in the HumanTask spec:
http://docs.oasis-open.org/bpel4people/ws-humantask-1.1-spec-cd-06.pdf
Section 4.10 defines these states - "claimed" is not what the standard
defines because different implementations had slightly different semantics,
thus, we renamed the states and defined their operational semantics...


Best regards,
Frank

2016-06-06 17:55 GMT+02:00 Manuranga Perera :

> There is no such status like "In progress".
>
> Isn't "claiming" a task is equivalent to making "in progress".
>
> In your example of call, I'll first claim and then start the call.
>
> On Mon, Jun 6, 2016 at 11:51 AM, Manuranga Perera  wrote:
>
>> I think as much as possible we have to achieve this with Event-driven
>>> architecture rather than schedulers.
>>>
>> +1
>>
>>> So we can use simple cache mechanism as below
>>
>> While this is possible, I don't see why we are trying to shave off a few
>> milliseconds from the task creation and make the it more complex even
>> sacrificing correctness. Isn't this some premature optimization ?
>>
>> --
>> With regards,
>> *Manu*ranga Perera.
>>
>> phone : 071 7 70 20 50
>> mail : m...@wso2.com
>>
>
>
>
> --
> With regards,
> *Manu*ranga Perera.
>
> phone : 071 7 70 20 50
> mail : m...@wso2.com
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Manuranga Perera
>
> If we want to model with the permissions then we should be able to add the
> permissions dynamically, but this is not possible with current carbon -
> 4.x. And as I have mentioned above, this cannot be included in the global
> level as well, because having a settings or delete privileges for dashboard
> - X, doesn't mean you have the same privileges for dashboard - Y. And hence
> we thought of going with roles approach for this one as well. I agree, the
> role names for settings and delete is bit odd, we need to come up with
> proper names for those. :)
>

I think it is possible to dynamically create any permissions via the API
even in C4

2) Does "settings" make sense, because if you are an editor, anyway you'll
>> have full access to the JSON, don't you?
>
> In settings you have the full privileges, ie, you can even remove the user
> who initially created the dashboard, IMHO it provides the full control of
> the dashboard. Designer doesn't have such privileges, he/she can only
> add/remove gadgets, pages etc which is related to designing the dashboard.
> Therefore we need to have a different role to control the access of the
> settings page.


We may call this "Owners"?

-- 
With regards,
*Manu*ranga Perera.

phone : 071 7 70 20 50
mail : m...@wso2.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] APIM 2.0 Performance Analysis/Testing

2016-06-07 Thread Malith Jayasinghe
We are currently doing a performance analysis of WSO2 APIM 2.0. The aim of
this effort is to get an in-depth understanding of how the performance
(latency in particular) of API manager under different
conditions/scenarios. The results of such an analysis will enable us to
better understand how the system behaves under specific conditions and
provide more accurate answers to questions relating to the performance. In
this thread we will provide a summary of our findings (as we progress in
this project).


-- 
Malith Jayasinghe


WSO2, Inc. (http://wso2.com)
Email   : mali...@wso2.com
Mobile : 0770704040
Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Sinthuja Ragendran
Hi Manu,

On Tue, Jun 7, 2016 at 3:24 PM, Manuranga Perera  wrote:

> Following names make sense as roles:
>
>- internal/dashboard/{dashboardID}/editor
>- internal/dashboard/{dashboardID}/viewer
>
> but
>
>- internal/dashboard/{dashboardID}/settings
>- internal/dashboard/{dashboardID}/delete
>
> Sounds a bit weird for role names. As Suho said, it can be modeled as
> permissions as well.
>

If we want to model with the permissions then we should be able to add the
permissions dynamically, but this is not possible with current carbon -
4.x. And as I have mentioned above, this cannot be included in the global
level as well, because having a settings or delete privileges for dashboard
- X, doesn't mean you have the same privileges for dashboard - Y. And hence
we thought of going with roles approach for this one as well. I agree, the
role names for settings and delete is bit odd, we need to come up with
proper names for those. :)


>
> 1) Do you intend to add people to each via DS UI? (In that case roles
> might be easier)
>

The dashboard creator will be automatically assigned to all of the above
mentioned roles. If he/she want to share with some additional group/role,
he/she can add to the allowed roles list. In the case that if he/she wants
to share only with some users, they needs to be added to management UI. But
I agree, to have the proper flow we need to have UI in DS side for this.

2) Does "settings" make sense, because if you are an editor, anyway you'll
> have full access to the JSON, don't you?
>

In settings you have the full privileges, ie, you can even remove the user
who initially created the dashboard, IMHO it provides the full control of
the dashboard. Designer doesn't have such privileges, he/she can only
add/remove gadgets, pages etc which is related to designing the dashboard.
Therefore we need to have a different role to control the access of the
settings page.

Thanks,
Sinthuja.


> On Tue, Jun 7, 2016 at 7:59 AM, Sinthuja Ragendran 
> wrote:
>
>> According to the chat I had with Johann, we have came up with this model.
>> Basically as per now in C4 we don't have a way to add a permission
>> dynamically, and similar requirement has been raised in IS as well and they
>> have come up with this model.
>>
>> The main reason for this is, there might be some dashboard that you are
>> working on and want to share between some users and grant some privileges.
>> It's not doable with global permission, bcz having an edit permission for
>> say sales dashboard doesn't mean you have the permission for admin
>> dashboard. Therefore this needs to be controlled per dashboard, not
>> globally.
>>
>> Thanks,
>> Sinthuja.
>>
>> On Tue, Jun 7, 2016 at 11:12 AM, Sriskandarajah Suhothayan > > wrote:
>>
>>> Why are we not using different permissions for each dashboard than using
>>>  roles. I believe using permissions will be more scalable than using roles.
>>> WDYT?
>>>
>>> Regards
>>> Suho
>>>
>>> On Tue, Jun 7, 2016 at 2:38 PM, Nisala Nanayakkara 
>>> wrote:
>>>
 Hi Udara,

 Since these are internal roles, they are not stored in LDAP. So it will
 work fine.

 Thanks,
 Nisala

 On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake 
 wrote:

> Another question, ​Is this going to work if we have to connect to a
> read-only LDAP/A
> ​D​
> userstore?
>
> On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
> wrote:
>
>> Is this model scalable? Because per dashboard we will have to create
>> 4 internal roles. So if we have N number of dashboards we will end up
>> having 4 * N number of internal roles.
>>
>> @ IS team : is this approach fine? Or is there any better approach?
>>
>> Thanks,
>> Tanya
>>
>> On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
>> wrote:
>>
>>> adding Johan and Manuranga
>>>
>>> Thanks,
>>> Nisala
>>>
>>> On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
>>> wrote:
>>>
 Hi all,

 I am working on implementing an access levels model for WSO2
 Dashboard Server. Currently global permission model for 
 create/delete/login
 is implemented by Megala. Since it does not support to provide per
 dashboard level access for the users. I am going to extend it and 
 implement
 a permission model that can be used to provide per dashboard level 
 access
 for the users.

 In order to implement this feature, I am going to add four roles at
 dashboard creation time as follows,

- internal/dashboard/{dashboardID}/editor
- internal/dashboard/{dashboardID}/viewer
- internal/dashboard/{dashboardID}/settings
- internal/dashboard/{dashboardID}/delete

 At the dashboard creation time, the user who creates the dashboard
 will get all the four roles. But other 

Re: [Architecture] ESB Connector for Asana

2016-06-07 Thread Nirthika Rajendran
Hi Malaka,

We had a peer review at the Jaffna office. We made the following changes
according to their comments.


   - Change the init method to store the accesstoken in registry.
   - Format the code according to the WSO2 standards.
   - Add the INTEGRATION.txt file.
   - Change the test cases for new init method.

We are all ready, Shall we have the review on next Tuesday (14th of June)
at 4pm?

Thank you

On Tue, Jun 7, 2016 at 12:40 PM, Malaka Silva  wrote:

> Hi Nirthika,
>
> Did we had the review? If not shall we plan for this soon.
>
> On Fri, May 27, 2016 at 10:53 AM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Yes, we can come to the office for review next week
>>
>> Thank you.
>>
>>
>> On Fri, May 27, 2016 at 7:54 AM, Malaka Silva  wrote:
>>
>>> Hi Nirthika,
>>>
>>> Great can we have a review before publishing next week. You can come to
>>> our office or have it via google hangout?
>>>
>>> On Thu, May 26, 2016 at 8:20 PM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Hi Malaka,

 We have completed most of the part of asana connector including

1. Develop the methods
2. Implement integration testing.
3. Complete documentation.


 Thank you,
 Nirthika R

 On Wed, May 4, 2016 at 7:45 AM, Malaka Silva  wrote:

> Good progress. Keep us posted.
>
> On Wed, May 4, 2016 at 5:39 AM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Hi Malaka,
>>
>> Yesterday we meet our mentor Kesavan to clear some problem in
>> integration test. There we correct some errors and now we continue the 
>> task.
>>
>> Thank you.
>>
>> On Tue, May 3, 2016 at 11:58 AM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> ok, thank you.
>>>
>>> On Tue, May 3, 2016 at 11:21 AM, Malaka Silva 
>>> wrote:
>>>
 After finishing the integration tests should be fine.

 On Tue, May 3, 2016 at 9:18 AM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Hi Malaka,
>
> Thank you, we already have two mentors Miss. Keerthika and Mr.
> Kesavan. So if we have any other problem we will contact you.
>
> Can we have the hangout after finishing the integration test or it
> is necessary to do now?
>
> Thank you.
>
> On Mon, May 2, 2016 at 9:31 PM, Malaka Silva 
> wrote:
>
>> Hi Nirthika,
>>
>> Let us know if you need any assistance to complete this?
>>
>> We can have a hangout to review the work you have done so far if
>> possible?
>>
>> On Wed, Mar 9, 2016 at 4:08 PM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Thank you Malaka,
>>>
>>> Sure we also expect that.
>>>
>>> On Wed, Mar 9, 2016 at 3:38 PM, Malaka Silva 
>>> wrote:
>>>
 Hi Nirthika,

 Good progress. We are also planning to arrange a meetup at
 Jaffna office in April. Feel free to come.

 On Wed, Mar 9, 2016 at 1:35 PM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Hi Malaka,
>
> Every members in my team nearly take 10 methods and do the
> documentation and integration test for their part also.
>
> Now we all finished about 40 methods and user documentation.
>
> This month we have final semi examination, So we plan to
> continue the remaining part after the exam.
>
> Thank you
>
> Regards,
> Nirthika Rajendran
>
>
> On Sun, Feb 21, 2016 at 7:24 AM, Malaka Silva  > wrote:
>
>> Hi Nirthika,
>>
>> ​Good progress.​
>>
>>
>> On Sat, Feb 20, 2016 at 7:51 PM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Thank you Malaka,
>>>
>>> Now we finished nearly 35 Methods, and going to develop
>>> documentation.
>>> We contact some staff from Jaffna branch as our mentors (Ms.
>>> M. Keerthika). They also help us
>>>
>>> I will put the time window soon.
>>>
>>> Thank you,
>>> Nirthika Rajendran.
>>>
>>>
>>> On Sat, Feb 20, 2016 at 12:26 PM, Malaka Silva <
>>> mal...@wso2.com> wrote:
>>>
 Looks good. Guess you are covering quite a lot of methods.
 What is the time window for this project?

>

Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Manuranga Perera
Hi Tanya,

1) Are we really generating gadgets, though the wizard or generating JSONs?
(I personally don't like the former, as we have discussed before)

2) If we are generating, which files are dynamic generated Vs. which files
are copies? I think it should be possible to figure out by looking at files.

On Tue, Jun 7, 2016 at 5:41 AM, Tanya Madurapperuma  wrote:

> Hi all,
>
> During an offline discussion with Jerad following modification were
> suggested regarding the directory structure of the extension model. All
> these changes are subjected to js and css file locations.
>
> *Chart template structure*
>
> |── line-chart
>   │   ├── css
>   │   │   └── line-chart.css
>   │   └── js
>   │   ├── d3.min.js
>   │   ├── vega.js
>   │   └── VizGrammar.min.js
>|── config.json
>   ├── api.js
>
>
> *Changes to the existing model*
>
>- rename index.js to api.js
>- rename chart-libs folder to js
>- have a css folder in the same level
>
>
> *Generated gadget structure*
>
> └── test_gadget
> │   │   ├── conf.json
> │   │   ├── css
> │   │   │   └── line-chart.css
> │   │   ├── gadget-controller.jag
> │   │   ├── gadget.json
> │   │   ├── index.png
> │   │   ├── index.xml
> │   │   └── js
> │   │   ├── core
> │   │   │   ├── gadget-core.js
> │   │   │   ├── line-chart-api.js
> │   │   │   └── provider-api.js
> │   │   ├── d3.min.js
> │   │   ├── vega.js
> │   │   └── VizGrammar.min.js
>
>
> *Changes to the existing model*
>
>- Instead of the *chart-libs* folder inside *js* folder, have a *core 
> *folder
>inside *js *folder and place chart specific js files in js folder
>
>
> *Folder structure for storing common libs*
>
> portal
>   |── gadget-commons
>
>├── css
>│   └── common.css
>└── js
>└── common.js
>
>
> *Changes to the existing model*
>
>- Now we have common libs inside portal/libs/common-chart-libs/
>
> *chart config.json*
>
> "common": {
> "js": ["common"],
> "css": ["common"]
> },
> "chart": {
> "js": ["d3.min", "vega", "VizGrammar.min"],
> "css": ["line-chart"]
> }
>
> *existing config.json*
>
> "common-libs" : ["wso2gadgets","chart-utils"],
> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>
> I think this model is cleaner and intuitive than the exiting model.
> AFAIK existing wizard is only used for IOT analytics. If there are no
> concerns from them shall we move to this new model?
>
> @ Suho, Dunith : WDYT ? Will this incur lot of changes from IOT side?
> Appreciate your input.
>
> Thanks,
> Tanya
>
> --
> Tanya Madurapperuma
>
> Senior Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94718184439
> Blog : http://tanyamadurapperuma.blogspot.com
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
With regards,
*Manu*ranga Perera.

phone : 071 7 70 20 50
mail : m...@wso2.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Manuranga Perera
Following names make sense as roles:

   - internal/dashboard/{dashboardID}/editor
   - internal/dashboard/{dashboardID}/viewer

but

   - internal/dashboard/{dashboardID}/settings
   - internal/dashboard/{dashboardID}/delete

Sounds a bit weird for role names. As Suho said, it can be modeled as
permissions as well.

1) Do you intend to add people to each via DS UI? (In that case roles might
be easier)
2) Does "settings" make sense, because if you are an editor, anyway you'll
have full access to the JSON, don't you?

On Tue, Jun 7, 2016 at 7:59 AM, Sinthuja Ragendran 
wrote:

> According to the chat I had with Johann, we have came up with this model.
> Basically as per now in C4 we don't have a way to add a permission
> dynamically, and similar requirement has been raised in IS as well and they
> have come up with this model.
>
> The main reason for this is, there might be some dashboard that you are
> working on and want to share between some users and grant some privileges.
> It's not doable with global permission, bcz having an edit permission for
> say sales dashboard doesn't mean you have the permission for admin
> dashboard. Therefore this needs to be controlled per dashboard, not
> globally.
>
> Thanks,
> Sinthuja.
>
> On Tue, Jun 7, 2016 at 11:12 AM, Sriskandarajah Suhothayan 
> wrote:
>
>> Why are we not using different permissions for each dashboard than using
>>  roles. I believe using permissions will be more scalable than using roles.
>> WDYT?
>>
>> Regards
>> Suho
>>
>> On Tue, Jun 7, 2016 at 2:38 PM, Nisala Nanayakkara 
>> wrote:
>>
>>> Hi Udara,
>>>
>>> Since these are internal roles, they are not stored in LDAP. So it will
>>> work fine.
>>>
>>> Thanks,
>>> Nisala
>>>
>>> On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake 
>>> wrote:
>>>
 Another question, ​Is this going to work if we have to connect to a
 read-only LDAP/A
 ​D​
 userstore?

 On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
 wrote:

> Is this model scalable? Because per dashboard we will have to create 4
> internal roles. So if we have N number of dashboards we will end up having
> 4 * N number of internal roles.
>
> @ IS team : is this approach fine? Or is there any better approach?
>
> Thanks,
> Tanya
>
> On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
> wrote:
>
>> adding Johan and Manuranga
>>
>> Thanks,
>> Nisala
>>
>> On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
>> wrote:
>>
>>> Hi all,
>>>
>>> I am working on implementing an access levels model for WSO2
>>> Dashboard Server. Currently global permission model for 
>>> create/delete/login
>>> is implemented by Megala. Since it does not support to provide per
>>> dashboard level access for the users. I am going to extend it and 
>>> implement
>>> a permission model that can be used to provide per dashboard level 
>>> access
>>> for the users.
>>>
>>> In order to implement this feature, I am going to add four roles at
>>> dashboard creation time as follows,
>>>
>>>- internal/dashboard/{dashboardID}/editor
>>>- internal/dashboard/{dashboardID}/viewer
>>>- internal/dashboard/{dashboardID}/settings
>>>- internal/dashboard/{dashboardID}/delete
>>>
>>> At the dashboard creation time, the user who creates the dashboard
>>> will get all the four roles. But other users have to get above roles to 
>>> do
>>> appropriate actions to the dashboard. So that we can set above four 
>>> roles
>>> for the users and They will be given different access levels according 
>>> to
>>> their roles.
>>>
>>> Please feel free to give any feedback.
>>>
>>> Thanks,
>>> Nisala
>>> --
>>> *Nisala Niroshana Nanayakkara,*
>>> Software Engineer
>>> Mobile:(+94)717600022
>>> WSO2 Inc., http://wso2.com/
>>>
>>
>>
>>
>> --
>> *Nisala Niroshana Nanayakkara,*
>> Software Engineer
>> Mobile:(+94)717600022
>> WSO2 Inc., http://wso2.com/
>>
>
>
>
> --
> Tanya Madurapperuma
>
> Senior Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94718184439
> Blog : http://tanyamadurapperuma.blogspot.com
>



 --
 Regards,
 UdaraR

>>>
>>>
>>>
>>> --
>>> *Nisala Niroshana Nanayakkara,*
>>> Software Engineer
>>> Mobile:(+94)717600022
>>> WSO2 Inc., http://wso2.com/
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>>
>> *S. Suhothayan*
>> Technical Lead & Team Lead of WSO2 Complex Event Processor
>> *WSO2 Inc. *http://wso2.com
>> * *
>> lean . enterprise . middleware
>>
>>
>> *cell: (+94) 779 756 757 <%28%2B94%29%20779%20756%20757> | blog:
>> http://suhothayan.bl

Re: [Architecture] [Dev] WSO2 IS Analytics v1.0.0-ALPHA Released

2016-06-07 Thread Seshika Fernando
Hi guys,

If we did any changes to the architecture of Authentication analytics, can
we update the documentation in [1].

Damith/Mohan: Can one of you take ownership of this?

Thanks,
Seshi

1.
https://docs.google.com/a/wso2.com/document/d/1h47OLzBiHYy-kk12VkmRnoetbG37Dx4LcHa3CnTzDTE/edit?usp=sharing

On Fri, Jun 3, 2016 at 1:07 PM, Damith Wickramasinghe 
wrote:

> *WSO2 IS Analytics v1.0.0-ALPHA Released*
>
> We are pleased to announce the alpha release of WSO2 IS Analytics v1.0.0 [
> 1
> ]
> which is powered by WSO2 Data Analytics Server. IS Analytics can be used
> to monitor authentication related analytics for residence and federated
> authentication scenarios.[2
> ] Please use the
> nightly build IS pack [3
> ]
> which includes necessary instruments to publish data to analytics IS.Your
> feedback is highly appreciated, any bugs or issues can be reported here [4
> ].
>
> This release contains the following capabilities:-
>
>1. View Authentication analytics for Federated Identity scenarios
>which includes viewing overall success and failure login attempts and
>authentication attempts views for multiple dimensions of Service Provider,
>Identity Providers,Users and also first time login of service Providers.
>2. View Authentication analytics for Federated scenarios which
>includes viewing
>overall success and failure login attempts and authentication attempts
>views for multiple dimensions of service provider, roles , user and
>user-stores
>
> [1]
> https://github.com/wso2/analytics-is/releases/download/v1.0.0-alpha/wso2analytics-is-1.0.0-alpha.zip
> [2] https://docs.wso2.com/display/IS520/WSO2+IS+Analytics
> [3] *https://svn.wso2.org/repos/wso2/people/mohan/is-5.2.0-with-analytics
> *
> [4] *https://wso2.org/jira/browse/ANLYIS
> *
>
>
> Analytics IS Team
>
>
> --
> Software Engineer
> WSO2 Inc.; http://wso2.com
> 
> lean.enterprise.middleware
>
> mobile: *+94728671315 <%2B94728671315>*
>
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [CEP] Extending the Regression Function to support time window

2016-06-07 Thread Seshika Fernando
No, the existing regression function should remain, as its a different
usecase. There are many instances where we need to perform regression on a
set of events that are not limited by a time duration. In that case, the
existing regression implementation will be used. However, the duration
parameter should be available for outlier and forecast extensions as well.
So a user should be able to use the outlier/forecast regression functions
with/without duration parameter. So your new version should be applicable
to all 3 regression extensions (linear regression, outlier, forecast).

seshi

On Tue, Jun 7, 2016 at 6:32 PM, Charini Nanayakkara 
wrote:

> Hi Seshika, Suho,
>
> Is the existent regression function to be entirely replaced by the new
> one? If so it's necessary to change implementation of outlier and forecast
> extensions as well, since those are based on the regression implementation.
> Furthermore, there's the concern of existent applications being rendered
> useless if the old version is entirely removed. If it's preferred to keep
> both, a new name is required for this extension.  Since the regression
> function supports both time and length, a name such as regressTimeLength
> would be appropriate IMO. Please give your suggestions.
>
> Regards,
> Charini
>
> On Sun, Jun 5, 2016 at 11:28 AM, Seshika Fernando 
> wrote:
>
>> Hi,
>> The length ceiling is necessary along with the duration parameter. The
>> reason the batch size was originally implemented was to optimize
>> performance when large datasets are considered for regression. We need to
>> be able to give an upper bound. So for example in this case, if user uses a
>> large duration (24 hours)and there are millions of events, then if we put a
>> batch size of 1 million it will consider the last 1 million events in the
>> last 24 hours. Which is a valid use case.
>>
>> For this reason, the ability to specify both duration and batch size is
>> important.
>>
>> Seshi
>> On 2 Jun 2016 14:45, "Charini Nanayakkara"  wrote:
>>
>>> Noted with thanks. Will proceed with the implementation likewise.
>>>
>>> Charini
>>>
>>> On Thu, Jun 2, 2016 at 2:28 PM, Sriskandarajah Suhothayan >> > wrote:
>>>
 I think having batchSize & duration will be good as this will limit the
 number of events considered, this can help to improve performance as well.

 Suho

 On Thu, Jun 2, 2016 at 1:59 PM, Charini Nanayakkara 
 wrote:

> Hi Tishan,
>
> For my requirement, having time window alone is adequate. So your
> point might be valid. However I'm concerned of the re-usability of the
> extension.
>
> @Srinath, WDYT? Which would be the better option? Having a single
> implementation or two different ones?
>
> Thanks
>
> On Thu, Jun 2, 2016 at 1:48 PM, Tishan Dahanayakage 
> wrote:
>
>> Charini,
>>
>> My knowledge on the on this domain is sparse. Hence I do not know
>> whether a scenario where time AND length is a valid business case. If it 
>> is
>> a valid business case +1 for the design including both parameters in same
>> implementation.
>>
>> Thanks
>> /Tishan
>>
>> On Thu, Jun 2, 2016 at 12:54 PM, Charini Nanayakkara <
>> chari...@wso2.com> wrote:
>>
>>> Hi Tishan,
>>>
>>> Yes. Assuming batch size is 5 and time window is 20 mins, only 5 out
>>> of 10 events which arrive within last 5 mins would be processed due to
>>> batch size constraint (even though all events must be processed if time
>>> alone was considered). Having separate implementations would work on the
>>> majority of the scenarios, since only time OR length is usually 
>>> applicable
>>> but not both. However, having two implementations would cause trouble in
>>> the situations where both the time factor and length are important
>>> (equivalent to AND operation on the two constraints). If our 
>>> requirement is
>>> to have only one of the two constraints, we can use a very large value 
>>> for
>>> the other parameter (i.e. if we only need to limit number of events 
>>> based
>>> on time = 1 sec constraint, we can specify 1,000,000 for batch size
>>> assuming we have prior knowledge that 1,000,000 events would never 
>>> arrive
>>> within 1 sec). IMHO neither of the two options (separate or single
>>> implementation) are perfect for every scenario. However having a single
>>> implementation would help address more cases as I understand. What's 
>>> your
>>> opinion on this?
>>>
>>> Thanks
>>>
>>> On Thu, Jun 2, 2016 at 10:14 AM, Charini Nanayakkara <
>>> chari...@wso2.com> wrote:
>>>
 Hi All,

 I have planned to extend the existent Regression Function by adding
 time parameter. Regression is a functionality available for the Siddhi
 stream processor extension known as timeseries. In the current
 impleme

Re: [Architecture] Feature - Applying a custom theme for a dashboard

2016-06-07 Thread Sinthuja Ragendran
Hi Jerad et all,

Let's use this approach if we want to apply some custom theme per
dashboard, without modifying the default theme. I know as we have merged
the theme you guys have developed for analytics effort as default theme, it
should not be a issue now. :) But in case, if you come across future
requirements, let's utilize this.

Thanks,
Sinthuja.

On Mon, Jun 6, 2016 at 6:34 AM, Prabushi Samarakoon 
wrote:

> Hi all,
>
> With the new release WSO2 DS 2.1.0 M2, we have introduced the support for
> applying a custom theme per dashboard in WSO2 Dashboard Server.
>
> User can deploy their custom themes as a Carbon Application Archive file
> through the admin console. One of these deployed themes can be selected as
> the dashboard theme, when the user create a dashboard. User can also change
> the selected theme, using dashboard settings configurations. Users are
> allowed to add a custom theme, only for the view of the dashboard. Users
> can add their own script files, template files and styles to customize the
> view of a particular dashboard.
>
> Further details about this feature can be found in the document attached
> here.
>
> Thanks,
> Prabushi
>
> --
> *Prabushi Samarakoon*
> Software Engineer
> Mobile: +94715434580
> Email: prabus...@wso2.com
>



-- 
*Sinthuja Rajendran*
Technical Lead
WSO2, Inc.:http://wso2.com

Blog: http://sinthu-rajan.blogspot.com/
Mobile: +94774273955
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [CEP] Extending the Regression Function to support time window

2016-06-07 Thread Charini Nanayakkara
Hi Seshika, Suho,

Is the existent regression function to be entirely replaced by the new one?
If so it's necessary to change implementation of outlier and forecast
extensions as well, since those are based on the regression implementation.
Furthermore, there's the concern of existent applications being rendered
useless if the old version is entirely removed. If it's preferred to keep
both, a new name is required for this extension.  Since the regression
function supports both time and length, a name such as regressTimeLength
would be appropriate IMO. Please give your suggestions.

Regards,
Charini

On Sun, Jun 5, 2016 at 11:28 AM, Seshika Fernando  wrote:

> Hi,
> The length ceiling is necessary along with the duration parameter. The
> reason the batch size was originally implemented was to optimize
> performance when large datasets are considered for regression. We need to
> be able to give an upper bound. So for example in this case, if user uses a
> large duration (24 hours)and there are millions of events, then if we put a
> batch size of 1 million it will consider the last 1 million events in the
> last 24 hours. Which is a valid use case.
>
> For this reason, the ability to specify both duration and batch size is
> important.
>
> Seshi
> On 2 Jun 2016 14:45, "Charini Nanayakkara"  wrote:
>
>> Noted with thanks. Will proceed with the implementation likewise.
>>
>> Charini
>>
>> On Thu, Jun 2, 2016 at 2:28 PM, Sriskandarajah Suhothayan 
>> wrote:
>>
>>> I think having batchSize & duration will be good as this will limit the
>>> number of events considered, this can help to improve performance as well.
>>>
>>> Suho
>>>
>>> On Thu, Jun 2, 2016 at 1:59 PM, Charini Nanayakkara 
>>> wrote:
>>>
 Hi Tishan,

 For my requirement, having time window alone is adequate. So your point
 might be valid. However I'm concerned of the re-usability of the extension.

 @Srinath, WDYT? Which would be the better option? Having a single
 implementation or two different ones?

 Thanks

 On Thu, Jun 2, 2016 at 1:48 PM, Tishan Dahanayakage 
 wrote:

> Charini,
>
> My knowledge on the on this domain is sparse. Hence I do not know
> whether a scenario where time AND length is a valid business case. If it 
> is
> a valid business case +1 for the design including both parameters in same
> implementation.
>
> Thanks
> /Tishan
>
> On Thu, Jun 2, 2016 at 12:54 PM, Charini Nanayakkara <
> chari...@wso2.com> wrote:
>
>> Hi Tishan,
>>
>> Yes. Assuming batch size is 5 and time window is 20 mins, only 5 out
>> of 10 events which arrive within last 5 mins would be processed due to
>> batch size constraint (even though all events must be processed if time
>> alone was considered). Having separate implementations would work on the
>> majority of the scenarios, since only time OR length is usually 
>> applicable
>> but not both. However, having two implementations would cause trouble in
>> the situations where both the time factor and length are important
>> (equivalent to AND operation on the two constraints). If our requirement 
>> is
>> to have only one of the two constraints, we can use a very large value 
>> for
>> the other parameter (i.e. if we only need to limit number of events based
>> on time = 1 sec constraint, we can specify 1,000,000 for batch size
>> assuming we have prior knowledge that 1,000,000 events would never arrive
>> within 1 sec). IMHO neither of the two options (separate or single
>> implementation) are perfect for every scenario. However having a single
>> implementation would help address more cases as I understand. What's your
>> opinion on this?
>>
>> Thanks
>>
>> On Thu, Jun 2, 2016 at 10:14 AM, Charini Nanayakkara <
>> chari...@wso2.com> wrote:
>>
>>> Hi All,
>>>
>>> I have planned to extend the existent Regression Function by adding
>>> time parameter. Regression is a functionality available for the Siddhi
>>> stream processor extension known as timeseries. In the current
>>> implementation, the regression function consumes two or more parameters 
>>> and
>>> performs regression as follows.
>>>
>>> The mandatory parameters to be given are the dependent attribute Y
>>> and the independent attribute(s) X1, X2,Xn. For performing simple
>>> linear regression, merely one independent attribute would be given. Two 
>>> or
>>> more independent attributes are consumed for executing multiple linear
>>> regression.
>>>
>>> timeseries:regress(Y, X1, X2..,Xn)
>>>
>>> The other three optional parameters to be specified are calculation
>>> interval, batch size and confidence interval (ci). In the case where 
>>> those
>>> are not specified, the default values would be assumed.
>>>
>>> timeseries:regress(calcIn

Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Tanya Madurapperuma
Hi all,

Thank you for your inputs.

@ Dakshika :
Based on your input following modifications were made.

*Chart template structure*

└── line-chart
├── api.js
├── config.json
├── chart-libs
│   └── vendorName_version
│   └── js_css_images_etc_as_same_as_vendor_ships
├── css
│   └── line-chart.css
└── js
└── line-chart.js


*Generated gadget structure*

└── test_gadget
├── conf.json
├── gadget-controller.jag
├── gadget.json
├── index.png
├── index.xml
├── chart-libs
│   └── vendorName_version
│   └── js_css_images_etc_as_same_as_vendor_ships
├── css
│   └── line-chart.css
└── js
├── core-js
│   ├── gadget-core.js
│   ├── line-chart-api.js
│   └── provider-api.js
└── line-chart.js


*Folder structure for storing common libs*

portal
  |── libs

  ├── vendorName_version
  │   ├── 


*Changes to the existing model*

   - common libs will reside inside portal/libs/

*chart config.json*

"common": {
"js": ["vendorName_version/common"],
"css": ["vendorName_version/common"]
},
"chart": {
"js": ["vendorName_version/d3.min", "vendorName_version/vega",
"line-chart"],
"css": ["vendorName_version/graph, line-chart"]
}

"common" is for libs fetched from /portal/libs
"chart" is for both chart specfic libs inside js folder of chart template
and chart-libs that are coming from vendors.

So with the change suggested by Dakshika we will have to specify the
directory path of chart-libs in the config.json (ex:
 "vendorName_version/d3.min" )
But if it is a chart specific js file (in this example line-chart.js)
specifying the file name is enough.

In the gadget xml of the generated gadget we will be using the relative
path for libs fetched from /portal/libs.

@ Suho : Yes, the gadgets generated via old wizard will still work, I was
worried about the consistency between old gadgets and new gadgets generated
via the wizard. As per the offline chat we had, no obligations from IOT
side.

Thanks,
Tanya

-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com

On Tue, Jun 7, 2016 at 3:53 PM, Dakshika Jayathilaka 
wrote:

> Hi All,
>
> IMO it's better if we can maintain third-party libraries as a separate
> entity. Usually, most of the third party libs have their own dependencies
> (ex: some CSS files refer images/ fonts ). If we place them separately it's
> hard to identify relevant dependency at a glance.
>
>  At the same time, I would like to propose to have library version as
> well. This will really useful if someone wants to upgrade third-party lib
> etc.
>
> Regards,
>
> *Dakshika Jayathilaka*
> PMC Member & Committer of Apache Stratos
> Senior Software Engineer
> WSO2, Inc.
> lean.enterprise.middleware
> 0771100911
>
> On Tue, Jun 7, 2016 at 3:11 PM, Tanya Madurapperuma 
> wrote:
>
>> Hi all,
>>
>> During an offline discussion with Jerad following modification were
>> suggested regarding the directory structure of the extension model. All
>> these changes are subjected to js and css file locations.
>>
>> *Chart template structure*
>>
>> |── line-chart
>>   │   ├── css
>>   │   │   └── line-chart.css
>>   │   └── js
>>   │   ├── d3.min.js
>>   │   ├── vega.js
>>   │   └── VizGrammar.min.js
>>|── config.json
>>   ├── api.js
>>
>>
>> *Changes to the existing model*
>>
>>- rename index.js to api.js
>>- rename chart-libs folder to js
>>- have a css folder in the same level
>>
>>
>> *Generated gadget structure*
>>
>> └── test_gadget
>> │   │   ├── conf.json
>> │   │   ├── css
>> │   │   │   └── line-chart.css
>> │   │   ├── gadget-controller.jag
>> │   │   ├── gadget.json
>> │   │   ├── index.png
>> │   │   ├── index.xml
>> │   │   └── js
>> │   │   ├── core
>> │   │   │   ├── gadget-core.js
>> │   │   │   ├── line-chart-api.js
>> │   │   │   └── provider-api.js
>> │   │   ├── d3.min.js
>> │   │   ├── vega.js
>> │   │   └── VizGrammar.min.js
>>
>>
>> *Changes to the existing model*
>>
>>- Instead of the *chart-libs* folder inside *js* folder, have a *core
>>*folder inside *js *folder and place chart specific js files in js
>>folder
>>
>>
>> *Folder structure for storing common libs*
>>
>> portal
>>   |── gadget-commons
>>
>>├── css
>>│   └── common.css
>>└── js
>>└── common.js
>>
>>
>> *Changes to the existing model*
>>
>>- Now we have common libs inside portal/libs/common-chart-libs/
>>
>> *chart config.json*
>>
>> "common": {
>> "js": ["common"],
>> "css": ["common"]
>> },
>> "chart": {
>> "js": ["d3.min", "vega", "VizGrammar.min"],
>> "css": ["line-chart"]
>> }
>>
>> *existing config.json*
>>
>> "common-libs" : ["wso2ga

Re: [Architecture] Do we need a House Keeping Task for C5 Based Products

2016-06-07 Thread Afkham Azeez
I think we should rely on the components that create garbage to clear out
their own garbage without having a central task in the kernel.

On Tue, Jun 7, 2016 at 3:29 PM, Thusitha Thilina Dayaratne <
thusit...@wso2.com> wrote:

> Hi All,
>
> I'm trying to implement file upload support for msf4j with FormParam. In
> the none streaming mode, we need to create temp files in some location and
> clean them after a particular time period.
>
> For that purpose at the moment I'm using apache commons-io provided
> FileCleaningTracker[1, 2]. There we can give the set of file objects that
> we need to track. This will be running in a separate thread. When those
> objects are eligible for GC, it will delete the those files. In this way we
> can be sure that the temp objects will not get clear before the actual
> service consumes them.
>
> IMHO it would be much easier if we can provide a similar support from the
> kernel level, since products will require similar functionality in the
> future.
>
> AFAIU rather than tracking the file object references, if we run this as a
> periodic task (like in c4) we have to assume that the temp files are been
> consumed after a pre-configured time. Is it safe to assume so?
>
> WDYT?
>
> [1] -
> https://commons.apache.org/proper/commons-io/javadocs/api-2.2/org/apache/commons/io/FileCleaningTracker.html
> [2] -
> https://github.com/apache/commons-io/blob/trunk/src/main/java/org/apache/commons/io/FileCleaningTracker.java
>
> Thanks
> --
> Thusitha Dayaratne
> Software Engineer
> WSO2 Inc. - lean . enterprise . middleware |  wso2.com
>
> Mobile  +94712756809
> Blog  alokayasoya.blogspot.com
> Abouthttp://about.me/thusithathilina
>
>


-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* *
*email: **az...@wso2.com* 
* cell: +94 77 3320919blog: **http://blog.afkham.org*

*twitter: **http://twitter.com/afkham_azeez*

*linked-in: **http://lk.linkedin.com/in/afkhamazeez
*

*Lean . Enterprise . Middleware*
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Sinthuja Ragendran
According to the chat I had with Johann, we have came up with this model.
Basically as per now in C4 we don't have a way to add a permission
dynamically, and similar requirement has been raised in IS as well and they
have come up with this model.

The main reason for this is, there might be some dashboard that you are
working on and want to share between some users and grant some privileges.
It's not doable with global permission, bcz having an edit permission for
say sales dashboard doesn't mean you have the permission for admin
dashboard. Therefore this needs to be controlled per dashboard, not
globally.

Thanks,
Sinthuja.

On Tue, Jun 7, 2016 at 11:12 AM, Sriskandarajah Suhothayan 
wrote:

> Why are we not using different permissions for each dashboard than using
>  roles. I believe using permissions will be more scalable than using roles.
> WDYT?
>
> Regards
> Suho
>
> On Tue, Jun 7, 2016 at 2:38 PM, Nisala Nanayakkara 
> wrote:
>
>> Hi Udara,
>>
>> Since these are internal roles, they are not stored in LDAP. So it will
>> work fine.
>>
>> Thanks,
>> Nisala
>>
>> On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake 
>> wrote:
>>
>>> Another question, ​Is this going to work if we have to connect to a
>>> read-only LDAP/A
>>> ​D​
>>> userstore?
>>>
>>> On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
>>> wrote:
>>>
 Is this model scalable? Because per dashboard we will have to create 4
 internal roles. So if we have N number of dashboards we will end up having
 4 * N number of internal roles.

 @ IS team : is this approach fine? Or is there any better approach?

 Thanks,
 Tanya

 On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
 wrote:

> adding Johan and Manuranga
>
> Thanks,
> Nisala
>
> On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
> wrote:
>
>> Hi all,
>>
>> I am working on implementing an access levels model for WSO2
>> Dashboard Server. Currently global permission model for 
>> create/delete/login
>> is implemented by Megala. Since it does not support to provide per
>> dashboard level access for the users. I am going to extend it and 
>> implement
>> a permission model that can be used to provide per dashboard level access
>> for the users.
>>
>> In order to implement this feature, I am going to add four roles at
>> dashboard creation time as follows,
>>
>>- internal/dashboard/{dashboardID}/editor
>>- internal/dashboard/{dashboardID}/viewer
>>- internal/dashboard/{dashboardID}/settings
>>- internal/dashboard/{dashboardID}/delete
>>
>> At the dashboard creation time, the user who creates the dashboard
>> will get all the four roles. But other users have to get above roles to 
>> do
>> appropriate actions to the dashboard. So that we can set above four roles
>> for the users and They will be given different access levels according to
>> their roles.
>>
>> Please feel free to give any feedback.
>>
>> Thanks,
>> Nisala
>> --
>> *Nisala Niroshana Nanayakkara,*
>> Software Engineer
>> Mobile:(+94)717600022
>> WSO2 Inc., http://wso2.com/
>>
>
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile:(+94)717600022
> WSO2 Inc., http://wso2.com/
>



 --
 Tanya Madurapperuma

 Senior Software Engineer,
 WSO2 Inc. : wso2.com
 Mobile : +94718184439
 Blog : http://tanyamadurapperuma.blogspot.com

>>>
>>>
>>>
>>> --
>>> Regards,
>>> UdaraR
>>>
>>
>>
>>
>> --
>> *Nisala Niroshana Nanayakkara,*
>> Software Engineer
>> Mobile:(+94)717600022
>> WSO2 Inc., http://wso2.com/
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> *S. Suhothayan*
> Technical Lead & Team Lead of WSO2 Complex Event Processor
> *WSO2 Inc. *http://wso2.com
> * *
> lean . enterprise . middleware
>
>
> *cell: (+94) 779 756 757 <%28%2B94%29%20779%20756%20757> | blog:
> http://suhothayan.blogspot.com/ twitter:
> http://twitter.com/suhothayan  | linked-in:
> http://lk.linkedin.com/in/suhothayan *
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Sinthuja Rajendran*
Technical Lead
WSO2, Inc.:http://wso2.com

Blog: http://sinthu-rajan.blogspot.com/
Mobile: +94774273955
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [APPM] One time download link support for mobile app install/download

2016-06-07 Thread Ruwan Abeykoon
Hi All,
I think we need to have TTL (Time To Live/Expiry time)  for each OTDL.
Download link used after the expiry time should be denied. The generate
OTDL API call can carry the TTL parameter optionally.

Cheers,
Ruwan



On Tue, Jun 7, 2016 at 10:42 AM, Chathura Dilan  wrote:

> Hi Thilini,
>
> +1 for this approach
>
>
>
> Please see my comments inline
>
>
>
> 1. The generated download link is not secured since it is a one-time
> download link. Is there a security concern regarding this approach?
>
> There is no major security issue in this approach. I'm adding Prabath for
> more ideas
>
>
>
> 2. According to above, a single user will have to generate separate app
> download links, in a case where he has several devices to download the app.
> In that case, are we going to limit
>
> User should be able to generate multiple download links from one request.
> But we can introduce a throttling mechanism for app installation requests
> for security purpose.
>
>
>
> 3. Are we going to persist the details of the device (device id) that the
> download link had been generated for so that we can enforce the security?
>
> It's good if we can persist the download request for analytics purposes.
> IMO we don't need to persist other information like device ID.
>
>
>
>
>
>
>
>
>
> On Tue, Jun 7, 2016 at 9:31 AM, Lahiru Cooray  wrote:
>
>>
>>
>> On Tue, Jun 7, 2016 at 9:12 AM, Thilini Shanika 
>> wrote:
>>
>>> Hi all,
>>>
>>> We are planning to implement one-time app download link support for
>>> mobile application installation/download in App Manager 1.2.0. The main
>>> objective of introducing this feature is to overcome security issues with
>>> the current approach of installing mobile apps.
>>>
>>> Below is the designed approach of achieving $Subject.
>>> ​
>>> ​
>>> According to above,
>>>
>>>- User login to App Store and make subscription/installation to a
>>>particular mobile app
>>>- One time download link is generated for the user
>>>(/binaries/one-time/{UUID}) and the mapping of generated UUID and
>>>the actual binary file is persisted in a Database table. The status of 
>>> the
>>>download will be marked as 0 to indicate that the download link has not
>>>been used yet.
>>>- The device will access the binary download API via the generated
>>>UUID to install the app. When the download/installation is completed, the
>>>status of the binary downloadable URL reference will be marked as 1 to
>>>indicate it has been used once. After an app download, any other access 
>>> to
>>>the link will be prohibited.
>>>
>>>
>>> There are few concerns regarding the implementation.
>>>
>>>- The generated download link is not secured since it is a one-time
>>>download link. Is there a security concern regarding this approach?
>>>- According to above, a single user will have to generate separate
>>>app download links, in a case where he has several devices to download 
>>> the
>>>app. In that case, are we going to limit (Configurable limit) the number 
>>> of
>>>download links that can  be generated by a single user?
>>>
>>> AFAIK we use the same operation to perform the enterprise installation
>> as well, where an admin user can install an App to several users/devices.
>> In that case I don't think limiting generation of download links user wise
>> would be a good option (unless we consider the devices as well)
>>
>>>
>>>- Are we going to persist the details of the device (device id) that
>>>the download link had been generated for so that we can enforce the
>>>security?
>>>
>>> +1
>>
>>> Your comments and suggestions are highly appreciated.
>>>
>>> Thanks
>>> Thilini
>>>
>>>
>>> --
>>> Thilini Shanika
>>> Senior Software Engineer
>>> WSO2, Inc.; http://wso2.com
>>> 20, Palmgrove Avenue, Colombo 3
>>>
>>> E-mail: tgtshan...@gmail.com
>>> ​
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Lahiru Cooray*
>> Software Engineer
>> WSO2, Inc.;http://wso2.com/
>> lean.enterprise.middleware
>>
>> Mobile: +94 715 654154
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Regards,
>
> Chatura Dilan Perera
> *Associate Tech Lead** - WSO2 Inc.*
> www.dilan.me
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 

*Ruwan Abeykoon*
*Associate Director/Architect**,*
*WSO2, Inc. http://wso2.com  *
*lean.enterprise.middleware.*

email: ruw...@wso2.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Dakshika Jayathilaka
Hi All,

IMO it's better if we can maintain third-party libraries as a separate
entity. Usually, most of the third party libs have their own dependencies
(ex: some CSS files refer images/ fonts ). If we place them separately it's
hard to identify relevant dependency at a glance.

 At the same time, I would like to propose to have library version as well.
This will really useful if someone wants to upgrade third-party lib etc.

Regards,

*Dakshika Jayathilaka*
PMC Member & Committer of Apache Stratos
Senior Software Engineer
WSO2, Inc.
lean.enterprise.middleware
0771100911

On Tue, Jun 7, 2016 at 3:11 PM, Tanya Madurapperuma  wrote:

> Hi all,
>
> During an offline discussion with Jerad following modification were
> suggested regarding the directory structure of the extension model. All
> these changes are subjected to js and css file locations.
>
> *Chart template structure*
>
> |── line-chart
>   │   ├── css
>   │   │   └── line-chart.css
>   │   └── js
>   │   ├── d3.min.js
>   │   ├── vega.js
>   │   └── VizGrammar.min.js
>|── config.json
>   ├── api.js
>
>
> *Changes to the existing model*
>
>- rename index.js to api.js
>- rename chart-libs folder to js
>- have a css folder in the same level
>
>
> *Generated gadget structure*
>
> └── test_gadget
> │   │   ├── conf.json
> │   │   ├── css
> │   │   │   └── line-chart.css
> │   │   ├── gadget-controller.jag
> │   │   ├── gadget.json
> │   │   ├── index.png
> │   │   ├── index.xml
> │   │   └── js
> │   │   ├── core
> │   │   │   ├── gadget-core.js
> │   │   │   ├── line-chart-api.js
> │   │   │   └── provider-api.js
> │   │   ├── d3.min.js
> │   │   ├── vega.js
> │   │   └── VizGrammar.min.js
>
>
> *Changes to the existing model*
>
>- Instead of the *chart-libs* folder inside *js* folder, have a *core 
> *folder
>inside *js *folder and place chart specific js files in js folder
>
>
> *Folder structure for storing common libs*
>
> portal
>   |── gadget-commons
>
>├── css
>│   └── common.css
>└── js
>└── common.js
>
>
> *Changes to the existing model*
>
>- Now we have common libs inside portal/libs/common-chart-libs/
>
> *chart config.json*
>
> "common": {
> "js": ["common"],
> "css": ["common"]
> },
> "chart": {
> "js": ["d3.min", "vega", "VizGrammar.min"],
> "css": ["line-chart"]
> }
>
> *existing config.json*
>
> "common-libs" : ["wso2gadgets","chart-utils"],
> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>
> I think this model is cleaner and intuitive than the exiting model.
> AFAIK existing wizard is only used for IOT analytics. If there are no
> concerns from them shall we move to this new model?
>
> @ Suho, Dunith : WDYT ? Will this incur lot of changes from IOT side?
> Appreciate your input.
>
> Thanks,
> Tanya
>
> --
> Tanya Madurapperuma
>
> Senior Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94718184439
> Blog : http://tanyamadurapperuma.blogspot.com
>
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Sriskandarajah Suhothayan
Gadget generation API  is orthogonal to the usage API and we are not
changing the usage API, hence gadget created via old generation tools will
still work.

Regards
Suho

On Tue, Jun 7, 2016 at 3:34 PM, Rajith Vitharana  wrote:

> Hi Tanya,
>
> On Tue, Jun 7, 2016 at 3:21 PM, Tanya Madurapperuma 
> wrote:
>
>> Hi Rajith,
>>
>> We have not done any GA release, not even an Alpha release of the product
>> with this, but a component repo release.
>>
> Still if this is a API change to a component which we already released to
> public, I feel we have to think of those aspects as well. (Conflicts
> happens only if some one is going to use it, hence kind of taking a chance
> doing such release, if we can't 100% sure no one will going to use that) or
> else we may need to provide migration (support when/if) needed. Just my two
> cents :)
>
> Thanks,
>
> --
> Rajith Vitharana
>
> Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94715883223
> Blog : http://lankavitharana.blogspot.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 

*S. Suhothayan*
Technical Lead & Team Lead of WSO2 Complex Event Processor
*WSO2 Inc. *http://wso2.com
* *
lean . enterprise . middleware


*cell: (+94) 779 756 757 | blog: http://suhothayan.blogspot.com/
twitter: http://twitter.com/suhothayan
 | linked-in:
http://lk.linkedin.com/in/suhothayan *
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Sriskandarajah Suhothayan
Why are we not using different permissions for each dashboard than using
 roles. I believe using permissions will be more scalable than using roles.
WDYT?

Regards
Suho

On Tue, Jun 7, 2016 at 2:38 PM, Nisala Nanayakkara  wrote:

> Hi Udara,
>
> Since these are internal roles, they are not stored in LDAP. So it will
> work fine.
>
> Thanks,
> Nisala
>
> On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake  wrote:
>
>> Another question, ​Is this going to work if we have to connect to a
>> read-only LDAP/A
>> ​D​
>> userstore?
>>
>> On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
>> wrote:
>>
>>> Is this model scalable? Because per dashboard we will have to create 4
>>> internal roles. So if we have N number of dashboards we will end up having
>>> 4 * N number of internal roles.
>>>
>>> @ IS team : is this approach fine? Or is there any better approach?
>>>
>>> Thanks,
>>> Tanya
>>>
>>> On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
>>> wrote:
>>>
 adding Johan and Manuranga

 Thanks,
 Nisala

 On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
 wrote:

> Hi all,
>
> I am working on implementing an access levels model for WSO2 Dashboard
> Server. Currently global permission model for create/delete/login is
> implemented by Megala. Since it does not support to provide per dashboard
> level access for the users. I am going to extend it and implement a
> permission model that can be used to provide per dashboard level access 
> for
> the users.
>
> In order to implement this feature, I am going to add four roles at
> dashboard creation time as follows,
>
>- internal/dashboard/{dashboardID}/editor
>- internal/dashboard/{dashboardID}/viewer
>- internal/dashboard/{dashboardID}/settings
>- internal/dashboard/{dashboardID}/delete
>
> At the dashboard creation time, the user who creates the dashboard
> will get all the four roles. But other users have to get above roles to do
> appropriate actions to the dashboard. So that we can set above four roles
> for the users and They will be given different access levels according to
> their roles.
>
> Please feel free to give any feedback.
>
> Thanks,
> Nisala
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile:(+94)717600022
> WSO2 Inc., http://wso2.com/
>



 --
 *Nisala Niroshana Nanayakkara,*
 Software Engineer
 Mobile:(+94)717600022
 WSO2 Inc., http://wso2.com/

>>>
>>>
>>>
>>> --
>>> Tanya Madurapperuma
>>>
>>> Senior Software Engineer,
>>> WSO2 Inc. : wso2.com
>>> Mobile : +94718184439
>>> Blog : http://tanyamadurapperuma.blogspot.com
>>>
>>
>>
>>
>> --
>> Regards,
>> UdaraR
>>
>
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile:(+94)717600022
> WSO2 Inc., http://wso2.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 

*S. Suhothayan*
Technical Lead & Team Lead of WSO2 Complex Event Processor
*WSO2 Inc. *http://wso2.com
* *
lean . enterprise . middleware


*cell: (+94) 779 756 757 | blog: http://suhothayan.blogspot.com/
twitter: http://twitter.com/suhothayan
 | linked-in:
http://lk.linkedin.com/in/suhothayan *
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Rajith Vitharana
Hi Tanya,

On Tue, Jun 7, 2016 at 3:21 PM, Tanya Madurapperuma  wrote:

> Hi Rajith,
>
> We have not done any GA release, not even an Alpha release of the product
> with this, but a component repo release.
>
Still if this is a API change to a component which we already released to
public, I feel we have to think of those aspects as well. (Conflicts
happens only if some one is going to use it, hence kind of taking a chance
doing such release, if we can't 100% sure no one will going to use that) or
else we may need to provide migration (support when/if) needed. Just my two
cents :)

Thanks,

-- 
Rajith Vitharana

Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94715883223
Blog : http://lankavitharana.blogspot.com/
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Do we need a House Keeping Task for C5 Based Products

2016-06-07 Thread Thusitha Thilina Dayaratne
Hi All,

I'm trying to implement file upload support for msf4j with FormParam. In
the none streaming mode, we need to create temp files in some location and
clean them after a particular time period.

For that purpose at the moment I'm using apache commons-io provided
FileCleaningTracker[1, 2]. There we can give the set of file objects that
we need to track. This will be running in a separate thread. When those
objects are eligible for GC, it will delete the those files. In this way we
can be sure that the temp objects will not get clear before the actual
service consumes them.

IMHO it would be much easier if we can provide a similar support from the
kernel level, since products will require similar functionality in the
future.

AFAIU rather than tracking the file object references, if we run this as a
periodic task (like in c4) we have to assume that the temp files are been
consumed after a pre-configured time. Is it safe to assume so?

WDYT?

[1] -
https://commons.apache.org/proper/commons-io/javadocs/api-2.2/org/apache/commons/io/FileCleaningTracker.html
[2] -
https://github.com/apache/commons-io/blob/trunk/src/main/java/org/apache/commons/io/FileCleaningTracker.java

Thanks
-- 
Thusitha Dayaratne
Software Engineer
WSO2 Inc. - lean . enterprise . middleware |  wso2.com

Mobile  +94712756809
Blog  alokayasoya.blogspot.com
Abouthttp://about.me/thusithathilina
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Tanya Madurapperuma
Hi Rajith,

We have not done any GA release, not even an Alpha release of the product
with this, but a component repo release.

Thanks,
Tanya

On Tue, Jun 7, 2016 at 3:17 PM, Rajith Vitharana  wrote:

> Hi Tanya,
>
> On Tue, Jun 7, 2016 at 3:11 PM, Tanya Madurapperuma 
> wrote:
>
>> Hi all,
>>
>> During an offline discussion with Jerad following modification were
>> suggested regarding the directory structure of the extension model. All
>> these changes are subjected to js and css file locations.
>>
>> *Chart template structure*
>>
>> |── line-chart
>>   │   ├── css
>>   │   │   └── line-chart.css
>>   │   └── js
>>   │   ├── d3.min.js
>>   │   ├── vega.js
>>   │   └── VizGrammar.min.js
>>|── config.json
>>   ├── api.js
>>
>>
>> *Changes to the existing model*
>>
>>- rename index.js to api.js
>>- rename chart-libs folder to js
>>- have a css folder in the same level
>>
>>
>> *Generated gadget structure*
>>
>> └── test_gadget
>> │   │   ├── conf.json
>> │   │   ├── css
>> │   │   │   └── line-chart.css
>> │   │   ├── gadget-controller.jag
>> │   │   ├── gadget.json
>> │   │   ├── index.png
>> │   │   ├── index.xml
>> │   │   └── js
>> │   │   ├── core
>> │   │   │   ├── gadget-core.js
>> │   │   │   ├── line-chart-api.js
>> │   │   │   └── provider-api.js
>> │   │   ├── d3.min.js
>> │   │   ├── vega.js
>> │   │   └── VizGrammar.min.js
>>
>>
>> *Changes to the existing model*
>>
>>- Instead of the *chart-libs* folder inside *js* folder, have a *core
>>*folder inside *js *folder and place chart specific js files in js
>>folder
>>
>>
>> *Folder structure for storing common libs*
>>
>> portal
>>   |── gadget-commons
>>
>>├── css
>>│   └── common.css
>>└── js
>>└── common.js
>>
>>
>> *Changes to the existing model*
>>
>>- Now we have common libs inside portal/libs/common-chart-libs/
>>
>> *chart config.json*
>>
>> "common": {
>> "js": ["common"],
>> "css": ["common"]
>> },
>> "chart": {
>> "js": ["d3.min", "vega", "VizGrammar.min"],
>> "css": ["line-chart"]
>> }
>>
>> *existing config.json*
>>
>> "common-libs" : ["wso2gadgets","chart-utils"],
>> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>>
>> I think this model is cleaner and intuitive than the exiting model.
>> AFAIK existing wizard is only used for IOT analytics. If there are no
>> concerns from them shall we move to this new model?
>>
> If we have released a version with earlier method, there may be people
> using it in future(even though only IOT is using that for now) so it's
> better to think of a migration process as well. Or else proper
> documentation and ask not to use earlier version (which I feel is not a
> good thing)
>
> Thanks,
>
> --
> Rajith Vitharana
>
> Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94715883223
> Blog : http://lankavitharana.blogspot.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Rajith Vitharana
Hi Tanya,

On Tue, Jun 7, 2016 at 3:11 PM, Tanya Madurapperuma  wrote:

> Hi all,
>
> During an offline discussion with Jerad following modification were
> suggested regarding the directory structure of the extension model. All
> these changes are subjected to js and css file locations.
>
> *Chart template structure*
>
> |── line-chart
>   │   ├── css
>   │   │   └── line-chart.css
>   │   └── js
>   │   ├── d3.min.js
>   │   ├── vega.js
>   │   └── VizGrammar.min.js
>|── config.json
>   ├── api.js
>
>
> *Changes to the existing model*
>
>- rename index.js to api.js
>- rename chart-libs folder to js
>- have a css folder in the same level
>
>
> *Generated gadget structure*
>
> └── test_gadget
> │   │   ├── conf.json
> │   │   ├── css
> │   │   │   └── line-chart.css
> │   │   ├── gadget-controller.jag
> │   │   ├── gadget.json
> │   │   ├── index.png
> │   │   ├── index.xml
> │   │   └── js
> │   │   ├── core
> │   │   │   ├── gadget-core.js
> │   │   │   ├── line-chart-api.js
> │   │   │   └── provider-api.js
> │   │   ├── d3.min.js
> │   │   ├── vega.js
> │   │   └── VizGrammar.min.js
>
>
> *Changes to the existing model*
>
>- Instead of the *chart-libs* folder inside *js* folder, have a *core 
> *folder
>inside *js *folder and place chart specific js files in js folder
>
>
> *Folder structure for storing common libs*
>
> portal
>   |── gadget-commons
>
>├── css
>│   └── common.css
>└── js
>└── common.js
>
>
> *Changes to the existing model*
>
>- Now we have common libs inside portal/libs/common-chart-libs/
>
> *chart config.json*
>
> "common": {
> "js": ["common"],
> "css": ["common"]
> },
> "chart": {
> "js": ["d3.min", "vega", "VizGrammar.min"],
> "css": ["line-chart"]
> }
>
> *existing config.json*
>
> "common-libs" : ["wso2gadgets","chart-utils"],
> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>
> I think this model is cleaner and intuitive than the exiting model.
> AFAIK existing wizard is only used for IOT analytics. If there are no
> concerns from them shall we move to this new model?
>
If we have released a version with earlier method, there may be people
using it in future(even though only IOT is using that for now) so it's
better to think of a migration process as well. Or else proper
documentation and ask not to use earlier version (which I feel is not a
good thing)

Thanks,

-- 
Rajith Vitharana

Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94715883223
Blog : http://lankavitharana.blogspot.com/
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Modification of the gadget generation wizard's extension structure

2016-06-07 Thread Tanya Madurapperuma
Hi all,

During an offline discussion with Jerad following modification were
suggested regarding the directory structure of the extension model. All
these changes are subjected to js and css file locations.

*Chart template structure*

|── line-chart
  │   ├── css
  │   │   └── line-chart.css
  │   └── js
  │   ├── d3.min.js
  │   ├── vega.js
  │   └── VizGrammar.min.js
   |── config.json
  ├── api.js


*Changes to the existing model*

   - rename index.js to api.js
   - rename chart-libs folder to js
   - have a css folder in the same level


*Generated gadget structure*

└── test_gadget
│   │   ├── conf.json
│   │   ├── css
│   │   │   └── line-chart.css
│   │   ├── gadget-controller.jag
│   │   ├── gadget.json
│   │   ├── index.png
│   │   ├── index.xml
│   │   └── js
│   │   ├── core
│   │   │   ├── gadget-core.js
│   │   │   ├── line-chart-api.js
│   │   │   └── provider-api.js
│   │   ├── d3.min.js
│   │   ├── vega.js
│   │   └── VizGrammar.min.js


*Changes to the existing model*

   - Instead of the *chart-libs* folder inside *js* folder, have a
*core *folder
   inside *js *folder and place chart specific js files in js folder


*Folder structure for storing common libs*

portal
  |── gadget-commons

   ├── css
   │   └── common.css
   └── js
   └── common.js


*Changes to the existing model*

   - Now we have common libs inside portal/libs/common-chart-libs/

*chart config.json*

"common": {
"js": ["common"],
"css": ["common"]
},
"chart": {
"js": ["d3.min", "vega", "VizGrammar.min"],
"css": ["line-chart"]
}

*existing config.json*

"common-libs" : ["wso2gadgets","chart-utils"],
"chart-libs" : ["d3.min","vega","VizGrammar.min"]

I think this model is cleaner and intuitive than the exiting model.
AFAIK existing wizard is only used for IOT analytics. If there are no
concerns from them shall we move to this new model?

@ Suho, Dunith : WDYT ? Will this incur lot of changes from IOT side?
Appreciate your input.

Thanks,
Tanya

-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Susinda Perera
What is the requirement to have per dashboard permission model. What if we
go with only four roles (global). I think in Api manager we can edit one
api created by one user, by some other user (having create permissions). We
can limit acess by tenant level. Will something like that works here.

On Tue, Jun 7, 2016 at 2:38 PM, Nisala Nanayakkara  wrote:

> Hi Udara,
>
> Since these are internal roles, they are not stored in LDAP. So it will
> work fine.
>
> Thanks,
> Nisala
>
> On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake  wrote:
>
>> Another question, ​Is this going to work if we have to connect to a
>> read-only LDAP/A
>> ​D​
>> userstore?
>>
>> On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
>> wrote:
>>
>>> Is this model scalable? Because per dashboard we will have to create 4
>>> internal roles. So if we have N number of dashboards we will end up having
>>> 4 * N number of internal roles.
>>>
>>> @ IS team : is this approach fine? Or is there any better approach?
>>>
>>> Thanks,
>>> Tanya
>>>
>>> On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
>>> wrote:
>>>
 adding Johan and Manuranga

 Thanks,
 Nisala

 On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
 wrote:

> Hi all,
>
> I am working on implementing an access levels model for WSO2 Dashboard
> Server. Currently global permission model for create/delete/login is
> implemented by Megala. Since it does not support to provide per dashboard
> level access for the users. I am going to extend it and implement a
> permission model that can be used to provide per dashboard level access 
> for
> the users.
>
> In order to implement this feature, I am going to add four roles at
> dashboard creation time as follows,
>
>- internal/dashboard/{dashboardID}/editor
>- internal/dashboard/{dashboardID}/viewer
>- internal/dashboard/{dashboardID}/settings
>- internal/dashboard/{dashboardID}/delete
>
> At the dashboard creation time, the user who creates the dashboard
> will get all the four roles. But other users have to get above roles to do
> appropriate actions to the dashboard. So that we can set above four roles
> for the users and They will be given different access levels according to
> their roles.
>
> Please feel free to give any feedback.
>
> Thanks,
> Nisala
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile:(+94)717600022
> WSO2 Inc., http://wso2.com/
>



 --
 *Nisala Niroshana Nanayakkara,*
 Software Engineer
 Mobile:(+94)717600022
 WSO2 Inc., http://wso2.com/

>>>
>>>
>>>
>>> --
>>> Tanya Madurapperuma
>>>
>>> Senior Software Engineer,
>>> WSO2 Inc. : wso2.com
>>> Mobile : +94718184439
>>> Blog : http://tanyamadurapperuma.blogspot.com
>>>
>>
>>
>>
>> --
>> Regards,
>> UdaraR
>>
>
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile:(+94)717600022
> WSO2 Inc., http://wso2.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Susinda Perera*
Software Engineer
B.Sc.(Eng), M.Sc(Computer Science), AMIE(SL)
Mobile:(+94)716049075
Blog: susinda.blogspot.com
WSO2 Inc. http://wso2.com/
Tel : 94 11 214 5345 Fax :94 11 2145300
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Access Level Model For WSO2 Dashboard Server

2016-06-07 Thread Nisala Nanayakkara
Hi Udara,

Since these are internal roles, they are not stored in LDAP. So it will
work fine.

Thanks,
Nisala

On Tue, Jun 7, 2016 at 10:57 AM, Udara Rathnayake  wrote:

> Another question, ​Is this going to work if we have to connect to a
> read-only LDAP/A
> ​D​
> userstore?
>
> On Tue, Jun 7, 2016 at 9:43 AM, Tanya Madurapperuma 
> wrote:
>
>> Is this model scalable? Because per dashboard we will have to create 4
>> internal roles. So if we have N number of dashboards we will end up having
>> 4 * N number of internal roles.
>>
>> @ IS team : is this approach fine? Or is there any better approach?
>>
>> Thanks,
>> Tanya
>>
>> On Mon, Jun 6, 2016 at 3:44 PM, Nisala Nanayakkara 
>> wrote:
>>
>>> adding Johan and Manuranga
>>>
>>> Thanks,
>>> Nisala
>>>
>>> On Mon, Jun 6, 2016 at 3:41 PM, Nisala Nanayakkara 
>>> wrote:
>>>
 Hi all,

 I am working on implementing an access levels model for WSO2 Dashboard
 Server. Currently global permission model for create/delete/login is
 implemented by Megala. Since it does not support to provide per dashboard
 level access for the users. I am going to extend it and implement a
 permission model that can be used to provide per dashboard level access for
 the users.

 In order to implement this feature, I am going to add four roles at
 dashboard creation time as follows,

- internal/dashboard/{dashboardID}/editor
- internal/dashboard/{dashboardID}/viewer
- internal/dashboard/{dashboardID}/settings
- internal/dashboard/{dashboardID}/delete

 At the dashboard creation time, the user who creates the dashboard will
 get all the four roles. But other users have to get above roles to do
 appropriate actions to the dashboard. So that we can set above four roles
 for the users and They will be given different access levels according to
 their roles.

 Please feel free to give any feedback.

 Thanks,
 Nisala
 --
 *Nisala Niroshana Nanayakkara,*
 Software Engineer
 Mobile:(+94)717600022
 WSO2 Inc., http://wso2.com/

>>>
>>>
>>>
>>> --
>>> *Nisala Niroshana Nanayakkara,*
>>> Software Engineer
>>> Mobile:(+94)717600022
>>> WSO2 Inc., http://wso2.com/
>>>
>>
>>
>>
>> --
>> Tanya Madurapperuma
>>
>> Senior Software Engineer,
>> WSO2 Inc. : wso2.com
>> Mobile : +94718184439
>> Blog : http://tanyamadurapperuma.blogspot.com
>>
>
>
>
> --
> Regards,
> UdaraR
>



-- 
*Nisala Niroshana Nanayakkara,*
Software Engineer
Mobile:(+94)717600022
WSO2 Inc., http://wso2.com/
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Dep sync strategies for Carbon 4 products in Kubernetes

2016-06-07 Thread Chamila De Alwis
Hi Gayan,


On Tue, Jun 7, 2016 at 12:11 PM, Gayan Gunarathne  wrote:

>
> Do we have option get the update only if the changes happen? Without doing
> a loop in a particular period. Specially this will be needed for the multi
> tenant scenario to minimize the cpu utilization.
>

>From the Worker's POV it's not possible to detect if the Manager updated
any artifacts, unless there is a cluster message (which doesn't get
published if SVNDepSync is disabled). AFAIK this kind of a messaging model
would be included in C5.


>
>>
>>>
>>> ​
>>> The problem with these two approaches is that it depends on a single GW
>>> manager node. For the push method, multiple GW managers should not
>>> repeatedly do Rsync calls to the workers. In the pull method, if multiple
>>> GW manager nodes are present (and fronted with a load balancer with
>>> Active/Passive failover), they should have the artifacts synchronized. This
>>> could be possible using a hostPath volume between the GW Manager pod
>>> replicas however, it is yet to be tested.
>>>
>>> Additionally, Kubernetes supports a volume plugin named Git Volume [2],
>>> which is basically an emptyDir volume with an initial "git clone" command
>>> done on the provided remote repository.
>>>
>>
>
> Can we do it with docker containers perspective without tightly coupled to
> Kubernetes. Can we use container mounts to achieve this? If we can use that
> we can use it with docker compose and mesosphere etc.
>

Docker volumes are different from Kubernetes volumes, and it's not easy to
transfer volumes between nodes, when Kubernetes decides to move the pods or
spawn new replicas in different nodes. IMO the approach should be platform
specific.



Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] ESB Connector for Asana

2016-06-07 Thread Malaka Silva
Hi Nirthika,

Did we had the review? If not shall we plan for this soon.

On Fri, May 27, 2016 at 10:53 AM, Nirthika Rajendran <
nirthika.rajend...@gmail.com> wrote:

> Yes, we can come to the office for review next week
>
> Thank you.
>
>
> On Fri, May 27, 2016 at 7:54 AM, Malaka Silva  wrote:
>
>> Hi Nirthika,
>>
>> Great can we have a review before publishing next week. You can come to
>> our office or have it via google hangout?
>>
>> On Thu, May 26, 2016 at 8:20 PM, Nirthika Rajendran <
>> nirthika.rajend...@gmail.com> wrote:
>>
>>> Hi Malaka,
>>>
>>> We have completed most of the part of asana connector including
>>>
>>>1. Develop the methods
>>>2. Implement integration testing.
>>>3. Complete documentation.
>>>
>>>
>>> Thank you,
>>> Nirthika R
>>>
>>> On Wed, May 4, 2016 at 7:45 AM, Malaka Silva  wrote:
>>>
 Good progress. Keep us posted.

 On Wed, May 4, 2016 at 5:39 AM, Nirthika Rajendran <
 nirthika.rajend...@gmail.com> wrote:

> Hi Malaka,
>
> Yesterday we meet our mentor Kesavan to clear some problem in
> integration test. There we correct some errors and now we continue the 
> task.
>
> Thank you.
>
> On Tue, May 3, 2016 at 11:58 AM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> ok, thank you.
>>
>> On Tue, May 3, 2016 at 11:21 AM, Malaka Silva 
>> wrote:
>>
>>> After finishing the integration tests should be fine.
>>>
>>> On Tue, May 3, 2016 at 9:18 AM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Hi Malaka,

 Thank you, we already have two mentors Miss. Keerthika and Mr.
 Kesavan. So if we have any other problem we will contact you.

 Can we have the hangout after finishing the integration test or it
 is necessary to do now?

 Thank you.

 On Mon, May 2, 2016 at 9:31 PM, Malaka Silva 
 wrote:

> Hi Nirthika,
>
> Let us know if you need any assistance to complete this?
>
> We can have a hangout to review the work you have done so far if
> possible?
>
> On Wed, Mar 9, 2016 at 4:08 PM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Thank you Malaka,
>>
>> Sure we also expect that.
>>
>> On Wed, Mar 9, 2016 at 3:38 PM, Malaka Silva 
>> wrote:
>>
>>> Hi Nirthika,
>>>
>>> Good progress. We are also planning to arrange a meetup at
>>> Jaffna office in April. Feel free to come.
>>>
>>> On Wed, Mar 9, 2016 at 1:35 PM, Nirthika Rajendran <
>>> nirthika.rajend...@gmail.com> wrote:
>>>
 Hi Malaka,

 Every members in my team nearly take 10 methods and do the
 documentation and integration test for their part also.

 Now we all finished about 40 methods and user documentation.

 This month we have final semi examination, So we plan to
 continue the remaining part after the exam.

 Thank you

 Regards,
 Nirthika Rajendran


 On Sun, Feb 21, 2016 at 7:24 AM, Malaka Silva 
 wrote:

> Hi Nirthika,
>
> ​Good progress.​
>
>
> On Sat, Feb 20, 2016 at 7:51 PM, Nirthika Rajendran <
> nirthika.rajend...@gmail.com> wrote:
>
>> Thank you Malaka,
>>
>> Now we finished nearly 35 Methods, and going to develop
>> documentation.
>> We contact some staff from Jaffna branch as our mentors (Ms.
>> M. Keerthika). They also help us
>>
>> I will put the time window soon.
>>
>> Thank you,
>> Nirthika Rajendran.
>>
>>
>> On Sat, Feb 20, 2016 at 12:26 PM, Malaka Silva <
>> mal...@wso2.com> wrote:
>>
>>> Looks good. Guess you are covering quite a lot of methods.
>>> What is the time window for this project?
>>>
>>> When we say complete connector, it should be all of the
>>> following.
>>>
>>>1. Develop the methods and do developer testing.
>>>2. Implement integration testing.
>>>3. Complete documentation.
>>>
>>> It's good if you can cover all the methods you mention.
>>> However if there are any time contains better to limit only
>>> important methods for the first version.
>>>
>>> On Sat, Feb 20, 2016 at 10:38 AM, Nirthika Rajendran <
>>> nirthika.rajen