This is an automated email from the ASF dual-hosted git repository.

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new d94c6a1218 [INLONG-12164][Release] Update changes log for the 2.4.0 
version (#12171)
d94c6a1218 is described below

commit d94c6a121819c356309878a87aa68c6024d25484
Author: vernedeng <[email protected]>
AuthorDate: Mon Jul 20 11:43:12 2026 +0800

    [INLONG-12164][Release] Update changes log for the 2.4.0 version (#12171)
---
 CHANGES.md | 130 ++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 69 insertions(+), 61 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index a89c8c8bc1..d1697408d8 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -22,90 +22,98 @@
 # of release header or remove the below marker. This file is generated.
 # DO NOT REMOVE THIS MARKER; FOR INTERPOLATING CHANGES!-->
 
-# Release InLong 2.3.0 - Released (as of 2025-10-31)
+# Release InLong 2.4.0 - Released (as of 2026-07-20)
+
 ### Agent
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-11995](https://github.com/apache/inlong/issues/11995)|[Feature][Agent]
 The Agent supports parallel creation of Sender connections to the DataProxy, 
improving creation efficiency|
-|[INLONG-12003](https://github.com/apache/inlong/issues/12003)|[Feature][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|
+|[INLONG-11950](https://github.com/apache/inlong/issues/11950)|[Improve][Agent]
 Missing case in switch statement|
+|[INLONG-12143](https://github.com/apache/inlong/issues/12143)|[Improve][Agent]
 Fix Agent path traversal via unvalidated file source path|
+|[INLONG-12148](https://github.com/apache/inlong/issues/12148)|[Improve][Agent]
 Replace /bin/sh -c with ProcessBuilder|
 
 ### Dashboard
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-11972](https://github.com/apache/inlong/issues/11972)|[Bug][Dashboard]
 Occasional audit queries based on group queries have query conditions 
including streamid|
-|[INLONG-11897](https://github.com/apache/inlong/issues/11897)|[Bug][Dashboard]
 Click on the audit page to query multiple calls to the interface|
-|[INLONG-11894](https://github.com/apache/inlong/issues/11894)|[Feature][Dashboard]
 Added group and stream switching on the audit page|
+|[INLONG-12044](https://github.com/apache/inlong/issues/12044)|[Bug][Dashboard]
 Agent installation method is missing|
+|[INLONG-12052](https://github.com/apache/inlong/issues/12052)|[Improve][Dashboard]
 Optimization of text display in long forms on resource details page|
 
 ### Manager
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-11997](https://github.com/apache/inlong/issues/11997)|[Feature][Manager]
 Add comprehensive audit alert rule management API|
-|[INLONG-11984](https://github.com/apache/inlong/issues/11984)|[Bug][Manager] 
Hive table creation statement error|
-|[INLONG-11969](https://github.com/apache/inlong/issues/11969)|[Bug][Manager] 
org.apache.flink.client.program.ProgramInvocationException|
-|[INLONG-11891](https://github.com/apache/inlong/issues/11891)|[Improve][Manager]Support
 querying topic audit information|
-|[INLONG-11881](https://github.com/apache/inlong/issues/11881)|[Feature][Manager]
 Sink source field supports configuring the fuction function|
-|[INLONG-11879](https://github.com/apache/inlong/issues/11879)|[Improve][Manager]
 Support parsing transform configuration as transform SQL|
-|[INLONG-11877](https://github.com/apache/inlong/issues/11877)|[Improve][Manager]
 Support verifying transform SQL|
-|[INLONG-11875](https://github.com/apache/inlong/issues/11875)|[Bug][Manager] 
InLong standalone mode deployment failed|
+|[INLONG-12071](https://github.com/apache/inlong/issues/12071)|[Bug][Manager] 
Querying MQ messages returned incorrect results from the LIKE matching operator|
+|[INLONG-12073](https://github.com/apache/inlong/issues/12073)|[Bug][Manager] 
No proper error handling when MQ message query thread pool is exhausted|
+|[INLONG-12075](https://github.com/apache/inlong/issues/12075)|[Improve][Manager]
 Optimize delete permission for InlongGroup: allow admin or in-charge|
+|[INLONG-12079](https://github.com/apache/inlong/issues/12079)|[Improve][Manager]
 The AuditAlertRuleRequest lacks validation for orderField and orderType|
+|[INLONG-12092](https://github.com/apache/inlong/issues/12092)|[Bug][Manager] 
Non-template responsible persons can view template information|
+|[INLONG-12094](https://github.com/apache/inlong/issues/12094)|[Bug][Manager] 
Ordinary users can create new packages|
+|[INLONG-12098](https://github.com/apache/inlong/issues/12098)|[Improve][Manager]
 Improve audit query nodeType mapping completeness and avoid null audit IDs|
+|[INLONG-12100](https://github.com/apache/inlong/issues/12100)|[Improve][Manager]
 Fix incorrect spelling: "seperated" → "separated" in multiple files|
+|[INLONG-12102](https://github.com/apache/inlong/issues/12102)|[Bug][Manager] 
Incorrect logic in input validation|
+|[INLONG-12104](https://github.com/apache/inlong/issues/12104)|[Bug][Manager] 
There is a problem with the deletion process of the data flow group|
+|[INLONG-12115](https://github.com/apache/inlong/issues/12115)|[Improve][Manager]
 Set the default value of openapi.auth.enabled to true|
+|[INLONG-12129](https://github.com/apache/inlong/issues/12129)|[Improve][Manager]
 Fix the security vulnerability in /api/node/testConnection|
+|[INLONG-12133](https://github.com/apache/inlong/issues/12133)|[Improve][Manager]
 Fix the security vulnerability in /api/cluster/testConnection|
+|[INLONG-12135](https://github.com/apache/inlong/issues/12135)|[Improve][Manager]
 Enhance the verification against SQL injection|
+|[INLONG-12144](https://github.com/apache/inlong/issues/12144)|[Improve][Manager]
 Perform permission verification for the deletion operation of streamsource|
+|[INLONG-12149](https://github.com/apache/inlong/issues/12149)|[Improve][Manager]
 Add command whitelist validation in Manager|
+|[INLONG-12153](https://github.com/apache/inlong/issues/12153)|[Improve][Manager]
 Add parameter validation for node in clusterController|
+|[INLONG-12156](https://github.com/apache/inlong/issues/12156)|[Improve][Manager]
 Add verification of operator permissions during the creation and modification 
of tenant roles|
+|[INLONG-12160](https://github.com/apache/inlong/issues/12160)|[Improve][Manager]
 Add permission verification when modifying the datanode|
 
 ### SDK
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-12019](https://github.com/apache/inlong/issues/12019)|[Feature][SDK] 
Transformation supports a caching mechanism for processing identical function 
parameters within the same SQL statement to reduce redundant computations|
-|[INLONG-12014](https://github.com/apache/inlong/issues/12014)|[Improve][SDK] 
Add C++ Dataproxy SDK compile Dockerfile|
-|[INLONG-12012](https://github.com/apache/inlong/issues/12012)|[Improve][SDK] 
Change the Python Dataproxy SDK user-defined installation path configuration 
method|
-|[INLONG-12010](https://github.com/apache/inlong/issues/12010)|[Bug][SDK] 
Python DataProxy SDK reported data is truncated|
-|[INLONG-11974](https://github.com/apache/inlong/issues/11974)|[Feature][Sort] 
Upgrade pulsar sdk version to 4.0.3|
-|[INLONG-11976](https://github.com/apache/inlong/issues/11976)|[Improve][SDK] 
DataProxy Go SDK support detailed error information in server responses|
-|[INLONG-11961](https://github.com/apache/inlong/issues/11961)|[Feature][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|
-|[INLONG-11954](https://github.com/apache/inlong/issues/11954)|[Bug][SDK] 
Potential data race in Golang SDK|
-|[INLONG-11952](https://github.com/apache/inlong/issues/11952)|[Feature][SDK] 
Transform handles field-level exceptions by nullifying only the affected field 
while preserving the entire record|
-|[INLONG-11926](https://github.com/apache/inlong/issues/11926)|[Feature][SDK] 
If SortSDK fails to retrieve GroupId and StreamId from the InLongMsgV0 
protocol, it defaults to obtaining them from the unified metadata.|
-|[INLONG-11907](https://github.com/apache/inlong/issues/11907)|[Feature][SDK] 
Transform support IN operator|
-|[INLONG-11905](https://github.com/apache/inlong/issues/11905)|[Feature][SDK] 
TransformSDK calls the org.reflections library APIs according to version 
0.9.12, not version 0.10.2.|
-|[INLONG-11887](https://github.com/apache/inlong/issues/11887)|[Improve][SDK] 
Enhance the .so file copy logic of the Python SDK installation script|
-|[INLONG-11873](https://github.com/apache/inlong/issues/11873)|[Feature][SDK] 
Support parsing field values from extended parameters|
-|[INLONG-11871](https://github.com/apache/inlong/issues/11871)|[Bug] Go 
programs importing the DataProxy SDK may crash with no way to handle the error|
-|[INLONG-11869](https://github.com/apache/inlong/issues/11869)|[Improve][SDK]Obtain
 a valid ip during initialization|
-|[INLONG-11865](https://github.com/apache/inlong/issues/11865)|[Improve][SDK]Obtain
 a valid local IP address|
-|[INLONG-11863](https://github.com/apache/inlong/issues/11863)|[Improve][SDK] 
Enhance Event Attribute Validation and Decoding Logic in SDK|
-|[INLONG-11861](https://github.com/apache/inlong/issues/11861)|[Bug][CI] 
Compile dataproxy-sdk fail when there is no .git dictionary in the base path|
+|[INLONG-12016](https://github.com/apache/inlong/issues/12016)|[Improve][SDK] 
Add Python Dataproxy SDK compile Dockerfile|
+|[INLONG-12054](https://github.com/apache/inlong/issues/12054)|[Improve][SDK] 
Optimize InLong Dataproxy Python SDK dependency version requirements|
+|[INLONG-12056](https://github.com/apache/inlong/issues/12056)|[Feature][SDK] 
TransformSDK supports the "not in" operator|
+|[INLONG-12058](https://github.com/apache/inlong/issues/12058)|[Feature][SDK] 
Support retry mechanism when "server error" occurs in dataproxy client|
+|[INLONG-12062](https://github.com/apache/inlong/issues/12062)|[Improve][SDK] 
Upgrade gnet version in dataproxy go sdk|
+|[INLONG-12090](https://github.com/apache/inlong/issues/12090)|[Improve][SDK] 
Build standard Python Dataproxy SDK wheels based on PEP-517|
+|[INLONG-12108](https://github.com/apache/inlong/issues/12108)|[Feature][SDK] 
TransformSDK supports decoding and transformation of ProtoBuf description files 
with multiple Proto files and multi-level NestedType|
+|[INLONG-12111](https://github.com/apache/inlong/issues/12111)|[Feature][SDK] 
ProtoBuf decoding supports parsing map nodes|
+|[INLONG-12113](https://github.com/apache/inlong/issues/12113)|[Feature][SDK] 
TransformSDK supports encoding of List, Struct, and Binary type fields for 
RowData|
+|[INLONG-12117](https://github.com/apache/inlong/issues/12117)|[Feature][SDK] 
Support concat_struct/extract_struct/extract_binary function|
+|[INLONG-12119](https://github.com/apache/inlong/issues/12119)|[Improve][SDK] 
Add connection timeout and tolerate partial endpoint failures during client 
initialization in DataProxy Go SDK|
+|[INLONG-12120](https://github.com/apache/inlong/issues/12120)|[Improve][SDK] 
Optimize worker selection logic in DataProxy Go SDK|
+|[INLONG-12121](https://github.com/apache/inlong/issues/12121)|[Improve][SDK] 
Log remote server address on send timeout and server errors in DataProxy Go SDK|
+|[INLONG-12125](https://github.com/apache/inlong/issues/12125)|[Feature][SDK] 
Enhance Transform SDK protobuf processing and SQL alias parsing|
+|[INLONG-12141](https://github.com/apache/inlong/issues/12141)|[Bug][SDK] 
PbSourceData returns protobuf default values instead of null for unset fields, 
causing incorrect data written to Iceberg/Parquet sinks|
+|[INLONG-12158](https://github.com/apache/inlong/issues/12158)|[Feature][SDK] 
Support SQL reserved keywords as source field names (backtick-quoted columns)|
 
 ### Sort
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-12021](https://github.com/apache/inlong/issues/12021)|[Improve][CVE] 
Elasticsearch Uncontrolled Resource Consumption Vulnerability|
-|[INLONG-12007](https://github.com/apache/inlong/issues/12007)|[Feature][Sort] 
SortPulsar supports topic concatenation|
-|[INLONG-11982](https://github.com/apache/inlong/issues/11982)|[Bug][Sort] 
Null Point Exception when changelogAuditKey is not set|
-|[INLONG-11974](https://github.com/apache/inlong/issues/11974)|[Feature][Sort] 
Upgrade pulsar sdk version to 4.0.3|
-|[INLONG-11966](https://github.com/apache/inlong/issues/11966)|[Feature][Sort] 
The deserialization process supports returning the data byte size in one 
rowdata|
-|[INLONG-11958](https://github.com/apache/inlong/issues/11958)|[Feature][Sort] 
Allow SortCkafka to filter out data in TransformFunction|
-|[INLONG-11944](https://github.com/apache/inlong/issues/11944)|[Feature][Sort] 
TransformFunction: parse_url supports parsing URL query strings|
-|[INLONG-11942](https://github.com/apache/inlong/issues/11942)|[Feature][Sort] 
TransformFunction: url_decode supports specifying character sets|
-|[INLONG-11943](https://github.com/apache/inlong/issues/11943)|[Feature][Sort] 
TransformFunction: url_encode supports specifying character sets|
-|[INLONG-11939](https://github.com/apache/inlong/issues/11939)|[Feature][Sort] 
Support that TaskConfig merge issue preventing configuration changes from 
taking effect|
-|[INLONG-11937](https://github.com/apache/inlong/issues/11937)|[Feature][Sort] 
Allow SortHttp to filter out data in TransformFunction|
-|[INLONG-11931](https://github.com/apache/inlong/issues/11931)|[Feature][Sort] 
Optimize Transform's CSV/KV parsing|
-|[INLONG-11926](https://github.com/apache/inlong/issues/11926)|[Feature][SDK] 
If SortSDK fails to retrieve GroupId and StreamId from the InLongMsgV0 
protocol, it defaults to obtaining them from the unified metadata.|
-|[INLONG-11911](https://github.com/apache/inlong/issues/11911)|[Feature][Sort] 
SortStandalone supports routing PB-format data streams to Kafka and Pulsar|
-|[INLONG-11909](https://github.com/apache/inlong/issues/11909)|[Feature][Sort] 
Optimize the generation of tube session key|
-|[INLONG-11902](https://github.com/apache/inlong/issues/11902)|[Feature][Sort] 
Allow SortCls to filter out data in TransformFunction|
-|[INLONG-11892](https://github.com/apache/inlong/issues/11892)|[Feature][Sort] 
SortStandalone support Negative Acknowledgment mechanism for delivery failures|
-|[INLONG-11888](https://github.com/apache/inlong/issues/11888)|[Feature][Sort] 
Sort ElasticSearch supports format conversion and data filtering via Key/Value 
data format|
-|[INLONG-11885](https://github.com/apache/inlong/issues/11885)|[Feature][Sort] 
Unified Metadata supports delayed and phased decommissioning of metadata 
configurations.|
-|[INLONG-11883](https://github.com/apache/inlong/issues/11883)|[Feature][Sort] 
Sort CLS supports format conversion and data filtering via Transform Functions.|
+|[INLONG-12065](https://github.com/apache/inlong/issues/12065)|[Improve][Sort] 
Sort Format supports outputting complete row information when field parsing 
errors occur|
+|[INLONG-12139](https://github.com/apache/inlong/issues/12139)|[Bug][Sort] 
SortConfigUtil.checkUpdate throws NPE when DataFlowConfig.version is null, 
causing SortConfig reload to permanently stall|
 
 ### Audit
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-11999](https://github.com/apache/inlong/issues/11999)|[Feature][Audit]
 Add alert evaluation and periodic audit check task|
-|[INLONG-11998](https://github.com/apache/inlong/issues/11998)|[Feature][Audit]
 Implement APIs for Audit Tool to interact with Manager|
-|[INLONG-12000](https://github.com/apache/inlong/issues/12000)|[Feature][Audit]
 Implement API for obtaining audit data in Audit Tool|
-|[INLONG-11998](https://github.com/apache/inlong/issues/11998)|[Feature][Audit]
 Implement APIs for Audit Tool to interact with Manager|
-|[INLONG-11993](https://github.com/apache/inlong/issues/11993)|[Improve][Audit]
 The audit service supports customizing the cache on and off|
-|[INLONG-11900](https://github.com/apache/inlong/issues/11900)|[Improve][Audit]
 In the case of no data, the Audit OpenAPI defaults to 0|
+|[INLONG-12042](https://github.com/apache/inlong/issues/12042)|[Improve][Audit]
 Change the name of the audit item BSS to BIFANG|
+|[INLONG-12046](https://github.com/apache/inlong/issues/12046)|[Bug][Audit] 
SQL script initialization failed|
+|[INLONG-12060](https://github.com/apache/inlong/issues/12060)|[Improve][Audit]
 Optimize audit route management|
+|[INLONG-12064](https://github.com/apache/inlong/issues/12064)|[Bug][Audit] 
Static ScheduledExecutorService in PulsarSink causes ClassLoader leaks and 
shared state corruption|
+|[INLONG-12067](https://github.com/apache/inlong/issues/12067)|[Improve][Audit]
 Optimize the auditing data statistics by day|
+|[INLONG-12069](https://github.com/apache/inlong/issues/12069)|[Improve][Audit]
 Fill with zero when there is no data for a given the API of day|
+|[INLONG-12088](https://github.com/apache/inlong/issues/12088)|[Improve][Audit]
 Audit routing data source management supports domain names|
+|[INLONG-12096](https://github.com/apache/inlong/issues/12096)|[Improve][Audit]
 Optimize function comments related to switching JDBC|
+|[INLONG-12137](https://github.com/apache/inlong/issues/12137)|[Bug][Audit] 
Resolve thread-safety issues in the Audit SDK under high concurrency|
+
+### Common
+|ISSUE|Summary|
+|:--|:--|
+|[INLONG-12127](https://github.com/apache/inlong/issues/12127)|[Feature][Common]
 Add Json config|
+|[INLONG-12131](https://github.com/apache/inlong/issues/12131)|[Improve][Common]
 Fix the issue where jsonconfig cannot be serialized correctly|
+
+### CI
+|ISSUE|Summary|
+|:--|:--|
+|[INLONG-12077](https://github.com/apache/inlong/issues/12077)|[Bug][CI] All 
unit tests execute failed|
+|[INLONG-12081](https://github.com/apache/inlong/issues/12081)|[Improve][CI] 
Fix github action workflow policy violations|
+|[INLONG-12083](https://github.com/apache/inlong/issues/12083)|[Improve][CI] 
Upgrade github actions version and specify permission of actions|
+|[INLONG-12086](https://github.com/apache/inlong/issues/12086)|[Feature][CI] 
Upgrade parameters of first interaction|
 
-### TubeMQ
+### Docker
 |ISSUE|Summary|
 |:--|:--|
-|[INLONG-11948](https://github.com/apache/inlong/issues/11948)|[Bug][Docker] 
TubeMQ image build failed|
+|[INLONG-12048](https://github.com/apache/inlong/issues/12048)|[Improve][Docker]
 openjdk:8-jdk is not accessible|

Reply via email to