alibaba/nacos
 Watch   
 Star   
 Fork   
10 days ago
nacos

3.3.0-RC

Nacos 3.3.0-RC is a release candidate for the Nacos 3.3 feature iteration. It builds on 3.3.0-BETA with expanded AI Registry capabilities, DNS service discovery, and further security and compatibility improvements.

This release focuses on:

  • Protocol-neutral Agent management and RAD discovery, including transport negotiation and Watch/Push.
  • Shared AI resource search and unified MCP lifecycle management.
  • DNS-based service discovery and Config SDK improvements.
  • Authentication enabled by default, migration safeguards, and runtime stability.

The main feature updates include:

  • Agent registration, endpoint publication, discovery, Java SDKs, and Console management, with a migration path for historical A2A data.
  • Search and discovery across Agent, AgentSpec, Skill, Prompt, and MCP resources, including shared indexes and artifact retrieval.
  • MCP draft, review, publish, online/offline, and visibility management while retaining existing serving contracts.
  • Optional DNS A-record queries over UDP and TCP.

The release also retains BETA's dynamic plugin management, distributed locks, Jackson 2/3 support, and Spring Boot 4 compatibility. It includes further fixes across Config, Naming, Console, clients, AI storage, and authorization.

These notes are cumulative for 3.3.0 and include the changes documented in 3.3.0-BETA.


Detailed changes in this release:

Feature

  • #50 Add optional DNS service discovery with A-record queries over UDP and TCP.
  • #14466 Add a neutral JSON adapter with Jackson 2 and Jackson 3 runtime support.
  • #14804 Add protocol-neutral Agent lifecycle management, Console workflows, RAD discovery, runtime endpoints, transport negotiation, Watch/Push, and Java SDKs.
  • #15279 Add distributed reentrant and non-reentrant locks with watchdog renewal, FIFO waiting, gRPC notifications, Raft consistency, and a Java Lock SDK.
  • #15471 Support SkillSpector as an AI publish pipeline.
  • #15475 Add unified dynamic plugin configuration, lifecycle management, runtime updates, deterministic discovery, and Console configuration workflows.
  • #15476#15604 Add plugin-owned visibility grant and revoke APIs and Console management for Skill and AgentSpec resources.
  • #15541 Add Agentic Resource Discovery with search, exploration, artifact retrieval, visibility filtering, persistent indexes, and hybrid keyword and vector retrieval.
  • #15640 Support Nacos server deployments on Linux RISC-V with RocksDB.
  • #15761 Add shared MCP lifecycle management with drafts, review, publish, online/offline operations, visibility, Java SDKs, and historical reconciliation while preserving existing Config/Naming serving data.

Enhancement/Refactor

  • #8354 Replace the mandatory Prometheus client dependency with a pluggable client metrics SPI and a no-op default.
  • #12064 Support configuring the gRPC port offset through individual client properties.
  • #12734 Add request/result-based Config SDK methods, encrypted Config CAS publishing, and conditional queries with local cache reuse.
  • #13690 Log the resolved client logging configuration and include namespace IDs in subscription logs.
  • #14804 Improve Agent detail, draft creation, version history, and legacy A2A Console workflows.
  • #14817 Disable selected deprecated Pipeline and MCP import APIs by default and provide a shared temporary compatibility switch.
  • #14932 Reduce read-path contention and improve index consistency in the legacy MCP cache.
  • #14980 Support deregistering persistent Naming instances from Console v3.
  • #15315#15561 Improve Skill upload precheck, conflict handling, and server-side ZIP validation.
  • #15322 Remove obsolete Config migration compatibility code and retain only the current Config storage model.
  • #15346 Manage the reserved latest label for AI resources on the server.
  • #15357 Enable Client API authentication by default and validate standard integration scenarios with authentication enabled.
  • #15432#15440#15441 Remove reviewed unused Java code while preserving required compatibility contracts.
  • #15448 Improve English translations in Console UI Next.
  • #15486 Include the Skill owner in upload permission-denied messages.
  • #15606 Return a stable per-item result for every Skill batch upload candidate.
  • #15661 Restrict distributed embedded database query results to supported scalar types and registered row mappers.
  • #15678 Decouple the visibility plugin SPI from server runtime modules.
  • #15686#15692 Align authorization method resolution with Spring MVC routing and expand controller-level authorization regression coverage.
  • #15687 Authenticate native JRaft gRPC requests with server identity and a rolling-upgrade enforcement transition.
  • #15695 Improve Config detail, edit, and history page layouts with larger content areas and full-screen reading.
  • #15720 Automatically publish the first uploaded Skill version.
  • #15746 Add operator-controlled outbound access policies for MCP tool imports.
  • #15838 Clarify that rolling back the first inserted Config history record deletes the configuration.
  • #15854 Remove untagged legacy Raft request parsing and preserve explicit errors for malformed log entries.

BugFix

  • #11122 Accept healthCheckEnabled as a health-check switch entry while retaining the legacy check alias.
  • #11890 Avoid removing metadata for instances that still exist after restart.
  • #12557 Retry Config dump write-lock acquisition to prevent stale MD5 cache data.
  • #14008 Fix native-image metadata required to establish gRPC client connections.
  • #14804 Keep AI search available with partial results while indexes are being backfilled.
  • #14981#15468 Fix concurrent Config publish duplicate-key handling through the datasource dialect SPI, including PostgreSQL unique_violation.
  • #15410 Fix trailing separators when joining collections containing null elements.
  • #15415 Prevent malformed config-plugin property names from discarding valid plugin configuration.
  • #15420 Fix Skill ZIP uploads with invalid or unavailable version candidates.
  • #15425 Prevent out-of-range batch indexes from causing IndexOutOfBoundsException.
  • #15446 Fix page count calculation for empty and exactly divisible result sets.
  • #15447 Prevent NamingUtils.getServiceName from failing on a trailing service separator.
  • #15466 Correct @Since annotations for Skill upload APIs.
  • #15470 Prevent Naming connection cleanup from waiting for unrelated distributed-lock Raft writes.
  • #15475 Fix standalone Console auth plugin initialization and forward the caller identity to downstream Server requests.
  • #15476 Enforce Prompt visibility on list, detail, version, download, and Client read APIs.
  • #15477 Wait for persistent service metadata before starting health checks.
  • #15490 Fix Chinese text corruption in Skill Scanner pipeline reports on Windows.
  • #15494 Restore complete MCP tool advanced-template support in Console UI Next.
  • #15510 Reject explicitly supplied invalid Bearer tokens instead of falling back to anonymous access.
  • #15534 Generate deterministic, ASCII-safe physical Config keys for AI resources.
  • #15543 Restore case-sensitive collation for newly initialized MySQL Config schemas.
  • #15557 Fix startup failures when plugin state snapshots are restored before unified plugin discovery.
  • #15560 Preserve MCP tool passthrough authentication when editing and publishing runtime templates.
  • #15603 Fix visibility query conversion when explicitly authorized resources are present.
  • #15618 Try lower-priority explicit Skill upload versions before generating a version.
  • #15620 Allow AI resource versions to be resubmitted after completed or stale review results.
  • #15625 Fix gray Config cache null access and cross-thread visibility in Config disk services and client connections.
  • #15634 Fix API authorization metadata, custom resource parser precedence, AgentSpec authorization, and Prometheus security path matching.
  • #15642 Make AI resource deletion cleanup-first and retryable across all stored versions.
  • #15658 Keep AI resource reads, updates, and deletion bound to the persisted storage provider.
  • #15660 Fix standalone Console startup when the Config clone source-permission checker is unavailable.
  • #15663 Preserve case-sensitive AI resource identities in MySQL search and task tables.
  • #15675 Preserve nullable MCP tool output schemas during editing, display, and OpenAPI import.
  • #15682 Prevent login responses from disclosing whether a username exists.
  • #15689 Preserve string serialization of Config storage IDs with Jackson 3 to avoid numeric precision loss.
  • #15701 Fix Config history next-record queries on Derby and preserve gray-version filtering.
  • #15703 Migrate the legacy skills.sh importer state key without overriding canonical configuration.
  • #15705 Clean removed Skill and AgentSpec draft files while retaining retry metadata after storage failures.
  • #15710 Declare the required SQL LIKE escape clause for Derby, Oracle, and other affected dialects.
  • #15712#15827 Reject unsafe instance addresses, HTTP targets, headers, and MySQL connection options in active health checks.
  • #15714 Handle encoded context paths consistently in the legacy controller-method resolver.
  • #15718 Escape all LIKE predicates when searching embedded roles with username filters.
  • #15724 Forward the namespace when querying Config listeners by IP across cluster members.
  • #15744 Align bootstrap and distribution configuration defaults.
  • #15763 Reject invalid IPv6 mixed addresses with too many explicit address blocks.
  • #15803 Reject unsafe AgentSpec and Skill ZIP layouts and enforce entry-count and decompression limits.
  • #15804 Reject unsafe filesystem paths before Config, archive, and local rule-storage operations.
  • #15821 Increase the embedded Derby connection timeout to prevent initialization failures on slow storage.
  • #15844 Use the correct default gRPC protocol negotiator type.
  • #15847 Restore public defaults for newly created Agent and MCP resources and preserve existing visibility scopes.
  • #15850#15851 Select the default JDBC driver from the datasource dialect and clarify non-MySQL configuration examples.
  • #15853 Return schema metadata in current, historical, and previous-version Config details.
  • #15864 Resolve HEAD requests through their GET mapping in the legacy controller-method cache.
  • #15866 Remove server-list event subscriptions on client shutdown and prevent callbacks from accessing a closed server-list provider.

Dependencies

  • #14944 Upgrade Spring Boot from 3.5.14 to 4.0.6.
  • #15470 Upgrade SOFA JRaft to 1.4.1 while preserving callback cache behavior and JRaft authentication.
  • #15584 Upgrade Maven Compiler Plugin from 3.5.1 to 3.15.0 for JDK 25 build compatibility.
  • #15645#15834 Upgrade compatible legacy and next Console dependencies, patch the sanitizer bundled with Monaco, and refresh packaged frontend assets.
  • #15707 Upgrade Log4j API from 2.25.4 to 2.25.5.
  • #15767 Upgrade gRPC to 1.81.0 to address CVE-2026-33871.

Breaking Change Notice

Nacos 3.3.0-RC changes authentication defaults, disables selected deprecated APIs, and introduces migration and compatibility boundaries that require attention before upgrading.

Affected users:

  • Applications that connect without credentials and rely on the previous Client API authentication default.
  • Integrations using deprecated Pipeline or Console MCP import endpoints.
  • Deployments with legacy Config data, unsafe historical AI Config keys, or untagged Raft logs.
  • Clusters migrating historical A2A or MCP resources, or planning a downgrade after migration or JRaft authentication enforcement.
  • Applications relying on built-in Prometheus client metrics, private-network MCP tool imports, or implicit Agent/MCP visibility defaults.

