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

zirui 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 f2b574f457 [INLONG-9505][Dashboard] Pulsar source parameter 
optimization (#9506)
f2b574f457 is described below

commit f2b574f45749a0c1ad690ce7de9a120c53bff53f
Author: Lizhen <88174078+bluew...@users.noreply.github.com>
AuthorDate: Wed Dec 27 15:57:55 2023 +0800

    [INLONG-9505][Dashboard] Pulsar source parameter optimization (#9506)
---
 .../plugins/sources/common/SourceDefaultInfo.ts    | 26 ++++++--
 .../src/plugins/sources/defaults/File.ts           | 11 +++-
 .../src/plugins/sources/defaults/Hudi.ts           |  9 ++-
 .../src/plugins/sources/defaults/Iceberg.ts        |  7 ++-
 .../src/plugins/sources/defaults/MQTT.ts           |  9 ++-
 .../src/plugins/sources/defaults/Mongodb.ts        |  8 ++-
 .../src/plugins/sources/defaults/MySQLBinlog.ts    | 13 +++-
 .../src/plugins/sources/defaults/Oracle.ts         | 12 +++-
 .../src/plugins/sources/defaults/PostgreSQL.ts     | 11 +++-
 .../src/plugins/sources/defaults/Pulsar.ts         | 70 ++++++++++++----------
 .../src/plugins/sources/defaults/Redis.ts          | 13 +++-
 .../src/plugins/sources/defaults/SQLServer.ts      | 12 +++-
 inlong-dashboard/src/ui/locales/cn.json            |  1 +
 inlong-dashboard/src/ui/locales/en.json            |  1 +
 .../ui/pages/SynchronizeDetail/SyncAudit/index.tsx |  2 +-
 .../SynchronizeDetail/SyncSources/DetailModal.tsx  |  3 +
 16 files changed, 163 insertions(+), 45 deletions(-)

diff --git a/inlong-dashboard/src/plugins/sources/common/SourceDefaultInfo.ts 
b/inlong-dashboard/src/plugins/sources/common/SourceDefaultInfo.ts
index b06f4795ec..c9948c39fa 100644
--- a/inlong-dashboard/src/plugins/sources/common/SourceDefaultInfo.ts
+++ b/inlong-dashboard/src/plugins/sources/common/SourceDefaultInfo.ts
@@ -27,8 +27,16 @@ import { sources, defaultValue } from '..';
 import i18n from '@/i18n';
 
 const { I18nMap, I18n } = DataWithBackend;
-const { FieldList, FieldDecorator, SyncField, SyncFieldSet, SyncMoveDbField, 
SyncMoveDbFieldSet } =
-  RenderRow;
+const {
+  FieldList,
+  FieldDecorator,
+  SyncField,
+  SyncFieldSet,
+  SyncMoveDbField,
+  SyncMoveDbFieldSet,
+  IngestionField,
+  IngestionFieldSet,
+} = RenderRow;
 const { ColumnList, ColumnDecorator } = RenderList;
 
 export class SourceDefaultInfo implements DataWithBackend, RenderRow, 
RenderList {
@@ -37,6 +45,7 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
   static ColumnList = ColumnList;
   static SyncFieldSet = SyncFieldSet;
   static SyncMoveDbFieldSet = SyncMoveDbFieldSet;
+  static IngestionFieldSet = IngestionFieldSet;
 
   readonly id: number;
 
@@ -46,6 +55,7 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
     hidden: true,
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('inlongGroupId')
   readonly inlongGroupId: string;
@@ -55,6 +65,7 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
     hidden: true,
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('inlongStreamId')
   readonly inlongStreamId: string;
@@ -79,6 +90,7 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
     render: type => sources.find(c => c.value === type)?.label || type,
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Type')
   sourceType: string;
@@ -100,6 +112,7 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Name')
   sourceName: string;
@@ -117,15 +130,18 @@ export class SourceDefaultInfo implements 
DataWithBackend, RenderRow, RenderList
     render: text => genStatusTag(text),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('basic.Status')
   readonly status: string;
 
   @ColumnDecorator()
+  @IngestionField()
   @I18n('basic.Creator')
   readonly creator: string;
 
   @ColumnDecorator()
+  @IngestionField()
   @I18n('basic.Modifier')
   readonly modifier: string;
 
@@ -181,7 +197,8 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
 
   renderRow() {
     const constructor = this.constructor as typeof SourceDefaultInfo;
-    constructor.FieldList.map(item => {
+    const { FieldList, IngestionFieldSet } = constructor;
+    return FieldList.filter(item => {
       if (item.name === 'sourceType') {
         item.props = values => ({
           disabled: Boolean(values.id),
@@ -195,8 +212,9 @@ export class SourceDefaultInfo implements DataWithBackend, 
RenderRow, RenderList
             })),
         });
       }
+      return IngestionFieldSet.has(item.name as string);
     });
-    return constructor.FieldList;
+    // return constructor.FieldList;
   }
 
   renderList() {
diff --git a/inlong-dashboard/src/plugins/sources/defaults/File.ts 
b/inlong-dashboard/src/plugins/sources/defaults/File.ts
index e6fbd2248a..ca7ef844c8 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/File.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/File.ts
@@ -25,7 +25,7 @@ import rulesPattern from '@/core/utils/pattern';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator } = RenderRow;
+const { FieldDecorator, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class PulsarSource
@@ -69,6 +69,7 @@ export default class PulsarSource
     }),
   })
   @ColumnDecorator()
+  @IngestionField()
   @I18n('meta.Sources.File.ClusterName')
   inlongClusterName: string;
 
@@ -77,6 +78,7 @@ export default class PulsarSource
     hidden: true,
   })
   @I18n('clusterId')
+  @IngestionField()
   clusterId: number;
 
   @FieldDecorator({
@@ -117,6 +119,7 @@ export default class PulsarSource
     }),
   })
   @ColumnDecorator()
+  @IngestionField()
   @I18n('meta.Sources.File.DataSourceIP')
   agentIp: string;
 
@@ -129,6 +132,7 @@ export default class PulsarSource
     }),
   })
   @ColumnDecorator()
+  @IngestionField()
   @I18n('meta.Sources.File.FilePath')
   pattern: string;
 
@@ -142,6 +146,7 @@ export default class PulsarSource
       disabled: Boolean(values.id),
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.File.MaxFileCount')
   maxFileCount: number;
 
@@ -163,6 +168,7 @@ export default class PulsarSource
       ],
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.File.DataContentStyle')
   dataContentStyle: string;
 
@@ -186,6 +192,7 @@ export default class PulsarSource
       ],
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.File.Cycle')
   cycleUnit: string;
 
@@ -202,6 +209,7 @@ export default class PulsarSource
       disabled: Boolean(values.id),
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.File.TimeOffset')
   timeOffset: string;
 
@@ -219,6 +227,7 @@ export default class PulsarSource
       })),
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.File.TimeZone')
   timeZone: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Hudi.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Hudi.ts
index c88773cad6..d8fc812130 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Hudi.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Hudi.ts
@@ -25,7 +25,7 @@ import i18n from '@/i18n';
 import EditableTable from '@/ui/components/EditableTable';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class HudiSource
@@ -41,6 +41,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.DbName')
   dbName: string;
 
@@ -53,6 +54,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.TableName')
   tableName: string;
 
@@ -66,6 +68,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('Catalog URI')
   catalogUri: string;
 
@@ -79,6 +82,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.Warehouse')
   warehouse: string;
 
@@ -103,6 +107,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.ReadStreamingSkipCompaction')
   readStreamingSkipCompaction: boolean;
 
@@ -117,6 +122,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.ReadStartCommit')
   readStartCommit: string;
 
@@ -147,6 +153,7 @@ export default class HudiSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Hudi.ExtList')
   extList: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Iceberg.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Iceberg.ts
index 582b8c7220..cb6d079e18 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Iceberg.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Iceberg.ts
@@ -24,7 +24,7 @@ import i18n from '@/i18n';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class IcebergSource
@@ -39,6 +39,7 @@ export default class IcebergSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @ColumnDecorator()
   @I18n('meta.Sources.Iceberg.Database')
   database: number;
@@ -51,6 +52,7 @@ export default class IcebergSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Iceberg.TableName')
   tableName: string;
 
@@ -62,6 +64,7 @@ export default class IcebergSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Iceberg.PrimaryKey')
   primaryKey: string;
 
@@ -73,6 +76,7 @@ export default class IcebergSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @ColumnDecorator()
   @I18n('Catalog URI')
   uri: string;
@@ -84,6 +88,7 @@ export default class IcebergSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Iceberg.Warehouse')
   warehouse: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/MQTT.ts 
b/inlong-dashboard/src/plugins/sources/defaults/MQTT.ts
index 1ef65436b2..4721cf8220 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/MQTT.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/MQTT.ts
@@ -23,7 +23,7 @@ import { RenderList } from '@/plugins/RenderList';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 
 export default class MQTTSource
   extends SourceInfo
@@ -38,6 +38,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Server URI')
   serverURI: string;
 
@@ -49,6 +50,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.MQTT.Username')
   username: string;
 
@@ -60,6 +62,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.MQTT.Password')
   password: string;
 
@@ -71,6 +74,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Topic')
   topic: string;
 
@@ -82,6 +86,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Client ID')
   clientId: string;
 
@@ -95,6 +100,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('QoS')
   qos: number;
 
@@ -105,6 +111,7 @@ export default class MQTTSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.MQTT.MqttVersion')
   mqttVersion: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Mongodb.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Mongodb.ts
index 442b1e91f4..2c3a8ba33d 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Mongodb.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Mongodb.ts
@@ -23,7 +23,7 @@ import { RenderList } from '@/plugins/RenderList';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class MongodbSource
@@ -40,6 +40,7 @@ export default class MongodbSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.Hosts')
   hosts: string;
 
@@ -52,6 +53,7 @@ export default class MongodbSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.Username')
   username: string;
 
@@ -63,6 +65,7 @@ export default class MongodbSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.Password')
   password: string;
 
@@ -74,6 +77,7 @@ export default class MongodbSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.Database')
   database: string;
 
@@ -85,6 +89,7 @@ export default class MongodbSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.Collection')
   collection: string;
 
@@ -95,6 +100,7 @@ export default class MongodbSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Mongodb.PrimaryKey')
   primaryKey: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/MySQLBinlog.ts 
b/inlong-dashboard/src/plugins/sources/defaults/MySQLBinlog.ts
index e37ad2539a..31645656c7 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/MySQLBinlog.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/MySQLBinlog.ts
@@ -24,7 +24,7 @@ import i18n from '@/i18n';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField, SyncMoveDbField } = RenderRow;
+const { FieldDecorator, SyncField, SyncMoveDbField, IngestionField } = 
RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class TubeMqSource
@@ -39,6 +39,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @ColumnDecorator()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.Server')
@@ -55,6 +56,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @ColumnDecorator()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.Port')
@@ -68,6 +70,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.User')
   user: string;
@@ -80,6 +83,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.Password')
   password: string;
@@ -92,6 +96,7 @@ export default class TubeMqSource
       disabled: values?.status === 101,
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.Db.HistoryFilename')
   historyFilename: string;
 
@@ -104,6 +109,7 @@ export default class TubeMqSource
       disabled: values?.status === 101,
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.Db.ServerTimezone')
   serverTimezone: string;
 
@@ -118,6 +124,7 @@ export default class TubeMqSource
       max: 3600000,
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.Db.IntervalMs')
   intervalMs: number;
 
@@ -139,6 +146,7 @@ export default class TubeMqSource
       ],
     }),
   })
