GraphQL anonymizer is CLI tool to anonymize schemas and queries by replacing all names with generic values
like field22
.
For example this schema and query:
type Query{
mySecret(arg: String): MySecret
}
type MySecret {
id: ID
dontExposeThat: String
}
query MySecretOp{mySecret(arg: "myValue") { id dontExposeThat } }
will be anonymized into:
schema {
query: Object1
}
type Object1 {
field1(argument1: String): Object2
}
type Object2 {
field2: ID
field3: String
}
query {field1(argument1:"stringValue1") {field2 field3}}
The easiest way to install it is via npm
:
npm i -g graphql-anonymizer
To anonymize a schema and query from a file:
graphql-anonymizer -s schema-file -q query-file
The -q
option is optional, you can also just anonymize a schema:
graphql-anonymizer -s schema-file
Alternatively the schema file can be read from stdin:
graphql-anonymizer < schema-file
The full list of options is available via --help
:
graphql-anonymizer --help
Please open an Issue to raise a bug or other feedback.
GraphQL Anonymizer is a thin wrapper around a class inside GraphQL Java . It is compiled via GraalVM to a native binary and distributed via NPM.
The cross-platform compiling, releasing and testing is done fully automatically via GitHub Actions. Have a look at release.yml and npm if you want to know all the details.