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'));