Skip to content

Pass the original request context to onReject handlers #769

Closed
@Betree

Description

@Betree

We are looking to adapt the rejection strategy based on who's calling our API. If it's a trusted account, we'll just log the complexity warning and move on. If it's not, we'll reject the request.

Proposed Solution
A possible way to handle that would be to have the original GraphQLRequestContext object available in the handler call. Pass the GraphQLRequestContext object via the first argument, context, so that it can be accessed as context.graphqlRequest. This would allow handlers to make informed decisions based on request metadata.

Example Usage

onReject: (context, error) => {
  const originalReq = context.graphqlRequest.contextValue;
  if (isTrustedAccount(originalReq.remoteUser)) {
    logWarning(requestContext);
  } else {
    throw new Error("Request rejected due to complexity constraints");
  }
}

Would love to hear your thoughts on this. I'm also open to contributing if we can reach a consensus on the specs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions