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 <[email protected]>
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'));