Skip to main content

Schema reference

Every page under this heading is generated from the schema the router actually serves — one page per type, query, mutation, union, enum, input and scalar, with the description its owning module wrote.

Nothing here is hand-maintained, and nothing here is a summary. The build reads one file, contracts/client-schema.graphql, which is extracted from the composed supergraph on every run of the schema pipeline. If a field is on this site, the router serves it; if it is not, the router does not.

How to read a page

SectionWhat it tells you
The description under the titleWritten for an integrator, by the team that owns the data (convention C-08). It says what the value means, in what units, and when it is null
FieldsEach field's type, whether it is non-null, and its own description. Types link to their own page
ArgumentsSame, for every argument. Connection arguments are explained once, in Pagination
DeprecatedGrouped at the end. Every deprecation carries a reason and a removal date — this API only ever removes things through that path

What is missing on purpose

  • Authorization annotations. The scopes a coordinate requires are real and enforced, but they are enforcement metadata rather than API surface, so they are documented once, as a table, in Authentication and scopes.
  • Federation internals. Entity keys, shared value types and the resolution fields the router calls between subgraphs are stripped before this site is generated. They are a property of how the graph is assembled, not something a client can send.

Two names that will look odd

Both are deliberate, both are recorded decisions, and both are easier to meet here than at three in the morning:

  • AdsPageInfo. Ads connections carry AdsPageInfo where HR connections carry PageInfo. The four Relay fields are identical; only the name differs. Pagination explains why, and why the alternative was worse.
  • Query and Mutation descriptions name one module. The root types are merged from every subgraph, and the merge keeps a single description. Read the per-field descriptions instead — those are always the owning module's.