Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: make tailcall "GraphQL over HTTP" compliant #1766

Open
tusharmath opened this issue Apr 22, 2024 · 27 comments · May be fixed by #1987
Open

feat: make tailcall "GraphQL over HTTP" compliant #1766

tusharmath opened this issue Apr 22, 2024 · 27 comments · May be fixed by #1987
Labels
💎 Bounty type: feature Brand new functionality, features, pages, workflows, endpoints, etc.

Comments

@tusharmath
Copy link
Contributor

tusharmath commented Apr 22, 2024

Currently, tailcall doesn't support GraphQL over HTTP Spec

Technical Requirements

  • All existing tests should pass
  • Add new tests for every compliance violation
  • Ensure there is no performance degradation

Additional Information
Use https://graphql-http.com to check for spec compliance.

Related Issues

Use the following configuration for testing.

schema
  @server(
    port: 8000
    graphiql: true
    hostname: "0.0.0.0"
    headers: {cors: {allowOrigins: ["*"], allowHeaders: ["*"], allowMethods: [POST, GET, OPTIONS]}}
  )
  @upstream(baseURL: "http://jsonplaceholder.typicode.com") {
  query: Query
}

type Query {
  posts: [Post] @http(path: "/posts")
}

type Post {
  id: Int!
  userId: Int!
  title: String!
  body: String!
}
@tusharmath tusharmath changed the title feat: Make tailcall GraphQL over HTTP compliant feat: make tailcall GraphQL over HTTP compliant Apr 22, 2024
@tusharmath tusharmath changed the title feat: make tailcall GraphQL over HTTP compliant feat: make tailcall "GraphQL over HTTP" compliant Apr 22, 2024
@tusharmath tusharmath added the type: feature Brand new functionality, features, pages, workflows, endpoints, etc. label Apr 22, 2024
@tusharmath
Copy link
Contributor Author

/bounty 200$

Copy link

algora-pbc bot commented Apr 22, 2024

💎 $200 bounty • Tailcall Inc.

Steps to solve:

  1. Start working: Comment /attempt #1766 with your implementation plan
  2. Submit work: Create a pull request including /claim #1766 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Additional opportunities:

🙏 Thank you for contributing to tailcallhq/tailcall!
🧐 Checkout our guidelines before you get started.

Attempt Started (GMT+0) Solution
🔴 @syedbarimanjan Apr 22, 2024, 6:50:15 AM WIP
🔴 @webbdays Apr 22, 2024, 1:48:23 PM WIP
🔴 @ologbonowiwi Apr 24, 2024, 3:58:41 PM WIP
🟢 @mogery May 19, 2024, 9:39:15 AM #1987

@syedbarimanjan
Copy link

Currently, tailcall doesn't support GraphQL over HTTP Spec

Did you mean to link this back to this issue? @tusharmath

@tusharmath
Copy link
Contributor Author

@syedbarimanjan Fixed it, thanks!

@webbdays
Copy link
Contributor

webbdays commented Apr 22, 2024

/attempt

Algora profile Completed bounties Tech Active attempts Options
@webbdays 1 tailcallhq bounty
Python, Rust,
JavaScript & more
Cancel attempt

@webbdays
Copy link
Contributor

I would like to follow this https://graphql.github.io/graphql-over-http/draft/ .
And work on one by one compliance requirement.

@webbdays
Copy link
Contributor

webbdays commented Apr 22, 2024

Hi @tusharmath,

But that specification is still in draft.
Any other specification to follow?

@ologbonowiwi
Copy link
Contributor

I'd love to work on this. Putting myself on the queue 🤚🏽

@tusharmath
Copy link
Contributor Author

Hi @tusharmath,

But that specification is still in draft.
Any other specification to follow?

It's going to be in the draft state for a while I think. Supporting it however will become a necessity very soon because most tooling will start depending on it.

I think the best way to start is to pick items based on the severity of the issues.

Copy link

algora-pbc bot commented Apr 23, 2024

@webbdays: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

@ologbonowiwi
Copy link
Contributor

@tusharmath, our playground is currently /graphql; should we change it to /graphiql so that /graphql is used as described in the spec?

@tusharmath
Copy link
Contributor Author

@tusharmath, our playground is currently /graphql; should we change it to /graphiql so that /graphql is used as described in the spec?

We can use https://tailcall.run/playground/ instead of the current self hosted one.

Copy link

algora-pbc bot commented Apr 24, 2024

The bounty is up for grabs! Everyone is welcome to /attempt #1766 🙌

@ologbonowiwi
Copy link
Contributor

ologbonowiwi commented Apr 24, 2024

Ok, now no one else is on the queue I'll /attempt.

Algora profile Completed bounties Tech Active attempts Options
@ologbonowiwi    32 tailcallhq bounties
+ 19 bounties from 5 projects
Rust, TypeScript,
Shell & more
Cancel attempt

@webbdays
Copy link
Contributor

webbdays commented Apr 24, 2024

i am in.
Currently working on the Accept header spec requirement.
You can work parallel on other spec requirements.

@webbdays
Copy link
Contributor

@ologbonowiwi

@ologbonowiwi
Copy link
Contributor

Oh, sorry, @webbdays; as for the comment from the Algora bot, I thought you had dropped your attempt.

I plan to start from GET/POST on the /graphql route.

@webbdays
Copy link
Contributor

ok.
POST is must
GET is optional
according to spec.

@webbdays
Copy link
Contributor

in spec
5.2 and 5.2.1 contradicts, isn't it?

@webbdays
Copy link
Contributor

webbdays commented Apr 24, 2024

@ologbonowiwi
Let me know which section numbers, you are currently plan to work?
so that i can skip.

@ologbonowiwi
Copy link
Contributor

Yeah, sure. For now, my only focus is to change the routing, so at least we can check against the app on https://graphql-http.com/

@webbdays
Copy link
Contributor

webbdays commented Apr 24, 2024

I think the best way to start is to pick items based on the severity of the issues
@tusharmath
Can you mention those here as a priority list.

@tusharmath
Copy link
Contributor Author

I think the best way to start is to pick items based on the severity of the issues
@tusharmath
Can you mention those here as a priority list.

Check out the report generated.

Copy link

algora-pbc bot commented Apr 25, 2024

@ologbonowiwi: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

Copy link

algora-pbc bot commented Apr 26, 2024

The bounty is up for grabs! Everyone is welcome to /attempt #1766 🙌

@mogery
Copy link
Contributor

mogery commented May 19, 2024

/attempt #1766

Algora profile Completed bounties Tech Active attempts Options
@mogery    6 tailcallhq bounties
+ 17 bounties from 6 projects
Rust, TypeScript,
HTML & more
Cancel attempt

@mogery mogery linked a pull request May 19, 2024 that will close this issue
6 tasks
Copy link

algora-pbc bot commented May 19, 2024

💡 @mogery submitted a pull request that claims the bounty. You can visit your bounty board to reward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 Bounty type: feature Brand new functionality, features, pages, workflows, endpoints, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants