Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[TT-11913] Implement OAS contract for analytics plugin (#6861)
### **User description** <details open> <summary><a href="https://tyktech.atlassian.net/browse/TT-11913" title="TT-11913" target="_blank">TT-11913</a></summary> <br /> <table> <tr> <th>Summary</th> <td>[OAS] Custom Analytics plugins</td> </tr> <tr> <th>Type</th> <td> <img alt="Story" src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium" /> Story </td> </tr> <tr> <th>Status</th> <td>In Dev</td> </tr> <tr> <th>Points</th> <td>N/A</td> </tr> <tr> <th>Labels</th> <td><a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20QA_Fail%20ORDER%20BY%20created%20DESC" title="QA_Fail">QA_Fail</a></td> </tr> </table> </details> <!-- do not remove this marker as it will break jira-lint's functionality. added_by_jira_lint --> --- <!-- Provide a general summary of your changes in the Title above --> ## Description [TT-11913](https://tyktech.atlassian.net/browse/TT-11913) <!-- Describe your changes in detail --> ## 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-11913]: https://tyktech.atlassian.net/browse/TT-11913?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Replaced `TrafficLogs` plugins with `CustomAnalyticsPlugins`. - Added `CustomAnalyticsPlugins` type with `Fill` and `ExtractTo` methods. - Updated test cases to validate `CustomAnalyticsPlugins` functionality. - Removed unused `TrafficLogs` middleware section from `MiddlewareSection`. ___ ### **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>api_definitions.go</strong><dd><code>Removed `TrafficLogs` middleware section.</code> </dd></summary> <hr> apidef/api_definitions.go - Removed `TrafficLogs` middleware section from `MiddlewareSection`. </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6861/files#diff-9961ccc89a48d32db5b47ba3006315ef52f6e5007fb4b09f8c5d6d299c669d67">+0/-1</a> </td> </tr> <tr> <td> <details> <summary><strong>middleware.go</strong><dd><code>Introduced `CustomAnalyticsPlugins` for analytics.</code> </dd></summary> <hr> apidef/oas/middleware.go <li>Replaced <code>Plugins</code> in <code>TrafficLogs</code> with <code>CustomAnalyticsPlugins</code>.<br> <li> Added <code>CustomAnalyticsPlugins</code> type with <code>Fill</code> and <code>ExtractTo</code> methods.<br> <li> Updated logic for handling <code>TrafficLogs</code> plugins. </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6861/files#diff-992ec7c28d25fd54f6491d295389757705cd114bc869a35cba50d42e548cdc6e">+40/-10</a> </td> </tr> </table></td></tr><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>middleware_test.go</strong><dd><code>Updated tests for `CustomAnalyticsPlugins`.</code> </dd></summary> <hr> apidef/oas/middleware_test.go <li>Updated test cases to use <code>CustomAnalyticsPlugins</code>.<br> <li> Added assertions for <code>CustomAnalyticsPlugins</code> properties. </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6861/files#diff-0af31cb29ae298a6ac3e402b283ab364a6fd793fd04f253ef7c4983234c17bef">+7/-3</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> --------- Co-authored-by: Tit Petric <tit@tyk.io>
- Loading branch information