Skip to content

Conversation

@theduke
Copy link
Contributor

@theduke theduke commented Nov 27, 2025

The GraphQL API was updated, making some previously mandatory fields optional.

This caused parsing issues and deployment failures for remote builds.

Mitigations have been implemented upstream, but we need to update the
schema to align the definitions.

The GraphQL API was updated, making some previously mandatory fields optional.

This caused parsing issues and deployment failures for remote builds.

Mitigations have been implemented upstream, but we need to update the
schema to align the definitions.
Copilot finished reviewing on behalf of theduke November 27, 2025 16:24
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the GraphQL schema and corresponding Rust types to align with upstream API changes, addressing parsing issues and deployment failures for remote builds. The changes make previously mandatory fields optional to accommodate backend API evolution.

Key changes:

  • Renamed StatusEnum::Failure to StatusEnum::Failed to match the GraphQL schema update
  • Made build_cmd, install_cmd, and start_cmd optional in BuildConfig and related types
  • Added extensive new types and fields to the GraphQL schema for rollouts, GitHub integrations, and billing improvements

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
lib/backend-api/src/types.rs Updated Rust types: renamed StatusEnum::Failure to Failed, made BuildConfig command fields optional, and added start_cmd field
lib/backend-api/schema.graphql Comprehensive GraphQL schema update: renamed FAILURE to FAILED, made build command fields nullable, added new types for rollouts/GitHub integrations, deprecated old fields, and enhanced billing types

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@syrusakbary syrusakbary left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR showcases one of my biggest concerns on the current architecture of GraphQL in the client. We are fetching data that we DON'T EVEN USE anywhere.

Basically so cynic works well, we lay out all the types regardless of us using them or not, or the endpoint needed the data or not.
This basically makes breaking changes impossible, when they should be possible if the data is not used.

@marxin marxin removed their request for review November 27, 2025 21:21
@theduke
Copy link
Contributor Author

theduke commented Nov 28, 2025

You can never break public GraphQL APIs, or public APIs in general, anyway, because you don't know who is using it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants