GithubHelp home page GithubHelp logo

Comments (5)

maticzav avatar maticzav commented on April 27, 2024

Hey @roytan883 👋,

Could you explain what the expected behaviour was? This could significantly improve my understanding of your problem.

from graphql-shield.

roytan883 avatar roytan883 commented on April 27, 2024

if i change the auth function name, you should understand:

const canGetFeed = rule()(async (parent, args, ctx, info) => {
  console.log("call canGetFeed")
  return true
})
const canGetPost = rule()(async (parent, args, ctx, info) => {
  console.log("call canGetPost")
  return false
})
const permissions = shield({
  Query: {
    feed: canGetFeed,
    post: canGetPost,
  },
})

Expect feed and post use different auth function. But the result is ONLY canGetFeed was called when is query like this:

query{
  feed{
    id
    text
  }
  post(id:"cjk9uyalu00110803ow0wrxwm"){
    id
    title
  }
}

from graphql-shield.

maticzav avatar maticzav commented on April 27, 2024

Hmm, ok. That is indeed an interesting situation. Let me explain how shield works; by default, every function is contextually cached. This means that regardless of parent or arguments function result caches and will be reused wherever the same rule is applied in a particular call.

Could you provide the actual code that you are using? That would help a lot.

Besides that, I recommend you check out the cache section of README. Maybe this could solve your problem. Otherwise I’ll help you get through the issue differently.

https://github.com/maticzav/graphql-shield/blob/master/README.md#cache

from graphql-shield.

maticzav avatar maticzav commented on April 27, 2024

Hey @roytan883 have you made any progress on this? 🙂

from graphql-shield.

stale avatar stale commented on April 27, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from graphql-shield.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.