Recommended upgrade path:

  • Prepare Client API credentials. An absent nacos.core.auth.enabled now means true. Existing explicit false settings remain effective. If credentials are not ready, explicitly retain false during migration, provision identities and permissions, verify client access, and then enable authentication consistently on every member. Admin and Console authentication defaults are unchanged.
  • Migrate deprecated AI API calls. The deprecated Pipeline base-path list and path-variable detail endpoints, and the old Console MCP import endpoints, return HTTP 410 with API_DEPRECATED by default. Use Pipeline /list and /detail endpoints and the unified /v3/console/ai/import/validate and /execute endpoints. nacos.core.api.compatibility.enabled=true temporarily reopens the selected endpoints; the old nacos.ai.resource.import.legacy-mcp-api-enabled property is no longer recognized.
  • Complete legacy Config migrations. Upgrade pre-3.0 deployments through an earlier Nacos 3.x version. Migrate default-namespace data from the empty tenant to public, and legacy beta/tag data from config_info_beta and config_info_tag to config_info_gray. For the nacos_config AI storage provider, explicitly migrate affected historical non-ASCII or overlength Config coordinates to the deterministic ASCII-safe mapping.
  • Check persisted Raft logs. Nacos 3.3 no longer replays untagged entries, including entries originally written by Nacos 2.0.x and retained across intermediate upgrades. Complete recovery and snapshot/log migration with a version that can read those entries before upgrading. Changing the running version alone does not convert persisted logs.
  • Plan historical A2A migration explicitly. The default nacos.ai.a2a.compatibility.mode=CANONICAL does not scan historical data. For historical 3.0–3.2 A2A data, follow the migration runbook and configure new members with AUTO and a consistent migration policy. Early 3.3 AUTO deployments require the runbook's separate preflight. After permanent canonical cutover, a legacy-only server must not rejoin. MCP reconciliation also has a one-way managed-lifecycle transition; preserve its migration state and existing Config/Naming serving data.
  • Keep cluster server identities consistent. Native JRaft authentication becomes enforced once all members advertise support, and enforcement persists across restarts. A rolling downgrade to members without JRaft credential support is not guaranteed to remain available.
  • Install a client metrics provider when needed. The mandatory Prometheus dependency has been removed from nacos-client. Without an implementation of NacosClientMetricsProvider, client metrics recording is a no-op, even when enableClientMetrics is enabled.
  • Review MCP import access policy. Public MCP import targets remain available by default. Private or local targets must be explicitly allowed with nacos.console.ai.mcp.import.allowed-private-addresses; HTTP redirects are not followed.
  • Set private resource scopes explicitly. The built-in visibility plugin defaults new Agent and MCP resources to PUBLIC. Existing stored scopes and Prompt/Skill defaults are unchanged. Set the intended private scope for resources that should not be discoverable by other users.
  • Back up and rehearse the upgrade. Back up the database and relevant persisted data, then verify authentication, historical resource migration, discovery, and client behavior in staging before upgrading to Nacos 3.3.0-RC.

Deployments without the affected historical data do not require the data migrations above; the new authentication defaults and applicable API changes still need review.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

New Contributors

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.2...3.3.0-RC

2026-08-27 11:16:33
nacos

3.2.4 (Aug 27th, 2026)

Nacos 3.2.4 is mainly a bugfix, security-hardening, and experience-improvement release for the 3.2 series.

This release focuses on:

  • Strengthening JRaft, HTTP/gRPC authorization, embedded database, login, active health check, and MCP import security.
  • Fixing standalone Console, Prompt visibility, Config history, listener state, and MCP tool authentication issues.
  • Improving Config detail, edit, and history page usability.

For cluster and API operators, this release also:

  • Adds server-identity authentication to native JRaft gRPC traffic with rolling-upgrade-aware enforcement.
  • Disables selected deprecated v3 AI APIs by default and provides a temporary compatibility switch.
  • Adds an allowlist policy for MCP tool imports from private or local targets.

Detailed changes in this release:

Feature

  • #15687 Add server-identity authentication to native JRaft gRPC traffic with rolling-upgrade-aware enforcement.

Enhancement/Refactor

  • #14817 Add a shared, disabled-by-default compatibility gate for deprecated Pipeline and MCP import APIs.
  • #15661 Harden distributed embedded database result resolution to supported scalar types and registered row mappers.
  • #15688 Refactor controller context-path URI parsing for consistent route matching.
  • #15695 Improve Config detail, edit, and history layouts with compact metadata and a full-screen content view.
  • #15712 Harden active health checks by validating target addresses and disabling unsafe MySQL JDBC options.
  • #15749 Add configurable outbound access control for MCP tool imports, allowing public targets and allowlisted private or local targets.

BugFix

  • #15475 Fix caller identity forwarding from a standalone Console so the Server enforces caller-specific RBAC.
  • #15476 Fix Prompt visibility enforcement for list, detail, version, download, and Client read paths.
  • #15560 Fix MCP tool passthrough authentication being lost after publishing from the Console.
  • #15634 #15563 Fix authorization metadata and resource parsing across Admin, HTTP/gRPC, Prometheus, and AgentSpec APIs.
  • #15660 Fix standalone Console startup failure caused by a missing Config clone permission checker bean.
  • #15682 Prevent username enumeration by normalizing login failure responses.
  • #15701 Fix Config history next-record queries on Derby and apply gray-name filtering correctly.
  • #15724 Preserve the namespace filter when aggregating listener-by-IP state across cluster members.

Breaking Change Notice

Nacos 3.2.4 changes the default behavior of deprecated AI APIs and private MCP tool imports, and introduces an irreversible JRaft authentication enforcement transition.

Affected users:

  • Users calling the deprecated Pipeline list/detail or legacy MCP import APIs. These APIs now return HTTP 410 Gone by default.
  • Console operators importing MCP tools from private or local addresses. These targets now require an administrator-managed allowlist.
  • Clusters attempting a mixed-version rolling downgrade after all members have enabled JRaft authentication enforcement.

