graphql-python / graphql-python/gql-next

load_introspection_from_server does not use custom headers

Open
#25 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
78
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Hello I'm trying to test gql but running ` gql run` returned
```

[...]

File "/home/rdebroiz/.virtualenvs/test_gql/lib/python3.7/site-packages/gql/utils_schema.py", line 22, in load_schema
introspection = load_introspection_from_file(uri) if os.path.isfile(uri) else load_introspection_from_server(uri)
File "/home/rdebroiz/.virtualenvs/test_gql/lib/python3.7/site-packages/gql/utils_schema.py", line 13, in load_introspection_from_server
raise Exception(f'Query failed to run by returning code of {request.status_code}. {query}')
Exception: Query failed to run by returning code of 401.

[...]
```

I suspect the cause is that the custom headers are not used to load the schema from the configured endpoint.

```python
def load_introspection_from_server(url):
query = get_introspection_query()
request = requests.post(url, json={'query': query})
if request.status_code == 200:
return request.json()['data']

raise Exception(f'Query failed to run by returning code of {request.status_code}. {query}')
```

Here is what my `.gql.json` look likes:
```json
{
"schema": "http://hasura:10004/v1alpha1/graphql",
"endpoint": "http://hasura:10004/v1alpha1/graphql",
"documents": "./**/*.graphql",
"custom_header": {
"x-hasura-admin-secret": "adminpw",
"x-hasura-access-key": "userpw"
}
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with load_introspection_from_server in utils_schema.py and trace how schema loading receives the configured custom_header values. Check the authenticated introspection request path and any related tests or command configuration. Done means the configured headers are used when loading the schema and the reported 401 case is covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, python
Domain
api, authentication
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.