You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
## [0.3.1]
11
11
12
12
- Add support for custom CA certificates and allow skipping TLS verification entirely
13
+
- Breaking: GraphQL `interface` and `union` output types are now lowered into tagged-variant NDC object types by default.
14
+
- Lowered object types include `__typename` and one nullable field per concrete type (`on_<ConcreteType>`).
15
+
- Query generation translates tagged variant selections to GraphQL inline fragments (`... on <ConcreteType>`).
16
+
- Validation now fails early with clear errors for unsupported polymorphic schemas (for example unions/interfaces without concrete object members, or unresolved type references).
Copy file name to clipboardExpand all lines: README.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,8 +47,8 @@ Below, you'll find a matrix of all supported features for the GraphQL connector:
47
47
| Header Passthrough | ✅ | Entire headers can be forwarded |
48
48
| Request-level Arguments | ✅ | Support dynamic headers from the from Pre-NDC Request Plugin |
49
49
| Subscriptions | ❌ ||
50
-
| Unions |❌|Can be brought in via scalar types |
51
-
| Interfaces |❌||
50
+
| Unions |✅|Lowered to tagged-variant object types (`__typename`, `on_<Type>`)|
51
+
| Interfaces |✅|Lowered to tagged-variant object types (`__typename`, `on_<Type>`)|
52
52
| Relay API | ❌ ||
53
53
| Directives | ❌ |@cached, Apollo directives |
54
54
@@ -57,6 +57,10 @@ Below, you'll find a matrix of all supported features for the GraphQL connector:
57
57
* Error formatting
58
58
- The format of errors from the connector does not currently match V2 error formatting
59
59
- No "partial error" or "multiple errors" responses
60
+
* Polymorphic output lowering
61
+
- GraphQL `interface` and `union` outputs are lowered into synthetic object types in NDC metadata.
62
+
- Lowered object types expose `__typename` plus one nullable tagged field per concrete type: `on_<ConcreteType>`.
63
+
- When lowering is not possible (for example no concrete object members), config/schema validation fails with a targeted error.
60
64
* Pattern matching in request header forwarding configuration
61
65
- This uses simple glob patterns
62
66
- More advanced matching and extraction is not currently supported
@@ -71,11 +75,11 @@ Please see the [relevant documentation](https://hasura.info/graphql-getting-star
71
75
## Advanced Features
72
76
73
77
### Forward Headers from Pre-NDC Request Plugin
74
-
78
+
75
79
You can use a [Pre-NDC Request Plugin](https://hasura.io/docs/3.0/plugins/introduction#pre-ndc-request-plugin) to modify the request, and add dynamic headers in runtime via `request_arguments.headers` field, which is a string map. Those headers will be merged into the HTTP request headers before being sent to external services.
76
80
77
81
> See the full example at [Pre-NDC Request Plugin Request](https://hasura.io/docs/3.0/plugins/introduction#example-configuration)
78
-
82
+
79
83
```json
80
84
{
81
85
// ...
@@ -104,4 +108,4 @@ The connector uses `rustls` for TLS which does not automatically pick up system
104
108
**Notes:**
105
109
-`GRAPHQL_CA_CERT_FILE` and `GRAPHQL_CA_CERT_DIR` can be used together (certificates are combined)
106
110
-`GRAPHQL_INSECURE_SKIP_TLS_VERIFY` takes precedence and skips all CA cert logic when enabled
107
-
-**Warning:** Disabling TLS verification is insecure and should only be used for development/testing
111
+
-**Warning:** Disabling TLS verification is insecure and should only be used for development/testing
0 commit comments