Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Lack of Indication for Schema Changes Due to Code Updates and Option to Disable Breaking Changes #8

@schettn

Description

@schettn

Description:

The automatic GraphQL API generation feature in Pylon (as outlined in Pylon Documentation) simplifies the creation of GraphQL APIs but introduces a risk of unintended breaking changes due to code updates.

Problem:

When changes are made to the codebase, there is currently no built-in mechanism to indicate whether these changes result in a schema alteration. This absence of visibility can lead to unforeseen issues for API consumers if schema changes are introduced without adequate notice.

Proposed Solutions:

  1. Indication of Schema Changes:

    • Implement a feature that detects changes in the codebase and assesses their impact on the GraphQL schema.
    • Provide a report or notification indicating whether the changes lead to a schema modification. This could include:
      • Change Logs: Automated logs detailing schema changes after code updates.
      • Warnings: Alerts during the build or deployment process if a schema change is detected.
      • Versioning: Enhanced versioning to track schema changes more effectively.
  2. Option to Disable Breaking Changes:

    • Introduce a configuration option to disable breaking changes to the API. This would ensure that code updates cannot introduce breaking changes to the GraphQL schema unless explicitly allowed.
    • The option could be implemented as a flag or setting in the configuration, which, when enabled, enforces backward compatibility and prevents schema-breaking changes.

Benefit:

Implementing these features would enhance the stability of the API, improve the development workflow, and safeguard API consumers from unexpected disruptions caused by unintentional schema changes.

Related: #9

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions