Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

- Breaking: GraphQL `interface` and `union` output types are now lowered into tagged-variant NDC object types by default.
- Lowered object types include `__typename` and one nullable field per concrete type (`on_<ConcreteType>`).
- Query generation translates tagged variant selections to GraphQL inline fragments (`... on <ConcreteType>`).
- Validation now fails early with clear errors for unsupported polymorphic schemas (for example unions/interfaces without concrete object members, or unresolved type references).

## [0.3.0]

- Upgrade ndc-spec v0.2.10 and ndc-rust-sdk
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ Below, you'll find a matrix of all supported features for the GraphQL connector:
| Header Passthrough | ✅ | Entire headers can be forwarded |
| Request-level Arguments | ✅ | Support dynamic headers from the from Pre-NDC Request Plugin |
| Subscriptions | ❌ | |
| Unions | | Can be brought in via scalar types |
| Interfaces | | |
| Unions | | Lowered to tagged-variant object types (`__typename`, `on_<Type>`) |
| Interfaces | | Lowered to tagged-variant object types (`__typename`, `on_<Type>`) |
| Relay API | ❌ | |
| Directives | ❌ | @cached, Apollo directives |

Expand All @@ -57,6 +57,10 @@ Below, you'll find a matrix of all supported features for the GraphQL connector:
* Error formatting
- The format of errors from the connector does not currently match V2 error formatting
- No "partial error" or "multiple errors" responses
* Polymorphic output lowering
- GraphQL `interface` and `union` outputs are lowered into synthetic object types in NDC metadata.
- Lowered object types expose `__typename` plus one nullable tagged field per concrete type: `on_<ConcreteType>`.
- When lowering is not possible (for example no concrete object members), config/schema validation fails with a targeted error.
* Pattern matching in request header forwarding configuration
- This uses simple glob patterns
- More advanced matching and extraction is not currently supported
Expand Down Expand Up @@ -89,4 +93,4 @@ You can use a [Pre-NDC Request Plugin](https://hasura.io/docs/3.0/plugins/introd
}
}
}
```
```
Loading
Loading