{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":19537979,"defaultBranch":"master","name":"tyk","ownerLogin":"TykTechnologies","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-05-07T14:38:24.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/16121529?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716989116.0","currentOid":""},"activityList":{"items":[{"before":"ecfe25e7bb77d687f14fbf01b512a3f83d8bf520","after":"282c3731be902efe3487665c83a234aa8307602b","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-29T15:54:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Set allowance ttl to 2*delay","shortMessageHtmlLink":"Set allowance ttl to 2*delay"}},{"before":"12f8b17f93205024f15c6b607eaee24c67b19aa7","after":"ecfe25e7bb77d687f14fbf01b512a3f83d8bf520","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-29T15:47:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Set allowance ttl to 2*delay","shortMessageHtmlLink":"Set allowance ttl to 2*delay"}},{"before":"a9446ab70687b8fc7ea100e9fe5d0f9d1c4cd232","after":"12f8b17f93205024f15c6b607eaee24c67b19aa7","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-29T13:52:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"internal/rate: better tests, model pkg, mock","shortMessageHtmlLink":"internal/rate: better tests, model pkg, mock"}},{"before":"fd64dfb4e93a377d04efcc3d1800e378199660f1","after":null,"ref":"refs/heads/fix/TT-11997/header-case-insensitivity","pushedAt":"2024-05-29T13:25:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"}},{"before":"08a7fdef8305b857fa6886d2dcb46204a8fef6e7","after":"853b3951f667be4e018c9104e412bc49f4815bd2","ref":"refs/heads/master","pushedAt":"2024-05-29T13:25:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"},"commit":{"message":"[TT-11997] Header case insensitivity (#6316)","shortMessageHtmlLink":"[TT-11997] Header case insensitivity (#6316)"}},{"before":"a258cbdf098f12f3101126a79c210c092a74b31c","after":"fd64dfb4e93a377d04efcc3d1800e378199660f1","ref":"refs/heads/fix/TT-11997/header-case-insensitivity","pushedAt":"2024-05-29T13:02:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"},"commit":{"message":"[TT-11997] Remove unnecessary Header.Del operation","shortMessageHtmlLink":"[TT-11997] Remove unnecessary Header.Del operation"}},{"before":null,"after":"a258cbdf098f12f3101126a79c210c092a74b31c","ref":"refs/heads/fix/TT-11997/header-case-insensitivity","pushedAt":"2024-05-29T12:59:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"},"commit":{"message":"[TT-11997] Canonicalize header names in request_headers_rewrite config.","shortMessageHtmlLink":"[TT-11997] Canonicalize header names in request_headers_rewrite config."}},{"before":"af1a623989ded6a5048601b4206af987cca0d097","after":"a9446ab70687b8fc7ea100e9fe5d0f9d1c4cd232","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-29T12:27:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Add local allowance cache, storage stats for debug","shortMessageHtmlLink":"Add local allowance cache, storage stats for debug"}},{"before":null,"after":"08a7fdef8305b857fa6886d2dcb46204a8fef6e7","ref":"refs/heads/TT-8735-fips-support-gateway","pushedAt":"2024-05-29T12:01:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"andrei-tyk","name":null,"path":"/andrei-tyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97896463?s=80&v=4"},"commit":{"message":"add logic for use_immutable_headers (TT-12190) (#6315)\n\n### **User description**\r\nThis PR adds the logic for `use_immutable_headers` for GraphQL\r\nproxy-only\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nEnhancement, Tests\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Added `use_immutable_headers` feature to GraphQL proxy-only mode.\r\n- Updated reverse proxy and transport logic to handle\r\n`use_immutable_headers` flag.\r\n- Refactored header configuration to use new structs.\r\n- Added comprehensive tests for new feature in middleware and transport.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n
| Relevant\r\nfiles |
---|
Tests\r\n | \r\n\r\n \r\n \r\nmw_graphql_test.goAdd tests for\r\nuse_immutable_headers feature in GraphQL\r\nmiddleware \r\n \r\n\r\ngateway/mw_graphql_test.go\r\nAdded tests for use_immutable_headers feature. \r\nDifferentiated behavior based on use_immutable_headers \r\nflag. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+79/-34 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ntransport_test.goAdd tests for\r\nuse_immutable_headers feature in transport \r\n \r\n\r\ninternal/graphengine/transport_test.go\r\n- Added tests for `use_immutable_headers` feature in transport.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+114/-0 \r\n | \r\n \r\n |
Enhancement\r\n | \r\n\r\n \r\n \r\nreverse_proxy.goUpdate reverse proxy\r\nto support use_immutable_headers feature \r\n \r\n\r\ngateway/reverse_proxy.go\r\nUpdated reverse proxy handling to include\r\nuse_immutable_headers flag. Refactored header\r\nconfiguration handling. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+13/-8 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nengine.goExtend ReverseProxyParams\r\nwith header configuration structs \r\n \r\n\r\ninternal/graphengine/engine.go\r\nAdded HeadersConfig to\r\nReverseProxyParams . Introduced\r\nReverseProxyHeadersConfig and\r\nProxyOnlyHeadersConfig structs. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+16/-7 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v1.goModify GraphQL\r\ntransport initialization for header configuration \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v1.go\r\n- Updated transport initialization to use `HeadersConfig`.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v2.goModify GraphQL\r\ntransport initialization for header configuration \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v2.go\r\n- Updated transport initialization to use `HeadersConfig`.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+2/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ntransport.goRefactor transport to\r\nuse HeadersConfig and support\r\n
use_immutable_headers \r\n \r\n\r\ninternal/graphengine/transport.go\r\nRefactored transport to use HeadersConfig for header\r\nrewrites. Added logic to respect\r\nuse_immutable_headers flag. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+10/-12 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions","shortMessageHtmlLink":"add logic for use_immutable_headers (TT-12190) (#6315)"}},{"before":"9c0a10065d4bdaccc23a44bd886b108b942e67cc","after":null,"ref":"refs/heads/feat/TT-12190/add-logic-for-immutable-headers","pushedAt":"2024-05-29T11:54:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pvormste","name":"Patric Vormstein","path":"/pvormste","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4503955?s=80&v=4"}},{"before":"694483aeac001ee6739f8f12fcee6563cf299e97","after":"08a7fdef8305b857fa6886d2dcb46204a8fef6e7","ref":"refs/heads/master","pushedAt":"2024-05-29T11:54:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pvormste","name":"Patric Vormstein","path":"/pvormste","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4503955?s=80&v=4"},"commit":{"message":"add logic for use_immutable_headers (TT-12190) (#6315)\n\n### **User description**\r\nThis PR adds the logic for `use_immutable_headers` for GraphQL\r\nproxy-only\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nEnhancement, Tests\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Added `use_immutable_headers` feature to GraphQL proxy-only mode.\r\n- Updated reverse proxy and transport logic to handle\r\n`use_immutable_headers` flag.\r\n- Refactored header configuration to use new structs.\r\n- Added comprehensive tests for new feature in middleware and transport.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Tests\r\n | \r\n\r\n \r\n \r\nmw_graphql_test.goAdd tests for\r\nuse_immutable_headers feature in GraphQL\r\nmiddleware \r\n \r\n\r\ngateway/mw_graphql_test.go\r\nAdded tests for use_immutable_headers feature. \r\nDifferentiated behavior based on use_immutable_headers \r\nflag. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+79/-34 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ntransport_test.goAdd tests for\r\nuse_immutable_headers feature in transport \r\n \r\n\r\ninternal/graphengine/transport_test.go\r\n- Added tests for `use_immutable_headers` feature in transport.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+114/-0 \r\n | \r\n \r\n |
Enhancement\r\n | \r\n\r\n \r\n \r\nreverse_proxy.goUpdate reverse proxy\r\nto support use_immutable_headers feature \r\n \r\n\r\ngateway/reverse_proxy.go\r\nUpdated reverse proxy handling to include\r\nuse_immutable_headers flag. Refactored header\r\nconfiguration handling. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+13/-8 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nengine.goExtend ReverseProxyParams\r\nwith header configuration structs \r\n \r\n\r\ninternal/graphengine/engine.go\r\nAdded HeadersConfig to\r\nReverseProxyParams . Introduced\r\nReverseProxyHeadersConfig and\r\nProxyOnlyHeadersConfig structs. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+16/-7 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v1.goModify GraphQL\r\ntransport initialization for header configuration \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v1.go\r\n- Updated transport initialization to use `HeadersConfig`.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v2.goModify GraphQL\r\ntransport initialization for header configuration \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v2.go\r\n- Updated transport initialization to use `HeadersConfig`.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+2/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ntransport.goRefactor transport to\r\nuse HeadersConfig and support\r\n
use_immutable_headers \r\n \r\n\r\ninternal/graphengine/transport.go\r\nRefactored transport to use HeadersConfig for header\r\nrewrites. Added logic to respect\r\nuse_immutable_headers flag. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+10/-12 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions","shortMessageHtmlLink":"add logic for use_immutable_headers (TT-12190) (#6315)"}},{"before":null,"after":"9c0a10065d4bdaccc23a44bd886b108b942e67cc","ref":"refs/heads/feat/TT-12190/add-logic-for-immutable-headers","pushedAt":"2024-05-29T09:26:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pvormste","name":"Patric Vormstein","path":"/pvormste","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4503955?s=80&v=4"},"commit":{"message":"add logic for use_immutable_headers","shortMessageHtmlLink":"add logic for use_immutable_headers"}},{"before":"c486002e0775fd0b15652b98febdc05cced6d6f0","after":"af1a623989ded6a5048601b4206af987cca0d097","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-29T06:40:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Rework smoothing config and allowance, don't expose allowance","shortMessageHtmlLink":"Rework smoothing config and allowance, don't expose allowance"}},{"before":"7ecaa66d98b49635dd5fefc2e4c7a00cf2e69678","after":null,"ref":"refs/heads/TT-11470-human-readable-info","pushedAt":"2024-05-28T16:50:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"padiazg","name":"Patricio Díaz ","path":"/padiazg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15754252?s=80&v=4"}},{"before":"46ca642bd70ecd543ce65461588c821ef1e7fffa","after":"694483aeac001ee6739f8f12fcee6563cf299e97","ref":"refs/heads/master","pushedAt":"2024-05-28T16:50:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"padiazg","name":"Patricio Díaz ","path":"/padiazg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15754252?s=80&v=4"},"commit":{"message":"[TT-11470] Add human identifiable information in NodeData (#6229)\n\n## **User description**\r\n\r\n\r\n## Description\r\n\r\nProvide IP, PID and Hostname as identifiers for a node when querying\r\nMDCB in the `dataplanes` endpoint. This should be tested with the MDCB\r\nversion in [this\r\npr](https://github.com/TykTechnologies/tyk-sink/pull/525)\r\n\r\n## Related Issue\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-11470\r\n\r\n## Motivation and Context\r\n\r\n\r\n\r\n## How This Has Been Tested\r\n\r\n- Run Tyk in MDCB Env\r\n- Enable secure endpoints in MDCB\r\n- Consume the `/dataplanes` endpoint, and now you get host details per\r\nnode\r\n\r\n## Screenshots (if appropriate)\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n\r\n- [ ] I ensured that the documentation is up to date\r\n- [ ] I explained why this PR updates go.mod in detail with reasoning\r\nwhy it's required\r\n- [ ] I would like a code coverage CI quality gate exception and have\r\nexplained why\r\n\r\n\r\n___\r\n\r\n## **Type**\r\nenhancement, tests\r\n\r\n\r\n___\r\n\r\n## **Description**\r\n- Implemented a buffered logger (`BufferedLogger` and\r\n`BufferingFormatter`) to facilitate better logging, especially for\r\ntesting scenarios.\r\n- Enhanced the `Gateway` struct to include node IP address handling,\r\nwhich fetches and stores the IP if not provided.\r\n- Added comprehensive tests for new features including the retrieval and\r\nlogging of node IP addresses.\r\n- Introduced a utility function `getIpAddress` to fetch the first\r\nnon-loopback IPv4 address, enhancing node identification.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n## **Changes walkthrough**\r\n | Relevant\r\nfiles |
---|
Enhancement\r\n | \r\n\r\n \r\n \r\nbuffered-logger.goImplement Buffered\r\nLogger for Enhanced Testing \r\n \r\n \r\n\r\ngateway/buffered-logger.go\r\nAdded a new BufferedLogger and\r\nBufferingFormatter to handle logging in a buffered\r\nmanner, primarily for use in tests. BufferedLogger \r\nincludes methods to retrieve logs of a specific level. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+72/-0 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nserver.goEnhance Gateway with Node\r\nIP Address Handling \r\n \r\n \r\n\r\ngateway/server.go\r\nAdded Address field to hostDetails struct\r\nto store node IP address. Enhanced getHostDetails \r\nto fetch and store the node's IP address if not already\r\nprovided. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+9/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nutil.goAdd Utility Function to Fetch\r\nNon-Loopback IPv4 Address \r\n \r\n\r\ngateway/util.go\r\nAdded getIpAddress function to retrieve the first\r\nnon-loopback IPv4 address. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+25/-0 \r\n | \r\n \r\n |
Tests\r\n | \r\n\r\n \r\n \r\nserver_test.goAdd Tests for Gateway\r\nHost Details and IP Address Retrieval \r\n \r\n\r\ngateway/server_test.go\r\nAdded tests for getHostDetails to verify correct\r\nlogging and IP address retrieval. Utilized\r\nBufferedLogger in tests to capture log outputs. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+109/-2 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nutil_test.goImplement Tests for IP\r\nAddress Retrieval Utility Function \r\n \r\n\r\ngateway/util_test.go\r\nAdded tests for getIpAddress to ensure it correctly\r\nidentifies and returns non-loopback IPv4 addresses. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+82/-1 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> ✨ **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions\r\n\r\n---------\r\n\r\nCo-authored-by: sredny buitrago ","shortMessageHtmlLink":"[TT-11470] Add human identifiable information in NodeData (#6229)"}},{"before":"156258e4a70b592e68a3d19c1985d75401045ebd","after":"c486002e0775fd0b15652b98febdc05cced6d6f0","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-28T13:44:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Adjust context as unused","shortMessageHtmlLink":"Adjust context as unused"}},{"before":"cbcc2ad63146791352171d6bf0cac535c60bec9f","after":"7ecaa66d98b49635dd5fefc2e4c7a00cf2e69678","ref":"refs/heads/TT-11470-human-readable-info","pushedAt":"2024-05-28T13:29:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"padiazg","name":"Patricio Díaz ","path":"/padiazg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15754252?s=80&v=4"},"commit":{"message":"fix missing references","shortMessageHtmlLink":"fix missing references"}},{"before":"c42154c201ef525f1b844ca216b5044ed9947243","after":null,"ref":"refs/heads/merge/release-5.3.2/46ca642bd70ecd543ce65461588c821ef1e7fffa","pushedAt":"2024-05-28T13:20:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"buger","name":"Leonid Bugaev","path":"/buger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14009?s=80&v=4"}},{"before":"270f5077a2b791d16288c871dd057868559c304b","after":"9beb6089aa85485277734e8a94aa2c86cd62789a","ref":"refs/heads/release-5.3.2","pushedAt":"2024-05-28T13:20:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"buger","name":"Leonid Bugaev","path":"/buger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14009?s=80&v=4"},"commit":{"message":"Merging to release-5.3.2: [TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)\n\n[TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)\n\n### **User description**\r\n\r\n\r\n## Description\r\n`tyk.api.apikey` and `tyk.api.oauthid` attributes were exposing keys\r\nwhen OTEL was enabled. Now, the value of this attribute is the hashed\r\nkey instead.\r\nCan be checked when creating a key:\r\n\r\nNow, the attribute must show the hashed key, not the actual key.\r\n\r\n\r\n## Related Issue\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n\r\n\r\n\r\n## Motivation and Context\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n## How This Has Been Tested\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Screenshots (if appropriate)\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n\r\n- [ ] I ensured that the documentation is up to date\r\n- [ ] I explained why this PR updates go.mod in detail with reasoning\r\nwhy it's required\r\n- [ ] I would like a code coverage CI quality gate exception and have\r\nexplained why\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nBug fix\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Updated `gateway/mw_auth_key.go` to use the hashed API key in OTEL\r\nspan attributes instead of the plain key.\r\n- Updated `gateway/mw_oauth2_key_exists.go` to use the hashed OAuth\r\nclient ID in OTEL span attributes.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Bug fix\r\n | \r\n\r\n \r\n \r\nmw_auth_key.goUse hashed API key in\r\nOTEL span attributes \r\n \r\n\r\n \r\n\r\ngateway/mw_auth_key.go\r\nAdded hashedKey variable to store the hashed key from\r\nthe session. Updated OTEL span attribute to use the hashed key\r\ninstead of the plain key. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+2/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nmw_oauth2_key_exists.goUse hashed\r\nOAuth client ID in OTEL span attributes \r\n \r\n \r\n\r\ngateway/mw_oauth2_key_exists.go\r\nUpdated OTEL span attribute to use the hashed key for OAuth client\r\nID. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-1 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions\r\n\r\n---------\r\n\r\nCo-authored-by: Sredny M ","shortMessageHtmlLink":"Merging to release-5.3.2: [TT-12095] Fixing unhashed API keys exposed…"}},{"before":null,"after":"c42154c201ef525f1b844ca216b5044ed9947243","ref":"refs/heads/merge/release-5.3.2/46ca642bd70ecd543ce65461588c821ef1e7fffa","pushedAt":"2024-05-28T12:59:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tykbot[bot]","name":null,"path":"/apps/tykbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/35290?s=80&v=4"},"commit":{"message":"[TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)\n\n### **User description**\r\n\r\n\r\n## Description\r\n`tyk.api.apikey` and `tyk.api.oauthid` attributes were exposing keys\r\nwhen OTEL was enabled. Now, the value of this attribute is the hashed\r\nkey instead.\r\nCan be checked when creating a key:\r\n\r\nNow, the attribute must show the hashed key, not the actual key.\r\n\r\n\r\n## Related Issue\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n\r\n\r\n\r\n## Motivation and Context\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n## How This Has Been Tested\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Screenshots (if appropriate)\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n\r\n- [ ] I ensured that the documentation is up to date\r\n- [ ] I explained why this PR updates go.mod in detail with reasoning\r\nwhy it's required\r\n- [ ] I would like a code coverage CI quality gate exception and have\r\nexplained why\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nBug fix\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Updated `gateway/mw_auth_key.go` to use the hashed API key in OTEL\r\nspan attributes instead of the plain key.\r\n- Updated `gateway/mw_oauth2_key_exists.go` to use the hashed OAuth\r\nclient ID in OTEL span attributes.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Bug fix\r\n | \r\n\r\n \r\n \r\nmw_auth_key.goUse hashed API key in\r\nOTEL span attributes \r\n \r\n\r\n \r\n\r\ngateway/mw_auth_key.go\r\nAdded hashedKey variable to store the hashed key from\r\nthe session. Updated OTEL span attribute to use the hashed key\r\ninstead of the plain key. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+2/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nmw_oauth2_key_exists.goUse hashed\r\nOAuth client ID in OTEL span attributes \r\n \r\n \r\n\r\ngateway/mw_oauth2_key_exists.go\r\nUpdated OTEL span attribute to use the hashed key for OAuth client\r\nID. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-1 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions\r\n\r\n---------\r\n\r\nCo-authored-by: Sredny M \n\n(cherry picked from commit 46ca642bd70ecd543ce65461588c821ef1e7fffa)","shortMessageHtmlLink":"[TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)"}},{"before":"e81f58e8a7fdcdcbf2c3e5582f575d6f71d69936","after":null,"ref":"refs/heads/TT-12095","pushedAt":"2024-05-28T12:58:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mativm02","name":"Matias","path":"/mativm02","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83959431?s=80&v=4"}},{"before":"00a815fcd93c7332cc0182ac55733c4fef696cd6","after":"46ca642bd70ecd543ce65461588c821ef1e7fffa","ref":"refs/heads/master","pushedAt":"2024-05-28T12:58:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mativm02","name":"Matias","path":"/mativm02","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83959431?s=80&v=4"},"commit":{"message":"[TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)\n\n### **User description**\r\n\r\n\r\n## Description\r\n`tyk.api.apikey` and `tyk.api.oauthid` attributes were exposing keys\r\nwhen OTEL was enabled. Now, the value of this attribute is the hashed\r\nkey instead.\r\nCan be checked when creating a key:\r\n\r\nNow, the attribute must show the hashed key, not the actual key.\r\n\r\n\r\n## Related Issue\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n\r\n\r\n\r\n## Motivation and Context\r\n\r\nhttps://tyktech.atlassian.net/browse/TT-12095?atlOrigin=eyJpIjoiMGJkNjAxOTI1MWQ5NGE0ZWIyNDgyNzlmMDcxMTM4YmEiLCJwIjoiaiJ9\r\n\r\n\r\n## How This Has Been Tested\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Screenshots (if appropriate)\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to change)\r\n- [ ] Refactoring or add test (improvements in base code or adds test\r\ncoverage to functionality)\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n\r\n- [ ] I ensured that the documentation is up to date\r\n- [ ] I explained why this PR updates go.mod in detail with reasoning\r\nwhy it's required\r\n- [ ] I would like a code coverage CI quality gate exception and have\r\nexplained why\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nBug fix\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Updated `gateway/mw_auth_key.go` to use the hashed API key in OTEL\r\nspan attributes instead of the plain key.\r\n- Updated `gateway/mw_oauth2_key_exists.go` to use the hashed OAuth\r\nclient ID in OTEL span attributes.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Bug fix\r\n | \r\n\r\n \r\n \r\nmw_auth_key.goUse hashed API key in\r\nOTEL span attributes \r\n \r\n\r\n \r\n\r\ngateway/mw_auth_key.go\r\nAdded hashedKey variable to store the hashed key from\r\nthe session. Updated OTEL span attribute to use the hashed key\r\ninstead of the plain key. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+2/-1 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nmw_oauth2_key_exists.goUse hashed\r\nOAuth client ID in OTEL span attributes \r\n \r\n \r\n\r\ngateway/mw_oauth2_key_exists.go\r\nUpdated OTEL span attribute to use the hashed key for OAuth client\r\nID. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-1 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions\r\n\r\n---------\r\n\r\nCo-authored-by: Sredny M ","shortMessageHtmlLink":"[TT-12095] Fixing unhashed API keys exposed in OTEL spans (#6296)"}},{"before":"4ced77715dc17d7cb297f416b4604ce3844cfedc","after":"e81f58e8a7fdcdcbf2c3e5582f575d6f71d69936","ref":"refs/heads/TT-12095","pushedAt":"2024-05-28T12:26:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mativm02","name":"Matias","path":"/mativm02","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83959431?s=80&v=4"},"commit":{"message":"Merge branch 'master' into TT-12095","shortMessageHtmlLink":"Merge branch 'master' into TT-12095"}},{"before":"6feea63c8c5a08034a0b67be7bfa78dd99acd97f","after":null,"ref":"refs/heads/feat/TT-11997/Backend-logic-for-request_headers_rewrite","pushedAt":"2024-05-28T12:14:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"}},{"before":"f7cda28a34f751acb771c9ab2c2f9ed4d93a6b4f","after":"00a815fcd93c7332cc0182ac55733c4fef696cd6","ref":"refs/heads/master","pushedAt":"2024-05-28T12:14:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"},"commit":{"message":"[TT-11997] Backend logic for request_headers_rewrite (#6306)\n\n### **User description**\r\nSee https://tyktech.atlassian.net/browse/TT-11997 for details of the\r\nrequest headers rewrite rules.\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nEnhancement, Tests\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Added tests for request headers rewrite rules in GraphQL middleware.\r\n- Integrated request headers rewrite logic into the reverse proxy\r\nhandler.\r\n- Added `RequestHeadersRewrite` to `ReverseProxyParams` struct.\r\n- Passed `RequestHeadersRewrite` to the GraphQL engine transport for\r\nboth v1 and v2.\r\n- Implemented logic to apply request headers rewrite rules in the\r\nGraphQL engine transport, covering three different rewrite scenarios.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Tests\r\n | \r\n\r\n \r\n \r\nmw_graphql_test.goAdd tests for\r\nrequest headers rewrite rules in GraphQL\r\nmiddleware. \r\n \r\n\r\ngateway/mw_graphql_test.go\r\nAdded tests for request headers rewrite rules. Implemented\r\nthree test cases for different rewrite scenarios. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+137/-0 \r\n | \r\n \r\n |
Enhancement\r\n | \r\n\r\n \r\n \r\nreverse_proxy.goIntegrate request\r\nheaders rewrite logic in reverse proxy handler. \r\n \r\n\r\ngateway/reverse_proxy.go\r\nIntegrated request headers rewrite logic into the reverse proxy\r\n handler. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+8/-7 \r\n | \r\n \r\n\r\n\r\n \r\n \r\nengine.goAdd RequestHeadersRewrite\r\nto ReverseProxyParams struct. \r\n \r\n\r\ninternal/graphengine/engine.go\r\n- Added `RequestHeadersRewrite` to `ReverseProxyParams` struct.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+8/-7 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v1.goPass\r\nRequestHeadersRewrite to GraphQL engine transport\r\n(v1). \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v1.go\r\n- Passed `RequestHeadersRewrite` to the GraphQL engine transport.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-0 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ngraphql_go_tools_v2.goPass\r\nRequestHeadersRewrite to GraphQL engine transport\r\n(v2). \r\n \r\n\r\ninternal/graphengine/graphql_go_tools_v2.go\r\n- Passed `RequestHeadersRewrite` to the GraphQL engine transport.\r\n\r\n\r\n\r\n \r\n \r\n\r\n | \r\n+1/-0 \r\n | \r\n \r\n\r\n\r\n \r\n \r\ntransport.goImplement request\r\nheaders rewrite logic in GraphQL engine transport. \r\n \r\n\r\ninternal/graphengine/transport.go\r\nAdded logic to apply request headers rewrite rules in the GraphQL\r\n engine transport. Implemented three rewrite rules for\r\nrequest headers. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+96/-1 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions","shortMessageHtmlLink":"[TT-11997] Backend logic for request_headers_rewrite (#6306)"}},{"before":"819cf5f0ae2d623b898cd67a7ecac914db097765","after":"156258e4a70b592e68a3d19c1985d75401045ebd","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-28T12:05:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Adjust context as unused","shortMessageHtmlLink":"Adjust context as unused"}},{"before":"d3f5f8e9b86cce487a122150c67ead498e6d996e","after":"819cf5f0ae2d623b898cd67a7ecac914db097765","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-28T10:30:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Adjust comments, remove oxford comma, allowance description","shortMessageHtmlLink":"Adjust comments, remove oxford comma, allowance description"}},{"before":"52662c0df74c78776deb8b464bd4c4bd96a5c271","after":"d3f5f8e9b86cce487a122150c67ead498e6d996e","ref":"refs/heads/feat/tt-3738/rate-limit-smoothing","pushedAt":"2024-05-28T09:25:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titpetric","name":"Tit Petric","path":"/titpetric","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/233360?s=80&v=4"},"commit":{"message":"Fix settings contract key to smoothing","shortMessageHtmlLink":"Fix settings contract key to smoothing"}},{"before":null,"after":"270f5077a2b791d16288c871dd057868559c304b","ref":"refs/heads/release-5.3.2","pushedAt":"2024-05-28T08:31:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lghiur","name":"Laurentiu Ghiur","path":"/lghiur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6229829?s=80&v=4"},"commit":{"message":"Merging to release-5.3: [TT-12193] Update error handling on webhook events when the event template has errors (#6312)\n\n[TT-12193] Update error handling on webhook events when the event template has errors (#6312)\n\n### **User description**\r\n- Error log raised from Warning to Error, stops handling the event\r\nfurther\r\n- CreateBody adjusted to not return rendered template contents if error\r\noccurs\r\n\r\n\r\n___\r\n\r\n### **PR Type**\r\nBug fix, Enhancement\r\n\r\n\r\n___\r\n\r\n### **Description**\r\n- Updated `CreateBody` method to return an empty string and error when\r\ntemplate rendering fails, instead of a partially rendered template.\r\n- Changed log level from warning to error in `HandleEvent` method when a\r\ntemplate rendering error occurs.\r\n- Added early return in `HandleEvent` to stop further processing if a\r\ntemplate error is encountered.\r\n\r\n\r\n___\r\n\r\n\r\n\r\n### **Changes walkthrough** 📝\r\n | Relevant\r\nfiles |
---|
Bug fix\r\n | \r\n\r\n \r\n \r\nevent_handler_webhooks.goImprove\r\nerror handling in webhook event processing \r\n \r\n \r\n\r\ngateway/event_handler_webhooks.go\r\nUpdated CreateBody to return an empty string on error\r\ninstead of a partially rendered template. Changed log level\r\nfrom warning to error in HandleEvent when a template\r\n rendering error occurs. Added early return in\r\nHandleEvent to stop processing on template error. \r\n\r\n\r\n \r\n \r\n\r\n | \r\n+7/-4 \r\n | \r\n \r\n |
\r\n\r\n___\r\n\r\n> 💡 **PR-Agent usage**:\r\n>Comment `/help` on the PR to get a list of all available PR-Agent tools\r\nand their descriptions\r\n\r\nCo-authored-by: Tit Petric ","shortMessageHtmlLink":"Merging to release-5.3: [TT-12193] Update error handling on webhook e…"}},{"before":"46b54fa9f39391bfec7227d2cebc65c38e54192c","after":"6feea63c8c5a08034a0b67be7bfa78dd99acd97f","ref":"refs/heads/feat/TT-11997/Backend-logic-for-request_headers_rewrite","pushedAt":"2024-05-28T08:25:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"buraksezer","name":"Burak Sezer","path":"/buraksezer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33702537?s=80&v=4"},"commit":{"message":"Merge branch 'master' into feat/TT-11997/Backend-logic-for-request_headers_rewrite","shortMessageHtmlLink":"Merge branch 'master' into feat/TT-11997/Backend-logic-for-request_he…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVyPKoQA","startCursor":null,"endCursor":null}},"title":"Activity · TykTechnologies/tyk"}