MetadataLocalPropertiesTsfHeaderCompatibleTest was the only @SpringBootTest in
spring-cloud-tencent-commons without an inline web-application-type and gateway
auto configuration excludes. Because spring-webmvc and spring-cloud-gateway
(webflux) coexist on the test classpath, Boot deduced a servlet context and
GatewayClassPathWarningAutoConfiguration aborted startup with
MvcFoundOnClasspathException. Align the properties with MetadataLocalPropertiesTest.
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat: mask encrypted config values in SCT logs
Keep plaintext out of refresh and group-load logs by tracking encrypted keys and replacing values with length plus a per-process salted fingerprint.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: keep config fallback and polarisconfig endpoint usable
Serialize actuator polarisconfig as safe DTOs so ClientId is reachable, honor local-file-root-path for remote cache, and continue startup from existing cache when the config server is unreachable.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: attribute encrypted config by file for logs and ACK
Pass EffectiveValue.sourceFile to the SDK, register keys from ConfigKVFile.isEncrypted() on group add, and omit group DEBUG maps only when the composite file is encrypted.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: mark non-Polaris effective values as EXTERNAL
Tell the SDK that command-line and env overrides are not config-center files, so ACK can keep those effective values when an encrypted file is also watched.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(docs): 更新 CHANGELOG 链接至 PR 1818
Signed-off-by: evelynwei <evelynwei@tencent.com>
* refactor: hide test-only encrypted key set reset
Keep clearEncryptedPropertyKeys() package-private so it is not part of the public API.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Signed-off-by: evelynwei <evelynwei@tencent.com>
Co-authored-by: evelynwei <evelynwei@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat: support encoding and decoding TSF headers without TSF Consul
Allow TSF-Tags transfer on Polaris via spring.cloud.tencent.metadata.tsf-header-compatible so putTag still works when Consul is off.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore: fill changelog PR number 1816.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: centralize TSF header compatible check in TsfContextUtils
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: evelynwei <evelynwei@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
These artifacts are already packaged in polaris-all, and declaring them again pulls unshaded Jackson onto the classpath.
Co-authored-by: fishtailfu <fishtailfu@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Declare an explicit plugin version so Maven does not warn and resolve it from repository metadata.
Signed-off-by: Haotian Zhang <928016560@qq.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Pass the armored key as an environment variable and pipe it to gpg so the GitHub secret can keep real newlines.
Signed-off-by: Haotian Zhang <928016560@qq.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat: config effective
Signed-off-by: evelynwei <evelynwei@tencent.com>
* feat: expose config client id in polaris config endpoint
The config SDK context is created in the config-data phase, so its
startup logs may be dropped before the polaris log appenders are ready.
Exposing the client id via the endpoint gives tooling a reliable source
instead of grepping logs (the cloud verify script had to derive it from
the first SDKContext when no stream-establishment anchor log exists).
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Signed-off-by: evelynwei <evelynwei@tencent.com>
Co-authored-by: evelynwei <evelynwei@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: split contract base-package for springdoc scan
When @SpringBootApplication(scanBasePackages = {"a","b"}) declares multiple
packages, PackageUtil.scanPackage returns them joined by a comma. The previous
code passed the whole comma-joined string as a single package name to
GroupedOpenApi.Builder#packagesToScan, so springdoc matched no controller and
both the Polaris and TSF consoles showed an empty API list (the single-value
case happened to be a valid package name and thus worked).
Split the string by SPLITTER before handing it to packagesToScan so each
declared package reaches springdoc as an independent entry. Add unit tests
covering multi-value scanBasePackages, single-value regression, and the
comma-separated spring.cloud.polaris.contract.base-package property.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
* docs: update CHANGELOG for PR #1807
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
---------
Signed-off-by: Haotian Zhang <928016560@qq.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* test: add unit tests for ConfigurationModifier and fix TsfConsul report logic
- Disable report when only TsfConsul is enabled in ConfigurationModifier
- Add comprehensive unit tests for ConfigurationModifier
- Fix test issues with lenient mocking and localFile -> local datasource type
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
* fix: replace hardcoded IP 10.0.0.1 with 127.0.0.1 in tests
CI hardcoded IP detection rejects non-loopback IPs. Use 127.0.0.1 with
different ports to distinguish addresses in test cases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
* fix: replace leading spaces with tabs to pass checkstyle
Fix 11 lines with mixed tab+space indentation that violated
the RegexpSinglelineJava checkstyle rule.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
* fix: correct PR number in CHANGELOG from #1801 to #1802
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Haotian Zhang <928016560@qq.com>
---------
Signed-off-by: Haotian Zhang <928016560@qq.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>