This is an automated email from the ASF dual-hosted git repository.
dimas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 595e689ef Do not serialize null properties in the management model
(#1955)
595e689ef is described below
commit 595e689ef0a500c175dbb1d572d38f412e9edc13
Author: Dmitri Bourlatchkov <[email protected]>
AuthorDate: Mon Jun 30 16:20:28 2025 -0400
Do not serialize null properties in the management model (#1955)
* Ignore null values in JSON output
* This may have an impact on existing client, but it is not
likely to be substantial because normally absent properties
should be treated the same as having `null` values.
* This change enables adding new optional fields to the
Management API while maintaining backward compatibility in
the future: New properties will not be exposed to clients
unless a value for them in explicitly set.
---
api/management-model/build.gradle.kts | 4 ++++
.../apache/polaris/core/admin/model/CatalogSerializationTest.java | 6 ------
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/api/management-model/build.gradle.kts
b/api/management-model/build.gradle.kts
index ec78abe5d..c6c808f81 100644
--- a/api/management-model/build.gradle.kts
+++ b/api/management-model/build.gradle.kts
@@ -56,6 +56,10 @@ openApiGenerate {
additionalProperties.put("apiNamePrefix", "Polaris")
additionalProperties.put("apiNameSuffix", "Api")
additionalProperties.put("metricsPrefix", "polaris")
+ additionalProperties.put(
+ "additionalModelTypeAnnotations",
+
"@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)",
+ )
serverVariables = mapOf("basePath" to "api/v1")
}
diff --git
a/api/management-model/src/test/java/org/apache/polaris/core/admin/model/CatalogSerializationTest.java
b/api/management-model/src/test/java/org/apache/polaris/core/admin/model/CatalogSerializationTest.java
index 4648567bf..3620da417 100644
---
a/api/management-model/src/test/java/org/apache/polaris/core/admin/model/CatalogSerializationTest.java
+++
b/api/management-model/src/test/java/org/apache/polaris/core/admin/model/CatalogSerializationTest.java
@@ -66,14 +66,8 @@ public class CatalogSerializationTest {
"{\"type\":\"INTERNAL\","
+ "\"name\":\"test-catalog\","
+ "\"properties\":{\"default-base-location\":\"s3://test/\"},"
- + "\"createTimestamp\":null,"
- + "\"lastUpdateTimestamp\":null,"
- + "\"entityVersion\":null,"
+ "\"storageConfigInfo\":{"
+ "\"roleArn\":\"arn:aws:iam::123456789012:role/test-role\","
- + "\"externalId\":null,"
- + "\"userArn\":null,"
- + "\"region\":null,"
+ "\"storageType\":\"S3\","
+ "\"allowedLocations\":[]"
+ "}}");