This service is used to query graphql APIs and publish the results into Googles Pub/Sub
The configuration is done in the src/configs/graphs.json
file.
The structure of the json enforces a unique name for each subgraph to query.
Network or interval is required.
Field | Description |
---|---|
key | The name used internally and as type in the pub/sub message |
schema | URL to the graphql API (introspection has to be enabled) |
interval (optional) | Interval in which the API has to be queried in ms |
network (optional) | Defines the network to listen on and triggers the query on each new block |
additionalFields (optional) | Adds more fields in the key additionalFields to the PubSub message |
Example config for a :
{
"new-daos-govern": {
"schemas": [
{
"schema": "https://api.thegraph.com/subgraphs/name/aragon/aragon-govern-rinkeby",
"interval": 10000,
"additionalFields": {
"network": "rinkeby"
}
}
]
}
}
The queries can be stored in the queries folder. The folder structure is the following: queries -> (The name set as key in the config.json) -> .graphql
You can add multiple queries per API and all of them will be executed in the defined interval on a best effort basis.
The query executor passed following variables to the queries:
Name | Type | Description |
---|---|---|
$lastRun | BigInt! | Epoch timestamp of the last successful run |
$blocknumber | Int! | Number of the new block |
- ETH Mainnet
- Rinkeby
- Polygon Mainnet
- Mumbai
Variable | Possible values | Required |
---|---|---|
LOG_LEVEL | ERROR, WARN, INFO, DEBUG | no (default: ERROR) |
GOOGLE_APPLICATION_CREDENTIALS | * | yes |
TOPIC | * | no (default: graphql-events) |
DB_DATABASE | * | no (default: graphql-events) |
DB_HOST | * | no (default: 127.0.0.1) |
DB_USERNAME | * | no (default: user) |
DB_PASSWORD | * | no (default: password) |
DB_PORT | * | no (default: 5432) |
RPC_MAINNET | ws endpoints | no |
RPC_RINKEBY | ws endpoints | no |
RPC_POLYGON | ws endpoints | no |
RPC_MUMBAI | ws endpoints | no |
CACHE_RETENTION | number in ms | no (default: 604800000 = 7 days) |