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

zhaoqingran pushed a commit to branch script
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git

commit 7a3c9f3ef44b559cdda3883e1b72f38cbe52f38d
Merge: 54ff52752 d32ec249b
Author: Logic <[email protected]>
AuthorDate: Mon Nov 4 10:30:56 2024 +0800

    Merge branch 'master' of github.com:apache/hertzbeat into script
    
    # Conflicts:
    #       
collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/processor/ScriptRequestProcessor.java
    #       collector/pom.xml
    #       common/pom.xml
    #       plugin/src/main/resources/define/define.yml
    #       pom.xml

 .all-contributorsrc                                |    45 +
 .devcontainer/devcontainer.json                    |    76 +-
 .github/workflows/backend-build-test-reuse.yml     |    71 +
 .github/workflows/backend-build-test.yml           |    42 +-
 .gitpod.yml                                        |   106 +-
 README.md                                          |    28 +-
 README_CN.md                                       |    28 +-
 alerter/pom.xml                                    |    15 -
 .../impl/AlertDefineExcelImExportServiceImpl.java  |    27 +-
 .../alert/service/impl/AlertDefineServiceImpl.java |    79 +-
 .../impl/AlertDefineYamlImExportServiceImpl.java   |    13 +-
 .../AlertDefineExcelImExportServiceTest.java       |    10 +-
 collector/collector-basic/pom.xml                  |   147 +
 .../collect/database/JdbcCommonCollect.java        |     0
 .../collector/collect/database/JdbcSpiLoader.java  |     0
 .../collector/collect/dns/DnsCollectImpl.java      |     0
 .../collector/collect/ftp/FtpCollectImpl.java      |     0
 .../collector/collect/http/HttpCollectImpl.java    |   604 +
 .../collect/http/SslCertificateCollectImpl.java    |     0
 .../http/promethus/AbstractPrometheusParse.java    |     0
 .../collect/http/promethus/ParseException.java     |     0
 .../http/promethus/PrometheusLastParser.java       |     0
 .../http/promethus/PrometheusMatrixParser.java     |     0
 .../http/promethus/PrometheusParseCreator.java     |     0
 .../http/promethus/PrometheusVectorParser.java     |     0
 .../http/promethus/exporter/ExporterParser.java    |   433 +
 .../http/promethus/exporter/MetricFamily.java      |     0
 .../http/promethus/exporter/MetricType.java        |     0
 .../collector/collect/httpsd/HttpsdImpl.java       |     0
 .../constant/DiscoveryClientHealthStatus.java      |     0
 .../httpsd/constant/DiscoveryClientInstance.java   |     0
 .../collect/httpsd/discovery/DiscoveryClient.java  |     0
 .../discovery/DiscoveryClientManagement.java       |     0
 .../httpsd/discovery/entity/ConnectConfig.java     |     0
 .../httpsd/discovery/entity/ServerInfo.java        |     0
 .../httpsd/discovery/entity/ServiceInstance.java   |     0
 .../discovery/impl/ConsulDiscoveryClient.java      |     0
 .../discovery/impl/NacosDiscoveryClient.java       |     0
 .../collector/collect/icmp/IcmpCollectImpl.java    |     0
 .../collector/collect/imap/ImapCollectImpl.java    |     0
 .../collector/collect/ipmi2/IpmiCollectImpl.java   |   114 +
 .../collector/collect/ipmi2/cache/IpmiConnect.java |    47 +
 .../collector/collect/ipmi2/client/IpmiClient.java |    84 +
 .../collect/ipmi2/client/IpmiConnection.java       |    65 +
 .../collect/ipmi2/client/IpmiEncoderDecoder.java   |    41 +
 .../collect/ipmi2/client/IpmiHandlerManager.java   |    50 +
 .../collect/ipmi2/client/IpmiPacketContext.java    |    25 +
 .../collect/ipmi2/client/IpmiSession.java          |   133 +
 .../collect/ipmi2/client/UdpConnection.java        |    81 +
 .../ipmi2/client/handler/ChassisHandler.java       |    66 +
 .../collect/ipmi2/client/handler/IpmiHandler.java  |    32 +
 .../ipmi2/client/handler/SensorHandler.java        |   136 +
 .../ipmi2/protocol/common/AbstractWireable.java    |    59 +
 .../collect/ipmi2/protocol/common/IpmiCode.java    |    59 +
 .../ipmi2/protocol/common/IpmiEncapsulation.java   |    40 +
 .../collect/ipmi2/protocol/common/Wireable.java    |    36 +
 .../protocol/ipmi/AbstractIpmiSessionWrapper.java  |   111 +
 .../protocol/ipmi/Ipmi20Ipv4SessionWrapper.java    |   219 +
 .../ipmi2/protocol/ipmi/IpmiChannelMediumCode.java |    52 +
 .../ipmi2/protocol/ipmi/IpmiChannelNumberCode.java |    55 +
 .../protocol/ipmi/IpmiChannelPrivilegeLevel.java   |    46 +
 .../protocol/ipmi/IpmiChannelProtocolCode.java     |    53 +
 .../ipmi2/protocol/ipmi/IpmiCommandName.java       |   118 +
 .../ipmi2/protocol/ipmi/IpmiCompletionCode.java    |    75 +
 .../collect/ipmi2/protocol/ipmi/IpmiLun.java       |    44 +
 .../protocol/ipmi/IpmiNetworkFunctionCode.java     |    59 +
 .../ipmi/IpmiSessionAuthenticationType.java        |    43 +
 .../ipmi2/protocol/ipmi/IpmiSessionWrapper.java    |    41 +
 .../protocol/ipmi/command/AbstractIpmiCommand.java |   126 +
 .../protocol/ipmi/command/AbstractIpmiRequest.java |    31 +
 .../ipmi/command/AbstractIpmiResponse.java         |    50 +
 .../ipmi2/protocol/ipmi/command/IpmiCommand.java   |    45 +
 .../ipmi2/protocol/ipmi/command/IpmiRequest.java   |    24 +
 .../ipmi2/protocol/ipmi/command/IpmiResponse.java  |    24 +
 .../command/chassis/GetChassisStatusRequest.java   |    49 +
 .../command/chassis/GetChassisStatusResponse.java  |   116 +
 .../command/messaging/CloseSessionRequest.java     |    55 +
 .../command/messaging/CloseSessionResponse.java    |    53 +
 ...etChannelAuthenticationCapabilitiesRequest.java |    54 +
 ...tChannelAuthenticationCapabilitiesResponse.java |    56 +
 .../protocol/ipmi/command/sdr/GetSdrRequest.java   |    72 +
 .../protocol/ipmi/command/sdr/GetSdrResponse.java  |   131 +
 .../ipmi/command/sdr/GetSensorReadingRequest.java  |    50 +
 .../ipmi/command/sdr/GetSensorReadingResponse.java |    42 +
 .../command/sdr/ReserveSdrRepositoryRequest.java   |    44 +
 .../command/sdr/ReserveSdrRepositoryResponse.java  |    44 +
 .../ipmi/command/sdr/code/IpmiEntityIdCode.java    |   106 +
 .../ipmi/command/sdr/code/IpmiReadingTypeCode.java |    52 +
 .../ipmi/command/sdr/code/IpmiSensorTypeCode.java  |    93 +
 .../command/sdr/code/IpmiSensorUnitTypeCode.java   |   139 +
 .../protocol/ipmi/payload/AbstractIpmiPayload.java |    26 +
 .../ipmi/payload/AbstractSessionIpmiPayload.java   |    63 +
 .../ipmi2/protocol/ipmi/payload/IpmiPayload.java   |    27 +
 .../protocol/ipmi/payload/IpmiPayloadType.java     |    61 +
 .../protocol/ipmi/payload/MessageStatusCode.java   |    65 +
 .../ipmi2/protocol/ipmi/payload/RakpMessage1.java  |    76 +
 .../ipmi2/protocol/ipmi/payload/RakpMessage2.java  |   107 +
 .../ipmi2/protocol/ipmi/payload/RakpMessage3.java  |   100 +
 .../ipmi2/protocol/ipmi/payload/RakpMessage4.java  |    89 +
 .../ipmi/payload/RmcpPlusOpenSessionRequest.java   |    79 +
 .../ipmi/payload/RmcpPlusOpenSessionResponse.java  |    79 +
 .../security/AbstractIpmiAlgorithmWrapper.java     |    47 +
 .../protocol/ipmi/security/IpmiAlgorithm.java      |    28 +
 .../ipmi/security/IpmiAuthenticationCode.java      |    62 +
 .../ipmi/security/IpmiConfidentialityCode.java     |    61 +
 .../protocol/ipmi/security/IpmiIntegrityCode.java  |    63 +
 .../authentication/AbstractIpmiAuthentication.java |    59 +
 .../authentication/IpmiAuthentication.java         |    33 +
 .../IpmiAuthenticationAlgorithmWrapper.java        |    47 +
 .../ipmi/security/authentication/None.java         |    45 +
 .../ipmi/security/authentication/RakpHmacMd5.java  |    34 +
 .../ipmi/security/authentication/RakpHmacSha1.java |    35 +
 .../security/authentication/RakpHmacSha256.java    |    35 +
 .../AbstractIpmiConfidentiality.java               |    53 +
 .../ipmi/security/confidentiality/AesCbc128.java   |   102 +
 .../confidentiality/IpmiConfidentiality.java       |    41 +
 .../IpmiConfidentialityAlgorithmWrapper.java       |    56 +
 .../ipmi/security/confidentiality/None.java        |    58 +
 .../ipmi/security/confidentiality/Xrc4128.java     |    59 +
 .../ipmi/security/confidentiality/Xrc440.java      |    59 +
 .../security/integrity/AbstractIpmiIntegrity.java  |    59 +
 .../ipmi/security/integrity/HmacMd5128.java        |    34 +
 .../ipmi/security/integrity/HmacSha196.java        |    34 +
 .../ipmi/security/integrity/HmacSha256128.java     |    35 +
 .../ipmi/security/integrity/IntegrityUtils.java    |    42 +
 .../ipmi/security/integrity/IpmiIntegrity.java     |    35 +
 .../integrity/IpmiIntegrityAlgorithmWrapper.java   |    50 +
 .../protocol/ipmi/security/integrity/Md5128.java   |    61 +
 .../protocol/ipmi/security/integrity/None.java     |    44 +
 .../collect/ipmi2/protocol/rmcp/Packet.java        |    34 +
 .../collect/ipmi2/protocol/rmcp/RmcpData.java      |    28 +
 .../ipmi2/protocol/rmcp/RmcpMessageClass.java      |    42 +
 .../ipmi2/protocol/rmcp/RmcpMessageStatus.java     |    39 +
 .../collect/ipmi2/protocol/rmcp/RmcpPacket.java    |   125 +
 .../collect/ipmi2/protocol/rmcp/RmcpVersion.java   |    45 +
 .../collect/ipmi2/utils/ByteCheckUtils.java        |    41 +
 .../collect/ipmi2/utils/ByteConvertUtils.java      |    59 +
 .../collect/ipmi2/utils/ByteOrderUtils.java        |    78 +
 .../collector/collect/jmx/JmxClassLoader.java      |     0
 .../collector/collect/jmx/JmxCollectImpl.java      |     0
 .../collect/memcached/MemcachedCollectImpl.java    |     0
 .../collector/collect/mqtt/MqttCollectImpl.java    |     0
 .../collector/collect/nginx/NginxCollectImpl.java  |     0
 .../collector/collect/ntp/NtpCollectImpl.java      |     0
 .../collector/collect/pop3/Pop3CollectImpl.java    |     0
 .../prometheus/PrometheusAutoCollectImpl.java      |     0
 .../collect/prometheus/parser/MetricFamily.java    |     0
 .../collect/prometheus/parser/TextParser.java      |   305 +
 .../collector/collect/push/PushCollectImpl.java    |     0
 .../collector/collect/redfish/ConnectSession.java  |     0
 .../collector/collect/redfish/RedfishClient.java   |     0
 .../collect/redfish/RedfishCollectImpl.java        |   192 +
 .../collect/redfish/RedfishCollectionSchema.java   |     0
 .../collect/redfish/RedfishConnectSession.java     |     0
 .../collector/collect/redfish/Session.java         |     0
 .../collect/redfish/cache/RedfishConnect.java      |    46 +
 .../collect/redis/RedisCommonCollectImpl.java      |     0
 .../collect/script/ScriptCollectImpl.java          |     0
 .../collector/collect/smtp/SmtpCollectImpl.java    |     0
 .../collector/collect/snmp/SnmpCollectImpl.java    |   341 +
 .../collector/collect/ssh/SshCollectImpl.java      |     0
 .../collect/telnet/TelnetCollectImpl.java          |     0
 .../collector/collect/udp/UdpCollectImpl.java      |     0
 .../collect/websocket/WebsocketCollectImpl.java    |     0
 .../collect/common/cache/CommonCacheTest.java      |   113 +
 .../collect/common/http/CommonHttpClientTest.java  |     0
 .../collect/common/ssh/CommonSshClientTest.java    |     0
 .../collect/database/JdbcCommonCollectTest.java    |     0
 .../collect/database/JdbcSpiLoaderTest.java        |     0
 .../collector/collect/dns/DnsCollectImplTest.java  |     0
 .../collector/collect/ftp/FtpCollectImplTest.java  |     0
 .../collect/http/HttpCollectImplTest.java          |     0
 .../http/SslCertificateCollectImplTest.java        |     0
 .../promethus/exporter/ExporterParserTest.java     |     0
 .../collector/collect/httpsd/HttpsdImplTest.java   |     0
 .../collect/icmp/IcmpCollectImplTest.java          |     0
 .../collect/imap/ImapCollectImplTest.java          |     0
 .../collect/ipmi/IpmiSessionWrapperTest.java       |   233 +
 .../collect/ipmi/common/AbstractWireableTest.java  |    47 +
 .../ipmi/security/IpmiConfidentialityTest.java     |    65 +
 .../collector/collect/jmx/JmxCollectImplTest.java  |     0
 .../memcached/MemcachedCollectImplTest.java        |     0
 .../collector/collect/mqtt/MqttCollectTest.java    |   124 +
 .../collect/nginx/NginxCollectImplTest.java        |     0
 .../collector/collect/ntp/NtpCollectImplTest.java  |     0
 .../collect/pop3/Pop3CollectImplTest.java          |     0
 .../collect/push/PushCollectImplTest.java          |     0
 .../collect/redfish/RedfishCollectImplTest.java    |     0
 .../collect/redis/RedisClusterCollectImplTest.java |     0
 .../collect/redis/RedisSingleCollectImplTest.java  |     0
 .../collect/script/ScriptCollectImplTest.java      |     0
 .../collect/smtp/SmtpCollectImplTest.java          |     0
 .../collect/snmp/SnmpCollectImplTest.java          |     0
 .../collector/collect/ssh/SshCollectImplTest.java  |     0
 .../collect/telnet/TelnetCollectImplTest.java      |     0
 .../collector/collect/udp/UdpCollectImplTest.java  |     0
 .../websocket/WebsocketCollectImplTest.java        |     0
 .../collector/dispatch/CommonDispatcherTest.java   |   147 +
 .../dispatch/MetricsCollectorQueueTest.java        |    68 +
 .../collector/dispatch/WorkerPoolTest.java         |     0
 .../dispatch/entrance/CollectServerTest.java       |     0
 .../entrance/internal/CollectJobServiceTest.java   |     0
 .../dispatch/export/NettyDataQueueTest.java        |     0
 .../dispatch/unit/DataSizeConvertTest.java         |     0
 .../dispatch/unit/TimeLengthConvertTest.java       |     0
 .../hertzbeat/collector/util/CollectUtilTest.java  |     0
 .../collector/util/JsonPathParserTest.java         |     0
 .../collector/util/PrivateKeyUtilsTest.java        |     0
 .../collector/util/TimeExpressionUtilTest.java     |     0
 collector/collector-common/pom.xml                 |    88 +
 .../collector/collect/AbstractCollect.java         |     0
 .../collect/common/cache/AbstractConnection.java   |     0
 .../collect/common/cache/CacheIdentifier.java      |     0
 .../common/cache/ConnectionCommonCache.java        |   186 +
 .../collect/common/cache/JdbcConnect.java          |     0
 .../collector/collect/common/cache/JmxConnect.java |     0
 .../collect/common/cache/RedisConnect.java         |     0
 .../collector/collect/common/cache/SshConnect.java |    45 +
 .../collect/common/http/CommonHttpClient.java      |     0
 .../collect/common/ssh/CommonSshBlacklist.java     |     0
 .../collect/common/ssh/CommonSshClient.java        |     0
 .../config/CollectorAutoConfiguration.java         |     0
 .../collector/constants/CollectorConstants.java    |     0
 .../collector/dispatch/CollectDataDispatch.java    |    48 +
 .../dispatch/CollectorInfoProperties.java          |     0
 .../collector/dispatch/DispatchConstants.java      |   212 +
 .../collector/dispatch/DispatchProperties.java     |     0
 .../collector/dispatch/MetricsTaskDispatch.java    |     0
 .../hertzbeat/collector/dispatch/WorkerPool.java   |    81 +
 .../collector/dispatch/entrance/CollectServer.java |   195 +
 .../entrance/internal/CollectJobService.java       |   184 +
 .../internal/CollectResponseEventListener.java     |    35 +
 .../processor/CollectCyclicDataProcessor.java      |     0
 .../processor/CollectOneTimeDataProcessor.java     |     0
 .../processor/DeleteCyclicTaskProcessor.java       |    54 +
 .../entrance/processor/GoCloseProcessor.java       |     0
 .../entrance/processor/GoOfflineProcessor.java     |     0
 .../entrance/processor/GoOnlineProcessor.java      |     0
 .../entrance/processor/HeartbeatProcessor.java     |     0
 .../entrance/processor/ScriptRequestProcessor.java |     0
 .../collector/dispatch/export/NettyDataQueue.java  |     0
 .../collector/dispatch/timer/HashedWheelTimer.java |   805 +
 .../collector/dispatch/timer/Timeout.java          |     0
 .../hertzbeat/collector/dispatch/timer/Timer.java  |     0
 .../collector/dispatch/timer/TimerDispatch.java    |    71 +
 .../collector/dispatch/timer/TimerDispatcher.java  |   153 +
 .../collector/dispatch/timer/TimerTask.java        |     0
 .../collector/dispatch/timer/WheelTimerTask.java   |    99 +
 .../collector/dispatch/unit/DataUnit.java          |     0
 .../collector/dispatch/unit/TimeLengthUnit.java    |     0
 .../collector/dispatch/unit/UnitConvert.java       |     0
 .../dispatch/unit/impl/AbstractUnitConvert.java    |    75 +
 .../dispatch/unit/impl/DataSizeConvert.java        |    43 +
 .../dispatch/unit/impl/TimeLengthConvert.java      |    43 +
 .../hertzbeat/collector/util/CollectUtil.java      |   481 +
 .../hertzbeat/collector/util/JsonPathParser.java   |    76 +
 .../hertzbeat/collector/util/PrivateKeyUtils.java  |    62 +
 .../collector/util/TimeExpressionUtil.java         |   129 +
 collector/collector-kafka/pom.xml                  |    50 +
 .../collector/collect/kafka/KafkaCollectImpl.java  |   210 +
 .../collector/collect/kafka/KafkaConnect.java      |    64 +
 .../collector/collect/kafka/SupportedCommand.java  |    63 +
 .../collector/collect/kafka/KafkaCollectTest.java  |    93 +
 collector/collector-mongodb/pom.xml                |    49 +
 .../collector/collect/mongodb/MongodbConnect.java  |    46 +
 .../collect/mongodb/MongodbSingleCollectImpl.java  |   232 +
 .../collect/mongodb/MongoCollectImplTest.java      |   108 +
 collector/collector-nebulagraph/pom.xml            |    60 +
 .../nebulagraph/NebulaGraphCollectImpl.java        |     0
 .../collect/nebulagraph/NebulaTemplate.java        |     0
 .../collect/nebulagraph/NgqlCollectImpl.java       |     0
 .../nebulagraph/NebulaGraphCollectImplTest.java    |   104 +
 .../collect/nebulagraph/NgqlCollectImplTest.java   |   208 +
 collector/collector-rocketmq/pom.xml               |    50 +
 .../collect/rocketmq/RocketmqCollectData.java      |   166 +
 .../rocketmq/RocketmqSingleCollectImpl.java        |   372 +
 .../rocketmq/RocketmqSingleCollectTest.java        |   100 +
 collector/collector/pom.xml                        |   343 +
 .../org/apache/hertzbeat/collector/Collector.java  |     0
 .../collect/strategy/CollectStrategyFactory.java   |    58 +
 .../config/CollectorAutoConfiguration.java         |     0
 .../collector/dispatch/CommonDispatcher.java       |   383 +
 .../collector/dispatch/MetricsCollect.java         |   432 +
 .../collector/dispatch/MetricsCollectorQueue.java  |    46 +
 ...che.hertzbeat.collector.collect.AbstractCollect |    30 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |     0
 .../collector/src/main/resources/application.yml   |    61 +
 .../{ => collector}/src/main/resources/banner.txt  |     0
 .../src/main/resources/logback-spring.xml          |     0
 collector/pom.xml                                  |   428 +-
 .../common/cache/ConnectionCommonCache.java        |   187 -
 .../collect/common/cache/MongodbConnect.java       |    45 -
 .../collect/common/cache/RedfishConnect.java       |    45 -
 .../collector/collect/common/cache/SshConnect.java |    44 -
 .../collector/collect/http/HttpCollectImpl.java    |   604 -
 .../http/promethus/exporter/ExporterParser.java    |   429 -
 .../collect/mongodb/MongodbSingleCollectImpl.java  |   222 -
 .../collector/collect/mq/RocketmqCollectData.java  |   166 -
 .../collect/mq/RocketmqSingleCollectImpl.java      |   372 -
 .../collect/prometheus/parser/TextParser.java      |   291 -
 .../collect/redfish/RedfishCollectImpl.java        |   192 -
 .../collector/collect/snmp/SnmpCollectImpl.java    |   334 -
 .../collect/strategy/CollectStrategyFactory.java   |    57 -
 .../collector/dispatch/CollectDataDispatch.java    |    47 -
 .../collector/dispatch/CommonDispatcher.java       |   382 -
 .../collector/dispatch/DispatchConstants.java      |   202 -
 .../collector/dispatch/MetricsCollect.java         |   431 -
 .../collector/dispatch/MetricsCollectorQueue.java  |    45 -
 .../hertzbeat/collector/dispatch/WorkerPool.java   |    80 -
 .../collector/dispatch/entrance/CollectServer.java |   194 -
 .../entrance/internal/CollectJobService.java       |   183 -
 .../internal/CollectResponseEventListener.java     |    34 -
 .../processor/DeleteCyclicTaskProcessor.java       |    53 -
 .../collector/dispatch/timer/HashedWheelTimer.java |   804 -
 .../collector/dispatch/timer/TimerDispatch.java    |    70 -
 .../collector/dispatch/timer/TimerDispatcher.java  |   152 -
 .../collector/dispatch/timer/WheelTimerTask.java   |    98 -
 .../dispatch/unit/impl/AbstractUnitConvert.java    |    74 -
 .../dispatch/unit/impl/DataSizeConvert.java        |    42 -
 .../dispatch/unit/impl/TimeLengthConvert.java      |    42 -
 .../hertzbeat/collector/util/CollectUtil.java      |   480 -
 .../hertzbeat/collector/util/JsonPathParser.java   |    75 -
 .../hertzbeat/collector/util/PrivateKeyUtils.java  |    61 -
 .../collector/util/TimeExpressionUtil.java         |   128 -
 ...che.hertzbeat.collector.collect.AbstractCollect |    28 -
 collector/src/main/resources/application.yml       |    61 -
 .../collect/common/cache/CommonCacheTest.java      |   112 -
 .../collect/mongodb/MongoCollectImplTest.java      |   108 -
 .../collect/mq/RocketmqSingleCollectTest.java      |   100 -
 .../collector/collect/mqtt/MqttCollectTest.java    |   126 -
 .../nebulagraph/NebulaGraphCollectImplTest.java    |   103 -
 .../collect/nebulagraph/NgqlCollectImplTest.java   |   207 -
 .../collector/dispatch/CommonDispatcherTest.java   |   147 -
 .../dispatch/MetricsCollectorQueueTest.java        |    68 -
 common/pom.xml                                     |    14 +
 .../common/constants/ConfigConstants.java          |     9 +
 .../common/constants/NetworkConstants.java         |     4 +
 .../common/entity/grafana/GrafanaDashboard.java    |    18 +-
 .../common/entity/grafana/ServiceAccount.java      |    61 -
 .../common/entity/grafana/ServiceToken.java        |    50 -
 .../hertzbeat/common/entity/job/Metrics.java       |    11 +
 .../common/entity/job/protocol/IpmiProtocol.java   |    72 +
 .../common/entity/job/protocol/KafkaProtocol.java  |    53 +
 .../hertzbeat/common/entity/manager/Bulletin.java  |    98 +
 .../manager/JsonMapListAttributeConverter.java     |    45 +
 .../hertzbeat/common/entity/manager/Monitor.java   |     9 -
 .../common/entity/manager/bulletin/Bulletin.java   |    97 -
 .../entity/manager/bulletin/BulletinDto.java       |    52 -
 .../manager/bulletin/BulletinMetricsData.java      |   135 -
 .../common/entity/manager/bulletin/BulletinVo.java |    65 -
 .../common/queue/impl/RedisCommonDataQueue.java    |     1 +
 .../apache/hertzbeat/common/util/CommonUtil.java   |    37 +
 .../apache/hertzbeat/common/util/ResponseUtil.java |    79 +
 .../common/util/export/ExcelExportUtils.java       |    85 +
 .../common/util/export/YamlExportUtils.java        |    44 +
 .../hertzbeat/common/cache/CacheFactoryTest.java   |    34 +
 .../hertzbeat/common/cache/CaffeineCacheTest.java  |     7 +
 .../common/util/JexlExpressionRunnerTest.java      |    69 +
 .../apache/hertzbeat/common/util/JsonUtilTest.java |    17 +
 .../hertzbeat/common/util/NetworkUtilTest.java     |    32 +
 .../org/apache/hertzbeat/common/util/PairTest.java |    37 +
 .../hertzbeat/common/util/ResponseUtilTest.java    |    86 +
 e2e/docker-compose.yml                             |    24 +-
 .../hertzbeat/grafana/common/CommonConstants.java  |    77 -
 .../hertzbeat/grafana/common/GrafanaConstants.java |    62 +
 .../grafana/config/GrafanaAutoConfiguration.java   |     7 +-
 .../hertzbeat/grafana/config/GrafanaInit.java      |    23 +-
 .../grafana/config/GrafanaProperties.java          |    29 +-
 .../grafana/controller/DashboardController.java    |    10 +-
 .../controller/ServiceAccountController.java       |   119 -
 .../hertzbeat/grafana/dao/GrafanaConfigDao.java    |    36 +
 .../hertzbeat/grafana/dao/ServiceAccountDao.java   |    38 -
 .../hertzbeat/grafana/dao/ServiceTokenDao.java     |    37 -
 .../hertzbeat/grafana/dto/GrafanaConfig.java       |    38 +
 .../grafana/service/DashboardService.java          |    36 +-
 .../grafana/service/DatasourceService.java         |   105 +-
 .../grafana/service/ServiceAccountService.java     |   236 +-
 home/blog/2024-01-11-new-committer.md              |     8 +-
 home/blog/2024-08-31-new-committer.md              |    39 +
 home/blog/2024-09-10-new-committer.md              |    48 +
 home/docs/download.md                              |     6 +-
 home/docs/help/alert_feishu.md                     |     6 +-
 home/docs/help/alert_threshold_expr.md             |     4 +-
 home/docs/help/hadoop.md                           |     2 +-
 home/docs/help/ipmi.md                             |    53 +
 home/docs/help/kafka_client.md                     |    47 +
 home/docs/help/seatunnel.md                        |    99 +
 home/docs/help/spark.md                            |     2 +-
 .../help/template-marketplace-img/asset-detail.png |   Bin 0 -> 71288 bytes
 .../template-marketplace-img/asset-upgrade.png     |   Bin 0 -> 74938 bytes
 .../help/template-marketplace-img/detail-faq.png   |   Bin 0 -> 56070 bytes
 .../help/template-marketplace-img/detail-info.png  |   Bin 0 -> 47310 bytes
 .../template-marketplace-img/detail-version.png    |   Bin 0 -> 77009 bytes
 .../help/template-marketplace-img/download.png     |   Bin 0 -> 74619 bytes
 .../help/template-marketplace-img/email-login.png  |   Bin 0 -> 64255 bytes
 .../hover-window-guest.png                         |   Bin 0 -> 8228 bytes
 .../template-marketplace-img/hover-window-user.png |   Bin 0 -> 9233 bytes
 .../template-marketplace-img/search-category.png   |   Bin 0 -> 104852 bytes
 .../help/template-marketplace-img/search-name.png  |   Bin 0 -> 74388 bytes
 home/docs/help/template-marketplace-img/search.png |   Bin 0 -> 96501 bytes
 home/docs/help/template-marketplace-img/share.png  |   Bin 0 -> 63412 bytes
 .../docs/help/template-marketplace-img/sign-up.png |   Bin 0 -> 56882 bytes
 .../template-marketplace-img/user-center-asset.png |   Bin 0 -> 88469 bytes
 .../user-center-star-detail.png                    |   Bin 0 -> 51963 bytes
 .../template-marketplace-img/user-center-star.png  |   Bin 0 -> 107015 bytes
 .../user-center-upload.png                         |   Bin 0 -> 182357 bytes
 home/docs/help/template_marketplace.md             |   152 +
 home/docs/introduce.md                             |     4 +-
 home/docs/start/baota-deploy.md                    |    43 +
 home/docs/start/docker-compose-deploy.md           |     2 +-
 home/docs/start/package-deploy.md                  |     4 +-
 home/docs/start/postgresql-change.md               |     2 +-
 .../en/docusaurus-plugin-content-docs/current.json |     8 +
 .../2024-01-11-new-committer.md                    |     8 +-
 .../2024-08-31-new-committer.md                    |    46 +
 .../2024-09-10-new-committer.md                    |    48 +
 .../docusaurus-plugin-content-docs/current.json    |    10 +-
 .../current/download.md                            |     4 +-
 .../current/help/alert_feishu.md                   |    10 +-
 .../current/help/alert_threshold_expr.md           |     4 +-
 .../current/help/almalinux.md                      |     2 +-
 .../current/help/centos.md                         |     2 +-
 .../current/help/debian.md                         |     2 +-
 .../current/help/euleros.md                        |     2 +-
 .../current/help/flink.md                          |     2 +-
 .../current/help/flink_on_yarn.md                  |     2 +-
 .../current/help/freebsd.md                        |     2 +-
 .../current/help/hadoop.md                         |     2 +-
 .../current/help/ipmi.md                           |    53 +
 .../current/help/kafka.md                          |     2 +-
 .../current/help/kafka_client.md                   |    47 +
 .../current/help/linux.md                          |     2 +-
 .../current/help/opensuse.md                       |     2 +-
 .../current/help/redhat.md                         |     2 +-
 .../current/help/redis.md                          |     2 +-
 .../current/help/rockylinux.md                     |     2 +-
 .../current/help/seatunnel.md                      |    99 +
 .../current/help/ubuntu.md                         |     2 +-
 .../current/help/windows.md                        |     2 +-
 .../current/help/zookeeper.md                      |     2 +-
 .../current/introduce.md                           |     4 +-
 .../current/start/baota-deploy.md                  |    44 +
 .../current/start/docker-compose-deploy.md         |     2 +-
 .../current/start/package-deploy.md                |     6 +-
 .../current/start/postgresql-change.md             |     2 +-
 .../current/start/rainbond-deploy.md               |     2 +-
 .../version-v1.5.x/help/alert_threshold_expr.md    |     4 +-
 .../version-v1.5.x/introduce.md                    |     4 +-
 .../version-v1.5.x/start/package-deploy.md         |     2 +-
 .../version-v1.5.x/start/postgresql-change.md      |     4 +-
 home/sidebars.json                                 |    59 +-
 home/src/pages/team/index.jsx                      |    21 +
 home/src/pages/team/member.json                    |    18 +-
 .../static/img/docs/start/install-to-aapanel-1.png |   Bin 0 -> 85377 bytes
 .../static/img/docs/start/install-to-aapanel-2.png |   Bin 0 -> 72798 bytes
 .../static/img/docs/start/install-to-aapanel-3.png |   Bin 0 -> 24363 bytes
 home/static/img/docs/start/install-to-baota-1.png  |   Bin 0 -> 337227 bytes
 home/static/img/docs/start/install-to-baota-2.png  |   Bin 0 -> 546214 bytes
 home/static/img/docs/start/install-to-baota-3.png  |   Bin 0 -> 436091 bytes
 home/static/img/home/1.png                         |   Bin 1415895 -> 1421873 
bytes
 home/static/img/home/2.png                         |   Bin 1278829 -> 1261602 
bytes
 .../version-v1.5.x/help/alert_threshold_expr.md    |     4 +-
 home/versioned_docs/version-v1.5.x/introduce.md    |     4 +-
 .../version-v1.5.x/start/package-deploy.md         |     2 +-
 .../version-v1.5.x/start/postgresql-change.md      |     4 +-
 manager/pom.xml                                    |     2 +-
 .../impl/AbstractAlertNotifyHandlerImpl.java       |     6 +-
 .../impl/DingTalkRobotAlertNotifyHandlerImpl.java  |     2 +-
 .../alerter/impl/EmailAlertNotifyHandlerImpl.java  |     9 +-
 .../impl/FlyBookAlertNotifyHandlerImpl.java        |   254 +-
 .../impl/WeComRobotAlertNotifyHandlerImpl.java     |     2 +-
 .../manager/config/CommonCommandLineRunner.java    |   129 -
 .../manager/config/ConfigInitializer.java          |   153 +
 .../manager/controller/AccountController.java      |    20 +-
 .../hertzbeat/manager/controller/AiController.java |    14 +-
 .../manager/controller/AppController.java          |    57 +-
 .../manager/controller/BulletinController.java     |    87 +-
 .../manager/controller/CollectorController.java    |     6 +-
 .../controller/GeneralConfigController.java        |     6 +-
 .../manager/controller/MonitorController.java      |     4 +-
 .../apache/hertzbeat/manager/dao/BulletinDao.java  |     2 +-
 .../manager/pojo/dto/AiControllerRequestParam.java |    32 +
 .../manager/pojo/dto/BulletinMetricsData.java      |   135 +
 .../hertzbeat/manager/pojo/dto/MonitorDto.java     |     7 +-
 .../hertzbeat/manager/pojo/dto/TokenDto.java       |    41 +
 .../hertzbeat/manager/service/AccountService.java  |     4 +-
 .../hertzbeat/manager/service/BulletinService.java |    54 +-
 .../hertzbeat/manager/service/MailService.java     |    40 -
 .../hertzbeat/manager/service/MonitorService.java  |    21 +-
 .../service/impl/AbstractImExportServiceImpl.java  |     2 +-
 .../manager/service/impl/AccountServiceImpl.java   |     2 +-
 .../manager/service/impl/BulletinServiceImpl.java  |   150 +-
 .../service/impl/ExcelImExportServiceImpl.java     |    26 +-
 .../manager/service/impl/MailServiceImpl.java      |   113 -
 .../manager/service/impl/MonitorServiceImpl.java   |    27 +-
 .../manager/service/impl/PluginServiceImpl.java    |    18 +-
 .../manager/service/impl/TagServiceImpl.java       |     9 +
 .../service/impl/YamlImExportServiceImpl.java      |    13 +-
 .../src/main/resources/define/app-cisco_switch.yml |    10 +-
 .../src/main/resources/define/app-h3c_switch.yml   |    10 +-
 .../src/main/resources/define/app-hpe_switch.yml   |    10 +-
 .../main/resources/define/app-huawei_switch.yml    |    10 +-
 .../define/{hugegraph.yml => app-hugegraph.yml}    |     0
 manager/src/main/resources/define/app-ipmi.yml     |   232 +
 .../src/main/resources/define/app-kafka_client.yml |   168 +
 .../src/main/resources/define/app-seatunnel.yml    |   487 +
 manager/src/main/resources/define/app-tidb.yml     |   640 +-
 .../main/resources/define/app-tplink_switch.yml    |    10 +-
 manager/src/main/resources/logback-spring.xml      |     2 +-
 .../main/resources/templates/1-EmailTemplate.html  |    22 +-
 .../impl/EmailAlertNotifyHandlerImplTest.java      |    51 +-
 .../manager/controller/AccountControllerTest.java  |     6 +-
 .../manager/controller/AiControllerTest.java       |    11 +-
 .../manager/controller/BulletinControllerTest.java |    71 +-
 .../manager/service/AccountServiceTest.java        |     2 +-
 .../manager/service/BulletinServiceTest.java       |    70 +-
 .../hertzbeat/manager/service/MailServiceTest.java |    71 -
 .../manager/service/MonitorServiceTest.java        |    10 +-
 .../hertzbeat/manager/service/TagServiceTest.java  |    34 +-
 material/licenses/LICENSE                          |    60 +-
 material/licenses/backend/LICENSE                  |    11 +-
 material/licenses/frontend/LICENSE                 |    49 +-
 .../frontend/LICENSE-ngx-query-builder.txt         |    21 +
 pom.xml                                            |    20 +-
 script/assembly/collector/assembly.xml             |    10 +-
 script/assembly/server/assembly-docker-compose.xml |     2 +-
 script/ci/exclude_files.txt                        |    25 -
 script/docker-compose/LICENSE                      |   201 +
 .../hertzbeat-mysql-iotdb/conf/application.yml     |    30 +-
 .../hertzbeat-mysql-iotdb/conf/sureness.yml        |     8 +
 .../hertzbeat-mysql-tdengine/conf/application.yml  |    29 +-
 .../hertzbeat-mysql-tdengine/conf/sureness.yml     |     8 +
 .../conf/application.yml                           |    22 +-
 .../conf/sureness.yml                              |     8 +
 .../conf/application.yml                           |    22 +-
 .../conf/sureness.yml                              |     8 +
 script/docker/collector/Dockerfile                 |     4 +-
 script/docker/collector/build.sh                   |     8 +-
 script/release/release-win.ps1                     |    90 +
 .../hertzbeat-template-hub-web-app/.editorconfig   |    16 +
 .../hertzbeat-template-hub-web-app/.gitignore      |    42 +
 .../hertzbeat-template-hub-web-app/.prettierrc.js  |    31 +
 .../hertzbeat-template-hub-web-app/README.md       |    27 +
 .../hertzbeat-template-hub-web-app/angular.json    |   186 +
 .../hertzbeat-template-hub-web-app/ng-alain.json   |    13 +
 .../hertzbeat-template-hub-web-app/package.json    |    66 +
 .../hertzbeat-template-hub-web-app/proxy.conf.json |     8 +
 .../public/favicon.ico                             |   Bin 0 -> 2540 bytes
 .../src/app/app.component.html                     |    20 +
 .../src/app/app.component.ts                       |    40 +
 .../src/app/app.config.ts                          |    46 +
 .../src/app/app.module.ts                          |    55 +
 .../src/app/core/core.module.ts                    |    31 +
 .../src/app/core/guard/detect-auth-guard.ts        |    50 +
 .../src/app/core/index.ts                          |    21 +
 .../app/core/interceptor/default.interceptor.ts    |   223 +
 .../src/app/core/module-import-guard.ts            |    24 +
 .../src/app/global-config.module.ts                |    49 +
 .../src/app/layout/blank/blank.component.ts        |    29 +
 .../src/app/layout/layout.module.ts                |    80 +
 .../src/app/layout/market/market.component.html    |   227 +
 .../src/app/layout/market/market.component.ts      |    76 +
 .../src/app/pojo/Message.ts                        |    24 +
 .../app/routes/home-page/home-page.component.html  |   125 +
 .../app/routes/home-page/home-page.component.less  |    40 +
 .../app/routes/home-page/home-page.component.ts    |    64 +
 .../src/app/routes/login/login.component.html      |    66 +
 .../src/app/routes/login/login.component.less      |    18 +
 .../src/app/routes/login/login.component.ts        |    80 +
 .../src/app/routes/market/market-routing.module.ts |    37 +
 .../src/app/routes/market/market.module.ts         |    74 +
 .../template-detail/template-detail.component.html |   277 +
 .../template-detail/template-detail.component.less |    18 +
 .../template-detail/template-detail.component.ts   |   210 +
 .../template-list/template-list.component.html     |   229 +
 .../template-list/template-list.component.less     |    60 +
 .../template-list/template-list.component.ts       |   270 +
 .../src/app/routes/routes-routing.module.ts        |    40 +
 .../src/app/routes/routes.module.ts                |    58 +
 .../src/app/routes/sign-up/sign-up.component.html  |    75 +
 .../src/app/routes/sign-up/sign-up.component.less  |    18 +
 .../src/app/routes/sign-up/sign-up.component.ts    |    79 +
 .../assets-detail/assets-detail.component.html     |   349 +
 .../assets-detail/assets-detail.component.less     |    18 +
 .../assets-detail/assets-detail.component.ts       |   302 +
 .../user-assets/user-assets.component.html         |   192 +
 .../user-assets/user-assets.component.less         |    18 +
 .../user-assets/user-assets.component.ts           |   231 +
 .../user-center/user-center-routing.module.ts      |    41 +
 .../app/routes/user-center/user-center.module.ts   |    82 +
 .../user-center/user-star/user-star.component.html |   208 +
 .../user-center/user-star/user-star.component.less |    18 +
 .../user-center/user-star/user-star.component.ts   |   226 +
 .../user-upload/user-upload.component.html         |   169 +
 .../user-upload/user-upload.component.less         |    18 +
 .../user-upload/user-upload.component.ts           |   211 +
 .../src/app/service/auth.service.ts                |    60 +
 .../src/app/service/category.service.ts            |    57 +
 .../src/app/service/data.service.ts                |    35 +
 .../src/app/service/local-storage.service.ts       |    63 +
 .../src/app/service/star.service.ts                |    58 +
 .../src/app/service/template.service.ts            |   166 +
 .../src/app/service/version.service.ts             |    55 +
 .../src/app/shared/constants.ts                    |     0
 .../src/assets/css/style.css                       |  2324 ++
 .../src/assets/svg/1-img.svg                       |     1 +
 .../src/assets/svg/2-img.svg                       |     1 +
 .../src/assets/svg/3-img.svg                       |     1 +
 .../src/assets/svg/4-img.svg                       |     1 +
 .../src/assets/svg/5-img.svg                       |     1 +
 .../src/assets/svg/6-img.svg                       |     1 +
 .../src/assets/svg/brand.svg                       |    24 +
 .../src/assets/svg/brand_white.svg                 |    24 +
 .../src/assets/svg/breadcrumb.svg                  |   226 +
 .../src/assets/svg/cancel-star.svg                 |    24 +
 .../src/assets/svg/circle.svg                      |  1463 ++
 .../src/assets/svg/detail.svg                      |    36 +
 .../src/assets/svg/download.svg                    |    40 +
 .../src/assets/svg/email.svg                       |    34 +
 .../src/assets/svg/github.svg                      |    34 +
 .../src/assets/svg/hand.svg                        |    68 +
 .../src/assets/svg/home-1.svg                      |    83 +
 .../src/assets/svg/home-2.svg                      |   102 +
 .../src/assets/svg/home-3.svg                      |    72 +
 .../src/assets/svg/home-page-bg.svg                |  1657 ++
 .../src/assets/svg/i18n.svg                        |    51 +
 .../src/assets/svg/logo.svg                        |    22 +
 .../src/assets/svg/logo_white.svg                  |    22 +
 .../src/assets/svg/mysql-img.svg                   |    68 +
 .../src/assets/svg/star.svg                        |    24 +
 .../src/assets/svg/title-line.svg                  |    38 +
 .../src/assets/svg/upload-bg.svg                   |  1598 ++
 .../src/assets/svg/user-center.svg                 |    40 +
 .../src/environments/environment.prod.ts           |    29 +
 .../src/environments/environment.ts                |    42 +
 .../hertzbeat-template-hub-web-app/src/favicon.ico |   Bin 0 -> 2540 bytes
 .../hertzbeat-template-hub-web-app/src/index.html  |    42 +
 .../hertzbeat-template-hub-web-app/src/main.ts     |    59 +
 .../hertzbeat-template-hub-web-app/src/styles.css  |    21 +
 .../tsconfig.app.json                              |    13 +
 .../hertzbeat-template-hub-web-app/tsconfig.json   |    43 +
 .../tsconfig.spec.json                             |    13 +
 .../hertzbeat-template-hub/.gitignore              |    33 +
 .../hertzbeat-template-hub/README.md               |     2 +
 .../hertzbeat-template-hub/apiTest/category.http   |    38 +
 .../hertzbeat-template-hub/apiTest/share.http      |    22 +
 .../hertzbeat-template-hub/apiTest/star.http       |    39 +
 .../hertzbeat-template-hub/apiTest/template.http   |    56 +
 .../hertzbeat-template-hub/apiTest/user.http       |    44 +
 .../hertzbeat-template-hub/apiTest/version.http    |    25 +
 .../hertzbeat-template-hub/pom.xml                 |   187 +
 .../hertzbeat-template-hub/sql/auth_resource.sql   |    43 +
 .../hertzbeat-template-hub/sql/auth_role.sql       |    34 +
 .../sql/auth_role_resource_bind.sql                |    31 +
 .../hertzbeat-template-hub/sql/auth_user.sql       |    43 +
 .../sql/auth_user_role_bind.sql                    |    37 +
 .../hertzbeat-template-hub/sql/category.sql        |    36 +
 .../hertzbeat-template-hub/sql/star.sql            |    28 +
 .../hertzbeat-template-hub/sql/tag.sql             |    29 +
 .../hertzbeat-template-hub/sql/template.sql        |    46 +
 .../hertzbeat-template-hub/sql/template_tag.sql    |    27 +
 .../hertzbeat-template-hub/sql/version.sql         |    40 +
 .../HertzbeatTemplateHubApplication.java           |    32 +
 .../templatehub/config/FileStorageConfig.java      |    56 +
 .../templatehub/constants/CommonConstants.java     |   375 +
 .../templatehub/controller/AccountController.java  |   134 +
 .../templatehub/controller/CategoryController.java |   119 +
 .../templatehub/controller/ResourceController.java |   109 +
 .../templatehub/controller/RoleController.java     |   154 +
 .../templatehub/controller/ShareController.java    |    89 +
 .../templatehub/controller/StarController.java     |   113 +
 .../templatehub/controller/TagController.java      |    35 +
 .../templatehub/controller/TemplateController.java |   409 +
 .../controller/TemplateTagController.java          |    35 +
 .../templatehub/controller/TokenStorage.java       |    78 +
 .../templatehub/controller/UserController.java     |    93 +
 .../templatehub/controller/VersionController.java  |   113 +
 .../templatehub/exception/CommonError.java         |    35 +
 .../exception/GlobalExceptionHandler.java          |    57 +
 .../exception/HertzbeatTemplateHubException.java   |    31 +
 .../templatehub/exception/RestErrorResponse.java   |    32 +
 .../templatehub/model/DO/AuthResourceDO.java       |    71 +
 .../hertzbeat/templatehub/model/DO/AuthRoleDO.java |    64 +
 .../model/DO/AuthRoleResourceBindDO.java           |    55 +
 .../hertzbeat/templatehub/model/DO/AuthUserDO.java |    73 +
 .../templatehub/model/DO/AuthUserRoleBindDO.java   |    55 +
 .../hertzbeat/templatehub/model/DO/CategoryDO.java |    57 +
 .../hertzbeat/templatehub/model/DO/StarDO.java     |    53 +
 .../hertzbeat/templatehub/model/DO/TagDO.java      |    56 +
 .../hertzbeat/templatehub/model/DO/TemplateDO.java |    84 +
 .../templatehub/model/DO/TemplateTagDO.java        |    50 +
 .../hertzbeat/templatehub/model/DO/VersionDO.java  |    70 +
 .../hertzbeat/templatehub/model/VO/TemplateVO.java |    63 +
 .../templatehub/model/dao/AuthResourceDao.java     |    81 +
 .../templatehub/model/dao/AuthRoleDao.java         |    44 +
 .../model/dao/AuthRoleResourceBindDao.java         |    53 +
 .../templatehub/model/dao/AuthUserDao.java         |    50 +
 .../templatehub/model/dao/AuthUserRoleBindDao.java |    51 +
 .../templatehub/model/dao/CategoryDao.java         |    41 +
 .../hertzbeat/templatehub/model/dao/StarDao.java   |    42 +
 .../templatehub/model/dao/TemplateDao.java         |   146 +
 .../templatehub/model/dao/VersionDao.java          |    73 +
 .../hertzbeat/templatehub/model/dto/LoginDto.java  |    64 +
 .../hertzbeat/templatehub/model/dto/Message.java   |    97 +
 .../model/dto/RefreshTokenResponse.java            |    40 +
 .../hertzbeat/templatehub/model/dto/SignUpDto.java |    55 +
 .../templatehub/model/dto/TemplateDto.java         |    48 +
 .../hertzbeat/templatehub/model/dto/TokenDto.java  |    41 +
 .../templatehub/model/entity/Category.java         |    57 +
 .../hertzbeat/templatehub/model/entity/Star.java   |    56 +
 .../hertzbeat/templatehub/model/entity/Tag.java    |    56 +
 .../templatehub/model/entity/Template.java         |    84 +
 .../templatehub/model/entity/TemplateTag.java      |    50 +
 .../hertzbeat/templatehub/model/entity/User.java   |    57 +
 .../templatehub/model/entity/Version.java          |    69 +
 .../templatehub/service/AccountService.java        |    99 +
 .../templatehub/service/CategoryService.java       |    36 +
 .../templatehub/service/FileStorageService.java    |    30 +
 .../templatehub/service/ResourceService.java       |    86 +
 .../hertzbeat/templatehub/service/RoleService.java |   105 +
 .../hertzbeat/templatehub/service/StarService.java |    35 +
 .../hertzbeat/templatehub/service/TagService.java  |    22 +
 .../templatehub/service/TemplateService.java       |   106 +
 .../templatehub/service/TemplateTagService.java    |    22 +
 .../hertzbeat/templatehub/service/UserService.java |    22 +
 .../templatehub/service/VersionService.java        |    45 +
 .../service/impl/AccountServiceImpl.java           |   216 +
 .../service/impl/CategoryServiceImpl.java          |    97 +
 .../service/impl/DataConflictException.java        |    31 +
 .../service/impl/LocalFileStorageServiceImpl.java  |    80 +
 .../service/impl/MinIOFileStorageServiceImpl.java  |   176 +
 .../service/impl/ResourceServiceImpl.java          |   109 +
 .../templatehub/service/impl/RoleServiceImpl.java  |   149 +
 .../templatehub/service/impl/StarServiceImpl.java  |    86 +
 .../templatehub/service/impl/TagServiceImpl.java   |    28 +
 .../service/impl/TemplateServiceImpl.java          |   375 +
 .../service/impl/TemplateTagServiceImpl.java       |    28 +
 .../templatehub/service/impl/UserServiceImpl.java  |    28 +
 .../service/impl/VersionServiceImpl.java           |   172 +
 .../sureness/SurenessFilterExample.java            |   224 +
 .../processor/RefreshExpiredTokenException.java    |    31 +
 .../sureness/provider/DatabaseAccountProvider.java |    42 +
 .../provider/DatabasePathTreeProvider.java         |    55 +
 .../hertzbeat/templatehub/util/Base62Util.java     |    71 +
 .../hertzbeat/templatehub/util/Base64Util.java     |    42 +
 .../hertzbeat/templatehub/util/JsonUtil.java       |   122 +
 .../hertzbeat/templatehub/util/ResponseUtil.java   |    79 +
 .../src/main/resources/application.yml             |    65 +
 .../src/main/resources/sureness.yml                |    29 +
 .../HertzbeatTemplateDOHubApplicationTests.java    |    30 +
 .../HertzbeatTemplateHubApplicationTests.java      |    30 +
 .../templatehub/config/FileStorageConfigTest.java  |    34 +
 .../controller/CategoryControllerTest.java         |   160 +
 .../controller/CategoryDOControllerTest.java       |   160 +
 .../controller/ShareControllerTest.java            |   130 +
 .../templatehub/controller/StarControllerTest.java |   178 +
 .../controller/StarDOControllerTest.java           |   164 +
 .../controller/TemplateControllerTest.java         |   143 +
 .../controller/TemplateDOControllerTest.java       |   143 +
 .../controller/VersionControllerTest.java          |   174 +
 .../controller/VersionDOControllerTest.java        |   160 +
 .../exception/GlobalExceptionHandlerTest.java      |    82 +
 .../templatehub/model/dao/CategoryDODaoTest.java   |    60 +
 .../templatehub/model/dao/CategoryDaoTest.java     |    68 +
 .../templatehub/model/dao/StarDODaoTest.java       |    27 +
 .../templatehub/model/dao/StarDaoTest.java         |    29 +
 .../templatehub/model/dao/TemplateDODaoTest.java   |   151 +
 .../templatehub/model/dao/TemplateDaoTest.java     |   153 +
 .../templatehub/model/dao/VersionDODaoTest.java    |    59 +
 .../templatehub/model/dao/VersionDaoTest.java      |    61 +
 .../templatehub/service/CategoryDOServiceTest.java |   141 +
 .../templatehub/service/CategoryServiceTest.java   |   141 +
 .../templatehub/service/StarDOServiceTest.java     |   126 +
 .../templatehub/service/StarServiceTest.java       |   124 +
 .../templatehub/service/TemplateDOServiceTest.java |   204 +
 .../templatehub/service/TemplateServiceTest.java   |   204 +
 .../templatehub/service/VersionDOServiceTest.java  |   167 +
 .../templatehub/service/VersionServiceTest.java    |   229 +
 .../hertzbeat/templatehub/util/Base62UtilTest.java |    71 +
 .../hertzbeat/templatehub/util/Base64UtilTest.java |    50 +
 .../src/test/resources/test-data.sql               |    16 +
 .../store/history/AbstractHistoryDataStorage.java  |     1 +
 .../history/influxdb/InfluxdbDataStorage.java      |     4 +-
 .../history/tdengine/TdEngineDataStorage.java      |     2 +-
 .../vm/VictoriaMetricsClusterDataStorage.java      |    15 +-
 .../history/vm/VictoriaMetricsDataStorage.java     |    19 +-
 web-app/src/app/layout/basic/basic.component.ts    |    11 +-
 .../app/layout/basic/widgets/notify.component.ts   |    15 +-
 .../app/layout/basic/widgets/search.component.ts   |    41 +-
 web-app/src/app/pojo/Monitor.ts                    |     2 -
 web-app/src/app/pojo/StatusPageHistory.ts          |     2 +-
 .../alert-setting/alert-setting.component.less     |   116 +-
 .../alert/alert-setting/alert-setting.component.ts |    40 +-
 .../app/routes/bulletin/bulletin.component.html    |    49 +-
 .../src/app/routes/bulletin/bulletin.component.ts  |   200 +-
 .../monitor-detail/monitor-detail.component.html   |     6 +-
 .../monitor-detail/monitor-detail.component.ts     |     8 +-
 .../monitor-edit/monitor-edit.component.html       |     1 +
 .../monitor/monitor-edit/monitor-edit.component.ts |    18 +-
 .../monitor-form/monitor-form.component.html       |     6 +-
 .../monitor/monitor-form/monitor-form.component.ts |    11 +-
 .../monitor/monitor-new/monitor-new.component.html |     1 +
 .../monitor/monitor-new/monitor-new.component.ts   |     6 +-
 .../status-public/status-public.component.html     |     2 +-
 web-app/src/app/service/alert-define.service.ts    |     7 +-
 web-app/src/app/service/auth.service.ts            |     7 +-
 web-app/src/app/service/bulletin-define.service.ts |    36 +-
 .../monitor-select-menu.component.less             |    62 +-
 .../multi-func-input.component.less                |    48 +-
 .../tags-select/tags-select.component.less         |     8 +-
 .../tags-select/tags-select.component.ts           |     6 +-
 .../components/toolbar/toolbar.component.less      |    40 +-
 web-app/src/app/shared/constants.ts                |     2 +-
 web-app/src/assets/app-data.json                   |     6 -
 web-app/src/assets/i18n/en-US.json                 |    22 +-
 web-app/yarn.lock                                  | 24226 +++++++++----------
 816 files changed, 58797 insertions(+), 23458 deletions(-)

