graphql-python / graphql-python/gql-next
load_introspection_from_server does not use custom headers
- 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