tailcall
tailcall copied to clipboard
feat: make tailcall "GraphQL over HTTP" compliant
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
- For the
/graphql
route refer to https://github.com/tailcallhq/tailcall/issues/1790
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!
}
/bounty 200$
đ $200 bounty âĸ Tailcall Inc.
Steps to solve:
-
Start working: Comment
/attempt #1766
with your implementation plan -
Submit work: Create a pull request including
/claim #1766
in the PR body to claim the bounty - Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts
đ Thank you for contributing to tailcallhq/tailcall! đ§ Checkout our guidelines before you get started. đĩ More about our bounty program.
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 | WIP |
đĸ @ssddOnTop | Jul 20, 2024, 9:07:26 AM | #2480 |
Currently, tailcall doesn't support GraphQL over HTTP Spec
Did you mean to link this back to this issue? @tusharmath
@syedbarimanjan Fixed it, thanks!
/attempt
Algora profile | Completed bounties | Tech | Active attempts | Options |
---|---|---|---|---|
@webbdays | 1 tailcallhq bounty | Python, Rust, JavaScript & more |
Cancel attempt |
I would like to follow this https://graphql.github.io/graphql-over-http/draft/ . And work on one by one compliance requirement.
Hi @tusharmath,
But that specification is still in draft. Any other specification to follow?
I'd love to work on this. Putting myself on the queue đ¤đŊ
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.
@webbdays: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then đ
@tusharmath, our playground is currently /graphql
; should we change it to /graphiql
so that /graphql
is used as described in the spec?
@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.
The bounty is up for grabs! Everyone is welcome to /attempt #1766
đ
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 |
i am in. Currently working on the Accept header spec requirement. You can work parallel on other spec requirements.
@ologbonowiwi
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.
ok. POST is must GET is optional according to spec.
in spec 5.2 and 5.2.1 contradicts, isn't it?
@ologbonowiwi Let me know which section numbers, you are currently plan to work? so that i can skip.
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/
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.
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.
@ologbonowiwi: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then đ
The bounty is up for grabs! Everyone is welcome to /attempt #1766
đ
/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 |
/attempt #1766
(there are some problems with async-graphql, will fix those first)
Algora profile | Completed bounties | Tech | Active attempts | Options |
---|---|---|---|---|
@ssddOnTop | 59 tailcallhq bounties | Rust, Java, C & more |
īš2389 |
Cancel attempt |
[!NOTE] The user @mogery is already attempting to complete issue #1766 and claim the bounty. We recommend checking in on @mogery's progress, and potentially collaborating, before starting a new solution.
I made this pull request to async_graphql to dictate that the extensions property is optional according to GraphQL over HTTP spec file.
https://github.com/async-graphql/async-graphql/pull/1569
@karatakis I am already working on this at https://github.com/tailcallhq/tailcall/pull/2480
and I think https://github.com/async-graphql/async-graphql/pull/1569 is duplicate of https://github.com/async-graphql/async-graphql/pull/1563