graphql-engine
graphql-engine copied to clipboard
New (beta) relationship creation workflow requires 7x the number of clicks and takes 24x as long as the old workflow
This isn't exactly a bug, but I couldn't find where to provide direct feedback on the new (beta) relationship creation workflow so I'm raising it here. The new relationship creation workflow that is in beta, replacing the existing workflow, is SO BAD.
Version Information
v2.9.0-cloud.1
Environment
Cloud
What is the current behaviour?
Experience with Beta relationship creation:
- I can no longer see a list of all the possible auto-generated relationships.
- I can no longer have the console auto-generate array & object relationships for me.
- I have to manually type the name of the relationship I want, likely leading to inconsistent naming (was previously auto-generated following a naming convention)
- I have to manually select whether I am creating an object or array relationship (previously was auto-identified by the console)
- I have to manually figure out which tables to map between (previously was auto-generated for me)
- I have to manually map the fields of the columns I want to map (previously was auto-generated for me)
- There seems to be zero guardrails preventing you from creating broken relationships at all...
The overall process of creating a local relationship takes 24x as long as with the old process, requires 7x as many mouse clicks, and infinitely more typing (as the old system auto-generated the relationship names).
What is the expected behaviour?
Experience with current relationship creation: When creating a local relationship between two tables the console effectively auto-generates it for me, I can see a list of all the potential auto-generated relationships, and can create a new relationship with 2 mouse clicks and zero typed characters taking an average of around 3 seconds. The auto-generated relationships and names also provides guard rails to ensure consistency of relationship structure and naming.
How to reproduce the issue?
- Use the new Beta relationship creation workflow
Screenshots or Screencast
Old:

New:

Any possible solutions?
For the love of god, do NOT ship this new relationship creation workflow.
We've built an entire app around Hasura, but this workflow is so bad I'd honestly start looking to migrate off Hasura if it was implemented and replaced the current workflow. To me, this demonstrates a complete disregard for developer experience, which would cause me to seriously question Hasura's commitment to high-speed and low-complexity developer workflows.
This redesign is so bad, it breaks something as fundamental the entire concept of "linearity". You literally have to think in two different dimensions when creating a relationship now (table-table on the horizontal axis, field to field on the vertical axis). It's literally mind-bending. I can maybe see some logic in this replacing the current remote database or remote schema workflow, but for local relationships, it's orders of magnitude worse than the current experience.
Hey there @edmundmunday , So this feature is currently feature flagged as a preview since it wasn't 'feature complete'. We added this as early access so users could get the benefit of a GUI for cross-datasource relationships before the new interface was complete.
In the final version of this component we will continue supporting Suggested Relationships which will have a similar usage to the currently functionality present in the Relationships tab.
It looks something like this in the context of the relationships area:

Let us know if you'd like to jump on a chat, happy to chat about any other experiences you've had with the relationships section.
Hey @martin-hasura - fully appreciate that this is pre-release, I just couldn't see any other way of providing feedback on the experience, so figured this was the best medium.
Without seeing the E2E flow with the new experience, I can't really say if the suggested relationships is ok or not. The loss of suggested relationships was really only one of a few pretty major issues I personally have with the new relationship management screen, so I'm not 100% confident this will make everything ok.
I get the desire to want to make cross-data source relationships easier to manage, but you guys need to make sure it's not at the expense of local data source UX (and remember, UX doesn't mean how pretty it is, it means how easy it is to use hahah).
Happy to discuss more offline - although via email / a call would be preferable ([email protected]).
Converting to discussion.