from base64 import b64encode
from gql import Client, gql
from gql.transport.aiohttp import AIOHTTPTransport
from gql.transport.websockets import WebsocketsTransport
from pprint import pprint
import ssl
HASURA_ENDPOINT = "https://localhost:7443/hasura/v1/graphql"
BASIC_AUTH_USERNAME = "n"
BASIC_AUTH_PASSWORD = "n"
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
def basic_auth(username, password):
token = b64encode(f"{username}:{password}".encode('utf-8')).decode("ascii")
return f'Basic {token}'
transport = AIOHTTPTransport(
url=HASURA_ENDPOINT,
headers={'Authorization': basic_auth(BASIC_AUTH_USERNAME, BASIC_AUTH_PASSWORD)},
ssl=ssl_context
)
client = Client(transport=transport, fetch_schema_from_transport=True)
query = gql(
"""
query MyQuery {
files_enriched {
path
magic_type
hashes
size
}
}
"""
)
results = client.execute(query)
pprint(results["files_enriched"])