Recommended upgrade path:

  • Migrate to the canonical Pipeline and /v3/console/ai/import/* APIs. If additional migration time is required, temporarily set nacos.core.api.compatibility.enabled=true.
  • Configure nacos.console.ai.mcp.import.allowed-private-addresses on every Console instance and restart the Console when private targets are required.
  • Before upgrading, verify that nacos.core.auth.server.identity.key and nacos.core.auth.server.identity.value are configured identically on every cluster member. Nacos uses these values to authenticate JRaft gRPC requests but does not synchronize them across the cluster.
  • Do not rely on a mixed-version rolling downgrade after JRaft authentication has entered enforced mode.

Users already using the canonical AI APIs, public MCP endpoints, and consistent server identities are not affected by these compatibility changes.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.3...3.2.4

2026-08-18 11:08:44
nacos

2.5.4 (Aug 27th, 2026)

Nacos 2.5.4 is mainly a bugfix, security for the 2.x series.


Detailed changes in this release:

BugFix

[#15661] Harden distributed database query result resolution. [#15712] Fix active health check target address validation.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 8
Nacos-Client Java 8

Full Changelog: https://github.com/alibaba/nacos/compare/2.5.3...2.5.4

2026-08-06 16:40:34
nacos

3.3.0-BETA(Aug 6th, 2026)

Nacos 3.3.0-BETA

Nacos 3.3.0-BETA is a feature iteration release for the Nacos 3.x series.

This release focuses on:

  • Protocol-neutral Agent registration, management, and discovery.
  • Agentic Resource Discovery for AI Registry resources.
  • Dynamic plugin configuration and management.
  • Distributed lock capabilities.
  • Spring Boot 4 and Jackson 3 compatibility.

The main feature updates include:

  • Agent lifecycle management, endpoint discovery, SDKs, Console support, and legacy A2A compatibility.
  • Hybrid keyword and vector discovery for Skill, Prompt, and MCP resources.
  • Runtime plugin configuration and AI resource visibility authorization.
  • Phase 1 distributed reentrant and non-reentrant locks.

It also includes Skill workflow improvements, security hardening, compatibility fixes, performance optimizations, and dependency updates.


Detailed changes in this release:

Feature

  • [#14466] Add a neutral JSON adapter with Jackson 2 and Jackson 3 runtime support.
  • [#14804] Add protocol-neutral Agent registration, persistence, endpoint discovery, Java SDKs, Admin and Console APIs, Console management, and legacy A2A compatibility routing.
  • [#15279] Add distributed reentrant and non-reentrant locks with watchdog renewal, FIFO waiting, gRPC notifications, Raft consistency, and a Java Lock SDK.
  • [#15471] Support SkillSpector as an AI publish pipeline.
  • [#15475] Add unified dynamic plugin configuration, lifecycle management, runtime updates, deterministic discovery, and Console configuration workflows.
  • [#15476][#15604] Add plugin-owned visibility grant and revoke APIs and Console management for Skill and AgentSpec resources.
  • [#15541] Add Agentic Resource Discovery with search, exploration, artifact retrieval, visibility filtering, persistent indexes, and hybrid keyword and vector retrieval.
  • [#15640] Support Nacos server deployments on Linux RISC-V with RocksDB.

Enhancement/Refactor

  • [#12064] Support configuring the gRPC port offset through individual client properties.
  • [#14932] Refactor the in-memory MCP cache to reduce read-path contention and improve index consistency.
  • [#15315][#15561] Improve Skill upload precheck, conflict handling, and server-side ZIP validation.
  • [#15322] Remove obsolete Config migration compatibility code and retain only the current Config storage model.
  • [#15346] Manage the reserved latest label for AI resources on the server.
  • [#15432][#15440][#15441] Remove reviewed unused Java code and preserve compatibility-facing contracts where required.
  • [#15448] Improve English translations in Console UI Next.
  • [#15486] Include the Skill owner in upload permission-denied messages.
  • [#15606] Return a stable per-item result for every Skill batch upload candidate.

BugFix

  • [#12557] Add retry behavior when acquiring the Config dump write lock to prevent stale MD5 cache data.
  • [#14981][#15468] Fix concurrent Config publish duplicate-key handling through the datasource dialect SPI, including PostgreSQL unique_violation.
  • [#15410] Fix trailing separators when joining collections containing null elements.
  • [#15415] Prevent malformed config-plugin property names from discarding valid plugin configuration.
  • [#15420] Fix Skill ZIP uploads with invalid or unavailable version candidates.
  • [#15425] Prevent out-of-range batch indexes from causing IndexOutOfBoundsException.
  • [#15446] Fix page count calculation for empty and exactly divisible result sets.
  • [#15447] Prevent NamingUtils.getServiceName from failing on a trailing service separator.
  • [#15466] Correct @Since annotations for Skill upload APIs.
  • [#15490] Fix Chinese text corruption in Skill Scanner pipeline reports on Windows.
  • [#15494] Restore complete MCP tool advanced-template support in Console UI Next.
  • [#15510] Reject explicitly supplied invalid Bearer tokens instead of silently falling back to anonymous access.
  • [#15534] Generate deterministic, ASCII-safe physical Config keys for AI resources.
  • [#15543] Restore case-sensitive collation for newly initialized MySQL schemas.
  • [#15557] Fix server startup failures when plugin state snapshots are restored before unified plugin discovery.
  • [#15603] Fix visibility query conversion when explicitly authorized resources are present.
  • [#15618] Fix Skill upload version resolution to try lower-priority explicit versions before generating a version.
  • [#15620] Allow AI resource versions to be resubmitted after completed or stale review results.
  • [#15634] Fix HTTP and gRPC authorization metadata, custom resource parser precedence, AgentSpec authorization, and Prometheus security path matching.

Dependencies

  • [#14944] Upgrade Spring Boot from 3.5.14 to 4.0.6.
  • [#15584] Upgrade Maven Compiler Plugin from 3.5.1 to 3.15.0 for JDK 25 build compatibility.
  • [#15645] Upgrade compatible Console UI Next dependencies and regenerate packaged frontend assets.

Breaking Change Notice

Nacos 3.3 removes legacy Config migration compatibility paths and changes how unsafe AI resource Config keys are mapped.

Affected users:

  • Users upgrading from a version earlier than Nacos 3.0 whose Config data uses the legacy empty tenant for the default namespace.
  • Users with legacy beta or tag gray-release data in config_info_beta or config_info_tag.
  • Users of the nacos_config AI storage provider with historical non-ASCII or overlength resource identifiers.

Recommended upgrade path:

  • Upgrade pre-3.0 deployments to an earlier Nacos 3.x version first.
  • Migrate default-namespace data from the empty tenant to public.
  • Migrate legacy beta and tag data to config_info_gray.
  • Explicitly migrate affected AI resource Config coordinates to the new deterministic ASCII-safe mapping.
  • Back up the database and verify the migration in a staging environment before upgrading to Nacos 3.3.0-BETA.

Users already running Nacos 3.x who do not have affected AI Config coordinates are not impacted by these migration removals.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

2026-07-14 17:52:43
nacos

2.5.3 (Jul 14th, 2026)

Nacos 2.5.3 is mainly a bugfix, security, and experience-improvement release for the 2.x series.

This release focuses on:

  • Compatible security dependency upgrades for the v2.x JDK 8 baseline.
  • Client stability and logging improvements.
  • Config namespace isolation fixes.
  • Server-side request validation improvements.

It also keeps incompatible major dependency lines out of v2.x, such as Spring Boot 3, Spring Framework 6, and other JDK 17+ only upgrades.


Detailed changes in this release:

Feature

No major feature changes.

Enhancement/Refactor

[#12323] Improve Logback packagingData behavior by making it configurable through nacos.logback.packagingData with default false, and upgrade the external Logback adapter to 1.1.5.

BugFix

[#13940] Fix continuous class unloading during Nacos Client Log4j2 configuration reload by using safe Log4j2 initialization.

[#14423] Fix missing exceptions when form parameters exceed the configured Tomcat request size limit.

[#15437] Fix client shutdown thread leaks and executor creation race conditions in ConfigRpcTransportClient and related client components.

[#15497] Fix Config namespace isolation for ID-based export, batch delete, and clone operations, and enforce source namespace read permission for clone requests.

Dependencies

[#13998][#14859] Upgrade embedded Tomcat to 9.0.118 to address known Tomcat CVEs.

[#15025][#15451] Upgrade compatible v2.x dependencies, including Jackson to 2.18.9, gRPC Java to 1.75.0, and Spring Security to 5.8.16, while preserving the JDK 8 baseline.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 8
Nacos-Client Java 8

New Contributors

Full Changelog: https://github.com/alibaba/nacos/compare/2.5.2...2.5.3

2026-07-07 20:36:31
nacos

3.2.2 (Jul 14th, 2026)

Nacos 3.2.3 is mainly a bugfix and experience-improvement release for the 3.2 series.

This release focuses on:

  • Improving AI Registry, Skill, MCP, and next console workflows.
  • Fixing Config namespace isolation, Naming validation, and client stability issues.
  • Improving observability and release dependency hygiene.

It also fixes bugs across Config, Naming, AI Registry, A2A, MCP, Client, Core, and Console.


Detailed changes in this release:

Feature

  • #15143 #15463 Support nested Skill package uploads and preserve nested SKILL.md files as resources.

Enhancement/Refactor

  • #12737 #12867 Add per-Raft-group leader status and term metrics.
  • #15321 Refresh client disk cache asynchronously after subscriber notifications.
  • #15322 Align Logback adapter packagingData configuration.
  • #15354 Adjust next console sidebar menu elements.
  • #15435 Improve AI resource version diff display in next console.

BugFix

  • #12585 Fix pagination parameter binding so ? placeholders work correctly.
  • #14036 Support HTTPS/TLS prefixes in HTTP login processing.
  • #14693 Fix MCP service selector pagination in the console.
  • #15032 Fix TCP health-check SocketChannel leaks and exact member IP matching.
  • #15229 Normalize null A2A agent names in list queries.
  • #15265 Allow Skill list fuzzy queries when skillName starts or ends with a hyphen.
  • #15275 Copy pg-upgrade-null-tenant-id.sql to distribution/conf to prevent PostgreSQL Docker upgrade startup failures.
  • #15296 Update service detail status after instance online/offline toggles.
  • #15305 Reject blank instance IPs in Naming registration.
  • #15350 Fix empty Config history compare content in next console.
  • #15355 Restore editable Config clone target Data ID and group fields.
  • #15359 Fix AI Registry version deletion corrupting version aggregates and breaking A2A/MCP queries.
  • #15428 Preserve query parameters in MCP endpoint URLs after publish.
  • #15430 Preserve transportProtocol in auto-built MCP endpoint specs.
  • #15498 Scope ID-based Config export, batch delete, and clone operations by namespace.

Dependencies

  • #15442 Roll up console-ui-next dependency fixes and rebuild next console static assets.

Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.2...3.2.3

2026-05-29 14:26:27
nacos

3.2.2 (May 29th, 2026)

Nacos 3.2.2 is mainly a bugfix and experience-improvement release for the 3.2 series.

This release focuses on:

  • Console experience improvements for Config, Naming, MCP, Skill, AI resources, and namespace workflows.
  • Stability and compatibility fixes across Config, Naming, plugins, startup scripts, and AI resource handling.
  • AI Registry import, discovery, publishing, subscription, and security improvements.

For AI Registry and Console users, this release adds or improves:

  • Importing AI resources from operator-configured external registries.
  • Skill well-known discovery, Skill subscription, and latest protocol adapter support.
  • Config diff confirmation, Prompt Markdown download, and Skill upload lifecycle improvements.

It also fixes bugs across Config, Naming, Console, MCP, Skill, plugins, and client-side watch handling.


Detailed changes in this release:

Feature

[#14695] Support label-based matching for Config gray rules. [#14848] Add Prompt version download as Markdown. [#14907] Support specifying a target version when uploading Skills. [#14985] Add persistent instance deregistration support in Console v3. [#15022] Support optional Skill auto-publish after review. [#15031] Extend nacos.functionMode with microservice and ai modes. [#15142] Support drag-and-drop ZIP upload and batch Skill upload. [#15183] Support importing AI resources from operator-configured external registries, including MCP resources, Skill well-known resources, importer APIs, SPI models, built-in presets, and source-based import UI. [#15234] Support commit messages when uploading AI skills. [#15247] Support the latest Skill well-known protocol in the registry adapter. [#15263] Add Skill subscription support and refactor AgentSpec subscription to HTTP polling with 304 handling.

Enhancement/Refactor

[#14833][#15221] Route AI resource version trace logging through trace events and the default plugin. [#14911] Split LDAP authentication into an optional plugin and package the LDAP plugin JAR. [#14983] Enforce non-frontmatter Markdown body content during Skill validation. [#15059] Add the reviewed version status after pipeline approval for Skill versions. [#15066] Harden AgentSpec ZIP parsing with Zip Slip, Zip Bomb, and entry-count defenses. [#15138] Add Config publish diff confirmation in the new Console. [#15145] Restrict forcePublish to valid Skill states and add pipeline stale flags for re-edit. [#15164] Make Skill ZIP entry and size limits configurable. [#15165] Parallelize AgentSpec storage writes to align with Skill behavior. [#15258] Enable reviewed status by default for the AI publish pipeline.

BugFix

[#11122] Accept healthCheckEnabled as a Naming switch-entry alias. [#14774] Shade Caffeine into the OIDC plugin JAR to avoid NoClassDefFoundError. [#14882] Fix Console theme color loss by adding RGB fallbacks. [#14952] Fix the incorrect MCP protocol value when the restToMcp switch is off. [#14992] Add v3 Naming APIs to DistroFilter to fix client API instance registration and deregistration in clusters. [#14997] Preserve SKILL.md indentation and validate Skill versions during upload and download. [#15000] Add the missing group_id LIKE placeholder in BaseConfigInfoMapper. [#15004] Replace deprecated AccessControlException usage with SecurityException. [#15037] Fix access denied errors on Console history detail, rollback, and compare pages. [#15067] Fix the missing write lock in MemoryMcpCacheIndex#removeIndex. [#15073] Preserve multi-byte UTF-8 characters across DiskUtils chunk boundaries. [#15136] Fix the password modification dialog display. [#15141] Fix namespace description editing when namespaceId is missing. [#15150] Prevent PostgreSQL tenant nulls from causing config sync row explosions. [#15152] Fix Config page display mismatches after namespace switching. [#15160] Fix ConfigChangeAspect misclassifying Console config changes as RPC when srcType is missing. [#15162] Default unlisted AI resources to base64 to avoid UTF-8 corruption. [#15167] Fix Console controller mapping with request context paths. [#15171] Re-exec startup scripts under bash when invoked through sh. [#15192] Reject submit requests for non-draft AI resource versions to protect formal version status. [#15201] Fix Skill description inconsistencies between list and detail after uploading a new version. [#15207] Fix MCP Console editor regressions for object-type tool input fields. [#15228] Guard fuzzy-watch futures against lost and spurious wakeups. [#15240] Fix Skill install card overflow with long Skill names in Console next. [#15252] Preserve namespace context on Console AI resource pages.

Dependencies

[#15039] Upgrade the PostgreSQL JDBC driver from 42.7.2 to 42.7.11. [#15060] Upgrade Micrometer to 1.15.10 to fix the Prometheus endpoint. [#15087] Upgrade vulnerable dependencies reported for the Nacos server image and enable default AI importers. [#15148] Add a console-ui-next npm min-release-age policy for supply-chain security.


Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

New Contributors

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.1...3.2.2

2026-04-23 20:07:14
nacos

3.2.1 (Apr 23th, 2026)

Nacos 3.2.1 is a patch release focused on critical bug fixes and feature enhancements for issues discovered in 3.2.0. This release delivers significant improvements to AI Registry functionality, database compatibility, security, and console user experience.

Key highlights include:

  • AI Registry Maturity: Complete Prompt lifecycle management with UI, A2A AgentCard v1 protocol support, skill bizTag filtering, and resource spec storage for MCP servers
  • Security Enhancements: Fixed LDAP authentication bypass vulnerability, added OIDC/OAuth2 SSO login support for both consoles
  • Database Compatibility: Comprehensive PostgreSQL, Oracle, MySQL, and Derby fixes including deterministic pagination and schema timestamp issues
  • Dependency Upgrades: Spring Boot 3.5.13, MCP SDK 0.17.0, and log4j-core 2.25.4
  • Concurrency & Reliability: Eliminated race conditions in AI publish pipeline, naming module, client failover, and config export operations
  • Console UX: Fixed configuration editing errors, namespace ID validation, batch import, token expiry handling, and UI bugs in both legacy and next consoles

Feature

  • [#14621] A2A Registry 1.0 adapter with unified and normalized supported interfaces in agent card handling
  • [#14796] Add MCP server resource specification support
  • [#14807] Add Prompt lifecycle management UI for both legacy and next consoles
  • [#14809] Enhance AI resource list APIs with filters and ordering support
  • [#14847] Support AI resource subtype parsing in authentication plugin
  • [#14895] Support filtering skills by bizTag in list API and console UI
  • [#14794] Support force-publish skills for admin user

Enhancement/Refactor

  • [#14743] Close CallableStatement in DerbySnapshotOperation to prevent JDBC resource leak
  • [#14750] Fix check-then-act race condition in FailoverReactor.isFailoverSwitch
  • [#14751] Fix check-then-act race conditions on ConcurrentHashMap in naming module
  • [#14784] Validate input parameters in ops controller forms for better security
  • [#14806] Improve cluster metrics aggregation completeness signal in v3 API
  • [#14818] Improve cluster metrics aggregation completeness signal in v3 API
  • [#14822] Extract duplicated logic from SkillOperationServiceImpl and AgentSpecOperationServiceImpl into AiResourceManager and VersionUtils
  • [#14834] Upgrade UI dependencies for both legacy and next consoles
  • [#14873] Add config option to enable or disable visibility plugin
  • [#14883] Add default scope resolution for new resource creation in visibility plugin
  • [#14884] Standardize pipeline API and fix legacy console UI bugs
  • [#14893] Add copilot feature toggle and redesign plugin management layout
  • [#14927] Fix TOCTOU race condition and thread leak in ClientWorker.ensureSyncExecutor()
  • [#14928] Fix TOCTOU race condition in removeSubscriberIndexes causing data loss

BugFix

  • [#14046] Fix ConfigInfoMapperByMySql.findConfigInfoLike4PageFetchRows result accuracy on MySQL
  • [#14741] Add ORDER BY to findConfigInfoLike4PageFetchRows for deterministic pagination
  • [#14742] Add ORDER BY to findConfigInfo4PageFetchRows for deterministic pagination
  • [#14746] Add ORDER BY to remaining MySQL pagination queries for deterministic results
  • [#14747] Add ORDER BY to Oracle pagination queries for deterministic results
  • [#14748] Add ORDER BY to Derby pagination queries for deterministic results
  • [#14764] Fix namespace ID validation issue in new UI when adding custom namespace
  • [#14765] Fix configuration file editing error in 3.2 console
  • [#14768] Fix /v3/console/ai/mcp/importToolsFromMcp failure due to json-schema-validator dependency conflict
  • [#14771] Fix batch import failure in legacy console UI
  • [#14775] Add missing OIDC-related configurations to application.properties template
  • [#14778] Fix clusterName forced to DEFAULT in v3 HTTP API
  • [#14783] Remove downloadSkillZip from AiClientProxy interface and route skill download directly to HTTP client
  • [#14786] Eliminate race condition in AI publish pipeline by pre-generating executionId
  • [#14810] Fix PostgreSQL schema default timestamp issues causing startup failures
  • [#14812] Set default timestamps to current time in Oracle and PostgreSQL schemas
  • [#14828] Fix cross-type version contamination when querying ai_resource_version by name
  • [#14832] Fix PostgreSQL compatibility issues for AI resource persistence and capacity modules
  • [#14836] Fix cross-type version contamination in ai_resource_version queries
  • [#14837] Enforce type isolation for ai_resource_version queries
  • [#14843] Fix ActionTypes.WRITE to ActionTypes.READ for getting instance detail in InstanceControllerV3
  • [#14849] Fix instance detail permission check in InstanceControllerV3
  • [#14852] Fix prompt bizTags handling in both legacy and next UIs
  • [#14853] Fix login page loop and header when auth is disabled in next console
  • [#14856] Redirect to login page on token invalid/expired responses
  • [#14862] Fix LDAP authentication bypass via hardcoded credentials in proxy user synchronization
  • [#14875] Fix misleading error messages in maintainer-client ParamUtil
  • [#14886] Fix legacy console UI bugs and improve robustness
  • [#14892] Fix misleading value reporting in maintainer-client when timeout/retry properties are invalid
  • [#14908] Fix skill content loss in SkillRemoteHandler#createDraft when passing skillCard as targetVersion
  • [#14910] Add null check for optional ids parameter in exportConfigV2
  • [#14915] Add null check for metaDataItem in config import
  • [#14917] Reject login with LDAP-prefixed usernames to prevent auth bypass
  • [#14947] Fix exception when adding Prompt page in console

Dependencies

  • [#14782] Upgrade MCP SDK to 0.17.0 to resolve json-schema-validator conflict
  • [#14834] Upgrade UI dependencies (both legacy and next consoles)
  • [#14910] Bump org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4
  • [#14955] Upgrade Spring Boot from 3.4.10 to 3.5.13

⚠️ Breaking Changes & Migration Notes

Database Schema Updates (Critical)

Action Required: This release includes critical fixes for PostgreSQL, Oracle, MySQL, and Derby schemas, particularly around default timestamp values and ORDER BY clauses for deterministic pagination.

Before upgrading:

  1. Backup your existing database
  2. Apply the updated schema script: conf/schema.sql (for your database type)
  3. Restart Nacos server after schema migration

Affected databases:

  • PostgreSQL: Default timestamp fixes, AI resource persistence compatibility
  • Oracle: Default timestamp fixes
  • MySQL: Pagination query accuracy improvements
  • Derby: ORDER BY clause additions, JDBC resource leak fixes

Failure to apply schema changes may result in:

  • Database startup failures (PostgreSQL)
  • Inconsistent pagination results
  • JDBC resource leaks
  • AI resource version contamination

OIDC/OAuth2 SSO Configuration

This release adds OIDC/OAuth2 SSO login support for both legacy and next consoles. To enable:

# OIDC Configuration
nacos.auth.oidc.enabled=true
nacos.auth.oidc.issuer-uri=<your-oidc-issuer-uri>
nacos.auth.oidc.client-id=<your-client-id>
nacos.auth.oidc.client-secret=<your-client-secret>
nacos.auth.oidc.redirect-uri=${domain}/v3/console/login

Java Version Requirements

Module Java Required
Nacos-Server / Nacos-Console Java 17
Nacos-Client Java 8
Nacos-Maintainer-Client Java 8

📚 What's New in AI Registry

A2A Registry 1.0

  • AgentCard v1 Protocol: Full support for A2A AgentCard v1 protocol with extended capabilities
  • Unified Interfaces: Normalized and validated supported interfaces in agent card handling
  • Version Meta API: New API to query agent spec metadata without loading full content

New Contributors

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.0...3.2.1

2026-04-03 17:43:51
nacos

3.2.1-2026.04.03

Nacos 3.2.1-2026.04.03 is a snapshot release focused on critical bug fixes and feature enhancements for issues discovered in 3.2.0, particularly around AI module stability, database compatibility, and console UI improvements.

Key highlights include:

  • AI Registry Enhancements: Complete Prompt lifecycle management UI, AI resource trace logging, and enhanced list APIs with filters
  • Database Compatibility: PostgreSQL and Oracle schema fixes, deterministic pagination with ORDER BY clauses
  • Dependency Resolution: Upgraded MCP SDK to 0.17.0 to resolve json-schema-validator conflicts
  • Concurrency Fixes: Eliminated race conditions in AI publish pipeline, naming module, and client failover
  • Console UI: Fixed configuration editing errors, namespace ID validation, and batch import issues

Feature

  • [#14807] Add Prompt lifecycle management UI for both legacy and next consoles
  • [#14809] Enhance AI resource list APIs with filters and ordering support
  • [#14794] Support force-publish skills for admin user

Enhancement/Refactor

  • [#14743] Close CallableStatement in DerbySnapshotOperation to prevent JDBC resource leak
  • [#14750] Fix check-then-act race condition in FailoverReactor.isFailoverSwitch
  • [#14751] Fix check-then-act race conditions on ConcurrentHashMap in naming module
  • [#14784] Validate input parameters in ops controller forms for better security
  • [#14806] Improve cluster metrics aggregation completeness signal in v3 API
  • [#14818] Improve cluster metrics aggregation completeness signal in v3 API
  • [#14822] Extract duplicated logic from SkillOperationServiceImpl and AgentSpecOperationServiceImpl into AiResourceManager and VersionUtils
  • [#14834] Upgrade UI dependencies for both legacy and next consoles

BugFix

  • [#14046] Fix ConfigInfoMapperByMySql.findConfigInfoLike4PageFetchRows result accuracy on MySQL
  • [#14741] Add ORDER BY to findConfigInfoLike4PageFetchRows for deterministic pagination
  • [#14742] Add ORDER BY to findConfigInfoLike4PageFetchRows for deterministic pagination
  • [#14746] Add ORDER BY to remaining MySQL pagination queries for deterministic results
  • [#14747] Add ORDER BY to Oracle pagination queries for deterministic results
  • [#14748] Add ORDER BY to Derby pagination queries for deterministic results
  • [#14764] Fix namespace ID validation issue in new UI when adding custom namespace
  • [#14765] Fix configuration file editing error in 3.2 console
  • [#14768] Fix /v3/console/ai/mcp/importToolsFromMcp failure due to json-schema-validator dependency conflict
  • [#14771] Fix batch import failure in legacy console UI
  • [#14775] Add missing OIDC-related configurations to application.properties template
  • [#14783] Remove downloadSkillZip from AiClientProxy interface and route skill download directly to HTTP client
  • [#14786] Eliminate race condition in AI publish pipeline by pre-generating executionId
  • [#14810] Fix PostgreSQL schema default timestamp issues causing startup failures
  • [#14812] Set default timestamps to current time in Oracle and PostgreSQL schemas
  • [#14828] Fix cross-type version contamination when querying ai_resource_version by name
  • [#14832] Fix PostgreSQL compatibility issues for AI resource persistence and capacity modules
  • [#14836] Fix cross-type version contamination in ai_resource_version queries
  • [#14837] Enforce type isolation for ai_resource_version queries
  • [#14843] Fix ActionTypes.WRITE to ActionTypes.READ for getting instance detail in InstanceControllerV3
  • [#14849] Fix instance detail permission check in InstanceControllerV3
  • [#14852] Fix prompt bizTags handling in both legacy and next UIs

Dependencies

  • [#14782] Upgrade MCP SDK to 0.17.0 to resolve json-schema-validator conflict
  • [#14834] Upgrade UI dependencies (both legacy and next consoles)

⚠️ Migration Notes

Database Schema Updates

Action Required: This release includes critical fixes for PostgreSQL and Oracle schemas, particularly around default timestamp values and ORDER BY clauses for deterministic pagination.

Before upgrading:

  1. Backup your existing database
  2. Apply the updated schema script: conf/schema.sql (for your database type)
  3. Restart Nacos server after schema migration

Affected databases:

  • PostgreSQL: Default timestamp fixes
  • Oracle: Default timestamp fixes
  • MySQL: Pagination query accuracy improvements
  • Derby: ORDER BY clause additions

New Contributors

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.0...3.2.1-2026.04.03

2026-03-30 19:56:12
nacos

3.2.1-2026.03.30

Nacos 3.2.1-2026.03.30 is a snapshot release focused on critical bug fixes for issues discovered in 3.2.0, particularly around AI module dependency conflicts, console UI bugs, and race conditions in the skill publish pipeline.

Key highlights include:

  • Dependency Resolution: Upgraded MCP SDK to 0.17.0 to resolve json-schema-validator conflicts affecting AI module functionality
  • AI Module Stability: Fixed race condition in skill publish pipeline and streamlined skill download routing
  • Console UI Fixes: Addressed configuration file editing errors and namespace ID validation issues in the new UI
  • Input Validation: Enhanced parameter validation in ops controller forms for better security

Feature

  • [#14794] Support force-publish skills for admin user

Enhancement/Refactor

  • [#14784] Validate input parameters in ops controller forms for better security

BugFix

  • [#14765] Fix configuration file editing error in 3.2 console
  • [#14768] Fix /v3/console/ai/mcp/importToolsFromMcp failure due to json-schema-validator dependency conflict
  • [#14771] Fix batch import failure in legacy console UI
  • [#14775] Add missing OIDC-related configurations to application.properties template
  • [#14783] Remove downloadSkillZip from AiClientProxy interface and route skill download directly to HTTP client
  • [#14786] Eliminate race condition in AI publish pipeline by pre-generating executionId
  • [#14794] Fix namespace ID validation issue in new UI when adding custom namespace

Dependencies

  • [#14782] Upgrade MCP SDK to 0.17.0 to resolve json-schema-validator conflict

Full Changelog: https://github.com/alibaba/nacos/compare/3.2.0...3.2.1-2026.03.30