+  @IngestionField()
   @I18n('meta.Sources.Db.AllMigration')
   allMigration: boolean;
 
@@ -161,6 +169,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.ReadMode')
   onlyIncremental: boolean;
@@ -174,6 +183,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.DatabaseWhiteList')
   databaseWhiteList: string;
@@ -187,6 +197,7 @@ export default class TubeMqSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @SyncMoveDbField()
   @I18n('meta.Sources.Db.TableWhiteList')
   tableWhiteList: boolean;
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Oracle.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Oracle.ts
index aa05728f67..440ebd2c55 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Oracle.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Oracle.ts
@@ -24,7 +24,7 @@ import { SourceInfo } from '../common/SourceInfo';
 import i18n from '@/i18n';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class OracleSource
@@ -40,6 +40,7 @@ export default class OracleSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.Hostname')
   hostname: string;
 
@@ -55,6 +56,7 @@ export default class OracleSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.Port')
   port: number;
 
@@ -67,6 +69,7 @@ export default class OracleSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.Username')
   username: string;
 
@@ -78,6 +81,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.Password')
   password: string;
 
@@ -89,6 +93,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.Database')
   database: string;
 
@@ -100,6 +105,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.SchemaName')
   schemaName: string;
 
@@ -111,6 +117,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.TableName')
   tableName: string;
 
@@ -133,6 +140,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.AllMigration')
   allMigration: boolean;
 
@@ -155,6 +163,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.ScanStartupMode')
   scanStartupMode: string;
 
@@ -165,6 +174,7 @@ export default class OracleSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Oracle.PrimaryKey')
   primaryKey: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/PostgreSQL.ts 
b/inlong-dashboard/src/plugins/sources/defaults/PostgreSQL.ts
index 4c60c8a40f..b49b751201 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/PostgreSQL.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/PostgreSQL.ts
@@ -24,7 +24,7 @@ import { SourceInfo } from '../common/SourceInfo';
 import i18n from '@/i18n';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class PostgreSQLSource
@@ -40,6 +40,7 @@ export default class PostgreSQLSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.Hostname')
   hostname: string;
 
@@ -55,6 +56,7 @@ export default class PostgreSQLSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.Port')
   port: number;
 
@@ -66,6 +68,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.Database')
   database: string;
 
@@ -77,6 +80,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.SchemaName')
   schema: string;
 
@@ -88,6 +92,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @ColumnDecorator()
   @I18n('meta.Sources.PostgreSQL.Username')
   username: string;
@@ -100,6 +105,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.Password')
   password: string;
 
@@ -112,6 +118,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.TableName')
   tableNameList: string;
 
@@ -122,6 +129,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.PrimaryKey')
   primaryKey: string;
 
@@ -159,6 +167,7 @@ export default class PostgreSQLSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.PostgreSQL.decodingPluginName')
   decodingPluginName: string;
 
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Pulsar.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Pulsar.ts
index 039fc6044c..3d8aabe354 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Pulsar.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Pulsar.ts
@@ -23,7 +23,7 @@ import { RenderList } from '@/plugins/RenderList';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class PulsarSource
@@ -39,6 +39,7 @@ export default class PulsarSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.PulsarTenant')
   pulsarTenant: string;
 
@@ -50,6 +51,7 @@ export default class PulsarSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.Namespace')
   namespace: string;
 
@@ -61,6 +63,7 @@ export default class PulsarSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Admin url')
   adminUrl: string;
 
@@ -72,6 +75,7 @@ export default class PulsarSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Service url')
   serviceUrl: string;
 
@@ -83,9 +87,40 @@ export default class PulsarSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('Pulsar topic')
   topic: string;
 
