Skip to content

Support DQL variables in mutations #4615

@F21

Description

@F21

Experience Report

What you wanted to do

I want to perform a mutation in an upsert block using user-provided data safely.

What you actually did

upsert ($name: string){
      query {
        var(func: eq(xid, "http://schema.org/Person")) {
          Type as uid
        }
        var(func: eq(<http://schema.org/name>, "Robin Wright")) {
          Person as uid
        }
      }
      mutation {
          set {
           uid(Person) <xid> "https://www.themoviedb.org/person/32-robin-wright" .
           uid(Person) <http://schema.org/type> uid(Type) .
           uid(Person) <http://schema.org/name> $name .
           uid(Person) <dgraph.type> "Person" .
          }
      }
    }

Why that wasn't great, with examples

GraphQL variables are not supported in mutations, so it's impossible to safely mutate user-provided data without error-prone validation.

Any external references to support your case

None at the moment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stalearea/querylang/varsIssues related to queries with GraphQL variablesarea/upsertIssues related to upsert operations.kind/enhancementSomething could be better.status/acceptedWe accept to investigate/work on it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions