165 Commits

Author SHA1 Message Date
吴世元 7bc723f1c7 [ISSUE #15710] Declare the LIKE escape clause for dialects without a default escape character (#15711)
* [ISSUE #15710] Declare the LIKE escape clause for dialects without a default escape character

Fuzzy search parameters escape the _ wildcard with a backslash, which only
works on a database treating the backslash as the default LIKE escape
character. Derby and Oracle have no such default, so the predicate matches
the backslash literally and silently returns no row.

Report the clause through the new Mapper#getLikeEscapeClause() dialect hook,
override it for Derby and Oracle, and append it to every LIKE bound to such a
parameter, in both the shared mapper defaults and the Oracle overrides. MySQL
and PostgreSQL keep an empty clause, so their SQL is unchanged.

Assisted-by: Claude Code
Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>

* [ISSUE #15710] Escape the LIKE escape character in fuzzy search arguments

Declaring ESCAPE '\' on the LIKE predicates also constrains the bound
parameter: generateLikeArgument escaped the _ wildcard but left a literal
backslash in the search value untouched, so a value such as C:\path formed
the invalid escape sequence \p. Oracle rejects it with ORA-01424 and Derby
with SQLSTATE 22025, and a value such as a\_b silently kept _ as a wildcard.

Escape the escape character itself before escaping _, keeping the Config and
AI implementations consistent, and document the required order in the
datasource dialect spec.

Add a Derby test that executes the SQL generated by the mapper with the bound
parameter, since asserting the SQL text alone cannot detect an invalid escape
sequence in the argument.

Assisted-by: Claude Code
Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>

---------

Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>
2026-08-17 10:36:27 +08:00
吴世元 9b989acdf1 [ISSUE #15701] Fix history config next-record query for Derby and gray configs (#15702)
HistoryConfigInfoMapper#getNextHistoryInfo backs the config history
detail/diff lookup for UPDATE records. It had two defects.

The interface default SQL ends with 'ORDER BY nid LIMIT 1'. LIMIT is
MySQL/PostgreSQL syntax, and HistoryConfigInfoMapperByDerby overrode the
other row-limiting queries but not this one, so Derby inherited it and
the query failed with a syntax error. Derby is the standalone default
datasource. Add the missing Derby override using FETCH FIRST 1 ROWS
ONLY, matching the existing Oracle override.

The gray filter read grayName through getContextParameter, while both
repository implementations publish it with putWhereParameter and
MapperContext keeps those maps separate. 'AND gray_name = ?' was
therefore never emitted and gray history records of one config were not
separated by gray version. Read grayName from the where parameters and
derive both the predicate and its bound parameter from a single guard,
which also removes the isBlank/isEmpty mismatch that could emit a
placeholder without its predicate.

The existing default-mapper test only passed because it wrote grayName
into both maps; it now uses the where parameters alone, as production
does.

Assisted-by: Claude Code

Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>
2026-08-13 16:13:52 +08:00
杨翊 SionYang dff2c7cd8c [ISSUE #14804] Add Agent Admin API and maintainer SDK (#15598)
* [ISSUE #14804] Add Agent Admin API and maintainer SDK

Add protocol-neutral Agent Admin endpoints and maintainer SDK support on the unified AI resource lifecycle. Align first-draft creation, namespace binding, metadata updates, visibility filters, specs, and integration-test coverage.

Assisted-by: Claude Code

* [ISSUE #14804] Fix default Agent owner

Assisted-by: Claude Code

* [ISSUE #14804] Fix agent admin OpenAPI error assertions

Assisted-by: Claude Code
2026-07-29 11:26:33 +08:00
杨翊 SionYang 1ecc39c45c [ISSUE #15475] Align plugin provider and configuration contracts (#15593)
Honor provider order before first-wins registration, align built-in plugin routers with the same conflict policy, and remove datasource fallback to an unrelated dialect.

Make standard configuration keys authoritative by presence and enable AI resource import unless explicitly disabled. Update bilingual plugin specs and tests accordingly.

Assisted-by: Claude Code
2026-07-28 17:47:39 +08:00
杨翊 SionYang bd33453a99 [ISSUE #15475] Make plugin discovery conflicts deterministic (#15592)
* Remove reflective EnvUtil access from visibility plugin

Assisted-by: Claude Code

* Use first-wins plugin registration and definition normalization

Assisted-by: Claude Code
2026-07-28 12:07:09 +08:00
杨翊 SionYang a66d928bc6 Unify plugin configuration SPI contracts (#15555)
Assisted-by: Claude Code
2026-07-22 13:38:59 +08:00
吴世元 b1724c2871 [ISSUE #15468] Route duplicate-key classification through the datasource dialect SPI (#15509)
Make DatabaseDialect#isDuplicateKeyException(Throwable) the single entry point for
classifying duplicate unique-key conflicts, per the direction agreed in the issue.
The interface default walks the throwable cause chain and recognizes Spring's
DuplicateKeyException, matched by class name so the datasource plugin modules keep
their Spring-free dependency footprint. This reproduces the former database-agnostic
classification as the safe baseline and deliberately does not treat a raw vendor
SQLState such as 23505 as a duplicate on its own, preserving the #15465 rethrow
contract.

ExternalConfigInfoPersistServiceImpl now delegates duplicate-key judgement to the
active dialect, and only falls back to the inline Spring DuplicateKeyException check
when no dialect can be resolved (for example before datasource plugins are loaded).
Vendor dialects can override the SPI default to additionally inspect the original
driver exception (SQLState or vendor error code) via DatabaseDialect.super.

Update the datasource dialect plugin spec (en + zh-cn) and add regression tests: the
plugin-base default rejects non-Spring exceptions and raw SQLState, and the config
module verifies the default recognizes a wrapped Spring DuplicateKeyException.

Related issue: #15468
Related PRs: #15465, #15272, #15278

Assisted-by: Claude Code

Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>
2026-07-15 15:27:51 +08:00
杨翊 SionYang 007fe68cb2 Fix config namespace isolation for ID-based operations (#15498)
* Fix config namespace isolation for delete and export

Scope config export-by-ids and batch delete-by-ids to the requested namespace across admin, console, and maintainer SDK paths.

Update specs and IT scenario coverage for namespace-scoped storage ID operations.

Assisted-by: Claude Code

* Document config storage ID selector deprecation

Assisted-by: Claude Code

* Fix config clone namespace isolation

Ensure config clone resolves source IDs within the requested source namespace before writing to the target namespace. Update console and maintainer SDK paths plus API/SDK test specs.

Assisted-by: Claude Code

* Refine config clone service coverage

Extract shared clone logic into ConfigCloneService and move clone behavior coverage from controller tests into service-level tests.

Assisted-by: Claude Code

* Refine config clone source authorization

Add source namespace READ authorization for config clone paths and keep auth identity/resource context available for diagnostics.

Assisted-by: Claude Code

* Refresh legacy console clone namespace assets

Assisted-by: Claude Code

* Fix datasource export namespace isolation tests

* Cover datasource export namespace isolation tests

* Fix auth admin filter test header stubbing

* Stabilize clone source auth checker tests

* Apply spotless to clone auth checker
2026-07-13 15:31:00 +08:00
杨翊 SionYang 1f9f6ccc8e Remove confirmed unused Java code (#15358)
* Remove confirmed unused Java code

Remove validated unused helpers, constants, classes, and matching dedicated tests across Java modules.

Deprecate currently unused datasource mapper methods so downstream plugin usage can be confirmed before removal.

Validation:

- mvn spotless:check

- mvn -B clean compile apache-rat:check checkstyle:check spotbugs:check spotless:check -DskipTests

- mvn -B '-Prelease-nacos,!dev' clean install -Drat.skip=true -Dspotbugs.skip=true -Dcheckstyle.skip=true -DskipTests=false

- mvn -B clean install -Prelease-nacos -DskipTests=true

- mvn -B clean verify -Pintegration-test

- mvn -B -pl test/java-sdk-test clean verify -Pjava-sdk-integration-test -DskipTests=false

- mvn -B -pl test/maintainer-sdk-test clean verify -Pmaintainer-sdk-integration-test -DskipTests=false

Assisted-by: Codex

* Fix flaky unit test setup

Reuse the same version 0.2.0 tar.gz fixture bytes for digest validation and HTTP response payloads, and initialize EnvUtil in GlobalExecutorTest when the test runs without suite-level environment setup.

Assisted-by: Codex

* Fix config test isolation

Assisted-by: Claude Code

* Fix flaky failover reactor test

Assisted-by: Claude Code
2026-06-16 00:12:23 +08:00
杨翊 SionYang 386f98f740 [ISSUE #15322] Remove config migration persistence layer (#15329)
Remove legacy config namespace migration persistence services, beta/tag table mappers, datasource SPI registrations, and old fresh-install test schema definitions.

Assisted-by: Claude Code
2026-06-09 09:42:26 +08:00
杨翊 SionYang 0b932e8367 Improve plugin module unit test coverage (#15219)
* Improve plugin module unit test coverage

Assisted-by: Claude Code

* Improve plugin SPI coverage

Assisted-by: Claude Code
2026-05-22 13:57:41 +08:00
杨翊 SionYang f7d86cb901 test: improve plugin module unit test coverage (#15209)
* test: improve plugin module coverage

* test: make tps metrics test timezone independent
2026-05-21 20:39:26 +08:00
cxhello f8237f314f [ISSUE #14815] build(style): apply Spotless formatting to plugin module (#15106)
Signed-off-by: cxhello <caixiaohuichn@gmail.com>
2026-05-09 17:04:55 +08:00
Guimu 338e46f00f fix(config): add missing ORDER BY to remaining MySQL pagination queries (#14746)
Several pagination methods in ConfigInfoMapperByMySql and
ConfigTagsRelationMapperByMySql use LIMIT without ORDER BY, causing
non-deterministic results across pages. This adds ORDER BY before
LIMIT to all affected methods, consistent with other paginated methods
in the same classes. Also adds orderBy() method to WhereBuilder.
2026-03-31 10:07:04 +08:00
KomachiSion e77f987774 Merge remote-tracking branch 'refs/remotes/upstream/develop' into develop-skill-pipeline-sync-develop
# Conflicts:
#	ai/src/main/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImpl.java
#	ai/src/test/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImplTest.java
#	plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/constants/TableConstant.java
2026-03-26 14:06:24 +08:00
杨翊 SionYang 5ae2a0eca4 refactor(plugin): Refactor and replace data-filter with visibility plugin (#14723)
* refactor(plugin): Rename and refactor data-filter plugin to visibility plugin.

* refactor(plugin): use new visibility plugin replace old data-filter plugin.

* refactor(skills): unify skill visibility checks and improve permission.

* refactor(auth): replace DefaultAiVisibilityService with plugin-based implementation.

* fix(plugin): temporarily return true for exclusive plugin type check.
2026-03-25 16:07:54 +08:00
Sunrisea 1b61ebbc7e feat(ai): add skill download count tracking (#14684)
- Add download_count column to ai_resource and ai_resource_version tables (MySQL/Derby/Oracle/PostgreSQL)
- Add SkillDownloadEvent and SkillDownloadCountManager for async event-driven counting
- Accumulate counts in memory with ConcurrentHashMap+AtomicLong, flush to DB every 10s
- Use atomic SQL (download_count = download_count + N) for cluster safety
- Publish events in downloadSkillVersion (admin path) and querySkill (client path)
- Expose downloadCount in admin detail/list API response
- Support orderBy=download_count in skill list query
- Fix AiGrpcResourceParserTest: remove deleted QuerySkillRequest references
- Fix AgentSpecUtilsPropertyTest: Java 8 compatibility (String.isBlank -> trim().isEmpty())
- Fix all SQL SELECT statements to include download_count column for RowMapper consistency
2026-03-22 10:10:55 +08:00
shiyiyue1102 75bd57ccaf remove aggr (#14675)
Change-Id: I46faa59a98137f3a823eaf91f905356ad5c3d263
2026-03-20 17:07:01 +08:00
sai ede5620360 feat(ai): add AI plugin SPIs, resource persistence, and skill lifecycle admin/ops APIs (#14626)
* feat(ai): add AI plugin SPI for publish pipeline and resource storage

* feature(ai): implement ai resorce storage

* feature(ai): impl ai resource meta and version persistence

* feat(ai): add skill lifecycle admin APIs

* refactor(ai/skills): remove legacy skill register/update apis

* feat(ai): add skill lifecycle functions for skill operation service

* feat(ai): add skill lifecycle functions for skill operation service

* feat(ai): support embedded storage for ai resource persistence

Add embedded Derby implementations for ai_resource and ai_resource_version persistence and gate external JDBC implementations by storage mode. Also add MySQL DDL for ai_resource tables in distribution schema.

Made-with: Cursor
2026-03-18 15:30:13 +08:00
shiyiyue1102 69997eef7b Merge branch 'develop' into develop-skill-registry-with-copolit 2026-03-04 20:20:02 +08:00
Ken c1bede492c [ISSUE #14489] Align PostgreSQL trusted function enum and enrich tag queries (#14504)
* refactor: update references to TrustedPostgresqlFunctionEnum and deprecate old enum

* feat: enhance config info and tags relation mappers with md5, type, c_desc fields and optimize tag filtering for PostgreSQL

* fix: align pg-schema.sql with MySQL schema definition

* test: add unit tests for PostgreSQL mappers and TrustedPostgresqlFunctionEnum
2026-03-02 16:48:01 +08:00
FrioSea 548585aff8 [ISSUE #14111]Implement Oracle database supports (#14476)
* Oracle database plugin supports

* Oracle database plugin supports

* Mark ojdbc dependency as optional and provided in case of license conflict

* 1.change dependency and schema file location
2026-03-02 10:40:16 +08:00
Ken da6dc341bc fix: add missing 'type' and 'md5' fields to mapper (#14485)
- Add 'type' and 'md5' to findConfigInfoLike4PageFetchRows in ConfigInfoMapper.
- Add 'type' and 'md5' to findConfigInfoLike4PageFetchRows in ConfigTagsRelationMapper.

Close #14484
2026-02-25 17:22:36 +08:00
aMetric 666c5cbd73 Fix spelling errors in comments (#14477) 2026-02-25 10:15:39 +08:00
Sunrisea 0d5c08cc74 feat(ai): 支持配置管理中的标签功能 (#14453)
* feat(ai): 支持配置管理中的标签功能

- 在数据库配置信息更新逻辑中实现动态SQL构建,仅当描述字段不为null时更新c_desc字段
- 重构嵌入式和外部数据源的配置信息持久化服务,支持条件性更新描述字段
- 新增promptTags字段到AI提示词相关的基础信息和详情模型中
- 扩展AI提示词发布和元数据更新接口,支持标签参数传递
- 实现在配置信息持久化过程中将标签信息存储到数据库
- 添加配置变更追踪和事件发布功能,支持元数据更新的通知机制

* refactor(config): 调整配置信息持久化服务中的映射器初始化位置

- 将 ConfigInfoMapper 的初始化从方法开始处移动到实际使用前的位置
- 确保映射器在执行数据库操作之前正确初始化
- 提高代码可读性和逻辑流程的清晰度
- 优化外部配置信息持久化服务的代码结构
- 统一嵌入式和外部配置信息持久化服务的映射器初始化方式
2026-02-06 14:49:18 +08:00
Nightoray e340450b20 fix(#14402) fix derby and mysql like with escape (#14442) 2026-02-06 14:10:20 +08:00
Eric Wang bb26607ffb [ISSUE #14077] Implement SPI-based plugin discovery and management API (#14082)
* feat(plugin): implement SPI-based plugin discovery and management API

Refactor plugin discovery to use SPI pattern and add REST API for plugin control:

SPI-based Discovery:
 - Replace hard-coded plugin discovery with PluginProvider SPI pattern
 - Add comprehensive tests for UnifiedPluginManager and PluginStatePersistence
 - Enable automatic plugin registration for better extensibility

Management API:
 - Add PluginControllerV3 with 5 endpoints (list, detail, status, config, availability)
 - Create PluginInfoVO and PluginDetailVO for API responses
 - Create PluginStatusForm and PluginConfigForm for API requests
 - Integrate plugin state checking into all plugin managers
 - Add getAllPlugins() methods to expose plugin registries
 - Fix core module dependency name for custom-environment-plugin

* fix: UT failed

* fix: UT failed

* refactor(plugin): extract PluginStatePersistence to interface-based design

* fix(plugin): remove auth plugin from critical list to allow custom auth

* feat(plugin): implement config-driven default status for exclusive plugins
2026-01-09 10:41:08 +08:00
Eric Wang 7d48d1605b [ISSUE #14048] Refactor datasource plugins structure and enhance PostgreSQL capabilities (#14056)
* feat(plugin): centralize datasource plugin management

* feat(plugin): Migrate datasource dialect and enum implementations to plugin-default-impl
 - Migrate DatabaseDialect implementations (5 files) using git mv
 - Migrate Enum classes (5 files) using git mv
 - Migrate related tests (19 files) using git mv
 - Update DatabaseDialectManager to use SPI-loaded dialects
 - Update SPI service file paths
 - Update import statements in mapper implementations
 - Preserve git history for all migrated files

* fix: Fix missing SPI registration and test compilation issues

* fix(console): decouple console module from nacos-default-auth-plugin

* feat(datasource): add PostgreSQL schema and dependency integration

- Add PostgreSQL schema file `pg-schema.sql` with initial table structures and constraints.
- Include PostgreSQL JDBC dependency in project and module `pom.xml` files.

* fix(test): resolve core-test compilation failure after auth plugin migration

* fix(test): mock MapperManager in NamespacePersistService tests

* fix(test): add test scope dependency

* feat(datasource): implement PostgreSQL datasource mappers and schema

1. Schema Support:
   - Update PostgreSQL table schema in pg-schema.sql.

2. Mapper Implementations:
   - Implement GroupCapacityMapperByPostgresql and TenantCapacityMapperByPostgresql.
   - Implement ConfigTagsRelationMapperByPostgresql with fuzzy search support.
   - Add ConfigInfoGrayMapperByPostgresql and ConfigMigrateMapperByPostgresql.
   - Register new mappers in META-INF/services SPI file.
2025-12-29 11:12:54 +08:00
WangzJi 5bf23dae5f test: fix UT failed 2025-12-19 11:35:52 +08:00
WangzJi baa76a2137 style(datasource): checkstyle 2025-12-18 19:42:06 +08:00
WangzJi c1fda1ef12 Restore ConfigInfoAggrMapper and ConfigInfoAggrMapperByMySql
- Restore ConfigInfoAggrMapperByMySql.java from git history
- Restore ConfigInfoAggrMapper.java from git history
- These files are required dependencies for nacos-plugin BaseConfigInfoAggrMapper but were previously deleted from nacos core
2025-12-18 11:02:50 +08:00
WangzJi bec655dad8 feature(datasource): Implement unified DatabaseDialect architecture and complete PostgreSQL migration
1. Implement `MySqlDatabaseDialect` and `DerbyDatabaseDialect` to unify pagination logic across datasources.
2. Register `DatabaseDialect` SPI for MySQL, Derby, and PostgreSQL.
3. Register PostgreSQL Mappers in `Mapper` SPI.
4. Add `DatabaseTypeConstant.DERBY` and `TrustedDerbyFunctionEnum` to support Derby dialect.
5. Finalize integration of PostgreSQL plugin (migrated from nacos-plugin).
2025-12-17 17:51:44 +03:00
WangzJi 9c2058a9f1 Merge remote-tracking branch 'plugin-spi-temp/develop' into feature/unified-datasource-dialect 2025-12-17 17:46:22 +03:00
WangzJi 618469bf06 feat(datasource): merge plugin base implementation with history 2025-12-17 17:15:51 +03:00
WangzJi bcb741d122 feat(datasource): merge PostgreSQL dialect from nacos-plugin with history 2025-12-17 17:09:44 +03:00
henglianghu e3f4a78d06 feat: add yashan datasource plugin implementation (#88)
* feat: add yashan datasource plugin implementation

* fix: Rename the database

* fix: Rename the database2
2025-12-15 14:32:18 +08:00
QingYuan 3007d6f8aa fix sql error (no effect due to no use) 2025-12-11 18:03:11 +08:00
Sunrisea ce3b2aceb2 feat(config):List config api support return configTags and desc (#13963)
* List Config API Support return config tags and config description

Change-Id: Icabfaec759cdd2cb56b7cd2400e416c142210de6

* Fix test

Change-Id: I9fee0b929ec8d189ac01303695c460640e0dfa1a

* update sql

Change-Id: I941c5cfc1d4b73070049543d464c33bcab5fb011

* update sql

Change-Id: Icd3d6585d49614876c182dc0940a3ce26756f2d7
2025-11-25 17:00:54 +08:00
靳帅 99af351711 优化plugin/datasource模块下AbstractMapper类的insert、update方法。使得方法的逻辑更加清晰,提升程序性能 (#13493)
* feat(优化抽象类AbstractMapper) 将for循环拼接的SQL语句改为Lambda表达式拼接,使得代码简洁清晰,并添加相关测试用例

* [ISSUE #12914] 优化抽象类AbstractMapper,将for循环拼接的SQL语句改为Lambda表达式拼接,使得代码简洁清晰,并添加相关测试用例

* [ISSUE #12911] resolve code conflict

* [ISSUE #13483] 优化抽象类AbstractMapper,保持API和预期行为不变。对该类的insert、update方法进行重构,使得逻辑更清晰,避免嵌套循环和冗余判断条件

* [ISSUE #13483] 将硬编码的分隔符'@'替换为常量定义,提升代码可维护性。同时优化select方法的列字段lambda拼接方式

* [ISSUE #13483] 去除未引用的import
2025-06-16 15:45:50 +08:00
Sunrisea d318838d53 [ISSUE#13501] Fix Namespace Migrate Config Sync Bug (#13502)
* Fix Namespace Migrate Config Sync Bug

* Remove debug print

* Fix sql bug

* Fix PWD

* Fix Test bug
2025-06-13 11:01:22 +08:00
caoyanan666 fb500d7e4e fix pg not support function now(integer) (#46) 2025-06-10 19:36:30 +08:00
muzhi9018 2245bcf2ae fix(Database Dialect): Fix the bug that different databases get the current time function. (#63)
Override getFunction method. Implement a function to get the current time dynamically from different databases

Closes https://github.com/alibaba/nacos/issues/12786
2025-06-10 19:35:11 +08:00
muzhi9018 9b08ea1173 fix(Database Dialect): Fix the bug that different databases get the current time function. (#63)
Override getFunction method. Implement a function to get the current time dynamically from different databases

Closes https://github.com/alibaba/nacos/issues/12786
2025-06-10 19:35:11 +08:00
lz 5f58466e99 新增nacos-kingbase插件 (#55)
升级nacos版本2.3.0-SNAPSHOT ==> 2.4.2

Co-authored-by: 杨翊 SionYang <xiweng.yy@alibaba-inc.com>
2025-06-10 19:34:28 +08:00
lz bd72024dcb 新增nacos-kingbase插件 (#55)
升级nacos版本2.3.0-SNAPSHOT ==> 2.4.2

Co-authored-by: 杨翊 SionYang <xiweng.yy@alibaba-inc.com>
2025-06-10 19:34:28 +08:00
SweetWuXiaoMei 45ed61a33f feat(datasource): 添加 OpenGauss 数据库方言和映射 数据源支持 (#58)
- 实现兼容OpenGauss功能,整理Mapper结果,不在继承Mysql
- 添加 GaussDB 函数枚举类
- 创建 OpenGauss 兼容 MySQL 的数据库模式
- 在数据库类型常量中添加 GaussDB
2025-06-10 19:32:11 +08:00
杨翊 SionYang c49d5bcd60 For #13377, merge mcp registry and mcp api changed to develop. (#13398)
* Feat support mcp registry api (#13376)

* Support tag fuzzy search  (#13387)

* support tag fuzzy search

* support tag fuzzy search

* Merge pull request #13391 from luoxiner/support-mcp-multi-version

Feat Support Mcp Registry

* Add copyright for mcp-adapter pom.

* Support version in ai maintainer sdk and fix some errors when build (#13401)

* add version for ai maintainer sdk and support display mcp server config

* fix pmd errors

* fix empty endpoint

* remote publish api

* fix tag fuzzy search sql unit test (#13402)

* Fix unit test.

---------

Co-authored-by: Xin Luo <65529035+luoxiner@users.noreply.github.com>
Co-authored-by: Sunrisea <49605583+Sunrisea@users.noreply.github.com>
Co-authored-by: luoxin.luo <luoxin.luo@alibaba-inc.com>
2025-05-21 15:27:33 +08:00
杨翊 SionYang b28e98f7a7 Fix unit test. (#13289) 2025-04-23 14:11:26 +08:00
shiyiyue1102 c57f2ac439 add md5 to list config 2025-04-22 14:37:58 +08:00
shiyiyue1102 3b312929dc add md5 to list config 2025-04-22 14:20:31 +08:00