-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TT-13439] update response content-length when response body is modified by coprocess response hook #6732
[TT-13439] update response content-length when response body is modified by coprocess response hook #6732
Conversation
…cess response hook
Let's make that PR title a 💯 shall we? 💪 Your PR title and story title look slightly different. Just checking in to know if it was intentional!
Check out this guide to learn more about PR best-practices. |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
API Changes no api changes detected |
Quality Gate failedFailed conditions |
/release to releaes-5.7 |
@jeffy-mathew Release branch not found |
/release to release-5.7 |
/release to release-5.3 |
Working on it! Note that it can take a few minutes. |
…ied by coprocess response hook (#6732) ### **User description** <details open> <summary><a href="https://tyktech.atlassian.net/browse/TT-13439" title="TT-13439" target="_blank">TT-13439</a></summary> <br /> <table> <tr> <th>Summary</th> <td>Analytics data is corrupted when a response plugin changes the response</td> </tr> <tr> <th>Type</th> <td> <img alt="Bug" src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium" /> Bug </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%20'24Bugsmash%20ORDER%20BY%20created%20DESC" title="'24Bugsmash">'24Bugsmash</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20customer_bug%20ORDER%20BY%20created%20DESC" title="customer_bug">customer_bug</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20jira_escalated%20ORDER%20BY%20created%20DESC" title="jira_escalated">jira_escalated</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 <!-- Describe your changes in detail --> ## Related Issue https://tyktech.atlassian.net/browse/TT-13439 ## 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 ___ ### **PR Type** Bug fix, Tests ___ ### **Description** - Fixed a bug where the `Content-Length` header was not updated when the response body was modified by a coprocess response hook. - Updated the `HandleResponse` function to set the `Content-Length` header based on the size of the modified response body. - Enhanced test cases to verify that the `Content-Length` header matches the length of the modified response body. ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess_grpc_test.go</strong><dd><code>Update test case to verify Content-Length header</code> </dd></summary> <hr> coprocess/grpc/coprocess_grpc_test.go <li>Added import for <code>strconv</code> package.<br> <li> Added import for <code>header</code> package.<br> <li> Updated test case to match <code>Content-Length</code> header.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-c5b0bcf682a084942dee611f5b6c7ff202dd49424b90d39658c4634f0422064a">+5/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess.go</strong><dd><code>Update Content-Length header for modified response body</code> </dd></summary> <hr> gateway/coprocess.go <li>Set response body length in response object.<br> <li> Updated <code>Content-Length</code> header based on modified response body.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-9cbfe628982b2afb94d1e9a5200fc9a4fdc00cb58fe65d1090a3725e4e4c5953">+6/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull request to receive relevant information (cherry picked from commit 8bd75f0)
@jeffy-mathew Succesfully merged PR |
/release to release-5.7 |
Working on it! Note that it can take a few minutes. |
…ied by coprocess response hook (#6732) ### **User description** <details open> <summary><a href="https://tyktech.atlassian.net/browse/TT-13439" title="TT-13439" target="_blank">TT-13439</a></summary> <br /> <table> <tr> <th>Summary</th> <td>Analytics data is corrupted when a response plugin changes the response</td> </tr> <tr> <th>Type</th> <td> <img alt="Bug" src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium" /> Bug </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%20'24Bugsmash%20ORDER%20BY%20created%20DESC" title="'24Bugsmash">'24Bugsmash</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20customer_bug%20ORDER%20BY%20created%20DESC" title="customer_bug">customer_bug</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20jira_escalated%20ORDER%20BY%20created%20DESC" title="jira_escalated">jira_escalated</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 <!-- Describe your changes in detail --> ## Related Issue https://tyktech.atlassian.net/browse/TT-13439 ## 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 ___ ### **PR Type** Bug fix, Tests ___ ### **Description** - Fixed a bug where the `Content-Length` header was not updated when the response body was modified by a coprocess response hook. - Updated the `HandleResponse` function to set the `Content-Length` header based on the size of the modified response body. - Enhanced test cases to verify that the `Content-Length` header matches the length of the modified response body. ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess_grpc_test.go</strong><dd><code>Update test case to verify Content-Length header</code> </dd></summary> <hr> coprocess/grpc/coprocess_grpc_test.go <li>Added import for <code>strconv</code> package.<br> <li> Added import for <code>header</code> package.<br> <li> Updated test case to match <code>Content-Length</code> header.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-c5b0bcf682a084942dee611f5b6c7ff202dd49424b90d39658c4634f0422064a">+5/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess.go</strong><dd><code>Update Content-Length header for modified response body</code> </dd></summary> <hr> gateway/coprocess.go <li>Set response body length in response object.<br> <li> Updated <code>Content-Length</code> header based on modified response body.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-9cbfe628982b2afb94d1e9a5200fc9a4fdc00cb58fe65d1090a3725e4e4c5953">+6/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull request to receive relevant information (cherry picked from commit 8bd75f0)
@jeffy-mathew Seems like there is conflict and it require manual merge. |
…n response body is modified by coprocess response hook (#6732) (#6741) [TT-13439] update response content-length when response body is modified by coprocess response hook (#6732) ### **User description** <details open> <summary><a href="https://tyktech.atlassian.net/browse/TT-13439" title="TT-13439" target="_blank">TT-13439</a></summary> <br /> <table> <tr> <th>Summary</th> <td>Analytics data is corrupted when a response plugin changes the response</td> </tr> <tr> <th>Type</th> <td> <img alt="Bug" src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium" /> Bug </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%20'24Bugsmash%20ORDER%20BY%20created%20DESC" title="'24Bugsmash">'24Bugsmash</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20customer_bug%20ORDER%20BY%20created%20DESC" title="customer_bug">customer_bug</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20jira_escalated%20ORDER%20BY%20created%20DESC" title="jira_escalated">jira_escalated</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 <!-- Describe your changes in detail --> ## Related Issue https://tyktech.atlassian.net/browse/TT-13439 ## 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 ___ ### **PR Type** Bug fix, Tests ___ ### **Description** - Fixed a bug where the `Content-Length` header was not updated when the response body was modified by a coprocess response hook. - Updated the `HandleResponse` function to set the `Content-Length` header based on the size of the modified response body. - Enhanced test cases to verify that the `Content-Length` header matches the length of the modified response body. ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess_grpc_test.go</strong><dd><code>Update test case to verify Content-Length header</code> </dd></summary> <hr> coprocess/grpc/coprocess_grpc_test.go <li>Added import for <code>strconv</code> package.<br> <li> Added import for <code>header</code> package.<br> <li> Updated test case to match <code>Content-Length</code> header.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-c5b0bcf682a084942dee611f5b6c7ff202dd49424b90d39658c4634f0422064a">+5/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess.go</strong><dd><code>Update Content-Length header for modified response body</code> </dd></summary> <hr> gateway/coprocess.go <li>Set response body length in response object.<br> <li> Updated <code>Content-Length</code> header based on modified response body.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-9cbfe628982b2afb94d1e9a5200fc9a4fdc00cb58fe65d1090a3725e4e4c5953">+6/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull request to receive relevant information [TT-13439]: https://tyktech.atlassian.net/browse/TT-13439?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Jeffy Mathew <[email protected]>
…n response body is modified by coprocess response hook (#6732) [TT-13439] update response content-length when response body is modified by coprocess response hook (#6732) ### **User description** <details open> <summary><a href="https://tyktech.atlassian.net/browse/TT-13439" title="TT-13439" target="_blank">TT-13439</a></summary> <br /> <table> <tr> <th>Summary</th> <td>Analytics data is corrupted when a response plugin changes the response</td> </tr> <tr> <th>Type</th> <td> <img alt="Bug" src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium" /> Bug </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%20'24Bugsmash%20ORDER%20BY%20created%20DESC" title="'24Bugsmash">'24Bugsmash</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20customer_bug%20ORDER%20BY%20created%20DESC" title="customer_bug">customer_bug</a>, <a href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20jira_escalated%20ORDER%20BY%20created%20DESC" title="jira_escalated">jira_escalated</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 <!-- Describe your changes in detail --> ## Related Issue https://tyktech.atlassian.net/browse/TT-13439 ## 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 ___ ### **PR Type** Bug fix, Tests ___ ### **Description** - Fixed a bug where the `Content-Length` header was not updated when the response body was modified by a coprocess response hook. - Updated the `HandleResponse` function to set the `Content-Length` header based on the size of the modified response body. - Enhanced test cases to verify that the `Content-Length` header matches the length of the modified response body. ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess_grpc_test.go</strong><dd><code>Update test case to verify Content-Length header</code> </dd></summary> <hr> coprocess/grpc/coprocess_grpc_test.go <li>Added import for <code>strconv</code> package.<br> <li> Added import for <code>header</code> package.<br> <li> Updated test case to match <code>Content-Length</code> header.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-c5b0bcf682a084942dee611f5b6c7ff202dd49424b90d39658c4634f0422064a">+5/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>coprocess.go</strong><dd><code>Update Content-Length header for modified response body</code> </dd></summary> <hr> gateway/coprocess.go <li>Set response body length in response object.<br> <li> Updated <code>Content-Length</code> header based on modified response body.<br> </details> </td> <td><a href="https://github.com/TykTechnologies/tyk/pull/6732/files#diff-9cbfe628982b2afb94d1e9a5200fc9a4fdc00cb58fe65d1090a3725e4e4c5953">+6/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull request to receive relevant information
User description
TT-13439
Description
Related Issue
https://tyktech.atlassian.net/browse/TT-13439
Motivation and Context
How This Has Been Tested
Screenshots (if appropriate)
Types of changes
Checklist
PR Type
Bug fix, Tests
Description
Content-Length
header was not updated when the response body was modified by a coprocess response hook.HandleResponse
function to set theContent-Length
header based on the size of the modified response body.Content-Length
header matches the length of the modified response body.Changes walkthrough 📝
coprocess_grpc_test.go
Update test case to verify Content-Length header
coprocess/grpc/coprocess_grpc_test.go
strconv
package.header
package.Content-Length
header.coprocess.go
Update Content-Length header for modified response body
gateway/coprocess.go
Content-Length
header based on modified response body.