!zSOyErzaWkDKUGeUBe:matrix.org

cylc web architecture

13 Members
architecture supporting the new Cylc web GUI1 Servers

Load older messages


SenderMessageTime
6 Jan 2020
@kinow:matrix.org@kinow:matrix.orgNah, it was a proxy issue. And you are probably not using any proxy.02:55:23
@oliver-sanders2:matrix.orgoliver sandersThere are a few issues like this kicking about, however, in his case it's an infinite re-direct loop02:55:34
@oliver-sanders2:matrix.orgoliver sandersI'm just getting sent back to the login page.02:56:00
@kinow:matrix.org@kinow:matrix.orgAh, in my case it was an infinite loop, that the browser would kill and show me a blank page if I remember correctly02:57:04
@oliver-sanders2:matrix.orgoliver sanders I can login, just /hup/spawn/ (or any other page for that matter) redirects back to hub/login. 02:58:13
@oliver-sanders2:matrix.orgoliver sandersIf I give an invalid user/password the auth fails02:58:25
@kinow:matrix.org@kinow:matrix.orgHilary had an issue in his computer in Exeter I think, that didn't happen in my environment. It later turned out to be his /etc/hosts02:58:53
@kinow:matrix.org@kinow:matrix.orghttps://github.com/cylc/cylc-uiserver/issues/5202:58:54
@kinow:matrix.org@kinow:matrix.orgWe never investigated it again.. but... who knows02:59:04
@oliver-sanders2:matrix.orgoliver sandersI must be doing something really stupid without realising or have some horrible box config.02:59:04
@oliver-sanders2:matrix.orgoliver sandersYES!03:02:09
@kinow:matrix.org@kinow:matrix.org I've PM'd the /etc/hosts from my box 03:02:13
@kinow:matrix.org@kinow:matrix.orgAaaaahhh03:02:16
@oliver-sanders2:matrix.orgoliver sanders
I must be doing something really stupid without realising
03:02:18
@kinow:matrix.org@kinow:matrix.orgWhat was that?03:02:26
@kinow:matrix.org@kinow:matrix.org👏03:02:31
@oliver-sanders2:matrix.orgoliver sanders (rejected your PM, your /etc/hosts are safe) 03:03:02
@oliver-sanders2:matrix.orgoliver sanders
In reply to @kinow:matrix.org
https://github.com/cylc/cylc-uiserver/issues/52
This issue had all the answers
03:03:12
@oliver-sanders2:matrix.orgoliver sanders Different /etc/hosts config than I'm used to. 03:03:39
@oliver-sanders2:matrix.orgoliver sandersNeed to use the loopback 127.0.0.103:03:54
@kinow:matrix.org@kinow:matrix.orgPhew, at least you solved it before the time to go home heh, won't have to worry about that any longer03:04:30
@oliver-sanders2:matrix.orgoliver sandersThanks so much, nearly lost a whole day to that one way or another03:04:53
@kinow:matrix.org@kinow:matrix.orgI'm adding a comment to the issue to mention you had an issue where you were being redirected back to the login page, and changing the /etc/hosts fixed it 👍️03:15:37
@oliver-sanders2:matrix.orgoliver sandersGood thinking.03:16:48
@oliver-sanders2:matrix.orgoliver sanders (BTW I was using 0.0.0.0:8000 to access the hub before and can prove it was working like that, /etc/hosts may have been changed by patching I don't know) 03:21:25
@kinow:matrix.org@kinow:matrix.org If you have a NIWA linux image, they do modify the /etc/hosts and other system files (e.g. wallpaper haha) every now and then. 03:22:22
8 Jan 2020
@davidmatthews:matrix.orgDavid MatthewsDoes the UIS create a log file? If not, I assume it will need to eventually?13:45:17
@kinow:matrix.org@kinow:matrix.orgjupyterhub emits logs to stderr/stdout. Users can redirect the output to files in the script that initializes it (e.g. systemd daemon script). What I've seen for spawners, is doing the same in the spawner init command in jupyterhub_config.py, adding the extra `> somefile` to c.Spawner.cmd We also have an external config for our python code in UIS. So users can also configure extra appenders if necessary.19:05:40
@davidmatthews:matrix.orgDavid MatthewsI'd have thought we'd want to have UIS log files created by default in a standard location with built in log rotation.20:32:09
10 Jan 2020
@oliver-sanders2:matrix.orgoliver sanders

GraphQL schema and versioning...

The UIS provides one GraphQL endpoint for the UI to connect to. The schema for this endpoint is imported from the associated installation of Cylc Flow.

This means that we can represent all workflows with a common schema allowing cross-workflow subscriptions etc. The downside is that in reality each workflow could be running under a different Cylc Version and so have a different schema.

So the UIS becomes the translation layer, when schema changes happen back-compat gets written there to upgrade old schema and fit them into the new model. Because we are using protobuff between the UIS and WS it's not changes in the GraphQL schema but the protobuff schema we need to protect against but it's the same concept.

This approach makes sense, the UI gets a nice stable GraphQL schema to work with. The issue is when we want to handle compatability at the UI rather than the UIS.

At the moment I'm working on mutations in the UI and the whole api-on-the-fly stuff. For this we need the UI to use the same GraphQL schema that the WS is running so that we are working with the correct set of mutations.

So how to give the UI access to this?

  1. Don't, always use the most contemporary schema.
    • Unhelpful as it could offer functionality which isn't available or conflicting documentation.
  2. Add new GraphQL endpoints at the UIS.
    • Makes cross-workflow mutations a conceptually interesting.
  3. Serve the Schema as a JSON object via a new endpoint at the UIS.
    • Mutations get sent to the UIS as JSON, the UIS does the rest.
  4. Something else?

For the moment I'm working with the GraphQL schema the UIS provides which is fine for now but towards 1.0.0 we will need to work out what the long-term plan is here.

01:07:36

Show newer messages


Back to Room ListRoom Version: 1