lasdf1234 opened a new pull request, #13204:
URL: https://github.com/apache/gravitino/pull/13204
### What changes were proposed in this pull request?
This PR registers official Gravitino cloud-storage and credential-vending
property keys in `PropertiesMetadata`, so the server no longer treats them as
undeclared user properties.
**A. Shared cloud metadata**
- Expand `S3PropertiesMetadata`, `OSSPropertiesMetadata`, and
`AzurePropertiesMetadata` with non-secret credential-config keys (endpoint,
region, role ARN, external ID, etc.).
- Add `COSPropertiesMetadata` for Tencent COS credential-config keys.
- Add `s3/oss/cos/adls-token-expire-in-secs` to
`CredentialConfig.CREDENTIAL_PROPERTY_ENTRIES`.
**B. Catalog metadata merges**
- Merge `CredentialConfig.CREDENTIAL_PROPERTY_ENTRIES` into Iceberg, Hive,
and Paimon catalog properties metadata.
- Merge missing Azure/GCS shared metadata into Paimon.
**Tests**
- Add `TestCloudPropertiesMetadata` in `core`.
- Extend `TestPaimonCatalogPropertiesMetadata` for credential and Azure keys.
**Note:** The fuzzy-masking rule change (`isSensitivePropertyKey` only when
`!metadata.containsProperty(key)`) belongs to PR #12983 and is intentionally
not included here because it is not on `main` yet. Once #12983 lands, declared
keys from this PR will automatically skip fuzzy masking.
### Why are the changes needed?
Official property keys defined in constants/docs were missing from
`PropertiesMetadata`. Undeclared keys either bypass metadata-based masking or,
with fuzzy masking (#12983), get incorrectly masked in `properties()` —
breaking the Web UI catalog edit flow for keys like `credential-providers`,
`azure-storage-account-name`, and `s3-token-expire-in-secs`.
Fix: #13203
### Does this PR introduce _any_ user-facing change?
Yes, but only in masking/visibility behavior:
1. Official non-secret cloud/credential keys are now declared and remain
visible in `properties()` responses.
2. Secret keys continue to be masked via the existing `hidden` flag.
3. No property keys are added or removed from catalogs — only metadata
registration.
### How was this patch tested?
1. Added unit tests:
- `./gradlew :core:test --tests
org.apache.gravitino.cloud.storage.TestCloudPropertiesMetadata -PskipITs`
- `./gradlew :catalogs:catalog-lakehouse-paimon:test --tests
org.apache.gravitino.catalog.lakehouse.paimon.TestPaimonCatalogPropertiesMetadata
-PskipITs`
2. `./gradlew spotlessApply`
Made with [Cursor](https://cursor.com)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]