hasura / hasura/graphql-engine
Expanded use of namespaces for top level fields in the graph
- Dominant language
- TypeScript
- Stars
- 32.1k
- Forks
- 3k
- PR merge metrics
- PR metrics pending
Description
### Is your proposal related to a problem?
Currently, viewing the large number of top level fields that are available in our graph either through GraphiQL or using autocomplete makes it burdensome to hunt through the hundreds of entries looking for the one in particular that is wanted.
Additionally, it is only possible to categorize or compartmentalize those fields by prefixing the names.
### Describe the solution you'd like
I think that expanding the ability to use namespaces would be a worthwhile feature to add. They allow organization and compartmentalization of the top level fields in the graph which not only helps when exploring the tree in GraphiQL but also when using autocomplete.
If it were possible to specify a namespace similar to how they can be specified for database connections, but also be able to use it for schemas, tables, or remote schemas, this would allow for a compact and tidy graph that could be explored by a GraphQL query author.
### Describe alternatives you've considered
We do not want to create separate database connections since that would prevent a cross-schema query plan. We further are not satisfied with simple prefixing because it doesn't reduce the visual clutter of either the explorer or the autocomplete list.
Contributor guide
Research direction
No files, tests, or entry points are identified in the issue. Start by tracing how database-connection namespaces are represented and exposed through GraphQL, then determine how the same concept could cover schemas, tables, and remote schemas without splitting connections. Done should include organized top-level fields for GraphiQL and autocomplete while preserving cross-schema query planning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, typescript
- Domain
- api, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100