You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/07/04 02:36:04 UTC

[inlong] branch master updated: [INLONG-4850][Dashboard] Add prompt information for some fields in cluster management (#4851)

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

healchow 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 27828c374 [INLONG-4850][Dashboard] Add prompt information for some fields in cluster management (#4851)
27828c374 is described below

commit 27828c37435d1ad5cf49cac5f61597fa8e3f2b63
Author: healchow <he...@gmail.com>
AuthorDate: Mon Jul 4 10:35:58 2022 +0800

    [INLONG-4850][Dashboard] Add prompt information for some fields in cluster management (#4851)
---
 .../AccessHelper/FieldsConfig/dataFields.tsx       |  4 +--
 .../ConsumeHelper/FieldsConfig/basicFields.tsx     |  2 +-
 .../src/components/HighSelect/index.tsx            |  4 +--
 .../src/components/MetaData/StorageHive.tsx        |  2 +-
 inlong-dashboard/src/locales/cn.json               | 19 ++++++++------
 inlong-dashboard/src/locales/en.json               | 29 +++++++++++++---------
 .../src/pages/AccessDetail/DataSources/index.tsx   |  2 +-
 .../AccessDetail/DataStream/StreamItemModal.tsx    |  6 ++---
 .../src/pages/AccessDetail/DataStream/index.tsx    |  3 +--
 .../src/pages/ApprovalDetail/AccessConfig.tsx      |  4 +--
 .../src/pages/Clusters/config/Pulsar.tsx           | 19 +++++++++++---
 .../src/pages/Clusters/config/TubeMQ.tsx           | 17 +++++++------
 inlong-dashboard/src/pages/Login/index.tsx         |  2 +-
 13 files changed, 67 insertions(+), 46 deletions(-)

diff --git a/inlong-dashboard/src/components/AccessHelper/FieldsConfig/dataFields.tsx b/inlong-dashboard/src/components/AccessHelper/FieldsConfig/dataFields.tsx
index b91d13892..2f20458b7 100644
--- a/inlong-dashboard/src/components/AccessHelper/FieldsConfig/dataFields.tsx
+++ b/inlong-dashboard/src/components/AccessHelper/FieldsConfig/dataFields.tsx
@@ -63,8 +63,8 @@ export default (
       rules: [
         { required: true },
         {
-          pattern: /^[a-z_\d]+$/,
-          message: i18n.t('components.AccessHelper.FieldsConfig.dataFields.DataStreamRules'),
+          pattern: /^[0-9a-z_\-]+$/,
+          message: i18n.t('components.AccessHelper.FieldsConfig.dataFields.InlongStreamIdRules'),
         },
       ],
     },
diff --git a/inlong-dashboard/src/components/ConsumeHelper/FieldsConfig/basicFields.tsx b/inlong-dashboard/src/components/ConsumeHelper/FieldsConfig/basicFields.tsx
index 8f8d8c8bf..a8f81cd07 100644
--- a/inlong-dashboard/src/components/ConsumeHelper/FieldsConfig/basicFields.tsx
+++ b/inlong-dashboard/src/components/ConsumeHelper/FieldsConfig/basicFields.tsx
@@ -38,7 +38,7 @@ export default (
       rules: [
         { required: true },
         {
-          pattern: /^[a-z_\d]+$/,
+          pattern: /^[0-9a-z_\d]+$/,
           message: i18n.t(
             'components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupNameRules',
           ),
diff --git a/inlong-dashboard/src/components/HighSelect/index.tsx b/inlong-dashboard/src/components/HighSelect/index.tsx
index 774b99a47..c55e05cad 100644
--- a/inlong-dashboard/src/components/HighSelect/index.tsx
+++ b/inlong-dashboard/src/components/HighSelect/index.tsx
@@ -27,12 +27,12 @@ import { useRequest } from '@/hooks';
 import debounce from 'lodash/debounce';
 
 // example options: {
-//   requestService: '/basic/schema/listAll',
+//   requestService: '/group/listAll',
 //   requestParams: {
 //     formatResult: result =>
 //       result.map(item => ({
 //         label: item.name,
-//         value: item.name,
+//         value: item.value,
 //       })),
 //   },
 //   requestAuto: false // Whether to automatically initiate a request when the component is mounted, by default when the drop-down box is expanded
diff --git a/inlong-dashboard/src/components/MetaData/StorageHive.tsx b/inlong-dashboard/src/components/MetaData/StorageHive.tsx
index 3ec17bd42..fca2a87a9 100644
--- a/inlong-dashboard/src/components/MetaData/StorageHive.tsx
+++ b/inlong-dashboard/src/components/MetaData/StorageHive.tsx
@@ -352,7 +352,7 @@ const getFieldListColumns: GetStorageColumnsType = (dataType, currentValues) =>
       rules: [
         { required: true },
         {
-          pattern: /^[a-zA-Z][a-zA-Z0-9_]*$/,
+          pattern: /^[a-z][0-9a-z_]*$/,
           message: i18n.t('components.AccessHelper.StorageMetaData.Hive.FieldNameRule'),
         },
       ],
diff --git a/inlong-dashboard/src/locales/cn.json b/inlong-dashboard/src/locales/cn.json
index 613bc76b4..4a88bbec7 100644
--- a/inlong-dashboard/src/locales/cn.json
+++ b/inlong-dashboard/src/locales/cn.json
@@ -53,7 +53,7 @@
   "components.AccessHelper.StorageMetaData.Hive.PartitionFieldListHelp": "字段类型若为timestamp,则必须设置此字段值的格式,支持 MICROSECONDS,MILLISECONDS,SECONDS,SQL,ISO_8601,以及自定义,比如:yyyy-MM-dd HH:mm:ss 等",
   "components.AccessHelper.StorageMetaData.Hive.DbName": "DB名称",
   "components.AccessHelper.StorageMetaData.Hive.TableName": "表名称",
-  "components.AccessHelper.StorageMetaData.Hive.FieldNameRule": "以英文字母开头,只能包含英文字母、数字、下划线",
+  "components.AccessHelper.StorageMetaData.Hive.FieldNameRule": "以小写英文字母开头,只能包含小写英文字母、数字、下划线",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionTest": "测试连接",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionSucceeded": "连接成功",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionFailed": "连接失败",
@@ -129,7 +129,7 @@
   "components.AccessHelper.FieldsConfig.businessFields.thousand/day": "万条/天",
   "components.AccessHelper.FieldsConfig.businessFields.AccessPeakPerSecond": "每秒接入峰值",
   "components.AccessHelper.FieldsConfig.businessFields.InlongGroupId": "分组ID",
-  "components.AccessHelper.FieldsConfig.businessFields.InlongGroupIdRules": "仅限小写字⺟、数字和下划线",
+  "components.AccessHelper.FieldsConfig.businessFields.InlongGroupIdRules": "只能包含小写字母、数字、中划线、下划线",
   "components.AccessHelper.FieldsConfig.businessFields.InlongGroupName": "分组名称",
   "components.AccessHelper.FieldsConfig.businessFields.NumberOfAccess": "按天接入条数",
   "components.AccessHelper.FieldsConfig.businessFields.BusinessOwnersExtra": "分组责任人,可查看、修改分组信息",
@@ -149,7 +149,7 @@
   "components.AccessHelper.FieldsConfig.businessFields.DataCopyTitle": "数据副本信息",
   "components.AccessHelper.FieldsConfig.businessFields.DataStoragePeriodTitle": "数据存储周期信息",
   "components.AccessHelper.FieldsConfig.dataFields.DataStreamID": "数据流ID",
-  "components.AccessHelper.FieldsConfig.dataFields.DataStreamRules": "仅限小写字⺟、数字和下划线",
+  "components.AccessHelper.FieldsConfig.dataFields.InlongStreamIdRules": "只能包含小写字母、数字、中划线、下划线",
   "components.AccessHelper.FieldsConfig.dataFields.fileDelimiter": "源数据字段分割符",
   "components.AccessHelper.FieldsConfig.dataFields.Asterisk": "星号(*)",
   "components.AccessHelper.FieldsConfig.dataFields.DataStreamName": "数据流名称",
@@ -181,8 +181,8 @@
   "components.ConsumeHelper.BusinessSelect.Search": "查询",
   "components.ConsumeHelper.FieldsConfig.basicFields.Consumption": "消费责任人",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupName": "消费组名称",
-  "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupNameRules": "仅限小写字⺟、数字和下划线",
-  "components.ConsumeHelper.FieldsConfig.basicFields.DataStreamIDsHelp": "多个数据流ID之间用分号;隔开",
+  "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupNameRules": "只能包含小写字母、数字、中划线、下划线",
+  "components.ConsumeHelper.FieldsConfig.basicFields.DataStreamIDsHelp": "多个数据流ID之间用逗号(,)隔开",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerDataStreamID": "消费的数据流ID",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerTargetBusinessID": "消费的数据分组ID",
   "components.ConsumeHelper.FieldsConfig.basicFields.No": "否",
@@ -244,7 +244,7 @@
   "pages.AccessDetail.DataSources.Type": "类型",
   "pages.AccessDetail.DataSources.File": "文件",
   "pages.AccessDetail.DataSources.SaveSuccessfully": "保存成功",
-  "pages.AccessDetail.DataSources.DeletConfirm": "确认删除吗",
+  "pages.AccessDetail.DataSources.DeleteConfirm": "确认删除吗",
   "pages.AccessDetail.DataSources.DeleteSuccessfully": "删除成功",
   "pages.AccessDetail.DataSources.DataStreams": "数据流",
   "pages.AccessDetail.DataSources.NoDataStreams": "暂无可用数据流,请先创建新数据流",
@@ -296,6 +296,7 @@
   "pages.ApprovalDetail.AccessConfig.ApprovalInformation": "审批信息",
   "pages.ApprovalDetail.AccessConfig.DataFlowInformation": "数据流信息",
   "pages.ApprovalDetail.AccessConfig.BasicInformation": "基础信息",
+  "pages.ApprovalDetail.AccessConfig.BindClusterTag": "集群标签",
   "pages.ApprovalDetail.ConsumeConfig.ConsumerGroup": "消费组",
   "pages.ApprovalDetail.ConsumeConfig.BasicInfo": "基础信息",
   "pages.ApprovalDetail.ConsumeConfig.ApprovalInfo": "审批信息",
@@ -369,6 +370,10 @@
   "pages.Clusters.Node.LastModifier": "最后操作",
   "pages.Clusters.Node.Create": "新建节点",
   "pages.Clusters.Pulsar.Tenant": "默认租户",
+  "pages.Clusters.Pulsar.ServiceUrlHelper": "用于生产和消费数据",
+  "pages.Clusters.Pulsar.AdminUrlHelper": "用于管理(如:创建、修改)租户、命名空间、Topic 和订阅组",
+  "pages.Clusters.Tube.MasterRpcUrlHelper": "Master RPC 地址,用于生产和消费数据",
+  "pages.Clusters.Tube.MasterWebUrlHelper": "Master Web 地址,用于管理(如:创建、修改)Topic 和消费组",
   "pages.ClusterTags.Name": "集群标签",
   "pages.ClusterTags.InCharges": "负责人",
   "pages.ClusterTags.ModifyTime": "修改时间",
@@ -395,7 +400,7 @@
   "pages.Datasources.DbConfig.InCharges": "DB负责人",
   "pages.Datasources.DbConfig.DbDescription": "DB描述",
   "pages.Login.PleaseEnterUserName": "请输入用户名",
-  "pages.Login.OnlyLowercaseWords": "仅限小写字⺟、数字和下划线",
+  "pages.Login.PasswordRules": "只能包含小写字母、数字、中划线、下划线",
   "pages.Login.LogIn": "登录",
   "pages.Login.PleaseEnterYourPassword": "请输入密码",
   "pages.Login.Reset": "请联系管理员重置",
diff --git a/inlong-dashboard/src/locales/en.json b/inlong-dashboard/src/locales/en.json
index 4de81f0fd..9e3c02d25 100644
--- a/inlong-dashboard/src/locales/en.json
+++ b/inlong-dashboard/src/locales/en.json
@@ -53,7 +53,7 @@
   "components.AccessHelper.StorageMetaData.Hive.PartitionFieldListHelp": "If the field type is timestamp, you must set the format of the field value, support MICROSECONDS, MILLISECONDS, SECONDS, SQL, ISO_8601, and custom, such as: yyyy-MM-dd HH:mm:ss, etc.",
   "components.AccessHelper.StorageMetaData.Hive.DbName": "DbName",
   "components.AccessHelper.StorageMetaData.Hive.TableName": "TableName",
-  "components.AccessHelper.StorageMetaData.Hive.FieldNameRule": "At the beginning of English letters, only English letters, numbers, and underscores",
+  "components.AccessHelper.StorageMetaData.Hive.FieldNameRule": "At the beginning of lowercase letters, only lowercase letters, numbers, and underscores",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionTest": "Test connection",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionSucceeded": "Connection succeeded",
   "components.AccessHelper.StorageMetaData.Hive.ConnectionFailed": "Connection failed",
@@ -115,7 +115,7 @@
   "components.AccessHelper.StorageMetaData.Iceberg.ExtList": "ExtList",
   "components.AccessHelper.StorageMetaData.Iceberg.DataConsistency": "DataConsistency",
   "components.AccessHelper.StorageMetaData.Iceberg.FieldName": "FieldName",
-  "components.AccessHelper.StorageMetaData.Iceberg.FieldNameRule": "Start with an English letter or underscore, and can only contain English letters, numbers, and underscores",
+  "components.AccessHelper.StorageMetaData.Iceberg.FieldNameRule": "At the beginning of English letters or underscore, only English letters, numbers, and underscores",
   "components.AccessHelper.StorageMetaData.Iceberg.FieldType": "FieldType",
   "components.AccessHelper.StorageMetaData.Iceberg.FieldDescription": "FieldDescription",
   "components.AccessHelper.StorageMetaData.Iceberg.PartitionStrategy": "PartitionStrategy",
@@ -129,7 +129,7 @@
   "components.AccessHelper.FieldsConfig.businessFields.thousand/day": "Ten Thousand / day",
   "components.AccessHelper.FieldsConfig.businessFields.AccessPeakPerSecond": "PeakRecords",
   "components.AccessHelper.FieldsConfig.businessFields.InlongGroupId": "Group ID",
-  "components.AccessHelper.FieldsConfig.businessFields.InlongGroupIdRules": "Only lowercase words, numbers and underscores",
+  "components.AccessHelper.FieldsConfig.businessFields.InlongGroupIdRules": "Only lowercase letters, numbers, minus, and underscores",
   "components.AccessHelper.FieldsConfig.businessFields.InlongGroupName": "Group Name",
   "components.AccessHelper.FieldsConfig.businessFields.NumberOfAccess": "Number of Access",
   "components.AccessHelper.FieldsConfig.businessFields.BusinessOwnersExtra": "Group in charges, they can view, modify Group information",
@@ -148,16 +148,16 @@
   "components.AccessHelper.FieldsConfig.businessFields.RetentionSizeExtra": "Message capacity in ack state, messages exceeding this value will be deleted (-1 means never delete)",
   "components.AccessHelper.FieldsConfig.businessFields.DataCopyTitle": "Data copy information",
   "components.AccessHelper.FieldsConfig.businessFields.DataStoragePeriodTitle": "Data storage period information",
-  "components.AccessHelper.FieldsConfig.dataFields.DataStreamID": "Data stream ID",
-  "components.AccessHelper.FieldsConfig.dataFields.DataStreamRules": "Only lowercase words, numbers and underscores",
+  "components.AccessHelper.FieldsConfig.dataFields.DataStreamID": "Inlong stream ID",
+  "components.AccessHelper.FieldsConfig.dataFields.InlongStreamIdRules": "Only lowercase letters, numbers, minus, and underscores",
   "components.AccessHelper.FieldsConfig.dataFields.fileDelimiter": "Source data fileDelimiter",
   "components.AccessHelper.FieldsConfig.dataFields.Asterisk": "Asterisk(*)",
-  "components.AccessHelper.FieldsConfig.dataFields.DataStreamName": "Data stream name",
+  "components.AccessHelper.FieldsConfig.dataFields.DataStreamName": "Stream name",
   "components.AccessHelper.FieldsConfig.dataFields.FieldName": "Field name",
   "components.AccessHelper.FieldsConfig.dataFields.FieldNameRule": "At the beginning of English letters, only English letters, numbers, and underscores",
   "components.AccessHelper.FieldsConfig.dataFields.Semicolon": "Semicolon(;)",
   "components.AccessHelper.FieldsConfig.dataFields.AutoConsumption": "Auto Consumption",
-  "components.AccessHelper.FieldsConfig.dataFields.DataFlowDirection": "Data stream direction",
+  "components.AccessHelper.FieldsConfig.dataFields.DataFlowDirection": "Stream direction",
   "components.AccessHelper.FieldsConfig.dataFields.DataType": "DataType",
   "components.AccessHelper.FieldsConfig.dataFields.DataTypeCsvHelp": "CSV: Any file separated by a specific delimiter",
   "components.AccessHelper.FieldsConfig.dataFields.Source": "Source",
@@ -181,8 +181,8 @@
   "components.ConsumeHelper.BusinessSelect.Search": "Search",
   "components.ConsumeHelper.FieldsConfig.basicFields.Consumption": "Consumption",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupName": "Consumer group name",
-  "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupNameRules": "Only lowercase words, numbers and underscores",
-  "components.ConsumeHelper.FieldsConfig.basicFields.DataStreamIDsHelp": "Data stream IDs are divided by semicolons;",
+  "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerGroupNameRules": "Only lowercase letters, numbers, minus, and underscores",
+  "components.ConsumeHelper.FieldsConfig.basicFields.DataStreamIDsHelp": "Inlong stream IDs are divided by commas;",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerDataStreamID": "Consumer data stream ID",
   "components.ConsumeHelper.FieldsConfig.basicFields.ConsumerTargetBusinessID": "Consume Group ID",
   "components.ConsumeHelper.FieldsConfig.basicFields.No": "No",
@@ -244,7 +244,7 @@
   "pages.AccessDetail.DataSources.Type": "Type",
   "pages.AccessDetail.DataSources.File": "File",
   "pages.AccessDetail.DataSources.SaveSuccessfully": "Save successfully",
-  "pages.AccessDetail.DataSources.DeletConfirm": "Delet confirm",
+  "pages.AccessDetail.DataSources.DeleteConfirm": "Delete confirm",
   "pages.AccessDetail.DataSources.DeleteSuccessfully": "Delete successfully",
   "pages.AccessDetail.DataSources.DataStreams": "DataStreams",
   "pages.AccessDetail.DataSources.NoDataStreams": "NoDataStreams",
@@ -296,6 +296,7 @@
   "pages.ApprovalDetail.AccessConfig.ApprovalInformation": "Approval information",
   "pages.ApprovalDetail.AccessConfig.DataFlowInformation": "Data stream information",
   "pages.ApprovalDetail.AccessConfig.BasicInformation": "Basic information",
+  "pages.ApprovalDetail.AccessConfig.BindClusterTag": "Cluster tag",
   "pages.ApprovalDetail.ConsumeConfig.ConsumerGroup": "Consumer group",
   "pages.ApprovalDetail.ConsumeConfig.BasicInfo": "Basic information",
   "pages.ApprovalDetail.ConsumeConfig.ApprovalInfo": "Approval information",
@@ -365,10 +366,14 @@
   "pages.Clusters.InCharges": "InCharges",
   "pages.Clusters.Description": "Description",
   "pages.Clusters.Node.Name": "Node",
-  "pages.Clusters.Node.Port": "端口",
+  "pages.Clusters.Node.Port": "Port",
   "pages.Clusters.Node.LastModifier": "LastModifier",
   "pages.Clusters.Node.Create": "Create",
   "pages.Clusters.Pulsar.Tenant": "Default Tenant",
+  "pages.Clusters.Pulsar.ServiceUrlHelper": "For producing and consuming data",
+  "pages.Clusters.Pulsar.AdminUrlHelper": "Used to manage (e.g. create, modify) tenants, namespaces, topics and subscription groups",
+  "pages.Clusters.Tube.MasterRpcUrlHelper": "Master RPC URL, used to produce and consume data",
+  "pages.Clusters.Tube.MasterWebUrlHelper": "Master Web URL, used to manage (e.g. create, modify) topics and consumer groups",
   "pages.ClusterTags.Name": "ClusterTag",
   "pages.ClusterTags.InCharges": "InCharges",
   "pages.ClusterTags.ModifyTime": "ModifyTime",
@@ -395,7 +400,7 @@
   "pages.Datasources.DbConfig.InCharges": "InCharges",
   "pages.Datasources.DbConfig.DbDescription": "Description",
   "pages.Login.PleaseEnterUserName": "Please enter user name",
-  "pages.Login.OnlyLowercaseWords": "Only lowercase words, numbers and underscores",
+  "pages.Login.PasswordRules": "Only lowercase letters, numbers, minus, and underscores",
   "pages.Login.LogIn": "LogIn",
   "pages.Login.PleaseEnterYourPassword": "Please enter your password",
   "pages.Login.Reset": "Please contact administrator reset",
diff --git a/inlong-dashboard/src/pages/AccessDetail/DataSources/index.tsx b/inlong-dashboard/src/pages/AccessDetail/DataSources/index.tsx
index 96f99013b..90ac64120 100644
--- a/inlong-dashboard/src/pages/AccessDetail/DataSources/index.tsx
+++ b/inlong-dashboard/src/pages/AccessDetail/DataSources/index.tsx
@@ -109,7 +109,7 @@ const Comp = ({ inlongGroupId }: Props, ref) => {
 
   const onDelete = ({ id }) => {
     Modal.confirm({
-      title: i18n.t('pages.AccessDetail.DataSources.DeletConfirm'),
+      title: i18n.t('pages.AccessDetail.DataSources.DeleteConfirm'),
       onOk: async () => {
         await request({
           url: `/source/delete/${id}`,
diff --git a/inlong-dashboard/src/pages/AccessDetail/DataStream/StreamItemModal.tsx b/inlong-dashboard/src/pages/AccessDetail/DataStream/StreamItemModal.tsx
index f9888d1fe..4f5313147 100644
--- a/inlong-dashboard/src/pages/AccessDetail/DataStream/StreamItemModal.tsx
+++ b/inlong-dashboard/src/pages/AccessDetail/DataStream/StreamItemModal.tsx
@@ -94,14 +94,12 @@ const Comp: React.FC<Props> = ({ inlongGroupId, record, mqType, ...modalProps })
   const [form] = useForm();
   const onOk = async () => {
     const values = {
-      ...pickObject(['id', 'inlongGroupId', 'inlongStreamId', 'dataSourceBasicId'], record),
+      ...pickObject(['id', 'inlongGroupId', 'inlongStreamId'], record),
       ...(await form.validateFields()),
     };
 
     const data = valuesToData(values ? [values] : [], inlongGroupId);
-    const submitData = data.map(item =>
-      pickObject(['dbBasicInfo', 'fileBasicInfo', 'streamInfo'], item),
-    );
+    const submitData = data.map(item => pickObject(['streamInfo'], item));
     await request({
       url: '/stream/update',
       method: 'POST',
diff --git a/inlong-dashboard/src/pages/AccessDetail/DataStream/index.tsx b/inlong-dashboard/src/pages/AccessDetail/DataStream/index.tsx
index 993af0d16..a8b3962a6 100644
--- a/inlong-dashboard/src/pages/AccessDetail/DataStream/index.tsx
+++ b/inlong-dashboard/src/pages/AccessDetail/DataStream/index.tsx
@@ -96,7 +96,6 @@ const Comp = ({ inlongGroupId, readonly, mqType }: Props, ref) => {
       'id',
       'inlongGroupId',
       'inlongStreamId',
-      'dataSourceBasicId',
       'dataSourceType',
       'havePredefinedFields',
     ]);
@@ -235,7 +234,7 @@ const Comp = ({ inlongGroupId, readonly, mqType }: Props, ref) => {
     <>
       <div className={styles.topFilterContainer}>
         <FormGenerator layout="inline" content={getFilterFormContent()} onFilter={onFilter} />
-        <div ref={topRightRef}></div>
+        <div ref={topRightRef} />
       </div>
 
       <Form
diff --git a/inlong-dashboard/src/pages/ApprovalDetail/AccessConfig.tsx b/inlong-dashboard/src/pages/ApprovalDetail/AccessConfig.tsx
index e3b4bbeaa..2d90b1643 100644
--- a/inlong-dashboard/src/pages/ApprovalDetail/AccessConfig.tsx
+++ b/inlong-dashboard/src/pages/ApprovalDetail/AccessConfig.tsx
@@ -102,7 +102,7 @@ export const getFormContent = ({ isViwer, formData, suffixContent, noExtraForm,
     : [
         {
           type: 'select',
-          label: 'Cluster',
+          label: i18n.t('pages.ApprovalDetail.AccessConfig.BindClusterTag'),
           name: ['inlongClusterTag'],
           rules: [{ required: true }],
           props: {
@@ -110,7 +110,7 @@ export const getFormContent = ({ isViwer, formData, suffixContent, noExtraForm,
             options: {
               requestAuto: isFinished,
               requestService: {
-                url: '/cluster/list',
+                url: '/cluster/tag/list',
                 method: 'POST',
                 data: {
                   pageNum: 1,
diff --git a/inlong-dashboard/src/pages/Clusters/config/Pulsar.tsx b/inlong-dashboard/src/pages/Clusters/config/Pulsar.tsx
index f14230378..bf4b67d89 100644
--- a/inlong-dashboard/src/pages/Clusters/config/Pulsar.tsx
+++ b/inlong-dashboard/src/pages/Clusters/config/Pulsar.tsx
@@ -23,15 +23,23 @@ import type { ClsConfigItemType } from './types';
 export const Pulsar: ClsConfigItemType[] = [
   {
     type: 'input',
-    label: 'AdminUrl',
-    name: 'adminUrl',
+    label: 'Service URL',
+    name: 'url',
+    tooltip: i18n.t('pages.Clusters.Pulsar.ServiceUrlHelper'),
     rules: [{ required: true }],
+    props: {
+      placeholder: 'pulsar://127.0.0.1:6650,127.0.1.2:6650',
+    },
   },
   {
     type: 'input',
-    label: 'ServiceUrl',
-    name: 'url',
+    label: 'Admin URL',
+    name: 'adminUrl',
+    tooltip: i18n.t('pages.Clusters.Pulsar.AdminUrlHelper'),
     rules: [{ required: true }],
+    props: {
+      placeholder: 'http://127.0.0.1:8080,127.0.1.2:8080',
+    },
   },
   {
     type: 'input',
@@ -44,5 +52,8 @@ export const Pulsar: ClsConfigItemType[] = [
     type: 'input',
     label: 'Token',
     name: 'token',
+    props: {
+      placeholder: 'Required if the cluster is configured with Token',
+    },
   },
 ];
diff --git a/inlong-dashboard/src/pages/Clusters/config/TubeMQ.tsx b/inlong-dashboard/src/pages/Clusters/config/TubeMQ.tsx
index 81ff8e31e..4e3c96c2d 100644
--- a/inlong-dashboard/src/pages/Clusters/config/TubeMQ.tsx
+++ b/inlong-dashboard/src/pages/Clusters/config/TubeMQ.tsx
@@ -17,25 +17,28 @@
  * under the License.
  */
 
+import i18n from '@/i18n';
 import type { ClsConfigItemType } from './types';
 
 export const TubeMQ: ClsConfigItemType[] = [
   {
     type: 'input',
-    label: 'MasterWebUrl',
-    name: 'masterWebUrl',
+    label: 'RPC URL',
+    name: 'url',
     rules: [{ required: true }],
+    tooltip: i18n.t('pages.Clusters.Tube.MasterRpcUrlHelper'),
     props: {
-      placeholder: 'http://127.0.0.1:8080',
+      placeholder: '127.0.0.1:8715,127.0.1.2:8715',
     },
   },
   {
     type: 'input',
-    label: 'MasterRpcUrl',
-    name: 'url',
+    label: 'Web URL',
+    name: 'masterWebUrl',
     rules: [{ required: true }],
+    tooltip: i18n.t('pages.Clusters.Tube.MasterWebUrlHelper'),
     props: {
-      placeholder: '127.0.0.1:8715,127.0.1.1:8715',
+      placeholder: 'http://127.0.0.1:8080',
     },
   },
   {
@@ -43,7 +46,7 @@ export const TubeMQ: ClsConfigItemType[] = [
     label: 'Token',
     name: 'token',
     props: {
-      placeholder: 'Tube cluster token example: abc',
+      placeholder: 'Required if the cluster is configured with Token',
     },
   },
 ];
diff --git a/inlong-dashboard/src/pages/Login/index.tsx b/inlong-dashboard/src/pages/Login/index.tsx
index 1420fb6a3..b1a1cf64a 100644
--- a/inlong-dashboard/src/pages/Login/index.tsx
+++ b/inlong-dashboard/src/pages/Login/index.tsx
@@ -41,7 +41,7 @@ const Comp: React.FC = () => {
       name: 'password',
       rules: [
         { required: true, message: t('pages.Login.PasswordCanNotBeBlank') },
-        { pattern: /^[a-z_\d]+$/, message: t('pages.Login.OnlyLowercaseWords') },
+        { pattern: /^[0-9a-z_\-]+$/, message: t('pages.Login.PasswordRules') },
       ],
     },
   ];