stevenzwu commented on code in PR #18503:
URL: https://github.com/apache/iceberg/pull/18503#discussion_r4291313417
##########
format/spec.md:
##########
@@ -1470,9 +1474,18 @@ Keys used for table encryption can be tracked in table
metadata as a list named
| | | _optional_ | **`encrypted-by-id`** | `string`
| Optional ID of the key used to encrypt or wrap `key-metadata` |
| | | _optional_ | **`properties`** | `map<string,
string>` | A string to string map of additional metadata used by the table's
encryption scheme |
+=== "v4"
Review Comment:
isn't the v4 tab same as v1-v3?
##########
format/spec.md:
##########
@@ -1470,9 +1474,18 @@ Keys used for table encryption can be tracked in table
metadata as a list named
| | | _optional_ | **`encrypted-by-id`** | `string`
| Optional ID of the key used to encrypt or wrap `key-metadata` |
| | | _optional_ | **`properties`** | `map<string,
string>` | A string to string map of additional metadata used by the table's
encryption scheme |
+=== "v4"
+ | v4 | Field name | Type |
Description |
+ | ----------
|-------------------------------|-----------------------|-------------|
+ | _optional_ | **`key-id`** | `string` | ID
of the encryption key [2] |
+ | _required_ | **`encrypted-key-metadata`** | `string` |
Encrypted key and metadata, base64 encoded [1] |
+ | _optional_ | **`encrypted-by-id`** | `string` |
Optional ID of the key used to encrypt or wrap `key-metadata` |
+ | _optional_ | **`properties`** | `map<string, string>` | A
string to string map of additional metadata used by the table's encryption
scheme |
+
Notes:
1. The format of encrypted key metadata is determined by the table's
encryption scheme and can be a wrapped format specific to the table's KMS
provider.
+2. `key-id` is required when a key is stored indirectly from the file it
encrypts, such as in the table metadata `encryption-keys` list. It is optional
when the key is stored directly on the encrypted file's metadata.
Review Comment:
> It is optional when the key is stored directly on the encrypted file's
metadata.
Is this accurate? I thought v4 encryption key is stored in the snapshot
metadata. Current sentence reads like the encryption key is stored in the
Parquet root manifest file's Parquet footer metadata.
##########
format/spec.md:
##########
@@ -1107,11 +1107,13 @@ A snapshot consists of the following fields:
| _required_ | **`sequence-number`** | A monotonically increasing
long that tracks the order of changes to a table |
| _required_ | **`timestamp-ms`** | A timestamp when the
snapshot was created, used for garbage collection and table inspection |
| _required_ | **`root-manifest`** | The location of the root
manifest for this snapshot |
+ | _required_ | **`file-size-in-bytes`** | Size of the root manifest
file in bytes |
| _required_ | **`summary`** | A string map that summarizes
the snapshot changes, including `operation` as a _required_ field (see below) |
| _optional_ | **`schema-id`** | ID of the table's current
schema when the snapshot was created |
| _required_ | **`first-row-id`** | The first `_row_id` assigned
to the first row in the first data file in the first manifest, see [Row
Lineage](#row-lineage) |
| _required_ | **`added-rows`** | The upper bound of the
number of rows with assigned row IDs, see [Row Lineage](#row-lineage) |
- | _optional_ | **`key-id`** | ID of the encryption key
that encrypts the root manifest key metadata |
+ | _optional_ | **`key-id`** | ID of the encryption key
that encrypts the manifest list key metadata (**Deprecated**: use
`encryption-key` instead) |
Review Comment:
this is the v4 tab. v4 snapshot doesn't reference manifest list file, can we
remove this field from the v4 tab?
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]