graphql-engine/v3/crates/query-usage-analytics
Daniel Harvey 056b1c18fc Stop Nix rebuilding (#1329)
<!-- The PR description should answer 2 important questions: -->

### What

Our Nix build was building all the workspace crates as part of it's deps
step. This means when any library crate is changed, we throw away all
the caching, which isn't ideal. This filters the source files out of
those builds, so that we get more cache hits. We also move all Cargo
features into the workspace, which I've been meaning to do for ages, so
things are more consistent, and again, we get more cache hits generally.

V3_GIT_ORIGIN_REV_ID: c724b152692575edf6c00ab426e48ecca13aa998
2024-11-11 12:06:31 +00:00
..
src add mappings to the relationship usage analytics (#1125) 2024-09-30 10:09:23 +00:00
Cargo.toml Stop Nix rebuilding (#1329) 2024-11-11 12:06:31 +00:00
query_usage_analytics.jsonschema ENG-1227: mbs: reduce artifact size by omitting "default" values (#1323) 2024-11-07 16:35:05 +00:00
README.md data shape for query usage analytics (#606) 2024-05-28 09:51:09 +00:00

Query Usage Analytics

We want to gather usage analytics from a GraphQL query. Usage analytics of models, commands, fields, permissions, relationships etc. being used in the query.

For now, this crate defines the types we would construct for gathering usage analytics. Later, this can also include functions required to build up these types. Ideally, this crate should expose an API which the engine IR generation or query plan generation can use to create a usage analytics type and serialize and emit it.

The types here are a simplified version of the GraphQL query AST, OpenDD and metadata-resolve types.