Note: This is still in experimental state and might change in the future!
Code outside of assembler/backends and assembler/graphql should not use
structs defined in assembler/graphql directly as these should only be valid
server side, being regenerated when the GraphQL schema changes.
Instead, code should use the structs defined here (or in similar other clients
for utilities building on top of GUAC). These are generated based on the query
documents that we want to send to the server.
GraphQL client configuration
genqlient.yaml: the configuration file for
genqlient to generate Go code from
GraphQL schema specification and the operation queries
operations/: the GraphQL queries that the client (e.g., GUAC) sends to the
server (e.g., GUAC database backend, via GraphQL)
helpers/: the GraphQL helper functions to return an assembler function given
a graphql client.
GraphQL client code generation
graphql.go: Mostly empty, contains load bearing comment to make sure Go code
is generated by go generate ./... whenever schema/operations change
generated/: Contains code generated via go generate ./... to marshal a
GraphQL query from Go structures and send it to the server. When the response
is returned, the same code transforms the response into Go structures. This is
based on what is included in operations/ and the GraphQL schema as defined
at the time of last generation.