mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 17:31:56 +03:00
63732fe7be
This PR fixes the following bugs: - Fixes a bug where models and commands were allowed even though they did not define arguments to satisfy the underlying data connector collection/function/procedure. **UPDATE:** This only raises a warning rather than fails the build, because existing builds on staging and production have this issue. This will need to be transitioned to an error once the Compatibility Date plumbing is in place. - Fixes a bug where argument presets set in the DataConnectorLink were sent to every connector function/procedure regardless of whether the function/procedure actually declared that argument - Fixes a bug where argument presets set in the DataConnectorLink were not sent to connector collections that backed Models - Fixes a bug where the type of the argument name in the DataConnectorLink's argument presets was incorrect in the Open DD schema. It was `ArgumentName` but should have been `DataConnectorArgumentName` - Fixes a bug where the check to ensure that argument presets in the DataConnectorLink does not overlap with arguments defined on Models/Commands was comparing against the Model/Command argument name not the data connector argument name There are a number of changes that tighten things up in this PR. Firstly, the custom connector is improved so that it rejects requests with arguments of the wrong type or unexpected arguments. This causes tests that should have been failing to actually fail. Then, new tests have been added to metadata_resolve to cover the untested edge cases around data connector link argument presets. Then, metadata resolve is refactored so that the link argument presets are validated and stored on each command/model source, rather than on the DataConnectorLink. Extra validation has been added during this process to fix the above bugs. Any irrelevant argument presets to the particular command/model are dropped. Then, during execution, we read the presets from the command/model source instead of from the DataConnectorLink, which ensures we only send the appropriate arguments. JIRA: [V3ENGINE-290](https://hasurahq.atlassian.net/browse/V3ENGINE-290) Fixes https://linear.app/hasura/issue/APIPG-676/dataconnectorlink-argument-presets-are-always-sent-regardless-of [V3ENGINE-290]: https://hasurahq.atlassian.net/browse/V3ENGINE-290?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ V3_GIT_ORIGIN_REV_ID: dd02e52e1ff224760c5f0ed6a73a1ae56779e1f1 |
||
---|---|---|
.. | ||
examples | ||
src | ||
Cargo.toml | ||
metadata.jsonschema |