@deprecated directive is not showing in the scheme

Fields (Enums and Interfaces) marked with @deprecated are not appearing in the schema or documentation.

with @deprecated

input UpdateUserVesselSettings {
    context: VesselUser!
    isReceivingNCNotifications: Boolean
    permissionType: PermissionType @deprecated(reason: "replaced with roles and permission system, will be removed next release")
}

without @deprecated

input UpdateUserVesselSettings {
    context: VesselUser!
    isReceivingNCNotifications: Boolean
    permissionType: PermissionType
}

This may require a toggle option and an update to the Introspection query to fetch them.

https://spec.graphql.org/June2018/#sec-Field-Deprecation

Fields in an object may be marked as deprecated as deemed necessary by the application. It is still legal to query for these fields (to ensure existing clients are not broken by the change), but the fields should be appropriately treated in documentation and tooling.

https://spec.graphql.org/June2018/#sec-Deprecation

To support the management of backwards compatibility, GraphQL fields and enum values can indicate whether or not they are deprecated (isDeprecated: Boolean) and a description of why it is deprecated (deprecationReason: String).

Tools built using GraphQL introspection should respect deprecation by discouraging deprecated use through information hiding or developer‐facing warnings.

https://spec.graphql.org/June2018/#sec-Schema-Introspection

fields(includeDeprecated: Boolean = false): [__Field!]
enumValues(includeDeprecated: Boolean = false): [__EnumValue!]

Please authenticate to join the conversation.

Upvoters
Status

Needs Triage

Board

Feedback

Tags

Improvement

Date

10 months ago

Author

David Gray

Subscribe to post

Get notified by email when there are changes.