)]}'
{
  "log": [
    {
      "commit": "066cb0b9b49945eca6376e62e91c0f773f2ce6ca",
      "tree": "94432adf65eae7ec63f60a3f2db3f72cafb61172",
      "parents": [
        "c87fb8ab7e7bbb8137dc7c8c2b759208d8f5abcb"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Wed Apr 15 11:09:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 11:09:48 2026 +0800"
      },
      "message": "[INLONG-12111][SDK] ProtoBuf decoding supports parsing map nodes (#12112)"
    },
    {
      "commit": "c87fb8ab7e7bbb8137dc7c8c2b759208d8f5abcb",
      "tree": "5b89437ed9c5ee4e071aa4e46564c65198f77565",
      "parents": [
        "05ee935e383ecdf799a8453adba6240f39fbe35f"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Fri Apr 03 17:16:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 17:16:58 2026 +0800"
      },
      "message": "[INLONG-12108][SDK] TransformSDK supports decoding and transformation of ProtoBuf description files with multiple Proto files and multi-level NestedType (#12110)\n\n* [INLONG-12108][SDK] TransformSDK supports decoding and transformation of ProtoBuf description files with multiple Proto files and multi-level NestedType\n\n* support that root message type has package name"
    },
    {
      "commit": "05ee935e383ecdf799a8453adba6240f39fbe35f",
      "tree": "1714286d76fa500e4fa7984529cbcf6991b4f94b",
      "parents": [
        "5a731c9b5baeb663b849425e8d3fb1d686c9ebf1"
      ],
      "author": {
        "name": "flowers-59f",
        "email": "115353281+flowers-59f@users.noreply.github.com",
        "time": "Mon Mar 16 16:55:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 16:55:34 2026 +0800"
      },
      "message": "[INLONG-12100][Manager][SDK][Common] Fix \u0027separated\u0027 incorrect spelling in multiple files (#12101)"
    },
    {
      "commit": "5a731c9b5baeb663b849425e8d3fb1d686c9ebf1",
      "tree": "bb8d4b091bdcc648b7b6d189f8f45454d36a5358",
      "parents": [
        "560c1ec824a592d054c4b24c4a03e4baa1810e45"
      ],
      "author": {
        "name": "hzqmwne",
        "email": "huangzhengqmwne@sina.cn",
        "time": "Thu Mar 05 22:57:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 22:57:01 2026 +0800"
      },
      "message": "[INLONG-12090][SDK] Build standard Python Dataproxy SDK wheels based on PEP-517 (#12091)\n\n"
    },
    {
      "commit": "560c1ec824a592d054c4b24c4a03e4baa1810e45",
      "tree": "e70b3afeb95fac70c068d5d536306997154d94da",
      "parents": [
        "d54d28fd2006f08b27470397e060ea0fb3f98f62"
      ],
      "author": {
        "name": "healchow",
        "email": "healchow@apache.org",
        "time": "Wed Mar 04 15:33:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 15:33:23 2026 +0800"
      },
      "message": "[INLONG-12098][Manager] Improve audit query nodeType mapping completeness and avoid null audit IDs(#12099)\n\n"
    },
    {
      "commit": "d54d28fd2006f08b27470397e060ea0fb3f98f62",
      "tree": "5fa5aef611737f1b47984cb6fa32203fa473ee3d",
      "parents": [
        "45a6b1354ef1eb0f3d5a55d135258e0ebc2375c5"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Mon Mar 02 14:05:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 14:05:06 2026 +0800"
      },
      "message": "[INLONG-12092][Manager] Fix the problem of Non-template responsible persons can view template information (#12093)\n\nCo-authored-by: wakefu \u003cwakefu@tencent.com\u003e"
    },
    {
      "commit": "45a6b1354ef1eb0f3d5a55d135258e0ebc2375c5",
      "tree": "54ab700e468224762259150ec17f9be55d5d4999",
      "parents": [
        "a5001d8c19ae7dd9d355bfa0d56797ac900818e7"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Mon Mar 02 14:04:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 14:04:53 2026 +0800"
      },
      "message": "[INLONG-12094][Manager] Fix the problem of ordinary users can create new packages (#12095)\n\nCo-authored-by: wakefu \u003cwakefu@tencent.com\u003e"
    },
    {
      "commit": "a5001d8c19ae7dd9d355bfa0d56797ac900818e7",
      "tree": "5bc7c87b23395c7e3d93cfcaaa3e4fd7fabb9841",
      "parents": [
        "a5876c16a0aad20da85308f4f4ab48191c8126a7"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Sat Feb 28 14:52:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 28 14:52:42 2026 +0800"
      },
      "message": "[INLONG-12096][Audit] Optimize function comments related to switching JDBC (#12097)\n\nCo-authored-by: doleyzi \u003cdoleyzi@tencent.com\u003e"
    },
    {
      "commit": "a5876c16a0aad20da85308f4f4ab48191c8126a7",
      "tree": "6c4b798b8e567e10bdc46e567a76422bac5d0576",
      "parents": [
        "5c0fec288fe46155e98e29109f7c0d877217d030"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Fri Feb 27 17:41:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 17:41:56 2026 +0800"
      },
      "message": "[INLONG-12088][Audit] Audit routing data source management supports domain names (#12089)\n\nCo-authored-by: doleyzi \u003cdoleyzi@tencent.com\u003e"
    },
    {
      "commit": "5c0fec288fe46155e98e29109f7c0d877217d030",
      "tree": "59272441dd11fa6c6ea98c3d34e21605bf490bf4",
      "parents": [
        "5b50d13a468a13f981378ad691491b3fba35e012"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Thu Feb 26 17:08:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 17:08:16 2026 +0800"
      },
      "message": "[INLONG-12064][Audit] Static ScheduledExecutorService in PulsarSink causes ClassLoader leaks and shared state corruption (#12085)\n\nCo-authored-by: doleyzi \u003cdoleyzi@tencent.com\u003e"
    },
    {
      "commit": "5b50d13a468a13f981378ad691491b3fba35e012",
      "tree": "1e724a7883977f370273045c8be58b37da8f3394",
      "parents": [
        "ac5aa1c5026a392accf1c088186573122df91f96"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Thu Feb 26 15:42:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 15:42:44 2026 +0800"
      },
      "message": "[INLONG-12086][CI] Upgrade parameters of first interaction (#12087)\n\n"
    },
    {
      "commit": "ac5aa1c5026a392accf1c088186573122df91f96",
      "tree": "6b59389f8cf810ce45976d6fd305e9b62a107a50",
      "parents": [
        "c6a949e2e78bb2cb8084d8eb5c91531fa8d2c4d4"
      ],
      "author": {
        "name": "healchow",
        "email": "healchow@apache.org",
        "time": "Wed Feb 25 19:39:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 19:39:25 2026 +0800"
      },
      "message": "[INLONG-12075][Manager] Allow admin or in-charge delete InlongGroup (#12076)\n\n"
    },
    {
      "commit": "c6a949e2e78bb2cb8084d8eb5c91531fa8d2c4d4",
      "tree": "6d000d11f2c7dc7f8190c817906548c9c5e21ecd",
      "parents": [
        "e204cb1c1dd4f3f41817a89ab226c306be8ad145"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Wed Feb 25 19:37:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 19:37:54 2026 +0800"
      },
      "message": "[INLONG-12083][CI] Upgrade github actions version and specify permission of actions (#12084)\n\n"
    },
    {
      "commit": "e204cb1c1dd4f3f41817a89ab226c306be8ad145",
      "tree": "efe8bbe1f560570cb6388973a82d7d1c1de0eeca",
      "parents": [
        "4e42f6838f6bf5d6bebd4dffd1439781efa92339"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Wed Feb 25 17:28:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 17:28:28 2026 +0800"
      },
      "message": "[INLONG-12079][Manager] Fix the problem of AuditAlertRuleRequest lacks validation for orderField and orderType (#12080)\n\nCo-authored-by: wakefu \u003cwakefu@tencent.com\u003e"
    },
    {
      "commit": "4e42f6838f6bf5d6bebd4dffd1439781efa92339",
      "tree": "b35c0017e4f540f57f623ca3e16ad9d155c24a84",
      "parents": [
        "b2876ad335b99792ef94894a38f4e9b94242adb8"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Wed Feb 25 15:47:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 15:47:59 2026 +0800"
      },
      "message": "[INLONG-12081][CI] Fix github action workflow policy violations (#12082)\n\n"
    },
    {
      "commit": "b2876ad335b99792ef94894a38f4e9b94242adb8",
      "tree": "764b6a10a62294a5e8944ea47c2df76a2ddccdd6",
      "parents": [
        "3cf96858c58afd7fe25dca3ce9e40ab98031e157"
      ],
      "author": {
        "name": "healchow",
        "email": "healchow@apache.org",
        "time": "Wed Feb 25 15:29:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 15:29:10 2026 +0800"
      },
      "message": "[INLONG-12073][Manager] Optimize Pulsar message query with thread pool and proper error handling (#12074)\n\n* [INLONG-12073][Manager] Optimize Pulsar message query with thread pool and proper error handling\n\n* [INLONG-12073][Manager] Throw exception for query caller\n\n* [INLONG-12073][Manager] Add unit tests\n\n* [INLONG-12073][Manager] Fix the code formats\n\n* [INLONG-12073][Manager] Remove the randomly select method\n\n* [INLONG-12073][Manager] Use ConcurrentLinkedQueue to improve performance\n\n* [INLONG-12073][Manager] Add name label for manager-schedule module\n\n* [INLONG-12073][Manager] Remove unused properties"
    },
    {
      "commit": "3cf96858c58afd7fe25dca3ce9e40ab98031e157",
      "tree": "5d3c55719f9c65ff9108cd9bc576c83d67a71cfa",
      "parents": [
        "b49fb908c742c91530748cc07d1981787b24d220"
      ],
      "author": {
        "name": "healchow",
        "email": "healchow@apache.org",
        "time": "Wed Feb 25 09:56:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 09:56:19 2026 +0800"
      },
      "message": "[INLONG-12071][Manager] Fix the incorrect filtering logic that checks whether messages match (#12072)\n\n* [INLONG-12071][Manager] Fix the filtering logic that incorrectly determines whether messages match\n\n* [INLONG-12071][Manager] Fix the compile warning issues"
    },
    {
      "commit": "b49fb908c742c91530748cc07d1981787b24d220",
      "tree": "eae4a919c0db252e69f602f908b268e05b6161e6",
      "parents": [
        "b5286a106760e2573e8f36fb413f477ee66f7fe6"
      ],
      "author": {
        "name": "healchow",
        "email": "healchow@apache.org",
        "time": "Tue Feb 24 17:21:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 17:21:42 2026 +0800"
      },
      "message": "[INLONG-12077][CI] Make swapfile setup idempotent to avoid Text file busy failures (#12078)\n\n"
    },
    {
      "commit": "b5286a106760e2573e8f36fb413f477ee66f7fe6",
      "tree": "d1a70932ebcf44c7db2500d5266be0a01ab14a50",
      "parents": [
        "113146819554844ea3aa19e5192de35dcb4466a6"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Thu Jan 29 18:51:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 18:51:38 2026 +0800"
      },
      "message": "[INLONG-12069][Audit] Fill with zero when there is no data for a given the API of day (#12070)\n\n[INLONG-12069][Audit] Fill with zero when there is no data for a given the API of day (#12070)"
    },
    {
      "commit": "113146819554844ea3aa19e5192de35dcb4466a6",
      "tree": "350168d125a5cf8a318015154313dc5633cb9d2d",
      "parents": [
        "e101491385be810ea49d1f9842b6ee56cd74ac1c"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Wed Jan 21 18:44:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 18:44:25 2026 +0800"
      },
      "message": "[INLONG-12067][Audit] Optimize the auditing data statistics by day (#12068)\n\nCo-authored-by: doleyzi \u003cdoleyzi@tencent.com\u003e"
    },
    {
      "commit": "e101491385be810ea49d1f9842b6ee56cd74ac1c",
      "tree": "9048a4a0103c5479927a208ceaacecd76fe62c94",
      "parents": [
        "6ae6636b603526ee3227cb61d055e9a437bce0a0"
      ],
      "author": {
        "name": "Mingyu Bao",
        "email": "baomingyu_5@163.com",
        "time": "Fri Jan 16 14:12:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 16 14:12:15 2026 +0800"
      },
      "message": "[INLONG-12065][Sort] Sort Format supports outputting complete row information when errors occur in field parsing (#12066)\n\n"
    },
    {
      "commit": "6ae6636b603526ee3227cb61d055e9a437bce0a0",
      "tree": "9ca402aab6135d89e77f0b9568edafebfee889e7",
      "parents": [
        "0edced5706272a1b1d2bea627e74ec66a05938ec"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Mon Jan 05 15:45:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 05 15:45:02 2026 +0800"
      },
      "message": "[INLONG-12062][SDK] Upgrade gnet version in dataproxy go sdk (#12063)\n\n"
    },
    {
      "commit": "0edced5706272a1b1d2bea627e74ec66a05938ec",
      "tree": "c9e11d5bd4e71449ebdb30eb701b8eddd5f0bfe3",
      "parents": [
        "63a2197cb17d29f6473c53e4d01002148aee7b18"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Mon Jan 05 10:08:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 05 10:08:57 2026 +0800"
      },
      "message": "[INLONG-12058][SDK] Support retry mechanism when \"server error\" occurs in dataproxy client (#12059)\n\n"
    },
    {
      "commit": "63a2197cb17d29f6473c53e4d01002148aee7b18",
      "tree": "f12ba067ee8e074dc5e0de2fa20c8cbfbcabdba7",
      "parents": [
        "0bb45cc3a9c11e8fd87c2f0f67a04a9796044339"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Wed Dec 31 17:23:05 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 17:23:05 2025 +0800"
      },
      "message": "[INLONG-12060][Audit] Optimize audit route management (#12061)\n\nCo-authored-by: doleyzi \u003cdoleyzi@tencent.com\u003e"
    },
    {
      "commit": "0bb45cc3a9c11e8fd87c2f0f67a04a9796044339",
      "tree": "d99e00611bfb39de10b89a7f0ac86d4c1fec1efa",
      "parents": [
        "ddb2e2576bf285dadd82a0525a912ed1d7c0d04f"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Wed Dec 24 14:38:01 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 24 14:38:01 2025 +0800"
      },
      "message": "[INLONG-12016][SDK] Add Python Dataproxy SDK compile Dockerfile (#12018)\n\n"
    },
    {
      "commit": "ddb2e2576bf285dadd82a0525a912ed1d7c0d04f",
      "tree": "508847df36cf69ab87c41092504590e89ff33567",
      "parents": [
        "02779aab97e6ed0446bbd5dd975a0d522362c4a3"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Wed Dec 24 14:33:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 24 14:33:31 2025 +0800"
      },
      "message": "[INLONG-12056][SDK] TransformSDK supports the \"not in\" operator (#12057)\n\n"
    },
    {
      "commit": "02779aab97e6ed0446bbd5dd975a0d522362c4a3",
      "tree": "486e8f024f88acf6d5eaaf53efde1a81f55e68c1",
      "parents": [
        "185b3617d96b206f1e6fb296357038224eb42a1d"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Mon Dec 22 15:49:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 22 15:49:35 2025 +0800"
      },
      "message": "[INLONG-12054][SDK] Optimize InLong Dataproxy Python SDK dependency version requirements (#12055)\n\n"
    },
    {
      "commit": "185b3617d96b206f1e6fb296357038224eb42a1d",
      "tree": "939e7f28d12cbd51f25d0c50fa969670994d33e9",
      "parents": [
        "9efa3fac9ddd5c3b48902c8cbc7b8c699dfb2356"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Mon Nov 24 11:07:27 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 24 11:07:27 2025 +0800"
      },
      "message": "[INLONG-12052][Dashboard] Optimization of text display in long forms on resource details page (#12053)\n\n"
    },
    {
      "commit": "9efa3fac9ddd5c3b48902c8cbc7b8c699dfb2356",
      "tree": "5cbc933733a956dcfba999c3854d13aeb942105d",
      "parents": [
        "b19119e4d6183bd30a8d3cc9ddde4d99a090ace7"
      ],
      "author": {
        "name": "Charles Zhang",
        "email": "dockerzhang@apache.org",
        "time": "Tue Nov 18 20:39:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 20:39:58 2025 +0800"
      },
      "message": "[INLONG-12048][Docker] Change base image from openjdk:8-jdk to adoptopenjdk/openjdk8 (#12049)\n\n"
    },
    {
      "commit": "b19119e4d6183bd30a8d3cc9ddde4d99a090ace7",
      "tree": "dbfe6ae6e2a78d98d1e74bfdf04596b2c84bc1f3",
      "parents": [
        "e477cbbfad4254fd109e58339764bafd03b6a2a1"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Tue Nov 18 18:44:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 18:44:00 2025 +0800"
      },
      "message": "[INLONG-11950][Agent] Missing case in switch statement (#12050)\n\n"
    },
    {
      "commit": "e477cbbfad4254fd109e58339764bafd03b6a2a1",
      "tree": "ec87317c7fc65de3ab09a20d21c29ea2fcd4e4d1",
      "parents": [
        "f554c3a6c454aa95d395ecae265259e385ec243b"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Tue Nov 18 15:28:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 15:28:04 2025 +0800"
      },
      "message": "[INLONG-12046][Audit] SQL script initialization failed (#12047)\n\n"
    },
    {
      "commit": "f554c3a6c454aa95d395ecae265259e385ec243b",
      "tree": "8da2cfc6e3f801721fbd7034c05159c1ac550de6",
      "parents": [
        "2ce18c94bb4f79c57136e2903b11aee6ffbb1b92"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Tue Nov 18 15:11:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 15:11:43 2025 +0800"
      },
      "message": "[INLONG-12044][Dashboard] Fix the Agent installation method is missing (#12045)\n\n"
    },
    {
      "commit": "2ce18c94bb4f79c57136e2903b11aee6ffbb1b92",
      "tree": "0125e47c00bfe94fde2789c80d6c3bd9b6eadaac",
      "parents": [
        "1590949b340fa1c243fb0149561002e05d3834f9"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Wed Nov 12 20:27:03 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 20:27:03 2025 +0800"
      },
      "message": "[INLONG-12042][Audit] Change the name of the audit item BSS to BIFANG (#12043)\n\n[INLONG-12042][Audit] Change the name of the audit item BSS to BIFANG (#12043)"
    },
    {
      "commit": "1590949b340fa1c243fb0149561002e05d3834f9",
      "tree": "0a9a1650d09332df3ab5f765801469394a0268e5",
      "parents": [
        "f9bcee9ae9b427026b8283ea7a9a22707f571d88"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Fri Oct 31 21:22:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 31 21:22:11 2025 +0800"
      },
      "message": "[INLONG-12030][Release] Bumped master branch version to 2.4.0-SNAPSHOT (#12039)\n\n"
    },
    {
      "commit": "f9bcee9ae9b427026b8283ea7a9a22707f571d88",
      "tree": "a372228d1f647c650bb5edd2775c950082b6ac49",
      "parents": [
        "c44e7cd33ea6e903798ff0c7a8bef2d5a4ca1971"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Fri Oct 31 16:15:25 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 31 16:15:25 2025 +0800"
      },
      "message": "[INLONG-12027][Release] Update changes log for the 2.3.0 version (#12038)\n\n"
    },
    {
      "commit": "c44e7cd33ea6e903798ff0c7a8bef2d5a4ca1971",
      "tree": "001cc314ce9429cf68a0daaace50c21566b12f7a",
      "parents": [
        "fdfc7829fcd4c8e082b9d5852c75fb287633daed"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Fri Oct 31 14:07:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 31 14:07:36 2025 +0800"
      },
      "message": "[INLONG-12026][Release] Add the 2.3.0 version option for the bug report (#12037)\n\n"
    },
    {
      "commit": "fdfc7829fcd4c8e082b9d5852c75fb287633daed",
      "tree": "aef30754e6ded94dd62bbf2839573841ec49a3c0",
      "parents": [
        "9a79697b07cd62c48b83b010358e23235308fecf"
      ],
      "author": {
        "name": "Charles Zhang",
        "email": "dockerzhang@apache.org",
        "time": "Thu Oct 23 10:11:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 10:11:11 2025 +0800"
      },
      "message": "[INLONG-12021][Sort] Bump Elasticsearch dependency to 7.17.25 (#12025)\n\n"
    },
    {
      "commit": "9a79697b07cd62c48b83b010358e23235308fecf",
      "tree": "000796aa3580c1ec7902aa91c23d4c3b33492a62",
      "parents": [
        "cd3d44a5570fc4ff1121b2d7d6f65103699de00e"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Fri Oct 17 10:52:52 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 17 10:52:52 2025 +0800"
      },
      "message": "[INLONG-12019][SDK] Transformation supports a caching mechanism for processing identical function parameters (#12020)\n\n"
    },
    {
      "commit": "cd3d44a5570fc4ff1121b2d7d6f65103699de00e",
      "tree": "6da5252980f91dc33748a0b8e8f8028ffb087071",
      "parents": [
        "60b8df3d0a667469daa981bebbb53b26af3f2332"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Tue Oct 14 11:06:39 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 11:06:39 2025 +0800"
      },
      "message": "[INLONG-12014][SDK] Add C++ Dataproxy SDK compile Dockerfile (#12015)\n\n"
    },
    {
      "commit": "60b8df3d0a667469daa981bebbb53b26af3f2332",
      "tree": "396332004236e5e0d804d5eae970a9949512c00c",
      "parents": [
        "f54b557556a53d20b1027e96a8eacd68faf28323"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Tue Oct 14 10:04:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 10:04:35 2025 +0800"
      },
      "message": "[INLONG-12012][SDK] Put the Python Dataproxy SDK target directory in the command line parameters to avoid interruption of the build process (#12017)\n\n* [INLONG-12012][SDK] Put the Python Dataproxy SDK target directory in the command line parameters to avoid interruption of the build process\n\n* fix comments"
    },
    {
      "commit": "f54b557556a53d20b1027e96a8eacd68faf28323",
      "tree": "865625b66ed1df89f448b6ae830c5c76011afee9",
      "parents": [
        "8fb2b49ab0d2cfe65891330948f88bbee14641f9"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Thu Oct 09 10:56:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 09 10:56:28 2025 +0800"
      },
      "message": "[INLONG-12009][Audit] Audit support for managing storage multiple clusters through routing (#12013)\n\n* [INLONG-12009][Audit] Audit support for managing storage multiple clusters through routing\n\n* [INLONG-11993][Audit] Optimize the SQL\n\n* [INLONG-11993][Audit] Optimize the name of local indicators"
    },
    {
      "commit": "8fb2b49ab0d2cfe65891330948f88bbee14641f9",
      "tree": "fde9913b757eb5aad72bde23ac47d19d0c07003e",
      "parents": [
        "9bed15f82acd6babb207fbf9dc7d056ad6b524ad"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Sun Sep 28 11:37:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 28 11:37:35 2025 +0800"
      },
      "message": "[INLONG-12010][SDK] Fix the problem of truncated string data containing Chinese characters when reporting using Dataproxy Python SDK (#12011)\n\n"
    },
    {
      "commit": "9bed15f82acd6babb207fbf9dc7d056ad6b524ad",
      "tree": "f00621daeb0faa555770842707fb51c7607d9807",
      "parents": [
        "b36bfbe014f56d303bb097f2e4f9345d7e5b8a4e"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Wed Sep 24 20:04:57 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 24 20:04:57 2025 +0800"
      },
      "message": "[INLONG-12007][Sort] SortPulsar supports topic concatenation (#12008)\n\n"
    },
    {
      "commit": "b36bfbe014f56d303bb097f2e4f9345d7e5b8a4e",
      "tree": "5d8d4046da206b12fdb418b649b483a5d2ff4881",
      "parents": [
        "5deaf63913f06969b3da19b5c6b61a10720d3d28"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Sep 15 19:10:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 19:10:38 2025 +0800"
      },
      "message": "[INLONG-11995][Agent] The Agent supports parallel creation of Sender connections to the DataProxy, improving creation efficiency (#11996)\n\n"
    },
    {
      "commit": "5deaf63913f06969b3da19b5c6b61a10720d3d28",
      "tree": "669184ef9ca9d4a5505438fe38ce4b4e4e14212e",
      "parents": [
        "9411dc1a1805825762a940e57ce8c1630a9a4ad4"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Sep 15 16:17:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 16:17:59 2025 +0800"
      },
      "message": "[INLONG-12003][Agent] Added the agent_ext.properties configuration file loading to prevent personalized configurations from being lost when the agent.properties configuration file is overwritten during upgrades (#12004)\n\n* [INLONG-12003][Agent] Added the agent_ext.properties configuration file loading to prevent personalized configurations from being lost when the agent.properties configuration file is overwritten during upgrades\n\n* [INLONG-12003][Agent] Added the agent_ext.properties configuration file loading to prevent personalized configurations from being lost when the agent.properties configuration file is overwritten during upgrades"
    },
    {
      "commit": "9411dc1a1805825762a940e57ce8c1630a9a4ad4",
      "tree": "59ca4dfd0f0f973d3c610837a7be8bdcece4993c",
      "parents": [
        "c8a61e40b4e38408757ae10013e3830c322cf2d7"
      ],
      "author": {
        "name": "Kafka",
        "email": "92581531+ZhenyuePan@users.noreply.github.com",
        "time": "Mon Sep 15 10:08:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 10:08:28 2025 +0800"
      },
      "message": "[INLONG-11999][Audit] Add alert evaluation and periodic audit check task (#12002)\n\n* [INLONG-11999][Audit] Add alert evaluation and periodic audit check task\n\n* [INLONG-11999][Audit] Add alert evaluation and periodic audit check task\n\n* [INLONG-11999][Audit] Add alert evaluation and periodic audit check task\n\n* [INLONG-11999][Audit] Add alert evaluation and periodic audit check task\n\n* [INLONG-11999][Audit] Add alert evaluation and periodic audit check task\n\n* Update AuditToolMain.java\n\n---------\n\nCo-authored-by: doleyzi \u003c43397300+doleyzi@users.noreply.github.com\u003e"
    },
    {
      "commit": "c8a61e40b4e38408757ae10013e3830c322cf2d7",
      "tree": "7e5692ff9dac4b42f7316eb32b55f6e3209e6b23",
      "parents": [
        "c5b84ec6fc046098557e6eeacc96f064aca7566e"
      ],
      "author": {
        "name": "lsq888lsq",
        "email": "105149317+lsq888lsq@users.noreply.github.com",
        "time": "Sun Sep 14 22:18:47 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 14 22:18:47 2025 +0800"
      },
      "message": "[INLONG-12000][Audit]Implement API for obtaining audit data in Audit Tool (#12001)\n\n* [Feature][Audit]Implement API for obtaining audit data in Audit Tool\n\n* [Feature][Audit]Implement API for obtaining audit data in Audit Tool\n\n* [INLONG-12000][Audit]Implement API for obtaining audit data in Audit Tool\n\n* [INLONG-12000][Audit]Implement API for obtaining audit data in Audit Tool\n\n* [INLONG-12000][Audit]Implement API for obtaining audit data in Audit Tool\n\n* [INLONG-12000][Audit] Remove DTO directory\n\n* [INLONG-12000][Audit]Implement API for obtaining audit data in Audit Tool\n\n---------\n\nCo-authored-by: lsq \u003c15297823178@163.com\u003e"
    },
    {
      "commit": "c5b84ec6fc046098557e6eeacc96f064aca7566e",
      "tree": "71689201a1db9df3ce9682a89dc47b70099ca9ba",
      "parents": [
        "c96830dac936a603790760f02c5da8e067284d83"
      ],
      "author": {
        "name": "shuideyimei2",
        "email": "wshuo419@gmail.com",
        "time": "Sun Sep 14 17:27:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 14 17:27:44 2025 +0800"
      },
      "message": "[INLONG-11997][Manager] Add comprehensive audit alert rule management API (#11978)\n\n* [INLONG-11923][Manager] Add audit alert rule management API\n\n- Add AuditAlertRule POJO class with validation annotations\n- Add AuditAlertRuleEntity for database mapping\n- Add AuditAlertRuleEntityMapper with CRUD operations\n- Add MyBatis XML mapping file\n- Implement audit alert rule management in AuditServiceImpl\n- Add REST API endpoints in AuditController\n- Add comprehensive unit tests\n- Add API test scripts for validation\n\n* [INLONG-11923][Manager] Add comprehensive audit alert rule management API\n\nFixes #11923\n\n### Motivation\n\nCurrently, Apache InLong lacks a comprehensive audit alert rule management system to monitor data quality, detect anomalies, and provide real-time alerting capabilities. Users need the ability to create, manage, and monitor audit alert rules to ensure data pipeline reliability and quality.\n\nThis enhancement adds a complete audit alert rule management API that allows users to:\n- Configure alert rules for data count, delay, and quality metrics\n- Set up notification channels (EMAIL, SMS, etc.)\n- Manage alert rule lifecycle (create, update, delete, enable/disable)\n- Query and filter alert rules by group and stream\n\n### Modifications\n\n**1. Data Model Layer**\n- Added [AuditAlertRule](file://e:\\inlong\\inlong-manager\\manager-pojo\\src\\main\\java\\org\\apache\\inlong\\manager\\pojo\\audit\\AuditAlertRule.java#L25-L63) POJO class in `manager-pojo` module with comprehensive validation annotations\n- Added [AuditAlertRuleEntity](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\entity\\AuditAlertRuleEntity.java#L23-L39) database entity in `manager-dao` module for MyBatis mapping\n- Added [AuditAlertRuleEntityMapper](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\mapper\\AuditAlertRuleEntityMapper.java#L24-L32) interface with full CRUD operations\n- Added MyBatis XML mapping file [AuditAlertRuleEntityMapper.xml](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\resources\\mappers\\AuditAlertRuleEntityMapper.xml) with optimized SQL queries\n\n**2. Service Layer**\n- Extended [AuditService](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L31-L103) interface with audit alert rule management methods\n- Implemented audit alert rule management in [AuditServiceImpl](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\impl\\AuditServiceImpl.java#L78-L446) class:\n  - [createAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L87-L87) - Create new alert rules with validation\n  - [getAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L92-L92) - Retrieve alert rule by ID\n  - [updateAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L97-L97) - Update existing alert rules\n  - [deleteAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L102-L102) - Delete alert rules\n  - [listAlertRules()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L82-L82) - Query alert rules with filtering support\n\n**3. Web Layer**\n- Added REST API endpoints in [AuditController](file://e:\\inlong\\inlong-manager\\manager-web\\src\\main\\java\\org\\apache\\inlong\\manager\\web\\controller\\AuditController.java#L51-L137):\n  - `POST /api/audit/alert/rule` - Create alert rule\n  - `GET /api/audit/alert/rule/{id}` - Get alert rule by ID\n  - `PUT /api/audit/alert/rule` - Update alert rule\n  - `DELETE /api/audit/alert/rule/{id}` - Delete alert rule\n  - `GET /api/audit/alert/rule/list` - List alert rules with filtering\n  - `GET /api/audit/alert/rule/enabled` - Get all enabled alert rules\n\n**4. Database Schema**\n- Database table `audit_alert_rule` with optimized indexes\n- Support for MySQL with proper charset and collation\n\n**5. Testing**\n- Comprehensive unit tests in [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class\n- API integration test scripts for manual validation\n- Database initialization SQL scripts\n\n**6. Configuration**\n- MyBatis configuration for audit alert rule mapping\n- Spring Boot auto-configuration support\n\n### Verifying this change\n\n- [x] This change added tests and can be verified as follows:\n\n**Unit Tests:**\n- Added [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class with comprehensive test coverage:\n  - Test alert rule creation with validation\n  - Test alert rule retrieval and updates\n  - Test alert rule deletion and lifecycle management\n  - Test query operations with filtering\n  - Test error handling and edge cases\n\n**Integration Tests:**\n- Added API test scripts ([test-audit-alert-api.sh](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.sh) and [test-audit-alert-api.ps1](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.ps1))\n- Added database initialization script ([init-audit-alert-test-data.sql](file://e:\\inlong\\inlong-manager\\init-audit-alert-test-data.sql))\n- Manual testing workflow documented\n\n**Test Coverage:**\n- Service layer: Full CRUD operations testing\n- Controller layer: HTTP endpoint testing with various scenarios\n- Data layer: MyBatis mapping and SQL query validation\n- Error handling: Input validation and exception scenarios\n\n* [INLONG-11923][Manager] Add comprehensive audit alert rule management API\n\nFixes #11923\n\n### Motivation\n\nCurrently, Apache InLong lacks a comprehensive audit alert rule management system to monitor data quality, detect anomalies, and provide real-time alerting capabilities. Users need the ability to create, manage, and monitor audit alert rules to ensure data pipeline reliability and quality.\n\nThis enhancement adds a complete audit alert rule management API that allows users to:\n- Configure alert rules for data count, delay, and quality metrics\n- Set up notification channels (EMAIL, SMS, etc.)\n- Manage alert rule lifecycle (create, update, delete, enable/disable)\n- Query and filter alert rules by group and stream\n\n### Modifications\n\n**1. Data Model Layer**\n- Added [AuditAlertRule](file://e:\\inlong\\inlong-manager\\manager-pojo\\src\\main\\java\\org\\apache\\inlong\\manager\\pojo\\audit\\AuditAlertRule.java#L25-L63) POJO class in `manager-pojo` module with comprehensive validation annotations\n- Added [AuditAlertRuleEntity](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\entity\\AuditAlertRuleEntity.java#L23-L39) database entity in `manager-dao` module for MyBatis mapping\n- Added [AuditAlertRuleEntityMapper](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\mapper\\AuditAlertRuleEntityMapper.java#L24-L32) interface with full CRUD operations\n- Added MyBatis XML mapping file [AuditAlertRuleEntityMapper.xml](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\resources\\mappers\\AuditAlertRuleEntityMapper.xml) with optimized SQL queries\n\n**2. Service Layer**\n- Extended [AuditService](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L31-L103) interface with audit alert rule management methods\n- Implemented audit alert rule management in [AuditServiceImpl](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\impl\\AuditServiceImpl.java#L78-L446) class:\n  - [createAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L87-L87) - Create new alert rules with validation\n  - [getAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L92-L92) - Retrieve alert rule by ID\n  - [updateAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L97-L97) - Update existing alert rules\n  - [deleteAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L102-L102) - Delete alert rules\n  - [listAlertRules()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L82-L82) - Query alert rules with filtering support\n\n**3. Web Layer**\n- Added REST API endpoints in [AuditController](file://e:\\inlong\\inlong-manager\\manager-web\\src\\main\\java\\org\\apache\\inlong\\manager\\web\\controller\\AuditController.java#L51-L137):\n  - `POST /api/audit/alert/rule` - Create alert rule\n  - `GET /api/audit/alert/rule/{id}` - Get alert rule by ID\n  - `PUT /api/audit/alert/rule` - Update alert rule\n  - `DELETE /api/audit/alert/rule/{id}` - Delete alert rule\n  - `GET /api/audit/alert/rule/list` - List alert rules with filtering\n  - `GET /api/audit/alert/rule/enabled` - Get all enabled alert rules\n\n**4. Database Schema**\n- Database table `audit_alert_rule` with optimized indexes\n- Support for MySQL with proper charset and collation\n\n**5. Testing**\n- Comprehensive unit tests in [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class\n- API integration test scripts for manual validation\n- Database initialization SQL scripts\n\n**6. Configuration**\n- MyBatis configuration for audit alert rule mapping\n- Spring Boot auto-configuration support\n\n### Verifying this change\n\n- [x] This change added tests and can be verified as follows:\n\n**Unit Tests:**\n- Added [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class with comprehensive test coverage:\n  - Test alert rule creation with validation\n  - Test alert rule retrieval and updates\n  - Test alert rule deletion and lifecycle management\n  - Test query operations with filtering\n  - Test error handling and edge cases\n\n**Integration Tests:**\n- Added API test scripts ([test-audit-alert-api.sh](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.sh) and [test-audit-alert-api.ps1](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.ps1))\n- Added database initialization script ([init-audit-alert-test-data.sql](file://e:\\inlong\\inlong-manager\\init-audit-alert-test-data.sql))\n- Manual testing workflow documented\n\n**Test Coverage:**\n- Service layer: Full CRUD operations testing\n- Controller layer: HTTP endpoint testing with various scenarios\n- Data layer: MyBatis mapping and SQL query validation\n- Error handling: Input validation and exception scenarios\n\n* [INLONG-11923][Manager] Add comprehensive audit alert rule management API\n\nFixes #11923\n\nMotivation\nCurrently, Apache InLong lacks a comprehensive audit alert rule management system to monitor data quality, detect anomalies, and provide real-time alerting capabilities. Users need the ability to create, manage, and monitor audit alert rules to ensure data pipeline reliability and quality.\n\nThis enhancement adds a complete audit alert rule management API that allows users to:\n\nConfigure alert rules for data count, delay, and quality metrics\nSet up notification channels (EMAIL, SMS, etc.)\nManage alert rule lifecycle (create, update, delete, enable/disable)\nQuery and filter alert rules by group and stream\nModifications\n1. Data Model Layer\n\nAdded AuditAlertRule POJO class in manager-pojo module with comprehensive validation annotations\nAdded AuditAlertRuleEntity database entity in manager-dao module for MyBatis mapping\nAdded AuditAlertRuleEntityMapper interface with full CRUD operations\nAdded MyBatis XML mapping file AuditAlertRuleEntityMapper.xml with optimized SQL queries\n2. Service Layer\n\nExtended AuditService interface with audit alert rule management methods\nImplemented audit alert rule management in AuditServiceImpl class:\ncreateAlertRule() - Create new alert rules with validation\ngetAlertRule() - Retrieve alert rule by ID\nupdateAlertRule() - Update existing alert rules\ndeleteAlertRule() - Delete alert rules\nlistAlertRules() - Query alert rules with filtering support\n3. Web Layer\n\nAdded REST API endpoints in AuditController:\nPOST /api/audit/alert/rule - Create alert rule\nGET /api/audit/alert/rule/{id} - Get alert rule by ID\nPUT /api/audit/alert/rule - Update alert rule\nDELETE /api/audit/alert/rule/{id} - Delete alert rule\nGET /api/audit/alert/rule/list - List alert rules with filtering\nGET /api/audit/alert/rule/enabled - Get all enabled alert rules\n4. Database Schema\n\nDatabase table audit_alert_rule with optimized indexes\nSupport for MySQL with proper charset and collation\n5. Testing\n\nComprehensive unit tests in AuditAlertRuleTest class\nAPI integration test scripts for manual validation\nDatabase initialization SQL scripts\n6. Configuration\n\nMyBatis configuration for audit alert rule mapping\nSpring Boot auto-configuration support\nVerifying this change\n This change added tests and can be verified as follows:\nUnit Tests:\n\nAdded AuditAlertRuleTest class with comprehensive test coverage:\nTest alert rule creation with validation\nTest alert rule retrieval and updates\nTest alert rule deletion and lifecycle management\nTest query operations with filtering\nTest error handling and edge cases\nIntegration Tests:\n\nAdded API test scripts (test-audit-alert-api.sh and test-audit-alert-api.ps1)\nAdded database initialization script (init-audit-alert-test-data.sql)\nManual testing workflow documented\nTest Coverage:\n\nService layer: Full CRUD operations testing\nController layer: HTTP endpoint testing with various scenarios\nData layer: MyBatis mapping and SQL query validation\nError handling: Input validation and exception scenarios\n\n* [INLONG-11923][Manager] Add comprehensive audit alert rule management API\n\nFixes #11923\n\n### Motivation\n\nCurrently, Apache InLong lacks a comprehensive audit alert rule management system to monitor data quality, detect anomalies, and provide real-time alerting capabilities. Users need the ability to create, manage, and monitor audit alert rules to ensure data pipeline reliability and quality.\n\nThis enhancement adds a complete audit alert rule management API that allows users to:\n- Configure alert rules for data count, delay, and quality metrics\n- Set up notification channels (EMAIL, SMS, etc.)\n- Manage alert rule lifecycle (create, update, delete, enable/disable)\n- Query and filter alert rules by group and stream\n\n### Modifications\n\n**1. Data Model Layer**\n- Added [AuditAlertRule](file://e:\\inlong\\inlong-manager\\manager-pojo\\src\\main\\java\\org\\apache\\inlong\\manager\\pojo\\audit\\AuditAlertRule.java#L25-L63) POJO class in `manager-pojo` module with comprehensive validation annotations\n- Added [AuditAlertRuleEntity](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\entity\\AuditAlertRuleEntity.java#L23-L39) database entity in `manager-dao` module for MyBatis mapping\n- Added [AuditAlertRuleEntityMapper](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\mapper\\AuditAlertRuleEntityMapper.java#L24-L32) interface with full CRUD operations\n- Added MyBatis XML mapping file [AuditAlertRuleEntityMapper.xml](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\resources\\mappers\\AuditAlertRuleEntityMapper.xml) with optimized SQL queries\n\n**2. Service Layer**\n- Extended [AuditService](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L31-L103) interface with audit alert rule management methods\n- Implemented audit alert rule management in [AuditServiceImpl](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\impl\\AuditServiceImpl.java#L78-L446) class:\n  - [createAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L87-L87) - Create new alert rules with validation\n  - [getAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L92-L92) - Retrieve alert rule by ID\n  - [updateAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L97-L97) - Update existing alert rules\n  - [deleteAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L102-L102) - Delete alert rules\n  - [listAlertRules()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L82-L82) - Query alert rules with filtering support\n\n**3. Web Layer**\n- Added REST API endpoints in [AuditController](file://e:\\inlong\\inlong-manager\\manager-web\\src\\main\\java\\org\\apache\\inlong\\manager\\web\\controller\\AuditController.java#L51-L137):\n  - `POST /api/audit/alert/rule` - Create alert rule\n  - `GET /api/audit/alert/rule/{id}` - Get alert rule by ID\n  - `PUT /api/audit/alert/rule` - Update alert rule\n  - `DELETE /api/audit/alert/rule/{id}` - Delete alert rule\n  - `GET /api/audit/alert/rule/list` - List alert rules with filtering\n  - `GET /api/audit/alert/rule/enabled` - Get all enabled alert rules\n\n**4. Database Schema**\n- Database table `audit_alert_rule` with optimized indexes\n- Support for MySQL with proper charset and collation\n\n**5. Testing**\n- Comprehensive unit tests in [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class\n- API integration test scripts for manual validation\n- Database initialization SQL scripts\n\n**6. Configuration**\n- MyBatis configuration for audit alert rule mapping\n- Spring Boot auto-configuration support\n\n### Verifying this change\n\n- [x] This change added tests and can be verified as follows:\n\n**Unit Tests:**\n- Added [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class with comprehensive test coverage:\n  - Test alert rule creation with validation\n  - Test alert rule retrieval and updates\n  - Test alert rule deletion and lifecycle management\n  - Test query operations with filtering\n  - Test error handling and edge cases\n\n**Integration Tests:**\n- Added API test scripts ([test-audit-alert-api.sh](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.sh) and [test-audit-alert-api.ps1](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.ps1))\n- Added database initialization script ([init-audit-alert-test-data.sql](file://e:\\inlong\\inlong-manager\\init-audit-alert-test-data.sql))\n- Manual testing workflow documented\n\n**Test Coverage:**\n- Service layer: Full CRUD operations testing\n- Controller layer: HTTP endpoint testing with various scenarios\n- Data layer: MyBatis mapping and SQL query validation\n- Error handling: Input validation and exception scenarios\n\n* refactor: 拆分审计告警规则控制器\n\n- 将 AuditController 中的审计告警规则相关方法拆分到新的 AuditAlertRuleController\n- 保持原有 API 路径不变，确保向后兼容\n- 修复 AuditController 中缺失的导入语句\n- 更新相关测试文件引用\n\n* [INLONG-11923][Manager] Add comprehensive audit alert rule management API\n\nFixes #11923\n\n### Motivation\n\nCurrently, Apache InLong lacks a comprehensive audit alert rule management system to monitor data quality, detect anomalies, and provide real-time alerting capabilities. Users need the ability to create, manage, and monitor audit alert rules to ensure data pipeline reliability and quality.\n\nThis enhancement adds a complete audit alert rule management API that allows users to:\n- Configure alert rules for data count, delay, and quality metrics\n- Set up notification channels (EMAIL, SMS, etc.)\n- Manage alert rule lifecycle (create, update, delete, enable/disable)\n- Query and filter alert rules by group and stream\n\n### Modifications\n\n**1. Data Model Layer**\n- Added [AuditAlertRule](file://e:\\inlong\\inlong-manager\\manager-pojo\\src\\main\\java\\org\\apache\\inlong\\manager\\pojo\\audit\\AuditAlertRule.java#L25-L63) POJO class in `manager-pojo` module with comprehensive validation annotations\n- Added [AuditAlertRuleEntity](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\entity\\AuditAlertRuleEntity.java#L23-L39) database entity in `manager-dao` module for MyBatis mapping\n- Added [AuditAlertRuleEntityMapper](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\java\\org\\apache\\inlong\\manager\\dao\\mapper\\AuditAlertRuleEntityMapper.java#L24-L32) interface with full CRUD operations\n- Added MyBatis XML mapping file [AuditAlertRuleEntityMapper.xml](file://e:\\inlong\\inlong-manager\\manager-dao\\src\\main\\resources\\mappers\\AuditAlertRuleEntityMapper.xml) with optimized SQL queries\n\n**2. Service Layer**\n- Extended [AuditService](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L31-L103) interface with audit alert rule management methods\n- Implemented audit alert rule management in [AuditServiceImpl](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\impl\\AuditServiceImpl.java#L78-L446) class:\n  - [createAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L87-L87) - Create new alert rules with validation\n  - [getAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L92-L92) - Retrieve alert rule by ID\n  - [updateAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L97-L97) - Update existing alert rules\n  - [deleteAlertRule()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L102-L102) - Delete alert rules\n  - [listAlertRules()](file://e:\\inlong\\inlong-manager\\manager-service\\src\\main\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditService.java#L82-L82) - Query alert rules with filtering support\n\n**3. Web Layer**\n- Added REST API endpoints in [AuditController](file://e:\\inlong\\inlong-manager\\manager-web\\src\\main\\java\\org\\apache\\inlong\\manager\\web\\controller\\AuditController.java#L51-L137):\n  - `POST /api/audit/alert/rule` - Create alert rule\n  - `GET /api/audit/alert/rule/{id}` - Get alert rule by ID\n  - `PUT /api/audit/alert/rule` - Update alert rule\n  - `DELETE /api/audit/alert/rule/{id}` - Delete alert rule\n  - `GET /api/audit/alert/rule/list` - List alert rules with filtering\n  - `GET /api/audit/alert/rule/enabled` - Get all enabled alert rules\n\n**4. Database Schema**\n- Database table `audit_alert_rule` with optimized indexes\n- Support for MySQL with proper charset and collation\n\n**5. Testing**\n- Comprehensive unit tests in [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class\n- API integration test scripts for manual validation\n- Database initialization SQL scripts\n\n**6. Configuration**\n- MyBatis configuration for audit alert rule mapping\n- Spring Boot auto-configuration support\n\n### Verifying this change\n\n- [x] This change added tests and can be verified as follows:\n\n**Unit Tests:**\n- Added [AuditAlertRuleTest](file://e:\\inlong\\inlong-manager\\manager-service\\src\\test\\java\\org\\apache\\inlong\\manager\\service\\core\\AuditAlertRuleTest.java#L34-L152) class with comprehensive test coverage:\n  - Test alert rule creation with validation\n  - Test alert rule retrieval and updates\n  - Test alert rule deletion and lifecycle management\n  - Test query operations with filtering\n  - Test error handling and edge cases\n\n**Integration Tests:**\n- Added API test scripts ([test-audit-alert-api.sh](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.sh) and [test-audit-alert-api.ps1](file://e:\\inlong\\inlong-manager\\test-audit-alert-api.ps1))\n- Added database initialization script ([init-audit-alert-test-data.sql](file://e:\\inlong\\inlong-manager\\init-audit-alert-test-data.sql))\n- Manual testing workflow documented\n\n**Test Coverage:**\n- Service layer: Full CRUD operations testing\n- Controller layer: HTTP endpoint testing with various scenarios\n- Data layer: MyBatis mapping and SQL query validation\n- Error handling: Input validation and exception scenarios\n\n* Refactor (audit): Simplify the audit alert rule code and remove deprecated components\n\n- Delete the AuditAlertRuleUpdateRequest class and related references, and uniformly use AuditAlertRuleRequest as the request parameter.\n- Modify the Mapper XML to adjust the increment logic of the optimistic lock version field.\n- Adjust the AuditAlertRuleRequest, add id and version fields, and add support for validation groups.\n- Delete the old interfaces and implementations related to the alert rules in AuditService, and switch to using the AuditAlertRuleService interface.\n- Simplify AuditServiceImpl, remove the implementations related to the alert rules, and optimize some log information and code structure.\n- Adjust the AuditAlertRuleController, switch to injecting AuditAlertRuleService, and update the interface calls.\n- Modify the test code, update the use of the old AuditAlertRuleUpdateRequest to AuditAlertRuleRequest.\n- Code cleaning: Delete unused imports and test classes, and simplify useless comments and constructors.\n- Optimize the log output level to improve the clarity and accuracy of runtime logs.\n\n* improve\n\n* Fix the path issue\n\n* Improve code format\n\n* improve path\n\n* improve path\n\n* Fix AuditControllerTest.testUpdateAlertRule\n\n* improve\n\n* MyBatis\n\n* final\n\n* make it concise\n\n* add selectbycondition\n\n* Improve manager-client-test\n\n* Improve manager-client-test\n\n* imporve\n\n* Improve webtest\n\n* improve page logic\n\n* import\n\n* update\n\n* improve\n\n* update\n\n* notifytype enum\n\n* delete chinese\n\n* improve\n\n* update\n\n* improve\n\n* update\n\n* fix\n\n* update notifytype\n\n* improve\n\n* update\n\n* update\n\n* update\n\n* update\n\n* final\n\n* improve\n\n* update\n\n* update\n\n* improve\n\n* improve\n\n* improve\n\n* update\n\n* improve\n\n* improve\n\n* improve\n\n* improve\n\n* improve\n\n* improve\n\n* improve\n\n* improve\n\n---------\n\nCo-authored-by: shuideyimei \u003c13124552057@163.com\u003e"
    },
    {
      "commit": "c96830dac936a603790760f02c5da8e067284d83",
      "tree": "ef0eef01c818b5235acd7813282b29a8e96cebeb",
      "parents": [
        "a210941b1734353d634a9e412827d78f24d2b230"
      ],
      "author": {
        "name": "Evanwqd",
        "email": "102044897+Evanwqd@users.noreply.github.com",
        "time": "Sun Sep 14 17:16:30 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 14 17:16:30 2025 +0800"
      },
      "message": "[INLONG-11998][Audit] ​​Add the function of fetching Audit Data and Alert Policies from Manager for audit tool (#11992)\n\n* [INLONG-11923][Audit] Add the function of fetching Audit Data and Alert Policies from Manager\n\n* [Feature][Audit]Implement APIs for Audit Tool to interact with Manager\n\n* [Feature][Audit]add AuditToolMain"
    },
    {
      "commit": "a210941b1734353d634a9e412827d78f24d2b230",
      "tree": "3992ed5c45bf88f10cd8845c73c99032669ecb0c",
      "parents": [
        "51af9844509c5fd0f232bb1f6ef1b5f41adfcec6"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Fri Sep 12 09:52:49 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 12 09:52:49 2025 +0800"
      },
      "message": "[INLONG-11990][CI] Upgrade jackson version (#11991)\n\n"
    },
    {
      "commit": "51af9844509c5fd0f232bb1f6ef1b5f41adfcec6",
      "tree": "94c8fb3da4b8bb0a4c5b14067656b817a301b743",
      "parents": [
        "0f52caeaf67f4544c11c0e829291f93e195c92ab"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Thu Sep 11 18:41:49 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 11 18:41:49 2025 +0800"
      },
      "message": "[INLONG-11993][Audit] The audit service supports customizing the cache on and off (#11994)\n\n* [INLONG-11993][Audit] The audit service supports customizing the cache on and off\n\n* [INLONG-11993][Audit] Optimize the stop script for audit proxy"
    },
    {
      "commit": "0f52caeaf67f4544c11c0e829291f93e195c92ab",
      "tree": "b4c8623453138b1e32365788a8d3d2cf2ee8e2cb",
      "parents": [
        "4da76bb9dae933697b9773c5bf19a003bd2ef112"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Fri Sep 05 10:25:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 05 10:25:42 2025 +0800"
      },
      "message": "[INLONG-11984][Manager] Fix the problem of Hive table creation statement error (#11985)\n\n"
    },
    {
      "commit": "4da76bb9dae933697b9773c5bf19a003bd2ef112",
      "tree": "7aa5a58fbbe19cd3a9d88d743059675d10c05aa5",
      "parents": [
        "e79e9062e534dae714a45d84ac311a225368b976"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Thu Sep 04 17:31:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 04 17:31:24 2025 +0800"
      },
      "message": "[INLONG-11982][Sort] Fix Null Point Exception when changelogAuditKey is not set (#11983)\n\n"
    },
    {
      "commit": "e79e9062e534dae714a45d84ac311a225368b976",
      "tree": "64fa0bf1f7e9fd717d54be23d31f633a6fa72a37",
      "parents": [
        "a02416dd0a008e31021eb09305ab7f2b886eb51a"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Thu Sep 04 16:48:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 04 16:48:36 2025 +0800"
      },
      "message": "[INLONG-11974][Sort] Upgrade pulsar sdk version to 4.0.3 (#11975)\n\n* [INLONG-11974][Sort] upgrade pulsar sdk version to 4.0.3\n"
    },
    {
      "commit": "a02416dd0a008e31021eb09305ab7f2b886eb51a",
      "tree": "9f23394cfa9cc907242665bec3ab0e3745ab0f84",
      "parents": [
        "a4f0ff7e823d4ba1d710767187b5502c7de06ac8"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Tue Sep 02 10:46:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 02 10:46:13 2025 +0800"
      },
      "message": "[INLONG-11976][SDK] DataProxy Go SDK support detailed error information in server responses (#11977)\n\n"
    },
    {
      "commit": "a4f0ff7e823d4ba1d710767187b5502c7de06ac8",
      "tree": "d72a944e31fb7e4cdc0da161a802794a05e06743",
      "parents": [
        "cf22c92871d638ce41b8a2ee90c1f7d141e097c0"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Mon Aug 25 16:06:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 16:06:06 2025 +0800"
      },
      "message": "[INLONG-11972][Dashboard] Occasional audit queries based on group queries have query conditions including streamid (#11973)\n\n"
    },
    {
      "commit": "cf22c92871d638ce41b8a2ee90c1f7d141e097c0",
      "tree": "78fe27d0a342598ed0fc954e1d517512f14da9c8",
      "parents": [
        "624a009c171dfbf2af3afb74aee747044ba60576"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Mon Aug 18 16:07:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 18 16:07:58 2025 +0800"
      },
      "message": "[INLONG-11969][Sort] Fix NullPointer of cdc metric (#11970)\n\nCo-authored-by: vernedeng \u003cvernedeng@tecent.com\u003e"
    },
    {
      "commit": "624a009c171dfbf2af3afb74aee747044ba60576",
      "tree": "be94522ead2664c245dcfe3c61add61dd1d2272d",
      "parents": [
        "c0377bd108012e0bca9ced130edd19af7ac8ec5a"
      ],
      "author": {
        "name": "Mingyu Bao",
        "email": "baomingyu_5@163.com",
        "time": "Thu Aug 14 15:57:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 15:57:14 2025 +0800"
      },
      "message": "[INLONG-11966][Sort]The deserialization process supports returning the data byte size in one rowdata (#11967)\n\n"
    },
    {
      "commit": "c0377bd108012e0bca9ced130edd19af7ac8ec5a",
      "tree": "98474cb1e215057e02402f26daefc2a36d79fb69",
      "parents": [
        "f53266c81e18f88516e06e568cd4a8a5446455f7"
      ],
      "author": {
        "name": "Charles Zhang",
        "email": "dockerzhang@apache.org",
        "time": "Mon Aug 11 11:35:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 11:35:04 2025 +0800"
      },
      "message": "[INLONG-11964][CI] Update all occurrences of the CodeQL Action in your workflow files to v3 (#11965)\n\n"
    },
    {
      "commit": "f53266c81e18f88516e06e568cd4a8a5446455f7",
      "tree": "ae22ff2af75b2b5696958d313a9d9c136ead6ddd",
      "parents": [
        "373c3eb846ffa1f2e3c13329cd79b5f2bf65e5e4"
      ],
      "author": {
        "name": "Zhidong Zhang",
        "email": "814287468@qq.com",
        "time": "Sun Aug 10 12:03:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 10 12:03:16 2025 +0800"
      },
      "message": "[INLONG-11957][DOCS] Fix 404 issue in readme (#11963)\n\n"
    },
    {
      "commit": "373c3eb846ffa1f2e3c13329cd79b5f2bf65e5e4",
      "tree": "12a5a31bf6b30d520194ff38131050241ef0ac0e",
      "parents": [
        "28759a9816e03a97bce8981ea608e040f6f7943f"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Fri Aug 08 19:18:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 08 19:18:26 2025 +0800"
      },
      "message": "[INLONG-11961][SDK] Transform supports array index access, the WHERE clause supports the LIKE operator, and the str_to_json function converts KV-format data into JSON format (#11962)\n\n"
    },
    {
      "commit": "28759a9816e03a97bce8981ea608e040f6f7943f",
      "tree": "ead5a6d65aed8687f56cf9409206f7670244092a",
      "parents": [
        "19464a33ac35ab003b6e0663618c0ec6b37e646b"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Fri Aug 08 16:41:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 08 16:41:28 2025 +0800"
      },
      "message": "[INLONG-11958][Sort] Allow SortCkafka to filter out data in TransformFunction (#11959)\n\n* [INLONG-11958][Sort] Allow SortCkafka to filter out data in TransformFunction\n\n* [INLONG-11958][Sort] Allow SortCkafka to filter out data in TransformFunction"
    },
    {
      "commit": "19464a33ac35ab003b6e0663618c0ec6b37e646b",
      "tree": "3126b62708926a8c54ac58b8e93b6221a3f1ef84",
      "parents": [
        "50a07cb8afc931dba23fef3ed3bc08023720a314"
      ],
      "author": {
        "name": "gunli",
        "email": "gunli@tencent.com",
        "time": "Wed Jul 30 14:05:56 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 30 14:05:56 2025 +0800"
      },
      "message": "[INLONG-11954][SDK] Fix potential data race in Golang SDK (#11955)\n\n"
    },
    {
      "commit": "50a07cb8afc931dba23fef3ed3bc08023720a314",
      "tree": "5a034e196a4e399168bcfcebec27f3b33e5e28d4",
      "parents": [
        "3f8ecf23cec5e9bfdcc149f669068f925f2e4dbe"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jul 28 17:04:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 28 17:04:18 2025 +0800"
      },
      "message": "[INLONG-11952][SDK] Transform handles field-level exceptions by nullifying only the affected field while preserving the entire record (#11953)\n\n"
    },
    {
      "commit": "3f8ecf23cec5e9bfdcc149f669068f925f2e4dbe",
      "tree": "bd8640c31a0a64c288f5c7e49f9e85df864e4607",
      "parents": [
        "78ed72735d67b7fc4ffcc8675efa99dc45494f45"
      ],
      "author": {
        "name": "Charles Zhang",
        "email": "dockerzhang@apache.org",
        "time": "Fri Jul 25 16:11:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 25 16:11:26 2025 +0800"
      },
      "message": "[INLONG-11948][TubeMQ] Bump the base image zookeeper to 3.5 for building (#11949)\n\n"
    },
    {
      "commit": "78ed72735d67b7fc4ffcc8675efa99dc45494f45",
      "tree": "f4098672dd29fe567160e51b12de924a4d18a63d",
      "parents": [
        "239db8a3c31a5739cd8bc4785b21a69b5e5133f1"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Thu Jul 24 10:12:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 10:12:11 2025 +0800"
      },
      "message": "[INLONG-11944][Sort] Transform function parseurl supports parsing URL query string (#11945)\n\n* [INLONG-11944]​​[Sort] TransformFunction: parse_url supports parsing URL query strings​\n\n* fix code format"
    },
    {
      "commit": "239db8a3c31a5739cd8bc4785b21a69b5e5133f1",
      "tree": "2f2d6ff5fe58455caff8c5ae9ddd497e0f85abf7",
      "parents": [
        "d4f5f4674bddb17dd8e1597dd5fd6cc1e86ae32b"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Thu Jul 24 09:33:46 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 09:33:46 2025 +0800"
      },
      "message": "[INLONG-11942][Sort] TransformFunction: url_decode supports specifying character sets (#11947)\n\n"
    },
    {
      "commit": "d4f5f4674bddb17dd8e1597dd5fd6cc1e86ae32b",
      "tree": "d9d125690cb4d96b1f5e591289a39c14a2382358",
      "parents": [
        "a5a2a7014dd0de11b208f8d2a628228559626aea"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Thu Jul 24 09:33:32 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 09:33:32 2025 +0800"
      },
      "message": "[INLONG-11943][Sort] TransformFunction: url_encode supports specifying character sets (#11946)\n\n"
    },
    {
      "commit": "a5a2a7014dd0de11b208f8d2a628228559626aea",
      "tree": "76dcf6ad3e2c9645a5b3080ee96273260ea79b35",
      "parents": [
        "eb4b9c0c2605ac891c67201ce63861038d31e2ef"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Wed Jul 23 14:05:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 23 14:05:13 2025 +0800"
      },
      "message": "[INLONG-11939][Sort] Support that TaskConfig merge issue preventing configuration changes from taking effect (#11941)\n\n"
    },
    {
      "commit": "eb4b9c0c2605ac891c67201ce63861038d31e2ef",
      "tree": "8c527dc2d4dee94f7caf8f676aa89d858e1e0c9b",
      "parents": [
        "b8c290a7e4e056865d216a3e7e9d788f3c052dc7"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jul 21 11:18:08 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 21 11:18:08 2025 +0800"
      },
      "message": "[INLONG-11937][Sort] Allow SortHttp to filter out data in TransformFunction (#11938)\n\n"
    },
    {
      "commit": "b8c290a7e4e056865d216a3e7e9d788f3c052dc7",
      "tree": "d0f97d96f095581b2d6f6741843a00e4641fef5e",
      "parents": [
        "6260dd7defd2c6be9eedaaf360dd663b5e603e56"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Tue Jul 15 23:54:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 15 23:54:17 2025 +0800"
      },
      "message": "[INLONG-11931][Sort] Optimize Transform\u0027s CSV/KV parsing (#11932)\n\n* [INLONG-11931][Sort] Optimize Transform\u0027s CSV/KV parsing\n\n* fix comment\n\n* fix comment\n\n* fix test case"
    },
    {
      "commit": "6260dd7defd2c6be9eedaaf360dd663b5e603e56",
      "tree": "3358b7fdb47cfb6b74dac8b3e767aeffc3a5546b",
      "parents": [
        "de842b044fc10ee5fbd392aa2dd55573d2047359"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jul 07 19:10:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 19:10:06 2025 +0800"
      },
      "message": "[INLONG-11926][SDK] If SortSDK fails to retrieve GroupId and StreamId from the InLongMsgV0 protocol, it defaults to obtaining them from the unified metadata (#11927)\n\n"
    },
    {
      "commit": "de842b044fc10ee5fbd392aa2dd55573d2047359",
      "tree": "1cca01468dc9922f2a1ed33bdc45ccfc5c391f7e",
      "parents": [
        "e71daca928f04ab015e82d4b1c99fecad25d1f3d"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jul 07 10:19:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 10:19:06 2025 +0800"
      },
      "message": "[INLONG-11911][Sort] SortStandalone supports routing PB-format data streams to Kafka and Pulsar (#11913)\n\n* [INLONG-11911][Sort] SortStandalone supports routing PB-format data streams to Kafka and Pulsar\n\n* fix code format\n\n* fix spotless\n\n* fix spotless"
    },
    {
      "commit": "e71daca928f04ab015e82d4b1c99fecad25d1f3d",
      "tree": "40d6f11d5cb9cc82d4f2d11c421c4f1a753db5df",
      "parents": [
        "c9123b8894ac5089b5375708220ddc165b605f2f"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Tue Jul 01 15:02:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 15:02:28 2025 +0800"
      },
      "message": "[INLONG-11909][Feature][Sort] Optimize the generation of tube session key (#11910)\n\n"
    },
    {
      "commit": "c9123b8894ac5089b5375708220ddc165b605f2f",
      "tree": "8a7482e38dd1a9c4ecbecc53a2d01621a9c74d2b",
      "parents": [
        "2ebb00c246359eb8b1675cedaa60b0184609ca11"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jun 30 17:14:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:14:33 2025 +0800"
      },
      "message": "[INLONG-11907][SDK] Transform support IN operator (#11908)\n\n"
    },
    {
      "commit": "2ebb00c246359eb8b1675cedaa60b0184609ca11",
      "tree": "16d6eee880668946f0f4db878b92e66e9d2a52f4",
      "parents": [
        "bbd1177b72f57d3da31d21e1f87dd98590158c0c"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Thu Jun 26 19:34:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 19:34:13 2025 +0800"
      },
      "message": "[INLONG-11905][SDK] TransformSDK calls the org.reflections library APIs ​​according to version 0.9.12, not version 0.10.2 (#11906)\n\n"
    },
    {
      "commit": "bbd1177b72f57d3da31d21e1f87dd98590158c0c",
      "tree": "6d6e1b8264fc34576fed36a4ff9820942c9a3723",
      "parents": [
        "0c316400168de9172dd0d51e2e5d0418b65f23c0"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jun 23 18:32:47 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 23 18:32:47 2025 +0800"
      },
      "message": "[INLONG-11902][Sort] Allow SortCls to filter out data in TransformFunction (#11903)\n\n* [INLONG-11902][Sort] Allow SortCls to filter out data in TransformFunction\n\n* fix spotless problem"
    },
    {
      "commit": "0c316400168de9172dd0d51e2e5d0418b65f23c0",
      "tree": "820b69e3d2f512b944b3e129e6f999e5f0e2b001",
      "parents": [
        "2401d33b69199025f140c7171274fd180c0a38ac"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Mon Jun 23 12:40:08 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 23 12:40:08 2025 +0800"
      },
      "message": "[INLONG-11900][Audit] In the case of no data, the Audit OpenAPI defaults to 0 (#11901)\n\n"
    },
    {
      "commit": "2401d33b69199025f140c7171274fd180c0a38ac",
      "tree": "48af0f25a675a2539ccded8a6e80783963323887",
      "parents": [
        "9fb24648e12d1983f15db94fd2302d8db8a9fea4"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Wed Jun 18 18:12:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 18 18:12:31 2025 +0800"
      },
      "message": "[INLONG-11897][Dashboard] Clicking the audit page query will call this interface multiple times (#11898)\n\n* [INLONG-11897][Dashboard] Click on the audit page to query multiple calls to the interface\n\n* [INLONG-11897][Dashboard] Click on the audit page to query multiple calls to the interface\n\n* [INLONG-11897][Dashboard] Click on the audit page to query multiple calls to the interface"
    },
    {
      "commit": "9fb24648e12d1983f15db94fd2302d8db8a9fea4",
      "tree": "c7551e871553b4f544760b3c2efdeaacfcaa1634",
      "parents": [
        "da568ab768be173d7c52d9a04cbe799affb66fd9"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Wed Jun 18 11:29:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 18 11:29:04 2025 +0800"
      },
      "message": "[INLONG-11892][Sort] SortStandalone support Negative Acknowledgment mechanism for delivery failures (#11896)\n\n* [INLONG-11892][Sort] SortStandalone support Negative Acknowledgment mechanism for delivery failures\n\n* set parameter"
    },
    {
      "commit": "da568ab768be173d7c52d9a04cbe799affb66fd9",
      "tree": "c5a02603520512dc5567541a860bdc039d6c703d",
      "parents": [
        "08a8ebff1d9c0bc104953f846cb15dc28c5f9aa2"
      ],
      "author": {
        "name": "kamianlaida",
        "email": "165994047+wohainilaodou@users.noreply.github.com",
        "time": "Tue Jun 17 18:02:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 17 18:02:44 2025 +0800"
      },
      "message": "[INLONG-11894][Dashboard] Added group and stream switching on the audit page (#11895)\n\n"
    },
    {
      "commit": "08a8ebff1d9c0bc104953f846cb15dc28c5f9aa2",
      "tree": "872a4da21ab754bc8b25f9fbcc6ebcad9c6044e2",
      "parents": [
        "fa070e4c1d72d2f7acb7ef126c88f496d962a083"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Tue Jun 17 17:00:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 17 17:00:16 2025 +0800"
      },
      "message": "[INLONG-11887][SDK] Enhance the .so file copy logic of the Python SDK installation script (#11890)\n\n"
    },
    {
      "commit": "fa070e4c1d72d2f7acb7ef126c88f496d962a083",
      "tree": "3b07ff28a2c599af010e9fd480772a742359c981",
      "parents": [
        "58186709c3c51f0bd041e7baf2dc7137b980c431"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Tue Jun 17 14:54:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 17 14:54:50 2025 +0800"
      },
      "message": "[INLONG-11891][Manager] Support querying topic audit information (#11893)\n\n"
    },
    {
      "commit": "58186709c3c51f0bd041e7baf2dc7137b980c431",
      "tree": "2eddfc7d68e598d3d117a62b91ca3b2d3dd41246",
      "parents": [
        "f56adeaa70be9c36e0ec87c3e90f9aa1d2325b84"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Mon Jun 16 18:57:56 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 16 18:57:56 2025 +0800"
      },
      "message": "[INLONG-11888][Sort] ​​Sort ElasticSearch supports format conversion and data filtering via Key/Value data format (#11889)\n\n"
    },
    {
      "commit": "f56adeaa70be9c36e0ec87c3e90f9aa1d2325b84",
      "tree": "5929d4192dd8f7c59314292feb59d5b029d0aab5",
      "parents": [
        "435aa3c5aba4b6c326d88d205087299e95e22086"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Fri Jun 13 12:06:45 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 13 12:06:45 2025 +0800"
      },
      "message": "[INLONG-11885][Sort] Unified Metadata supports delayed and phased decommissioning of metadata configurations (#11886)\n\n"
    },
    {
      "commit": "435aa3c5aba4b6c326d88d205087299e95e22086",
      "tree": "a097b56a8e9a6395c5037c8e675ee1d3375aa420",
      "parents": [
        "7b47d041ca18e508d988fb20eef3467f2a824065"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Thu Jun 12 17:15:01 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 12 17:15:01 2025 +0800"
      },
      "message": "[INLONG-11883][Sort] ​​Sort CLS supports format conversion and data filtering via Transform Functions (#11884)\n\n* [INLONG-11883][Sort] ​​Sort CLS supports format conversion and data filtering via Transform Functions\n\n* fix code style problem"
    },
    {
      "commit": "7b47d041ca18e508d988fb20eef3467f2a824065",
      "tree": "72de410ff754f7b98f00ed966a4cdacbf405f93a",
      "parents": [
        "03c23fd527b8a38ade53816923b5eeed2380819d"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Mon Jun 09 14:07:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 09 14:07:10 2025 +0800"
      },
      "message": "[INLONG-11881][Manager] Sink source field supports configuring the function function (#11882)\n\n"
    },
    {
      "commit": "03c23fd527b8a38ade53816923b5eeed2380819d",
      "tree": "87d5746cbac378aaaab6231cadfea8824bc3206d",
      "parents": [
        "b729a9d1c6699d7748fdf9a8cde713410ffc6400"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Mon Jun 09 10:31:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 09 10:31:00 2025 +0800"
      },
      "message": "[INLONG-11879][Manager] Support parsing transform configuration as transform (#11880)\n\n"
    },
    {
      "commit": "b729a9d1c6699d7748fdf9a8cde713410ffc6400",
      "tree": "bf4386c422c73f9ebe9a514a2296824bcbabb926",
      "parents": [
        "4517d378ece1f962f4b03d6b546c5dc9da6a2e80"
      ],
      "author": {
        "name": "fuweng11",
        "email": "76141879+fuweng11@users.noreply.github.com",
        "time": "Thu Jun 05 15:09:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 05 15:09:43 2025 +0800"
      },
      "message": "[INLONG-11877][Manager] Support verifying transform SQL (#11878)\n\n* [INLONG-11877][Manager] Support verifying transform SQL"
    },
    {
      "commit": "4517d378ece1f962f4b03d6b546c5dc9da6a2e80",
      "tree": "ede9712d0b255fb6948525330697a45e2940b093",
      "parents": [
        "f272ccf1dd6c8dea197c3edc310d619a60690870"
      ],
      "author": {
        "name": "ChunLiang Lu",
        "email": "luchunliang@apache.org",
        "time": "Tue Jun 03 12:54:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 03 12:54:22 2025 +0800"
      },
      "message": "[INLONG-11873][SDK] Support parsing field values from extended parameters (#11874)\n\n"
    },
    {
      "commit": "f272ccf1dd6c8dea197c3edc310d619a60690870",
      "tree": "8aac0c23737f5b91752c56cfa5ed9e13a3845343",
      "parents": [
        "ffac710ae7cc981d595c5215aaf55bbec4e06732"
      ],
      "author": {
        "name": "yfsn666",
        "email": "61183968+yfsn666@users.noreply.github.com",
        "time": "Fri May 30 16:50:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 30 16:50:24 2025 +0800"
      },
      "message": "[INLONG-11875][Manager] Fix the startup script in standalone deployment mode does not copy module dependencies (#11876)\n\nCo-authored-by: jameswyli \u003cjameswyli@tencent.com\u003e"
    },
    {
      "commit": "ffac710ae7cc981d595c5215aaf55bbec4e06732",
      "tree": "22ccdd3f10d34d8032f601f53939360fe36b60ce",
      "parents": [
        "f2f9cb57802fdbfcf5e5aee9bd961ab35c34b3f1"
      ],
      "author": {
        "name": "Marc Venturini",
        "email": "marc.venturini@gmail.com",
        "time": "Thu May 29 10:28:32 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 29 10:28:32 2025 +0800"
      },
      "message": "[INLONG-11871][SDK] Fix init crashes when no IP available (#11872)\n\n"
    },
    {
      "commit": "f2f9cb57802fdbfcf5e5aee9bd961ab35c34b3f1",
      "tree": "8570b1ccb75b6b6f4c05f304499a7d51909446c6",
      "parents": [
        "cf0b8323dbd3f9b82a7e5ea3a7e1cca7c7ccf820"
      ],
      "author": {
        "name": "lvanneo",
        "email": "3860368+lvanneo@users.noreply.github.com",
        "time": "Mon May 19 15:45:19 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 19 15:45:19 2025 +0800"
      },
      "message": "[INLONG-11869][SDK]Obtain a valid ip during initialization (#11870)\n\n"
    },
    {
      "commit": "cf0b8323dbd3f9b82a7e5ea3a7e1cca7c7ccf820",
      "tree": "5193f719616d41d487322cf1ccd17006df7950a1",
      "parents": [
        "8a54dc480ce568c85b5db7552a0b0710fdb7b683"
      ],
      "author": {
        "name": "lvanneo",
        "email": "3860368+lvanneo@users.noreply.github.com",
        "time": "Fri May 16 10:46:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 16 10:46:22 2025 +0800"
      },
      "message": "[INLONG-11865][SDK] Optimize the acquisition of local valid IP addresses (#11866)\n\n"
    },
    {
      "commit": "8a54dc480ce568c85b5db7552a0b0710fdb7b683",
      "tree": "f245ef3fec725565c15ad43dd96cd49e0d4c6fbd",
      "parents": [
        "12c2998dd68105fcbefcc9e714507a749c9de6af"
      ],
      "author": {
        "name": "Goson Zhang",
        "email": "4675739@qq.com",
        "time": "Thu May 15 10:38:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 15 10:38:24 2025 +0800"
      },
      "message": "[INLONG-11863][SDK] Enhance Event Attribute Validation and Decoding Logic in SDK (#11864)\n\nCo-authored-by: gosonzhang \u003cgosonzhang@tencent.com\u003e"
    },
    {
      "commit": "12c2998dd68105fcbefcc9e714507a749c9de6af",
      "tree": "9fd434f961091960d0cbe38f43e8596e6dc9906f",
      "parents": [
        "9ab8295014a601bf2df8a7246ff91f90e9bd28cb"
      ],
      "author": {
        "name": "Goson Zhang",
        "email": "4675739@qq.com",
        "time": "Tue May 13 10:44:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 13 10:44:35 2025 +0800"
      },
      "message": "[INLONG-11861][CI] Compile dataproxy-sdk fail when there is no .git dictionary in the base path (#11862)\n\n"
    },
    {
      "commit": "9ab8295014a601bf2df8a7246ff91f90e9bd28cb",
      "tree": "700587ba755099e6a57c2042fe98f3bbd0c63f11",
      "parents": [
        "b1fc65177ffc6c417e3f0f6d294441eec10d68bf"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Wed May 07 19:14:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 19:14:22 2025 +0800"
      },
      "message": "[INLONG-11849][Release] Bumped master branch version to 2.3.0-SNAPSHOT (#11858)\n\n"
    },
    {
      "commit": "b1fc65177ffc6c417e3f0f6d294441eec10d68bf",
      "tree": "5470bec1b0962e49175d2271cc952e023407bbb6",
      "parents": [
        "46b903ce27ba9a4d9534ae202718f6634b7ef9af"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Wed May 07 11:07:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 11:07:17 2025 +0800"
      },
      "message": "[INLONG-11847][Release] Update changes log for the 2.2.0 version (#11857)\n\n"
    },
    {
      "commit": "46b903ce27ba9a4d9534ae202718f6634b7ef9af",
      "tree": "bd0f4cf3a45eef57e9c271189618cb4224c8d2d5",
      "parents": [
        "b668d483c12784dda0b665b0f4b37eb969096e20"
      ],
      "author": {
        "name": "vernedeng",
        "email": "vernedeng@apache.org",
        "time": "Wed May 07 10:37:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 10:37:24 2025 +0800"
      },
      "message": "[INLONG-11846][Release] Add the 2.2.0 version option for the bug report (#11854)\n\n"
    },
    {
      "commit": "b668d483c12784dda0b665b0f4b37eb969096e20",
      "tree": "81dcf35133ee0183ae76e483ac9af7e298399f86",
      "parents": [
        "0cad8fa3be9063201db37fcf6ec3e62ead27bfb8"
      ],
      "author": {
        "name": "doleyzi",
        "email": "43397300+doleyzi@users.noreply.github.com",
        "time": "Wed May 07 10:35:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 10:35:09 2025 +0800"
      },
      "message": "[INLONG-11855][Audit] Audit supports Audit reconciliation at the granularity of inlong group (#11856)\n\n"
    }
  ],
  "next": "0cad8fa3be9063201db37fcf6ec3e62ead27bfb8"
}
