diff --git a/polaris-core/src/main/resources/schemas/policies/system/data-compaction/2025-02-03.json b/polaris-core/src/main/resources/schemas/policies/system/data-compaction/2025-02-03.json index b452eb808f..f222d7c19e 100644 --- a/polaris-core/src/main/resources/schemas/policies/system/data-compaction/2025-02-03.json +++ b/polaris-core/src/main/resources/schemas/policies/system/data-compaction/2025-02-03.json @@ -2,13 +2,13 @@ "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", "$id": "https://polaris.apache.org/schemas/policies/system/data-compaction/2025-02-03.json", "title": "Data Compaction Policy", - "description": "Inheritable Polaris policy schema for Iceberg table data compaction.", + "description": "Inheritable Polaris policy schema for Iceberg table data compaction", "type": "object", "properties": { "version": { "type": "string", "const": "2025-02-03", - "description": "Schema version." + "description": "Schema version" }, "enable": { "type": "boolean", @@ -32,7 +32,7 @@ "target_file_size_bytes": 134217728, "compaction_strategy": "bin-pack", "max-concurrent-file-group-rewrites": 5, - "my-key": "my-value" + "key1": "value1" } } ] diff --git a/polaris-core/src/main/resources/schemas/policies/system/metadata-compaction/2025-02-03.json b/polaris-core/src/main/resources/schemas/policies/system/metadata-compaction/2025-02-03.json new file mode 100644 index 0000000000..d99dc396cd --- /dev/null +++ b/polaris-core/src/main/resources/schemas/policies/system/metadata-compaction/2025-02-03.json @@ -0,0 +1,37 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/metadata-compaction/2025-02-03.json", + "title": "Metadata Compaction Policy", + "description": "Inheritable Polaris policy schema for Iceberg table metadata compaction", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable metadata compaction." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Please note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "config": { + "spec_id": 1, + "key1": "value1" + } + } + ] +} diff --git a/polaris-core/src/main/resources/schemas/policies/system/orphan-file-removal/2025-02-03.json b/polaris-core/src/main/resources/schemas/policies/system/orphan-file-removal/2025-02-03.json new file mode 100644 index 0000000000..19f35deca3 --- /dev/null +++ b/polaris-core/src/main/resources/schemas/policies/system/orphan-file-removal/2025-02-03.json @@ -0,0 +1,50 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/orphan-file-removal/2025-02-03.json", + "title": "Orphan File Removal Policy", + "description": "Inheritable Polaris policy schema for Iceberg table orphan file removal", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable orphan file removal." + }, + "max_orphan_file_age_in_days": { + "type": "number", + "description": "Specifies the maximum age (in days) for orphaned files before they are eligible for removal." + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Specifies a list of custom directories to search for files instead of the default table location. Use with caution—if set to a broad location (e.g., s3://my-bucket instead of s3://my-bucket/my-table-location), all unreferenced files in that path may be permanently deleted, including files from other tables. Following best practices, tables should be stored in separate locations to avoid accidental data loss." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "max_orphan_file_age_in_days": 30, + "location": "s3://my-bucket/my-table-location", + "config": { + "prefix_mismatch_mode": "ignore", + "key1": "value1" + } + } + ] +} diff --git a/polaris-core/src/main/resources/schemas/policies/system/snapshot-retention/2025-02-03.json b/polaris-core/src/main/resources/schemas/policies/system/snapshot-retention/2025-02-03.json new file mode 100644 index 0000000000..dfd79e1979 --- /dev/null +++ b/polaris-core/src/main/resources/schemas/policies/system/snapshot-retention/2025-02-03.json @@ -0,0 +1,39 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/snapshot-retention/2025-02-03.json", + "title": "Snapshot Retention Policy", + "description": "Inheritable Polaris policy schema for Iceberg table snapshot retention", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable snapshot retention." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Please note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "config": { + "min_snapshot_to_keep": 1, + "max_snapshot_age_days": 2, + "max_ref_age_days": 3, + "key1": "value1" + } + } + ] +}