Clairvoyance
Obtain GraphQL API schema even if the introspection is disabled.
Introduction
Some GraphQL APIs have disabled introspection. For example, Apollo Server disables introspection automatically if the NODE_ENV environment variable is set to production.
Clairvoyance helps to obtain GraphQL API schema even if the introspection is disabled. It produces schema in JSON format suitable for other tools like GraphQL Voyager, InQL or graphql-path-enum.
Getting Started
pip
pip install clairvoyance
clairvoyance https://rickandmortyapi.com/graphql -o schema.json
# should take about 2 minutes
docker
docker run --rm nikitastupin/clairvoyance --help
Advanced Usage
Which wordlist should I use?
There are at least three approaches:
- Use one of the wordlists collected by Escape Technologies
- Use general English words (e.g. google-10000-english).
- Create target specific wordlist by extracting all valid GraphQL names from application HTTP traffic, from mobile application static files, etc. Regex for GraphQL name is
[_A-Za-z][_0-9A-Za-z]*.
Environment variables
LOG_FMT=`%(asctime)s \t%(levelname)s\t| %(message)s` # A string format for logging.
LOG_DATEFMT=`%Y-%m-%d %H:%M:%S` # A string format for logging date.
LOG_LEVEL=`INFO` # A string level for logging.
Support
In case of questions or issues with Clairvoyance please refer to wiki or issues. If this doesn't solve your problem feel free to open a new issue.
Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change. For more information about tests, internal project structure and so on refer to our contributing guide.
Documentation
You may find more details on how the tool works in the second half of the GraphQL APIs from bug hunter's perspective by Nikita Stupin talk.
Contributors
Thanks to the contributors for their work.
Metadata
Release files for Clairvoyance 2.5.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| clairvoyance-2.5.5.tar.gz | 55.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clairvoyance-2.5.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 114.2 kB
Release files / clairvoyance-2.5.5.tar.gz
| Download URL | clairvoyance-2.5.5.tar.gz |
|---|---|
| Size | 55.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d47d60adf5f43c5d7e99234637b8fa56c45dcb4373081a79b2e093daf707aee
|
|
BLAKE2b-256 checksum How to use checksums |
6cbc601921ec0aba1b73e3c7a9be2f8c82745d924760a2076b5d2d03db0bfbd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / clairvoyance-2.5.5-py3-none-any.whl
| Download URL | clairvoyance-2.5.5-py3-none-any.whl |
|---|---|
| Size | 58.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ddd05b15f7ad909de9711542c4f7be806fa9c42074165b2e8fb76d3877158b42
|
|
BLAKE2b-256 checksum How to use checksums |
4083ce26491b4f9c841960c085beefa9f003d0658d084fbfdfe411a546883a01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for Clairvoyance 2.5.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.