+  @FieldDecorator({
+    type: 'radio',
+    initialValue: 'CSV',
+    props: values => ({
+      disabled: [110].includes(values?.status),
+      options: [
+        {
+          label: 'CSV',
+          value: 'CSV',
+        },
+        {
+          label: 'Key-Value',
+          value: 'KV',
+        },
+        {
+          label: 'Avro',
+          value: 'AVRO',
+        },
+        {
+          label: 'JSON',
+          value: 'JSON',
+        },
+      ],
+    }),
+    rules: [{ required: true }],
+  })
+  @SyncField()
+  @I18n('meta.Sources.Pulsar.SerializationType')
+  serializationType: string;
+
   @FieldDecorator({
     type: 'input',
     props: values => ({
@@ -94,6 +129,7 @@ export default class PulsarSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.PrimaryKey')
   primaryKey: string;
 
@@ -116,6 +152,7 @@ export default class PulsarSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.DataEncoding')
   dataEncoding: string;
 
@@ -127,6 +164,7 @@ export default class PulsarSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.DataSeparator')
   dataSeparator: string;
 
@@ -138,35 +176,7 @@ export default class PulsarSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Pulsar.DataEscapeChar')
   dataEscapeChar: string;
-
-  @FieldDecorator({
-    type: 'radio',
-    initialValue: 'INLONG_MSG_V0',
-    props: values => ({
-      disabled: values?.status === 101,
-      options: [
-        {
-          label: 'InLongMsg V0',
-          value: 'INLONG_MSG_V0',
-        },
-        {
-          label: 'InLongMsg V1',
-          value: 'INLONG_MSG_V1',
-        },
-        {
-          label: 'Raw',
-          value: 'RAW',
-        },
-        {
-          label: 'Etc',
-          value: 'etc',
-        },
-      ],
-    }),
-  })
-  @SyncField()
-  @I18n('meta.Sources.Pulsar.WrapType')
-  wrapType: string;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/Redis.ts 
b/inlong-dashboard/src/plugins/sources/defaults/Redis.ts
index 715c294971..5904710626 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/Redis.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/Redis.ts
@@ -23,7 +23,7 @@ import { RenderList } from '@/plugins/RenderList';
 import { SourceInfo } from '../common/SourceInfo';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class RedisSource
@@ -39,6 +39,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Database')
   database: number;
 
@@ -51,6 +52,7 @@ export default class RedisSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Username')
   username: string;
 
@@ -62,6 +64,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Password')
   password: string;
 
@@ -92,6 +95,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.RedisCommand')
   redisCommand: string;
 
@@ -117,6 +121,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.RedisMode')
   redisMode: string;
 
@@ -129,6 +134,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.ClusterNodes')
   clusterNodes: string;
 
@@ -150,6 +156,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.AdditionalKey')
   additionalKey: string;
 
@@ -162,6 +169,7 @@ export default class RedisSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Hostname')
   host: string;
 
@@ -177,6 +185,7 @@ export default class RedisSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Port')
   port: number;
 
@@ -187,6 +196,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.PrimaryKey')
   primaryKey: string;
 
@@ -198,6 +208,7 @@ export default class RedisSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.Redis.Timeout')
   timeout: number;
 }
diff --git a/inlong-dashboard/src/plugins/sources/defaults/SQLServer.ts 
b/inlong-dashboard/src/plugins/sources/defaults/SQLServer.ts
index d2c691cd9a..33e8049af1 100644
--- a/inlong-dashboard/src/plugins/sources/defaults/SQLServer.ts
+++ b/inlong-dashboard/src/plugins/sources/defaults/SQLServer.ts
@@ -24,7 +24,7 @@ import { SourceInfo } from '../common/SourceInfo';
 import i18n from '@/i18n';
 
 const { I18n } = DataWithBackend;
-const { FieldDecorator, SyncField } = RenderRow;
+const { FieldDecorator, SyncField, IngestionField } = RenderRow;
 const { ColumnDecorator } = RenderList;
 
 export default class SQLServerSource
@@ -40,6 +40,7 @@ export default class SQLServerSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.Hostname')
   hostname: string;
 
@@ -55,6 +56,7 @@ export default class SQLServerSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.Port')
   port: number;
 
@@ -67,6 +69,7 @@ export default class SQLServerSource
   })
   @ColumnDecorator()
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.Username')
   username: string;
 
@@ -78,6 +81,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.Password')
   password: string;
 
@@ -89,6 +93,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.Database')
   database: string;
 
@@ -111,6 +116,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.AllMigration')
   allMigration: boolean;
 
@@ -123,6 +129,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.ServerTimezone')
   serverTimezone: string;
 
@@ -134,6 +141,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.SchemaName')
   schemaName: string;
 
@@ -145,6 +153,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.TableName')
   tableName: string;
 
@@ -155,6 +164,7 @@ export default class SQLServerSource
     }),
   })
   @SyncField()
