Not sure if it could help to look at the SEAGrid desktop client. Thanks, Sudhakar.
From: Isuru Ranawaka <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Monday, April 6, 2020 at 11:11 PM To: Airavata Users <[email protected]>, "Christie, Marcus Aaron" <[email protected]> Cc: Airavata Dev <[email protected]> Subject: [External] Re: How to generate the structured js:es6 client stub for airavata api This message was sent from a non-IU address. Please exercise caution when clicking links or opening attachments from external sources. Hi Dinuka, Adding Marcus to the thread. He may also have good ideas on this. On Mon, Apr 6, 2020 at 6:03 PM Dinuka Desilva <[email protected]<mailto:[email protected]>> wrote: Hi Isuru & Suresh, Few concerns I have are, 1. Existing login implementation is a form submission and a server rendered html. And it's session based. 2. The endpoints are also session based and goes through CSRF verification. So, I'm not quite seeing any clear direction than electron app directly accessing the app by url. Any advice is much appreciated. what I have understood from your concerns, is that you are worrying about session management between the backend server and the frontend. Basically, where to decouple frontend view management logic from the frontend server API management layer. Is that your concern? Can you explain a bit more about how your electron app design decouples view management components (including HTML, CSS, JS) from the server access API layer?. Does it have any state management mechanism? Anyhow, we need CSRF verifications at least for authentication requests between frontend and backend. But, there should be a CSRF verification process between browser requests and frontend server. thanks Isuru Regards, Dinuka On Mon, Apr 6, 2020 at 6:31 PM Isuru Ranawaka <[email protected]<mailto:[email protected]>> wrote: Hi Dinuka, On Mon, Apr 6, 2020 at 3:11 AM Dinuka Desilva <[email protected]<mailto:[email protected]>> wrote: On Mon, 6 Apr 2020, 06:36 Suresh Marru, <[email protected]<mailto:[email protected]>> wrote: Hi Dinuka, We have not successfully used Thrift generated JS previously (its possible but do not have that experience within Airavata). Django portal uses the python generated code and exposes them as REST API’s using DRF (https://www.django-rest-framework.org/). The Vue.js UI components communicate to these REST API’s. I wonder if you can have electronJS talk to the same API’s instead of directly to Airavata API. Yes. Since airavata APIs doesn't have any authentication or authorization layer, I have to use the Django API. My only worry is then this become only a copy of the same application. Is that the only purpose of this? Airavata APIs do not have an authentication layer. But it has an authorization layer. You can refer to AiravataAPIServer class there it engages a security interceptor for authorization. Anyhow, I guess using same APIs that used by Vue.js will enhanced code reusability otherwise there will be two code bases for the same functionality. Also, we would like to move from Thrift to Protobuf and gRPC. I wonder if REST support can be more seamless once the migration is done. Suresh On Apr 5, 2020, at 4:17 PM, Dinuka Desilva <[email protected]<mailto:[email protected]>> wrote: Hi, I'm trying to generate the es6 client stub for airavata api using the following script. thrift -r --gen js:es6 ../../airavata/thrift-interface-descriptions/airavata-apis/airavata_api.thrift But, I'm not getting it correctly I guess. I'm getting a list of files in a folder called gen-js. Instead what I need is a structured code as there in the airavata-django-portal. I'm also not sure whether what's on the portal is a generated code. Please advise. <Screenshot 2020-04-06 at 1.42.41 AM.png> Can you help me? Regards, Dinuka -- Research Software Engineer Indiana University, IN -- Research Software Engineer Indiana University, IN
