Aggregator for every deprecated surface element the rewrite carries: directive arguments, input fields, and whole directives. The per-directive reference page is the canonical migration guide; this page is the index.
Source of truth
Two distinct sources feed this page:
-
SDL
@deprecated()markers on directive arguments and input fields. The rewrite’sdirectives.graphqlscarries them inline; the GraphQL spec only allows the marker onFIELD_DEFINITION,ARGUMENT_DEFINITION,INPUT_FIELD_DEFINITION, andENUM_VALUE, so this is the machine-detectable surface. -
Whole-directive deprecations, which the GraphQL spec cannot mark inline (the
@deprecateddirective is not allowed on a directive definition). These are documented prose-side on the directive’s reference page and aggregated below in a separate section.
The DeprecationsDocCoverageTest verifier asserts every SDL @deprecated() marker has a row in the table below; whole-directive deprecations are an explicit hand-maintained list (the verifier covers them via a small allow-list).
|
The rewrite’s |
Deprecated arguments and input fields
| Site | Status | Since | Migration |
|---|---|---|---|
Discouraged transition mechanism |
Rewrite v1 |
Drop the override and let the generator synthesize |
|
Phased out |
Rewrite v1 |
Use |
Deprecated whole directives and directive locations
The GraphQL spec does not allow @deprecated on a directive definition, nor on a single directive location (a scope in the on clause). Deprecations the spec cannot mark inline, whether the whole directive or one of its locations, are documented in the directive’s own reference page and listed here for visibility.
| Directive | Status | Since | Migration |
|---|---|---|---|
|
Deprecated; |
Rewrite v1 |
Remove |
Backward-compatibility alias |
Rewrite v1 |
Replace |
|
Ignored (parsed, drives nothing) |
Rewrite v1 |
Remove it. The backing Java class is now inferred from the producing field’s reflected type: an |
Rejected, not deprecated
These directives parse but the rewrite refuses to generate against them. They are not deprecations (a deprecated surface still works); they are explicit rejections that fail the build with a structured diagnostic. Listed here because users sometimes confuse the categories:
-
@notGeneratedis rejected. Remove it from the schema; the rewrite has no equivalent escape hatch.
See also
-
Diagnostics glossary catalogues the closed-set rejection kinds the validator emits.
-
@indexand@asConnectioncarry their own deprecation prose at the canonical site.