diff --cc 
collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/CollectServer.java
index 000000000,a17141bf6..6dc6c1901
mode 000000,100644..100644
--- 
a/collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/CollectServer.java
+++ 
b/collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/CollectServer.java
@@@ -1,0 -1,184 +1,195 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.hertzbeat.collector.dispatch.entrance;
+ 
+ import com.google.common.util.concurrent.ThreadFactoryBuilder;
+ import io.netty.channel.Channel;
+ import lombok.extern.slf4j.Slf4j;
+ import org.apache.hertzbeat.collector.dispatch.CollectorInfoProperties;
+ import org.apache.hertzbeat.collector.dispatch.DispatchProperties;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.internal.CollectJobService;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.CollectCyclicDataProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.CollectOneTimeDataProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.DeleteCyclicTaskProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.GoCloseProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.GoOfflineProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.GoOnlineProcessor;
+ import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.HeartbeatProcessor;
++import 
org.apache.hertzbeat.collector.dispatch.entrance.processor.ScriptRequestProcessor;
+ import org.apache.hertzbeat.collector.dispatch.timer.TimerDispatch;
+ import org.apache.hertzbeat.common.entity.dto.CollectorInfo;
+ import org.apache.hertzbeat.common.entity.message.ClusterMsg;
++import org.apache.hertzbeat.common.script.ScriptExecutor;
+ import org.apache.hertzbeat.common.support.CommonThreadPool;
+ import org.apache.hertzbeat.common.util.JsonUtil;
+ import org.apache.hertzbeat.remoting.RemotingClient;
+ import org.apache.hertzbeat.remoting.event.NettyEventListener;
+ import org.apache.hertzbeat.remoting.netty.NettyClientConfig;
+ import org.apache.hertzbeat.remoting.netty.NettyRemotingClient;
+ import org.springframework.boot.CommandLineRunner;
+ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+ import org.springframework.core.annotation.Order;
+ import org.springframework.stereotype.Component;
+ 
+ import java.util.concurrent.Executors;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * collect server
+  */
+ @Component
+ @Order
+ @ConditionalOnProperty(prefix = "collector.dispatch.entrance.netty",
+         name = "enabled", havingValue = "true")
+ @Slf4j
+ public class CollectServer implements CommandLineRunner {
+ 
+     private final CollectJobService collectJobService;
+ 
+     private final TimerDispatch timerDispatch;
+ 
+     private final CollectorInfoProperties infoProperties;
++
++    private final ScriptExecutor scriptExecutor;
+     
+     private RemotingClient remotingClient;
+ 
+     private ScheduledExecutorService scheduledExecutor;
+ 
+     public CollectServer(final CollectJobService collectJobService,
+                          final TimerDispatch timerDispatch,
+                          final DispatchProperties properties,
+                          final CommonThreadPool threadPool,
 -                         final CollectorInfoProperties infoProperties) {
++                         final CollectorInfoProperties infoProperties,
++                         ScriptExecutor scriptExecutor) {
+         if (properties == null || properties.getEntrance() == null || 
properties.getEntrance().getNetty() == null) {
+             log.error("init error, please config dispatch entrance netty 
props in application.yml");
+             throw new IllegalArgumentException("please config dispatch 
entrance netty props");
+         }
+         DispatchProperties.EntranceProperties.NettyProperties nettyProperties 
= properties.getEntrance().getNetty();
+         if (nettyProperties.getManagerHost() == null || 
nettyProperties.getManagerPort() == 0) {
+             throw new IllegalArgumentException("please config dispatch 
entrance netty master host and port");
+         }
+         this.collectJobService = collectJobService;
+         this.timerDispatch = timerDispatch;
+         this.collectJobService.setCollectServer(this);
+         this.infoProperties = infoProperties;
++        this.scriptExecutor = scriptExecutor;
+         this.init(properties, threadPool);
+     }
+ 
+     private void init(final DispatchProperties properties, final 
CommonThreadPool threadPool) {
+         NettyClientConfig nettyClientConfig = new NettyClientConfig();
+         DispatchProperties.EntranceProperties.NettyProperties nettyProperties 
= properties.getEntrance().getNetty();
+         nettyClientConfig.setServerHost(nettyProperties.getManagerHost());
+         nettyClientConfig.setServerPort(nettyProperties.getManagerPort());
+         this.remotingClient = new NettyRemotingClient(nettyClientConfig, new 
CollectNettyEventListener(), threadPool);
+ 
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.HEARTBEAT, new 
HeartbeatProcessor());
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.ISSUE_CYCLIC_TASK, 
new CollectCyclicDataProcessor(this));
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.DELETE_CYCLIC_TASK,
 new DeleteCyclicTaskProcessor(this));
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.ISSUE_ONE_TIME_TASK,
 new CollectOneTimeDataProcessor(this));
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.GO_OFFLINE, new 
GoOfflineProcessor());
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.GO_ONLINE, new 
GoOnlineProcessor());
+         
this.remotingClient.registerProcessor(ClusterMsg.MessageType.GO_CLOSE, new 
GoCloseProcessor(this));
++        
this.remotingClient.registerProcessor(ClusterMsg.MessageType.SCRIPT_PLUGIN, new 
ScriptRequestProcessor(this));
+     }
+ 
+     public void shutdown() {
+         this.scheduledExecutor.shutdownNow();
+ 
+         this.remotingClient.shutdown();
+     }
+ 
+     public CollectJobService getCollectJobService() {
+         return collectJobService;
+     }
+ 
++    public ScriptExecutor getScriptExecutor() {
++        return scriptExecutor;
++    }
++
+     public void sendMsg(final ClusterMsg.Message message) {
+         this.remotingClient.sendMsg(message);
+     }
+ 
+     @Override
+     public void run(String... args) throws Exception {
+         this.remotingClient.start();
+     }
+ 
+     /**
+      * CollectNettyEventListener
+      */
+     public class CollectNettyEventListener implements NettyEventListener {
+ 
+         @Override
+         public void onChannelActive(Channel channel) {
+             String identity = 
CollectServer.this.collectJobService.getCollectorIdentity();
+             String mode = 
CollectServer.this.collectJobService.getCollectorMode();
+             CollectorInfo collectorInfo = CollectorInfo.builder()
+                     .name(identity)
+                     .ip(infoProperties.getIp())
+                     .mode(mode)
+                     .version(infoProperties.getVersion())
+                     // todo more info
+                     .build();
+             timerDispatch.goOnline();
+             // send online message
+             ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
+                     .setIdentity(identity)
+                     .setType(ClusterMsg.MessageType.GO_ONLINE)
+                     .setMsg(JsonUtil.toJson(collectorInfo))
+                     .build();
+             CollectServer.this.sendMsg(message);
+ 
+             if (scheduledExecutor == null) {
+                 ThreadFactory threadFactory = new ThreadFactoryBuilder()
+                         .setUncaughtExceptionHandler((thread, throwable) -> {
+                             log.error("HeartBeat Scheduler has 
uncaughtException.");
+                             log.error(throwable.getMessage(), throwable);
+                         })
+                         .setDaemon(true)
+                         .setNameFormat("heartbeat-worker-%d")
+                         .build();
+                 scheduledExecutor = 
Executors.newSingleThreadScheduledExecutor(threadFactory);
+                 // schedule send heartbeat message
+                 scheduledExecutor.scheduleAtFixedRate(() -> {
+                     try {
+                         ClusterMsg.Message heartbeat = 
ClusterMsg.Message.newBuilder()
+                                 .setIdentity(identity)
+                                 .setDirection(ClusterMsg.Direction.REQUEST)
+                                 .setType(ClusterMsg.MessageType.HEARTBEAT)
+                                 .build();
+                         CollectServer.this.sendMsg(heartbeat);
+                         log.info("collector send cluster server heartbeat, 
time: {}.", System.currentTimeMillis());   
+                     } catch (Exception e) {
+                         log.error("schedule send heartbeat to server 
error.{}", e.getMessage());
+                     }
+                 }, 5, 5, TimeUnit.SECONDS);
+             }
+         }
+ 
+         @Override
+         public void onChannelIdle(Channel channel) {
+             log.info("handle idle event triggered. collector is going 
offline.");
+         }
+     }
+ }
diff --cc 
collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/processor/ScriptRequestProcessor.java
index 1cf4a0a59,000000000..1cf4a0a59
mode 100644,000000..100644
--- 
a/collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/processor/ScriptRequestProcessor.java
+++ 
b/collector/collector-common/src/main/java/org/apache/hertzbeat/collector/dispatch/entrance/processor/ScriptRequestProcessor.java
diff --cc collector/pom.xml
index 7ec17f3c8,039b37b67..2aab2fbd1
--- a/collector/pom.xml
+++ b/collector/pom.xml
@@@ -52,174 -83,7 +83,56 @@@
              <groupId>org.apache.hertzbeat</groupId>
              <artifactId>hertzbeat-common</artifactId>
          </dependency>
-         <!-- remoting -->
-         <dependency>
-             <groupId>org.apache.hertzbeat</groupId>
-             <artifactId>hertzbeat-remoting</artifactId>
-         </dependency>
-         <!-- run sql script-->
-         <dependency>
-             <groupId>org.springframework</groupId>
-             <artifactId>spring-jdbc</artifactId>
-         </dependency>
-         <!-- kafka -->
-         <dependency>
-             <groupId>org.apache.kafka</groupId>
-             <artifactId>kafka-clients</artifactId>
-         </dependency>
-         <!-- http -->
-         <dependency>
-             <groupId>org.apache.httpcomponents</groupId>
-             <artifactId>httpclient</artifactId>
-         </dependency>
-         <!--network-->
-         <dependency>
-             <groupId>commons-net</groupId>
-             <artifactId>commons-net</artifactId>
-             <version>3.8.0</version>
-         </dependency>
-         <!--json path parser-->
-         <dependency>
-             <groupId>com.jayway.jsonpath</groupId>
-             <artifactId>json-path</artifactId>
-         </dependency>
-         <!-- lru hashmap -->
-         <dependency>
-             <groupId>com.googlecode.concurrentlinkedhashmap</groupId>
-             <artifactId>concurrentlinkedhashmap-lru</artifactId>
-             <version>${concurrentlinkedhashmap-lru.version}</version>
-         </dependency>
-         <dependency>
-             <groupId>com.google.guava</groupId>
-             <artifactId>guava</artifactId>
-         </dependency>
-         <dependency>
-             <groupId>com.google.code.gson</groupId>
-             <artifactId>gson</artifactId>
-         </dependency>
-         <!--collect-->
-         <!-- mysql -->
-         <dependency>
-             <groupId>mysql</groupId>
-             <artifactId>mysql-connector-java</artifactId>
-             <scope>provided</scope>
-         </dependency>
-         <!-- clickhouse -->
-         <dependency>
-             <groupId>com.clickhouse</groupId>
-             <artifactId>clickhouse-jdbc</artifactId>
-         </dependency>
- 
-         <!-- dm -->
-         <dependency>
-             <groupId>com.dameng</groupId>
-             <artifactId>DmJdbcDriver18</artifactId>
-         </dependency>
-         <!-- postgresql -->
-         <dependency>
-             <groupId>org.postgresql</groupId>
-             <artifactId>postgresql</artifactId>
-         </dependency>
-         <!-- linux ssh -->
-         <dependency>
-             <groupId>org.apache.sshd</groupId>
-             <artifactId>sshd-core</artifactId>
-             <version>${sshd-core.version}</version>
-         </dependency>
-         <dependency>
-             <groupId>net.i2p.crypto</groupId>
-             <artifactId>eddsa</artifactId>
-             <version>${eddsa.version}</version>
-         </dependency>
-         <!-- sql server -->
-         <dependency>
-             <groupId>com.microsoft.sqlserver</groupId>
-             <artifactId>mssql-jdbc</artifactId>
-         </dependency>
-         <!-- oracle -->
-         <dependency>
-             <groupId>com.oracle.database.jdbc</groupId>
-             <artifactId>ojdbc8</artifactId>
-             <scope>provided</scope>
-         </dependency>
-         <dependency>
-             <groupId>com.oracle.database.nls</groupId>
-             <artifactId>orai18n</artifactId>
-             <scope>provided</scope>
-         </dependency>
-         <!--redis-->
-         <dependency>
-             <groupId>io.lettuce</groupId>
-             <artifactId>lettuce-core</artifactId>
-         </dependency>
-         <!-- mongodb -->
-         <dependency>
-             <groupId>org.mongodb</groupId>
-             <artifactId>mongodb-driver-sync</artifactId>
-         </dependency>
-         <!--snmp-->
-         <dependency>
-             <groupId>org.snmp4j</groupId>
-             <artifactId>snmp4j</artifactId>
-             <version>${snmp4j.version}</version>
-         </dependency>
- 
-         <!-- rocketmq -->
-         <dependency>
-             <groupId>org.apache.rocketmq</groupId>
-             <artifactId>rocketmq-tools</artifactId>
-             <version>${rocketmq-tools.version}</version>
-         </dependency>
  
 +        <!--dns-->
 +        <dependency>
 +            <groupId>dnsjava</groupId>
 +            <artifactId>dnsjava</artifactId>
 +            <version>${dnsjava.version}</version>
 +        </dependency>
 +
 +        <!-- consul -->
 +        <dependency>
 +            <groupId>com.ecwid.consul</groupId>
 +            <artifactId>consul-api</artifactId>
 +            <version>${consul-api.version}</version>
 +        </dependency>
 +        <!-- nacos -->
 +        <dependency>
 +            <groupId>com.alibaba.nacos</groupId>
 +            <artifactId>nacos-client</artifactId>
 +            <version>${nacos-client.version}</version>
 +        </dependency>
 +        <!-- nebula graph client -->
 +        <dependency>
 +            <groupId>com.vesoft</groupId>
 +            <artifactId>client</artifactId>
 +            <version>${vesoft-client.version}</version>
 +            <exclusions>
 +                <exclusion>
 +                    <groupId>javax.servlet</groupId>
 +                    <artifactId>javax.servlet-api</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>com.alibaba</groupId>
 +                    <artifactId>fastjson</artifactId>
 +                </exclusion>
 +            </exclusions>
 +        </dependency>
 +        <!-- mqtt -->
 +        <dependency>
 +            <groupId>com.hivemq</groupId>
 +            <artifactId>hivemq-mqtt-client</artifactId>
 +            <version>1.3.3</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.graalvm.js</groupId>
 +            <artifactId>js</artifactId>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.graalvm.js</groupId>
 +            <artifactId>js-scriptengine</artifactId>
 +        </dependency>
      </dependencies>
  
      <build>
diff --cc common/pom.xml
index e0116da7d,bfa3faa7c..8e28c9153
--- a/common/pom.xml
+++ b/common/pom.xml
@@@ -129,14 -129,18 +129,28 @@@
              <version>${jutf7.version}</version>
          </dependency>
  
+         <dependency>
+             <groupId>org.apache.poi</groupId>
+             <artifactId>poi</artifactId>
+             <version>${poi.version}</version>
+             <scope>compile</scope>
+         </dependency>
+         <dependency>
+             <groupId>org.apache.poi</groupId>
+             <artifactId>poi-ooxml</artifactId>
+             <version>${poi.version}</version>
+             <scope>compile</scope>
+         </dependency>
++
 +        <dependency>
 +            <groupId>org.graalvm.js</groupId>
 +            <artifactId>js</artifactId>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.graalvm.js</groupId>
 +            <artifactId>js-scriptengine</artifactId>
 +        </dependency>
      </dependencies>
+ 
  </project>
diff --cc pom.xml
index f8afb6825,6c0cc4b56..6a172f631
--- a/pom.xml
+++ b/pom.xml
@@@ -161,10 -161,8 +161,11 @@@
          
<spring-boot-starter-sureness.version>1.1.0</spring-boot-starter-sureness.version>
          <huawei.sdk.version>3.1.37</huawei.sdk.version>
          <huawei.obs.version>3.23.5</huawei.obs.version>
+         <commons-net>3.8.0</commons-net>
 -        
 +
 +        <js.version>23.0.5</js.version>
-         
-         
++
++
          <iotdb-session.version>0.13.3</iotdb-session.version>
          <influxdb.version>2.23</influxdb.version>
          
<spring-cloud-starter-openfeign.version>3.0.5</spring-cloud-starter-openfeign.version>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to