+  @IngestionField()
   @I18n('meta.Sources.SQLServer.PrimaryKey')
   primaryKey: string;
 }
diff --git a/inlong-dashboard/src/ui/locales/cn.json 
b/inlong-dashboard/src/ui/locales/cn.json
index ccb6800902..179b7462ac 100644
--- a/inlong-dashboard/src/ui/locales/cn.json
+++ b/inlong-dashboard/src/ui/locales/cn.json
@@ -137,6 +137,7 @@
   "meta.Sources.Pulsar.DataSeparator": "数据分隔符",
   "meta.Sources.Pulsar.DataEscapeChar": "数据转义符",
   "meta.Sources.Pulsar.WrapType": "消息打包格式",
+  "meta.Sources.Pulsar.SerializationType": "数据格式",
   "meta.Sinks.SinkName": "名称",
   "meta.Sinks.SinkNameRule": "只能包含英文字母、数字、点号(.)、中划线(-)、下划线(_)",
   "meta.Sinks.SinkType": "类型",
diff --git a/inlong-dashboard/src/ui/locales/en.json 
b/inlong-dashboard/src/ui/locales/en.json
index e2d2c0490c..823d345706 100644
--- a/inlong-dashboard/src/ui/locales/en.json
+++ b/inlong-dashboard/src/ui/locales/en.json
@@ -137,6 +137,7 @@
   "meta.Sources.Pulsar.DataSeparator": "Data separator",
   "meta.Sources.Pulsar.DataEscapeChar": "Data escape char",
   "meta.Sources.Pulsar.WrapType": "Wrap type",
+  "meta.Sources.Pulsar.SerializationType": "Data type",
   "meta.Sinks.SinkName": "Name",
   "meta.Sinks.SinkNameRule": "Only English letters, numbers, dots(.), 
minus(-), and underscores(_)",
   "meta.Sinks.SinkType": "Type",
diff --git 
a/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncAudit/index.tsx 
b/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncAudit/index.tsx
index 6dd28c9661..b97af51bd1 100644
--- a/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncAudit/index.tsx
+++ b/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncAudit/index.tsx
@@ -57,7 +57,7 @@ const Comp: React.FC<Props> = ({ inlongGroupId }) => {
     },
     {
       ready: Boolean(query.inlongStreamId),
-      formatResult: result => result,
+      formatResult: result => result.sort((a, b) => b.auditId - a.auditId),
     },
   );
 
diff --git 
a/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncSources/DetailModal.tsx 
b/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncSources/DetailModal.tsx
index 9081175919..89f2959c3d 100644
--- 
a/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncSources/DetailModal.tsx
+++ 
b/inlong-dashboard/src/ui/pages/SynchronizeDetail/SyncSources/DetailModal.tsx
@@ -76,6 +76,9 @@ const Comp: React.FC<Props> = ({
       submitData.id = id;
       submitData.version = data?.version;
     }
+    if (values.sourceType === 'PULSAR') {
+      submitData.wrapType = 'RAW';
+    }
 
     if (sourceType !== undefined && sourceType !== submitData.sourceType) {
       message.warning(t('pages.SynchronizeDetail.Sources.SavePrompt'));

Reply via email to