graphql-hive / graphql-hive/federation-composition

Demand Control `@listSize(slicingArguments: "...")` does not allow for nested keys

Open
#304 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
53
Forks
8
Avg merge
20h 50m
Merged PRs (30d)
10

Description

In recent versions of Demand Control, the runtime supports nested keys. To get there, we must go through compostion first, but using something like that fails:

```
type Query {
search(input: SearchInput!): [Book]
@listSize(slicingArguments: ["input.pagination.first"], requireOneSlicingArgument: true)
}
```

Due to the fact that our composition assumes that `slicingArguments` field must point to a single-named field `"input.pagination.first"` instead of checking the nested keys in the input types.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the composition failure with the nested `input.pagination.first` slicing argument shown in the issue, then trace how composition validates `slicingArguments` against the input types. Done means composition accepts nested keys while preserving the required slicing-argument behavior, with coverage for the provided schema example.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, typescript
Domain
backend-api-design
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.