Releases: apolloconfig/apollo
Apollo 2.5.1 Release
What's Changed
- Fix: include super admin in unified permission checks by @nobodyiam in #5566
Installation
Please refer to the Distributed Deployment Guide.
How to upgrade from v2.5.0 to v2.5.1
There is no schema change between v2.5.0 and v2.5.1.
So simply deploy v2.5.1 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal
Full Changelog: v2.5.0...v2.5.1
Apollo 2.5.0 Release
Highlights
Incremental config sync for clients
Apollo now supports incremental configuration synchronization for clients. When config-service.incremental.change.enabled=true, Config Service caches release state and returns only changed items to reduce network overhead (restart required after toggling this option).
Self-service profile update for ordinary users
Non-admin users can now update their own profile information from a dedicated entry in the portal. Admin-only user management actions (such as user list management and enable/disable operations) remain permission-protected.
App-level config export/import with conflict strategy
Application administrators can now export and import configuration packages for a specified application and cluster. Import supports conflict handling (ignore or cover), which improves bulk migration and recovery workflows.
What's Changed
- Refactor: align permission validator api between openapi and portal by @spaceluke in #5337
- Feature: Provide a new configfiles API to return the raw content of configuration files directly by @Shawyeok in #5336
- Feature: Enhanced instance configuration auditing and caching by @youngzil in #5361
- Feature: Provide a new open API to return the organization list by @wjwang00 in #5365
- Refactor: Exception handler adds root cause information by @youngzil in #5367
- Feature: Enhanced parameter verification for edit item by @youngzil in #5376
- Feature: Added a new feature to get instance count by namespace. by @yuhaowin in #5381
- Bugfix: Remove cluster-related roles and permissions upon deletion by @spaceluke in #5395
- Security: Prevent unauthorized access to other users' apps in /apps/by-owner endpoint by @RooobinYe in #5396
- Fix: Bump h2database and snakeyaml version by @arrow1991 in #5406
- Bugfix: Correct permission target format to appId+env+namespace/cluster by @RooobinYe in #5407
- Security: Hide password when registering or modifying users by @arrow1991 in #5414
- Fix: the logical judgment for configuration addition, deletion, and modification. by @AbyssFishRover in #5432
- Feature support incremental configuration synchronization client by @jackie-coming in #5288
- optimize: Implement unified permission verification logic and Optimize the implementation of permission verification by @wjwang00 in #5456
- CI: Add code and header formatter by spotless plugin by @spaceluke in #5485
- Fix: Operate the AccessKey multiple times within one second by @yyfyfyang in #5490
- Bugfix: Prevent accidental cache deletion when recreating AppNamespace with the same name and appid in #5502
- Feature: Support ordinary users to modify personal information by @arrow1991 in #5511
- Feature: Support exporting and importing configurations for specified applications and clusters by @arrow1991 in #5517
- doc: Add rust apollo client link by @jmjoy in #5514
- Perf: optimize namespace-related interface by @AbyssFishRover in #5518
- Perf: Replace synchronized multimap with concurrent hashmap in NotificationControllerV2 for better performance by @nobodyiam in #5532
- Feature: Enable graceful shutdown for apollo-adminservice and apollo-configservice by @app/copilot-swe-agent in #5536
- Feature: Support search box and fullscreen in namespace text editor by @nobodyiam in #5545
- CI: Add portal UI Playwright e2e gate on PRs with JDK 17 by @nobodyiam in #5551
- CI: Add portal auth matrix Playwright E2E gate for LDAP and OIDC login flows by @nobodyiam in #5557
- CI: Add standalone Docker validation workflow with Java 17 runtime image checks by @nobodyiam in #5558
Installation
Please refer to the Distributed Deployment Guide.
How to upgrade from v2.4.0 to v2.5.0
There is no schema change between v2.4.0 and v2.5.0.
So simply deploy v2.5.0 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal
New Contributors
- @zhangbobo131415 made their first contribution in #5355
- @jagrutatwork made their first contribution in #5369
- @yuhaowin made their first contribution in #5381
- @OuterCloud made their first contribution in #5385
- @jiazhanfeng1989 made their first contribution in #5398
- @RooobinYe made their first contribution in #5403
- @qqiao made their first contribution in #5415
- @shalk made their first contribution in #5427
- @AbyssFishRover made their first contribution in #5432
- @jackie-coming made their first contribution in #5373
- @tacklequestions made their first contribution in #5468
- @yyfyfyang made their first contribution in #5490
- @wyxmttk made their first contribution in #5504
- @jmjoy made their first contribution in #5514
- @lzj47010 made their first contribution in #5519
- @Zjianru made their first contribution in #5543
Full Changelog: v2.4.0...v2.5.0
Apollo 2.4.0 Release
Highlights
Global Search for Key and Value
Administrator users can now perform a global fuzzy search on the key and value of configuration items, making it easier to locate where the configuration is being used across applications, environments, clusters, and namespaces. See Configuration queries (administrator privileges).
Observer Mode for Application AccessKey
Before officially enabling application keys, you can configure Application AccessKeys in observation mode to only log without intercepting configuration retrieval.
Limitation on the Number of Namespaces and Configuration Items
Users can now limit the number of namespaces and also the number of configuration items in a single namespace. See Parameter settings for limiting the number of namespaces in the appld+cluster dimension and Limitation on the number of configuration items in a single namespace.
Cluster-Level Permission Control Support
Users can now configure editing and publishing permissions for namespaces based on cluster granularity. Configuring permissions for different dimensions.
What's Changed
- bump version to 2.4.0-SNAPSHOT by @nobodyiam in #5202
- update the server config link system info page by @nobodyiam in #5204
- feat: support portal restTemplate Client connection pool config by @youngzil in #5200
- build(deps): bump com.mysql:mysql-connector-j from 8.0.32 to 8.2.0 by @dependabot in #5217
- chore: beautify footer: github -> GitHub by @SnowOnion in #5220
- 添加了管理员全局搜索Value值的功能 by @xiaoxianhjy in #5182
- fix:Fixed link namespace published items show missing some items by @youngzil in #5240
- solve the problem of duplicate comments and blank lines by @youngzil in #5232
- feat: add determine appid+cluster namespace num limit logic by @youngzil in #5228
- feat: add observe status access-key for pre-check and logging only (#5216) by @larry4xie in #5236
- feat: add determine single namespace item num limit logic by @youngzil in #5227
- feat: ConfigService cache record stats by @youngzil in #5247
- fix:RefreshAdminServerAddressTask supports dynamic configuration of time interval by @youngzil in #5248
- fix:Optimize the default log path configuration by @youngzil in #5251
- refactor: Configuration files uniformly use Kebab style by @youngzil in #5262
- [Docs]OSPP Support Kubernetes ConfigMap for Apollo java, golang client by @dyx1234 in #5233
- feat: openapi query namespace support not fill item by @youngzil in #5249
- refactor(sql): align database ClusterName and NamespaceName fields lengths by @youngzil in #5263
- feat(biz): Added the value length limit function for AppId-level configuration items by @youngzil in #5264
- chore: typo fix by @arrow1991 in #5272
- fix: keep clusters order in envclusters openapi by @uucloud in #5277
- Bump com.thoughtworks.xstream:xstream from 1.4.20 to 1.4.21 to fix CVE-2024-47072 by @nisiyong in #5280
- Create quick-start-btpanel.md by @bestlaw66 in #5274
- feat: highlight diffs for properties by @WTIFS in #5282
- Feature/openapi rate limit function by @youngzil in #5267
- feat: add JSON format button in apollo-portal by @WTIFS in #5287
- add missing url patterns for AdminServiceAuthenticationFilter by @nobodyiam in #5291
- upgrade cache action version by @nobodyiam in #5297
- support java.time.Instant serialization with gson by @nobodyiam in #5298
- Code style-Optimize some code structures to improve readability by @youngzil in #5293
- Add usage instructions for multiple appid in the Apollo client by @TerryLam2010 in #5295
- typo: portal access admin service by @liubingyan127 in #5305
- [Docs]OSPP-Add more observability in apollo config client by @Rawven in #5229
- docs(charts): 更新 Helm chart 包和索引 by @lambda-hj in #5310
- Feat(Auth): Authorization by Env Cluster by @BlackBear2003 in #5302
- optimize: pre check dataChangeCreatedBy in updateItem by @k8scat in #5316
- fix apollo-on-kubernetes link by @nobodyiam in #5317
- feat: Email notification when releasing by OpenAPI by @BlackBear2003 in #5324
Installation
Please refer to the Distributed Deployment Guide.
How to upgrade from v2.3.0 to v2.4.0
- Apply apolloconfigdb-v230-v240.sql to ApolloConfigDB
- Apply apolloportaldb-v230-v240.sql to ApolloPortalDB
- Deploy v2.4.0 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal
New Contributors
- @youngzil made their first contribution in #5200
- @SnowOnion made their first contribution in #5220
- @xiaoxianhjy made their first contribution in #5182
- @dyx1234 made their first contribution in #5233
- @arrow1991 made their first contribution in #5272
- @uucloud made their first contribution in #5277
- @bestlaw66 made their first contribution in #5274
- @WTIFS made their first contribution in #5282
- @TerryLam2010 made their first contribution in #5295
- @liubingyan127 made their first contribution in #5305
- @Rawven made their first contribution in #5229
- @lambda-hj made their first contribution in #5310
- @k8scat made their first contribution in #5316
Apollo 2.3.0 Release
Highlights
Simplified Local Startup
The entire Apollo server system can now be launched in a single process without needing a MySQL server. For further details, refer to II. Local startup.
What's Changed
- bump version to 2.3.0-SNAPSHOT by @nobodyiam in #5049
- adjust the sql a little bit so that ddl is before dml by @nobodyiam in #5050
- Fix circular references on LdapAutoConfiguration by @BlackBear2003 in #5055
- docs: openapi 3.2.17 Create App And grant administrative privileges by @Anilople in #5046
- Change Copy Right year to 2024 by @shoothzj in #5064
- Add comment for clusters and UI display by @BlackBear2003 in #5072
- build(deps): bump com.google.guava:guava from 31.1-jre to 32.0.0-jre by @dependabot in #5039
- Fix the issue that the length of private namespaces are mis-calculated by @nobodyiam in #5078
- Refine the description of the environment name by @klboke in #5082
- docs: refactor-docs-structure by @nisiyong in #5084
- docs: fix sdk dead links by @nisiyong in #5086
- apollo assembly optimization by @vdiskg in #5035
- fix config import on windows by @vdiskg in #5088
- fix the apollo version logic by reading the server version instead of the apollo-core version by @nobodyiam in #5105
- build: bump org.postgresal:postgresal from 42.5.3 to 42.7.2 by @shoothzj in #5112
- ci: add convertional commit lint by @shoothzj in #5111
- update the quick start doc to reflect the latest changes by @nobodyiam in #5116
- feat: Portal module RestTemplate supports configuring ConnectionTimeToLive by @larry4xie in #5121
- feat: update the config item table column width by @liaozan in #5131
- sync apollo portal server config to apollo quick start server by @nobodyiam in #5134
- Beautify Portal TraceLog UI interface by @BlackBear2003 in #5149
- Fix the role permission deletion issue when appid contains '_' by @nobodyiam in #5150
- Fix npe of audit log get operator by @BlackBear2003 in #5153
- fix: -XX:HeapDumpPath doesn't ready when meet OOM by @Anilople in #5157
- Fix the release retention error by @nobodyiam in #5162
- fix: assign roles to owner instead of operator by @Lin-1997 in #5191
- add namespaces check in synchronization configuration feature by @nobodyiam in #5192
Installation
Please refer to the Distributed Deployment Guide.
How to upgrade from v2.2.0 to v2.3.0
- Apply apolloconfigdb-v220-v230.sql to ApolloConfigDB
- Deploy v2.3.0 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal
New Contributors
- @larry4xie made their first contribution in #5121
- @Lin-1997 made their first contribution in #5191
Apollo 2.2.0 Release
Highlights
Support for H2 Database
Apollo now supports the H2 database, ideal for rapid deployment scenarios. For further details, refer to PR #4851.
Release Histories Retention
Users can now adjust how many release histories to keep for each namespace, reducing the risk of too many histories overloading the database. For more info, please see the documentation.
Log Directory Relocated to /opt/logs
The log files for Apollo ConfigService, AdminService, and Portal are now all in /opt/logs, instead of in separate folders like /opt/logs/10003171, /opt/logs/10003172, and /opt/logs/10003173.
Create Applications with OpenAPI
Open API consumer tokens now include a flag indicating permission to create applications. When set to 'yes', users are enabled to create applications using the consumer token through the Open API.
Grayscale Functionality for Non-Properties Namespaces
Grayscale release is now enabled for non-properties namespaces, such as YAML and JSON.
Audit Log for Administrators
Administrators now have access to detailed audit logs via the Audit Log feature located in the Admin Tools section.
What's Changed
- fix: PULL_REQUEST_TEMPLATE.md old url by @weiyichao in #4726
- bump version to 2.2.0-SNAPSHOT by @nobodyiam in #4721
- Fix apolloconfigdb.sql apolloportaldb.sql AppId length settings are inconsistent by @weiyichao in #4725
- Bump springcloud springboot version to solve cve problems by @shoothzj in #4712
- add a note to reboot to make the config effective by @nobodyiam in #4740
- docs: how to custom service uri when use database-discovery by @Anilople in #4743
- Bump h2 version to 2.x, consistent with springboot by @shoothzj in #4745
- mysql-connector-java has been renamed to mysql-connector-j by @shoothzj in #4748
- Bump springboot version from 2.7.8 to 2.7.9 by @shoothzj in #4750
- [Multi-Database Support] Without Reliance on globally_quoted_identifiers Variable by @shoothzj in #4749
- Change Copy Right year to 2023 by @shoothzj in #4753
- [Multi-Database Support] Remove unused datasource configs by @shoothzj in #4754
- [Multi-Database Support] Without Reliance on boolean integer compare by @shoothzj in #4757
- [Multi-Database Support] Move mysql specify config to github profile by @shoothzj in #4760
- [Multi-Database Support] package postgre h2 dependency] by @shoothzj in #4763
- Make ConfigsExportServiceTest support windows by @shoothzj in #4765
- [Multi-Database Support] Optimize table case sensitivity by @shoothzj in #4768
- Fix OIDC logout unnecessary redirect by @vdiskg in #4773
- [Multi-Database Support] Introduce h2 postgre profile properties to let user config database config by @shoothzj in #4766
- [Multi-Database Support] Optimize column define case sensitivity by @shoothzj in #4776
- [Multi-Database Support][pg] Where clause need escape, otherwise will request postgre use lowwer case by @shoothzj in #4780
- style: change homepage leftbar font color by @nisiyong in #4781
- Update the documentation description for "config-service.cache.enabled" by @klboke in #4785
- [dependecy] misc dependency updates by @shoothzj in #4784
- Remove unused travis profile by @shoothzj in #4788
- Optimising ServiceRegistry creation SQL by @klboke in #4792
- Remove unused testing log config by @shoothzj in #4789
- Fix the problem that the deletion failure of the system rights management page does not prompt by @klboke in #4803
- Fix the issue of the system permission management page retrieving non-existent users. by @klboke in #4802
- add version notice for other service registry support by @nobodyiam in #4786
- Refining the configs interface documentation by @klboke in #4804
- remove unused propery ctrip.appid by @shoothzj in #4795
- Optimize the logic of DatabaseMessageSender. by @klboke in #4809
- Improve the documentation for the config-service.cache.enabled configuration property. by @klboke in #4810
- Refactor the createCommit method by @klboke in #4811
- Refactor NotFoundException、BadRequestException by @klboke in #4812
- [Multi-Database Support][pg] Make JdbcUserDetailsManager compat with postgre by @shoothzj in #4790
- Add release history cleaning function by @klboke in #4813
- Remove the usage of Env.name() using Env.getName() by @shoothzj in #4816
- [doc] Refresh the quick-start script link by @shoothzj in #4819
- [Clean code] Remove unused imports by @shoothzj in #4825
- Correct the test semantics of the test case in ItemSetControllerTest by @klboke in #4823
- Refactor the code related to ReleaseMessage by @klboke in #4822
- refactor(apollo-biz): Use constructor injection instead of field injection by @klboke in #4826
- Fix the issue of case sensitivity when matching keys with cache enabled by @klboke in #4820
- Remove the slf4j-api version define by @shoothzj in #4838
- refactor(apollo logging): Simplify the default log path to /opt/logs by @klboke in #4833
- feat: check port use by another process or not when startup by @Anilople in #4656
- Bump springboot from 2.7.9 to 2.7.11 by @shoothzj in #4828
- [Multi-Database Support][h2] Support run on h2 by @shoothzj in #4851
- add Shoothzj as a new committer by @nobodyiam in #4865
- docs:deployment-architecture by @jiaoningbo in #4876
- Fix the issue that env special case handling is missing in some case by @nobodyiam in #4887
- docs: polish secret key implementation description by @nisiyong in #4897
- add ai qa bot by @nobodyiam in #4908
- Fix the issue that clear content when paste the same content in namespace by @BlueSodaWater in #4922
- fix the issue that the ai qa bot could not be accessed with http by @nobodyiam in #4923
- upgrade docsify version to fix potential xss vulnerability by @nobodyiam in #4939
- Add CodeQL workflow by @jorgectf in #4924
- feat(openapi): allow user create app via openapi by @Anilople in #4954
- Support grayscale feature for non-properties namespaces(#4316) by @ywy-github in #4952
- fix button value and diff code by @ywy-github in #4981
- fix image path error by @klboke in #4979
- fix flaky test issue 4997 by @ThugJudy in #4998
- feat: Add apollo audit log common solution backend by @BlackBear2003 in #4985
- Apply audit log functions to portal using audit-log module by @BlackBear2003 in #5008
- build(deps): bump ch.qos.logback:logback-classic from 1.2.0 to 1.3.12 by @dependabot in #5026
- Fix method reflection bug by @BlackBear2003 in #5030
- rename the init.h2.sql to avoid loading wrong files in quick start mode by @nobodyiam in https://github.com/apol...
Apollo 2.1.0 Release
Highlights
Admin Tools Enhancement
User management enhancement
The user management page now has a list view of all users and administrators can easily find a specific user to edit.

System configuration enhancement
The system configuration page now has a list view of all configuration items of PortalDB as well as ConfigDB. Administrators can easily find a specific configuration item to edit.
Open platform authorization management enhancement
The open platform authorization management page now has a list view of third-party apps and administrators can easily find a specific app to grant permission.

Basic Types for Item
Users can now config the types of the item and apollo would do a basic type check based on the type.
The types available now are String(default), Number, Boolean, and JSON.

Non-properties Namespaces Comparison Feature
The comparison feature for non-properties namespaces is now available.

Support Database as the Service Registry for apollo-configservice and apollo-adminservice
Apollo now supports the use of database as the service registry, without relying on a third-party service registry such as eureka.
See database-discovery for more information.
What's Changed
Features
- Optimize Spring-Security Firewall Deny Request Response 400 by @klboke in #4428
- Allow users to associate multiple public namespaces at a time by @falser101 in #4437
- Optimize the UI experience of open platform authorization management by @klboke in #4436
- Add search key when comparing Configuration items by @falser101 in #4459
- Add a new API to load items with pagination by @mghio in #4468
- A user-friendly user management page for apollo portal by @zcy1010 in #4464
- Switching spring-session serialization mode to json for compatibility with spring-security version updates by @klboke in #4484
- Sort Namespaces acquired by multiple threads by @klboke in #4500
- Allow users to delete AppNamespace by @klboke in #4499
- Add configuration processor for portal developers by @vdisk-group in #4521
- Add a potential json value check feature by @AbnerHuang2 in #4519
- Support non-properties-diff by @SunnyBoy-WYH in #4533
- Add an option to custom oidc userDisplayName by @vdisk-group in #4507
- Add basic type check for Item value by @furaul in #4542
- A user-friendly config management page for apollo portal by @webSue in #4592
- Support use database as a registry by @Anilople in #4595
- Users can change spring.profiles.active's value without rebuild project by @Anilople in #4616
- Enable login authentication for eureka by @nobodyiam in #4663
- Portal-UI adds server config configuration management of ApolloConfigDB by @klboke in #4680
Bug fixes
- Fix: occur a 400 error request when openapi key's parameter contain "a[0]" by @CalebZYC in #4424
- Upgrade mysql-connector-java version to fix possible transaction rollback failure issue by @klboke in #4425
- Fix 'openjdk:8-jre-alpine' potentially causing wrong number of cpu cores by @klboke in #4475
- Fix overwrite JSON type configuration being empty by @falser101 in #4486
- Fix deleted at timestamp by @nobodyiam in #4493
- Fix openapi item with url illegalKey 400 error by @AbnerHuang2 in #4549
- Fix
@Transactionalinvalid cases by @ksice in #4551 - Fix the exception occurred when publish/rollback namespaces with grayrelease by @nobodyiam in #4564
- Fix a json serialization problem during LDAP integration by @klboke in #4556
- Fix Apollo checks the yaml format interface Response Code = 500 by @klboke in #4567
- Fix create namespace with single dot 500 error by @AbnerHuang2 in #4568
- Fix(sec): upgrade fastjson to 1.2.83 by @ren-jq101 in #4587
- Fix get the openapi interface that contains namespace information for deleted items by @CalebZYC in #4596
- Disable spring cloud discovery when running test to speed up test process and reduce error log by @wutingjia in #4604
- Fix Grayscale release Item Value length limit can not be synchronized with its main version by @David-zhang-beep in #4622
- Fix the problem of deleting blank items appear at the end by @wanggang19 in #4662
Misc
- Remove database migration tool Flyway by @nisiyong in #4361
- Refactor: replace expired method by @zhangyangx in #4429
- Some Redundancy Code Cleanup by @HeavenTonight in #4433
- Refactor: Simplify the code by @zhangyangx in #4435
- Chore: fix stargazer chart with star-history.com by @tianzhou in #4441
- Clean up Ctrip related codes by @klboke in #4448
- Clean up deserted travis ci config by @HeavenTonight in #4450
- Move apollo-demo, scripts/docker-quick-start and scripts/apollo-on-kubernetes out of main repository by @nobodyiam in #4440
- Optimize apolloconfigdb-v190-v200-after.sql by @klboke in #4470
- Optimize performance of '/apps/{appId}/envs/{env}/clusters/{clusterName}/namespaces' interface queries by @klboke in #4473
- Fix test case NamespaceServiceTest.testFindNamespace() by @klboke in #4491
- Refactor(apollo-biz): simplify the code of ReleaseService by @mghio in #4502
- Replace the deprecated SHA-1 algorithm for generating open-api token by @mghio in #4504
- Refactor ItemSetService(updateSet Item) and ConfigChangeContentBuilder a little bit by @mghio in #4515
- Refactor tryToGetClientIp method by @klboke in #4514
- Fix transcation invalid by @ksice in #4509
- Refactor: Simplify code by @mghio in #4524
- Update apollo-introduction.md by @ddzyan in #4534
- Add index for table ReleaseHistory by @mghio in #4550
- Refactoring the message splicing of internal Exceptions by @klboke in #4571
- Fix: add missing @OverRide annotation for ApolloEurekaClientConfig#getEurekaServerServiceUrls by @CalebZYC in #4575
- Add overloaded shortcut method to register BeanDefinition by @liaozan in #4574
- Docs: misspelled recommend by @llnancy in #4582
- Docs: add a version notice in the Open API documentation by @mghio in #4585
- Docs: add nodejs client sdk by @ChoGathK in #4590
- Move apollo-core, apollo-client, apollo-mockserver, apollo-openapi and apollo-client-config-data to apollo-java repo by @nobodyiam in #4594
- Fix doc bug by @lepdou in #4579
- Fixes testUpdateBranchGrayRulesWithUpdateOnce by @ZhewenFu in #4599
- Fix flaky test in apollo-biz by @anantdahiya8 in #4618
- Docs: fix markdown code blocks by change 4 back quote to 3 back quote by @hxpdong in #4631
- Refa...
Apollo 2.0.1 Release
What's Changed
Bug fixes
- upgrade spring boot version to fix the search user failed issue by @nobodyiam in #4366
- fix search user duplication issue by @nobodyiam in #4371
- Fix the npe issue for old version of gray release rules by @nobodyiam in #4382
- fix the delete appnamespace failed issue by @nobodyiam in #4388
Misc
- Bump gson from 2.8.0 to 2.8.9 by @dependabot in #4364
- Bump okhttp3 from 3.11.0 to 4.9.3 by @shoothzj in #4392
Installation
Please refer Distributed Deployment Guide.
How to upgrade from v2.0.0 to v2.0.1
There is no schema change between v2.0.0 and v2.0.1
So simply deploy v2.0.1 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal
Apollo 2.0.0 Release
Highlights
Java 17 Support
Apollo now supports Java Runtime Environment 8, 11, and 17 for both clients and servers.
Public Namespaces List View
A public namespaces list view is added to the apollo homepage, users could now view and search public namespaces.
Grayscale Label Support
Grayscale rules now support matching with labels for scenarios where IP is not fixed, e.g. Kubernetes.
For more information on how to use this feature, please refer apollo user guide.
Enhanced Config Export/Import
The batch config export/import feature is enhanced.
The export/import feature is also enabled for each namespace.
Unique Constraint Index
Previously, Apollo doesn't have unique constraint indices due to the soft delete design. However, there might be problems in concurrent situations. With the new DeletedAt columns, unique indices are added for most of the tables. There are some manual steps for existing users to upgrade.
Breaking Changes
As was discussed in #3896, apollo-client drops java 1.7 support since the 2.0.0 release. The minimum Java runtime environment is 1.8(for both client and server).
What's Changed
Features
- switch apollo.config-service log from warning to info level by @lonre in #3884
- Make Access Key Timestamp check configurable by @nisiyong in #3908
- refactor: let open api more easier to use and development by @Anilople in #3943
- feat(scripts): use bash to call openapi by @Anilople in #3980
- support search by item by @lepdou in #3977
- feature: implement password policies to avoid weak passwords by @WillardHu in #4008
- public namespace basic function by @youabcd in #3850
- Extend the gray release capability to support dimensions other than IP by @zcy1010 in #4013
- bump to 2.0.0 and drop java 1.7 support by @nobodyiam in #4015
- feat: add a shortcut to scroll to the top in the dashboard by @NICEXAI in #4045
- change scrollbar css by @zeemood in #3925
- support java 17 by @nobodyiam in #4060
- optimize navbar style by @lepdou in #4073
- add language.png icon by @lepdou in #4074
- support export import config by env by @lepdou in #3947
- support only show difference keys when compare namespace by @lepdou in #4165
- add zookeeper service discovery support(#3557) by @CalebZYC in #4119
- bump guava version to 31.0.1 by @shoothzj in #4182
- Bump client springboot version by @shoothzj in #4189
- The release history of namespaces that are not properties will also show comments and release times by @klboke in #4198
- Allow disable apollo client cache by @shoothzj in #4199
- feature: isCommonlyUsed password check not hardcoded #4018 by @WillardHu in #4207
- canonical zh-cn text by @lepdou in #4214
- optimize create namespace page by @lepdou in #4213
- Add Ordered interface to ProviderManager SPI by @darcydai in #4218
- Bump xstream from 1.4.18 to 1.4.19 by @dependabot in #4223
- Using commons-lang3 to replace commons-lang by @ruanwenjun in #4225
- optimize import/export config by @lepdou in #4231
- Configure publish and rollback modal boxes to add scrollbars by @klboke in #4251
- add custom define discovery by @gy09535 in #4266
- Refactor the soft delete design by @nisiyong in #3866
- upgrade spring boot to 2.6.6 and spring cloud to 2021.0.1 by @nobodyiam in #4295
- upgrade mysql-connector-java to 8.0.28 by @Anilople #4308
- Upgrade flyway to 8.0.5 by @shoothzj #4312
- Broadcast ConfigChangeEvent using Spring ApplicationEvent @nobodyiam #4305
Bug fixes
- Fix issue that the $ symbol is not used when reading shell variables by @ReganHe93 in #3890
- Fix issue: ingress syntax by @lijiansgit in #3933
- fix helm scripts BUG by @w-a-n-g-s-h-u-n in #4054
- Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load by @nobodyiam in #4097
- fix gray publish refresh item status(#4039) by @CalebZYC in #4128
- Fix the issue that property placeholder doesn't work for dubbo reference beans by @lonre in #4175
- Fix the NPE occurred when using EnableApolloConfig with Spring 3.1.1 by @nobodyiam in #4180
- fix the json number display issue when it's longer than 16 by @CalebZYC in #4183
- fix update user password failure bug by @lepdou in #4212
- Fix bug: associated namespace display incorrect in text view by @darcydai in #4219
- fix import config bug by @lepdou in #4262
- fix the potential data inconsistency issue by @nobodyiam in #4256
- use item.isDeleted to check whether the item is deleted by @nobodyiam in #4279
- Fix the apollo portal start failed issue by @nobodyiam in #4298
Misc
- remove ctrip profile by @JaredTan95 in #3920
- Remove spring dependencies from internal code by @klboke in #3937
- remove ctrip profile dependency. by @Accelerator96 in #3951
- fix gpg signing issues when deploying to maven repository with github action by @nobodyiam in #3950
- Fixed some code smells in apollo-portal module by @WillardHu in #3968
- clean ctrip profile by @JaredTan95 in #3971
- Fixed some code smells in apollo-portal module #2 by @WillardHu in #3974
- fix NullPointerException hazard in StringUtils.join(..) method by @WillardHu in #3983
- Replace String.format() with newly created class OpenApiPathBuilder by @WillardHu in #3982
- Make the constructor of AbstractApolloHttpException implementation class to support string template by @WillardHu in #3999
- Removed useless hardcoded Strings in
EnvUtils. by @DiegoKrupitza in #4007 - chore: Simplified the
Envclass in apollo-portal that links toEnvenum in apollo-core by @DiegoKrupitza in #4011 - Chore: Future-proofed
ConfigFileFormatby @DiegoKrupitza in #4030 ConfigFileFormat#Propertiesare now fully compatible with themselves by @DiegoKrupitza in #4033- Fix flaky test testGetPropertyNames. by @yyfMichaelYan in #4082
- Fix flaky test testAssembleQueryConfigUrl. by @yyfMichaelYan in #4083
- Update RelativeDateFormat.java by @xuxiawei in #4111
- chore: change 'ctripcorp' to 'apolloconfig' in .yaml files by @void1104 in #4112
- Flaky test fields iteration order by @yyfMichaelYan in #4095
- test(apollo-core): PropertiesUtilTest by @youyulan in #4113
- optimization omits unnecessary time conversion by @xuxiawei in #4118
- Split helm chart into another repo by @JaredTan95 in #4125
- refactor: SpringValueProcesso...
Apollo 2.0.0-RC1 Release
Highlights
Java 17 Support
Apollo now supports Java Runtime Environment 8, 11, and 17 for both clients and servers.
Public Namespaces List View
A public namespaces list view is added to the apollo homepage, users could now view and search public namespaces.
Grayscale Label Support
Grayscale rules now support matching with labels for scenarios where IP is not fixed, e.g. Kubernetes.
For more information on how to use this feature, please refer apollo user guide.
Enhanced Config Export/Import
The batch config export/import feature is enhanced.
The export/import feature is also enabled for each namespace.
Unique Constraint Index
Previously, Apollo doesn't have unique constraint indices due to the soft delete design. However, there might be problems in concurrent situations. With the new DeletedAt columns, unique indices are added for most of the tables. There are some manual steps for existing users to upgrade.
Breaking Changes
As was discussed in #3896, apollo-client drops java 1.7 support since the 2.0.0 release. The minimum Java runtime environment is 1.8(for both client and server).
What's Changed
Features
- switch apollo.config-service log from warning to info level by @lonre in #3884
- Make Access Key Timestamp check configurable by @nisiyong in #3908
- refactor: let open api more easier to use and development by @Anilople in #3943
- feat(scripts): use bash to call openapi by @Anilople in #3980
- support search by item by @lepdou in #3977
- feature: implement password policies to avoid weak passwords by @WillardHu in #4008
- public namespace basic function by @youabcd in #3850
- Extend the gray release capability to support dimensions other than IP by @zcy1010 in #4013
- bump to 2.0.0 and drop java 1.7 support by @nobodyiam in #4015
- feat: add a shortcut to scroll to the top in the dashboard by @NICEXAI in #4045
- change scrollbar css by @zeemood in #3925
- support java 17 by @nobodyiam in #4060
- optimize navbar style by @lepdou in #4073
- add language.png icon by @lepdou in #4074
- support export import config by env by @lepdou in #3947
- support only show difference keys when compare namespace by @lepdou in #4165
- add zookeeper service discovery support(#3557) by @CalebZYC in #4119
- bump guava version to 31.0.1 by @shoothzj in #4182
- Bump client springboot version by @shoothzj in #4189
- The release history of namespaces that are not properties will also show comments and release times by @klboke in #4198
- Allow disable apollo client cache by @shoothzj in #4199
- feature: isCommonlyUsed password check not hardcoded #4018 by @WillardHu in #4207
- canonical zh-cn text by @lepdou in #4214
- optimize create namespace page by @lepdou in #4213
- Add Ordered interface to ProviderManager SPI by @darcydai in #4218
- Bump xstream from 1.4.18 to 1.4.19 by @dependabot in #4223
- Using commons-lang3 to replace commons-lang by @ruanwenjun in #4225
- optimize import/export config by @lepdou in #4231
- Configure publish and rollback modal boxes to add scrollbars by @klboke in #4251
- add custom define discovery by @gy09535 in #4266
- Refactor the soft delete design by @nisiyong in #3866
- upgrade spring boot to 2.6.6 and spring cloud to 2021.0.1 by @nobodyiam in #4295
- upgrade mysql-connector-java to 8.0.28 by @Anilople #4308
Bug fixes
- Fix issue that the $ symbol is not used when reading shell variables by @ReganHe93 in #3890
- Fix issue: ingress syntax by @lijiansgit in #3933
- fix helm scripts BUG by @w-a-n-g-s-h-u-n in #4054
- Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load by @nobodyiam in #4097
- fix gray publish refresh item status(#4039) by @CalebZYC in #4128
- Fix the issue that property placeholder doesn't work for dubbo reference beans by @lonre in #4175
- Fix the NPE occurred when using EnableApolloConfig with Spring 3.1.1 by @nobodyiam in #4180
- fix the json number display issue when it's longer than 16 by @CalebZYC in #4183
- fix update user password failure bug by @lepdou in #4212
- Fix bug: associated namespace display incorrect in text view by @darcydai in #4219
- fix import config bug by @lepdou in #4262
- fix the potential data inconsistency issue by @nobodyiam in #4256
- use item.isDeleted to check whether the item is deleted by @nobodyiam in #4279
- Fix the apollo portal start failed issue by @nobodyiam in #4298
Misc
- remove ctrip profile by @JaredTan95 in #3920
- Remove spring dependencies from internal code by @klboke in #3937
- remove ctrip profile dependency. by @Accelerator96 in #3951
- fix gpg signing issues when deploying to maven repository with github action by @nobodyiam in #3950
- Fixed some code smells in apollo-portal module by @WillardHu in #3968
- clean ctrip profile by @JaredTan95 in #3971
- Fixed some code smells in apollo-portal module #2 by @WillardHu in #3974
- fix NullPointerException hazard in StringUtils.join(..) method by @WillardHu in #3983
- Replace String.format() with newly created class OpenApiPathBuilder by @WillardHu in #3982
- Make the constructor of AbstractApolloHttpException implementation class to support string template by @WillardHu in #3999
- Removed useless hardcoded Strings in
EnvUtils. by @DiegoKrupitza in #4007 - chore: Simplified the
Envclass in apollo-portal that links toEnvenum in apollo-core by @DiegoKrupitza in #4011 - Chore: Future-proofed
ConfigFileFormatby @DiegoKrupitza in #4030 ConfigFileFormat#Propertiesare now fully compatible with themselves by @DiegoKrupitza in #4033- Fix flaky test testGetPropertyNames. by @yyfMichaelYan in #4082
- Fix flaky test testAssembleQueryConfigUrl. by @yyfMichaelYan in #4083
- Update RelativeDateFormat.java by @xuxiawei in #4111
- chore: change 'ctripcorp' to 'apolloconfig' in .yaml files by @void1104 in #4112
- Flaky test fields iteration order by @yyfMichaelYan in #4095
- test(apollo-core): PropertiesUtilTest by @youyulan in #4113
- optimization omits unnecessary time conversion by @xuxiawei in #4118
- Split helm chart into another repo by @JaredTan95 in #4125
- refactor: SpringValueProcessor extract duplicate code by @mghio in #4137
- build: ctripcorp -> apolloconfig in .github/workflows/cla.yml by @Fool-coder in https://github.com/apolloconfig/apollo/p...
Apollo v1.9.2 release
Enhancements
- Update xstream version to 1.4.18 #4177
Bug fixes
- Fix the issue that property placeholder doesn't work for dubbo reference beans #4161 #4169
- Fix the NPE occurred when using EnableApolloConfig with Spring 3.1.1 #4179
- Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load #4187
Credits
Installation
Please refer Distributed Deployment Guide
How to upgrade from v1.9.1 to v1.9.2
There is no schema change between v1.9.1 and v1.9.2
So simply deploy v1.9.2 executables with the following sequences:
- apollo-configservice
- apollo-adminservice
- apollo-portal









