Fix object-list filter preflight plan traversal and argument identification
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- fsharp, graphql
- Domínio
- api, backend-api-design
Direção de pesquisa
Comece com o preflight da requisição de filtro ObjectListFilter e a travessia do plano executável; em seguida, revise a discussão do pull request vinculado para obter contexto. Rastreie os planos de collection deferred, streamed, live e nested, e verifique o tratamento do estado de inclusão e a identificação do argumento nullable ObjectListFilter adicionado pelo middleware. Está concluído quando os filtros wrapped e nested são coagidos, enquanto argumentos de filtro excluídos ou não relacionados são aceitos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
The object-list filter request preflight does not accurately follow the executable plan and can both miss invalid filters and reject valid requests.
The preflight should traverse deferred, streamed, live, and nested collection plans while only coercing the nullable ObjectListFilter argument added by the object-list filter middleware.
Source: https://github.com/fsprojects/FSharp.Data.GraphQL/pull/612#pullrequestreview-5253463363
Repro steps
-
Execute a query where an object-list filter is inside an
@defer,@stream, or@livewrapper, or inside a nested collection element plan. -
Observe that request-level filter coercion can be bypassed.
-
Execute a query containing an excluded subtree or an unrelated field with an argument such as
filter: String. -
Observe that the preflight can treat that argument as the middleware's object-list filter and reject an otherwise valid request.
Expected behavior
The preflight should:
- traverse
@defer,@stream, and@livewrappers transparently; - traverse collection element plans and nested filtered fields;
- skip nodes excluded by execution directives;
- coerce only fields whose definition contains the middleware-added nullable
ObjectListFilterargument.
Actual behavior
The traversal stops at wrappers and collection element plans, allowing wrapped or nested list filters to bypass request-level coercion. It also ignores inclusion state and identifies arguments by the name filter, which can incorrectly reject excluded subtrees or unrelated filter arguments.
Known workarounds
Avoid wrapping or nesting object-list-filtered fields and avoid unrelated arguments named filter. These are not practical general-purpose workarounds.
Related information
- Operating system: All
- Branch:
dev/ observed while reviewingtask-seq-field-streaming-fixes - .NET Runtime, CoreCLR or Mono Version: .NET 10
- Performance information, links to performance testing scripts: N/A
- Linguagem predominante
- F#
- Estrelas
- 407
- Forks
- 74
- Merge médio
- 15h 59min
- PRs com merge (30d)
- 20
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de fsprojects/FSharp.Data.GraphQL
-
Introspection emits JSON-serialized value as `defaultValue` instead of a GraphQL literal (breaks enum defaults)Talvez já em andamento @xperiandri assumiu há 9 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 65/100
fsprojects/FSharp.Data.GraphQL#623 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
fsprojects/FSharp.Data.GraphQL#596 ·
Mantenedores costumam responder em até 1 dia
-
`documentId` has different values for the same query contentTalvez já em andamento @xperiandri assumiu há 147 dias. Aberta
fsprojects/FSharp.Data.GraphQL#573 · 1 reação · 2 responsáveis ·
Mantenedores costumam responder em até 1 dia
-
FR: Suave packageTalvez já em andamento @xperiandri assumiu há 147 dias. Aberta
fsprojects/FSharp.Data.GraphQL#566 · 1 comentário · 1 reação · 2 responsáveis ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
fsprojects/FSharp.Data.GraphQL#542 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de fsprojects/FSharp.Data.GraphQL
Issues semelhantes
-
nixos/hyprland: wrapper source is a bash script and fails the ensure-wrapper-integrity ELF checkAberta0.kind: bug 6.topic: nixos
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
vllm-project/vllm#61131 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
kubernetes-client/python#2735 ·
Mantenedores costumam responder em até 1 dia
-
[Anon] Imperium - Adeptus Astartes - Dark Angels: Aggressors Autostorm Bolter Gauntlets IncorrectAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
GreedyBear-Project/GreedyBear#1727 ·
Mantenedores costumam responder em até 2 dias