!zSOyErzaWkDKUGeUBe:matrix.org

cylc web architecture

9 Members
architecture supporting the new Cylc web GUI1 Servers

Load older messages


Timestamp Message
11 Dec 2018
04:07:45@dwsutherland:matrix.orgDavid SutherlandForgive me! XD
04:08:29@dwsutherland:matrix.orgDavid SutherlandIt's an old article (so things may have moved on)
04:08:34@kinow:matrix.orgBruno P. KinoshitaMozilla Developer Network (MDN) has a simple chat example app... the client is pretty much the same style for all applications... a JS client, that establishes communication with background server. In this case, they used JS for the server, but in our case I believe we would have Tornado serving WebSockets. But might be useful: https://github.com/mdn/samples-server/tree/master/s/websocket-chat
04:10:11@kinow:matrix.orgBruno P. KinoshitaAnd there was some turmoil around a recent security bug in Kubernetes, I received the news in Melbourne, but didn't have time to read the article with calm: https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/ I believe the bug involves WebSockets (if you search CVE and WebSockets, there's a few different types of attacks, so we will have to be extra careful in the implementation, but totally doable if it brings good user experience and performance 😀)
04:12:30@dwsutherland:matrix.orgDavid SutherlandHis fullstack article; https://www.fullstackpython.com/websockets.html had some really useful info (also about the proxy server etc)
04:14:48@kinow:matrix.orgBruno P. KinoshitaWorth noting that Vue, Angular, React, etc, these frameworks are built on reactive components or future/promises, that still do some sort of server polling. We will be still doing that, whether we use websockets or not. Web Sockets will simply used to avoid polling some service like graphql maybe... but for the rest of the web page, that'll keep normal HTML+JS, doing Ajax calls, etc.
04:15:33@kinow:matrix.orgBruno P. Kinoshita(but these frameworks can easily use websockets/sse/etc too, normally either via browser default library, or through some other third-party library)
04:16:11@kinow:matrix.orgBruno P. KinoshitaTime to go watch kevin hart now. They sent an e-mail saying that he strictly prohibited mobile phones, so offline for the next 3/4 hours 🎉
04:22:06@revilo666:matrix.orgHilary OliverThat'll be fun.
04:28:35@dwsutherland:matrix.orgDavid Sutherland

Looks to be plenty of resources out there for you Bruno P. Kinoshita :
https://github.com/MetinSeylan/Vue-Socket.io
https://alligator.io/vuejs/vue-socketio/

Have fun (^.^)

09:13:57@matthewrmshin:matrix.orgMatt Shin Hilary Oliver: nice diagram. My initial comment is that it is worth labelling the communications by their logical nature OR their technology OR both (but not a mixture). E.g. For workflow<->job, you have got the outbound as "submit, poll, kill", and the inbound as "0mq". We should have "submit, poll, kill: (SSH +) CLI and "message: 0mq".
09:15:40@matthewrmshin:matrix.orgMatt ShinLooking at it again, I guess the arrows are of different colours, so maybe OK as-is.
09:25:07@matthewrmshin:matrix.orgMatt ShinOn the other note, I would like to explore ways in which we can run automated tests for the new architecture and its components. Any suggestions?
10:52:36@revilo666:matrix.orgHilary Oliver Matt Shin: maybe Docker is the answer to integration testing such an array of components ...
10:52:47@kinow:matrix.orgBruno P. Kinoshita
In reply to @dwsutherland:matrix.org

Looks to be plenty of resources out there for you Bruno P. Kinoshita :
https://github.com/MetinSeylan/Vue-Socket.io
https://alligator.io/vuejs/vue-socketio/

Have fun (^.^)

will definitely try these out when I start working on the Web GUI
10:56:08@kinow:matrix.orgBruno P. Kinoshita

Right now I have one pending question to make sure we can go with JS (which is simpler for everybody to read/alter the code): Q) if we use JS, do we have any risk of being unable to use TypeScript components?

The reason for this question is because right now we have a dummy app written in TS (for security reason, had to quickly update it and decided to also try the TS version). But vue's apollo client for graphql is JS only, untyped.

I followed the docs for importing an untyped JS module into a TS application, and it didn't work... but I didn't have much time to try more. So I would like to confirm first if there's any bridge from JS to TS... and if not, if there's any TS dependency/module that we would lose too much by not using. (wonder if martin ryan had some experience with TS x JS, maybe with Angular?)

10:58:14@kinow:matrix.orgBruno P. Kinoshita
In reply to @revilo666:matrix.org
Matt Shin: maybe Docker is the answer to integration testing such an array of components ...

Could work. And Travis-CI supports it too: https://docs.travis-ci.com/user/docker/

If we had REST, we could use something simple like Postman to write a suite of REST calls, which could be used outside of the test suite for testing (in EcoConnect we had a few Postman and SoapUI collections). Looks like the graphql support in Postman is still WIP tho

11:53:44@sadielbartholomew:matrix.orgSadie Bartholomew joined the room.
11:54:09@matthewrmshin:matrix.orgMatt Shin
In reply to @kinow:matrix.org

Could work. And Travis-CI supports it too: https://docs.travis-ci.com/user/docker/

If we had REST, we could use something simple like Postman to write a suite of REST calls, which could be used outside of the test suite for testing (in EcoConnect we had a few Postman and SoapUI collections). Looks like the graphql support in Postman is still WIP tho

👍
21:36:37@martinryan:matrix.orgmartin I've ported JS utilities to Typescript for use in an Angular app by rewriting them Bruno P. Kinoshita
21:38:14@kinow:matrix.orgBruno P. Kinoshita Thanks martin ryan ! Thought there could be some special-magic library somewhere for compatibility, but looks like the only option is porting the code to TS.
12 Dec 2018
09:16:14@wxtim:matrix.orgwxtim joined the room.
13:17:00@wxtim:matrix.orgwxtim set a profile picture.
19:38:31@davidmatthews:matrix.orgDavid Matthews set a profile picture.
13 Dec 2018
07:58:55@dwsutherland:matrix.orgDavid Sutherland set a profile picture.
16 Dec 2018
03:43:04@revilo666:matrix.orgHilary Olivercylc-8-architecture.png
cylc-8-architecture.png
03:50:39@revilo666:matrix.orgHilary OliverFinal (?-ish) architecture diagram. (I've since also added "ssh or sudo or PBS or ..." to the "spawn UI Server" connection.
17 Dec 2018
12:46:39Room Avatar Renderer.
18 Dec 2018
01:02:27@revilo666:matrix.orgHilary Oliver All - new Room created #cylc-comms-protocols:matrix.org for discussion of WebSocket, ZeroMQ, GraphQL etc. Have issued a few invites; others join if interested.
01:03:38@revilo666:matrix.orgHilary Oliver(This Room is for wider/big-picture architecture ... loosely speaking)

Show newer messages


Back to Room List