…view (#6293)
### **User description**
<!-- Provide a general summary of your changes in the Title above -->
## Description
<!-- Describe your changes in detail -->
[TT-12153](https://tyktech.atlassian.net/browse/TT-12153)
## Related Issue
<!-- This project only accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- OSS: Please link to the issue here. Tyk: please create/link the
JIRA ticket. -->
## Motivation and Context
<!-- Why is this change required? What problem does it solve? -->
## How This Has Been Tested
<!-- Please describe in detail how you tested your changes -->
<!-- Include details of your testing environment, and the tests -->
<!-- you ran to see how your change affects other areas of the code,
etc. -->
<!-- This information is helpful for reviewers and QA. -->
## Screenshots (if appropriate)
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Refactoring or add test (improvements in base code or adds test
coverage to functionality)
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply -->
<!-- If there are no documentation updates required, mark the item as
checked. -->
<!-- Raise up any additional concerns not covered by the checklist. -->
- [ ] I ensured that the documentation is up to date
- [ ] I explained why this PR updates go.mod in detail with reasoning
why it's required
- [ ] I would like a code coverage CI quality gate exception and have
explained why
[TT-12153]:
https://tyktech.atlassian.net/browse/TT-12153?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
___
### **PR Type**
Enhancement
___
### **Description**
- Integrated `complexityCheckerV2` and `granularAccessCheckerV2` into
`EngineV3`.
- Implemented complexity and granular access processing in the reverse
proxy.
- Added new checker classes with methods for depth limit and field
allowance validation.
___
### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement
</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>engine_v3.go</strong><dd><code>Integrate new complexity
and granular access checkers in EngineV3</code></dd></summary>
<hr>
internal/graphengine/engine_v3.go
<li>Added <code>complexityCheckerV2</code> and
<code>granularAccessCheckerV2</code> initialization.<br> <li> Integrated
new checkers into the <code>EngineV3</code> structure.<br> <li> Removed
commented-out code for previous checker versions.<br>
</details>
</td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6293/files#diff-4ba23e43847b67a031cd5f4db82b27640f10ae9b291dc389bb8137bf1b4c7831">+14/-12</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>engine_v3_reverse_proxy.go</strong><dd><code>Implement
complexity and granular access processing in reverse
proxy</code></dd></summary>
<hr>
internal/graphengine/engine_v3_reverse_proxy.go
<li>Implemented <code>ProcessGraphQLComplexity</code> using
<code>complexityCheckerV2</code>.<br> <li> Implemented
<code>ProcessGraphQLGranularAccess</code> using
<br><code>granularAccessCheckerV2</code>.<br> <li> Removed error logging
for unsupported features.<br>
</details>
</td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6293/files#diff-911310643ffcc0a9349642a40b3237a59c044dc9ea2ab98248e5e4c3a641b703">+3/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>graphql_go_tools_v2.go</strong><dd><code>Add complexity
and granular access checkers with validation
methods</code></dd></summary>
<hr>
internal/graphengine/graphql_go_tools_v2.go
<li>Added <code>complexityCheckerV2</code> with depth limit
checking.<br> <li> Added <code>granularAccessCheckerV2</code> with field
allowance checking.<br> <li> Implemented methods for complexity and
granular access validation.<br>
</details>
</td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6293/files#diff-2e41b60f046c2947fbedb8fb841b5c3c962798e3ba8211c7144f326436ffabe3">+193/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
___
> 💡 **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools
and their descriptions
User description
Description
TT-12153
Related Issue
Motivation and Context
How This Has Been Tested
Screenshots (if appropriate)
Types of changes
Checklist
PR Type
Enhancement
Description
complexityCheckerV2andgranularAccessCheckerV2intoEngineV3.Changes walkthrough 📝
engine_v3.go
Integrate new complexity and granular access checkers in EngineV3internal/graphengine/engine_v3.go
complexityCheckerV2andgranularAccessCheckerV2initialization.EngineV3structure.engine_v3_reverse_proxy.go
Implement complexity and granular access processing in reverse proxyinternal/graphengine/engine_v3_reverse_proxy.go
ProcessGraphQLComplexityusingcomplexityCheckerV2.ProcessGraphQLGranularAccessusinggranularAccessCheckerV2.graphql_go_tools_v2.go
Add complexity and granular access checkers with validation methodsinternal/graphengine/graphql_go_tools_v2.go
complexityCheckerV2with depth limit checking.granularAccessCheckerV2with field allowance checking.