Repository navigation
feat(glue-alpha): new hasEncryptedData property - #38511
Conversation
Glue tables have a storage descriptor, in which certain properties may be configured. One of them is `has_encrypted_data`, that is used by Athena do handle encryption when the data is client-side encrypted (server side encrypted data is encrypted and decrypted transparently). Currently, in `S3Table` and `ExternalTable` this value is hard-coded to `true`. Although there is a way to override this value, it's incidental (by adding a `has_encrypted_data` to the free-form `parameters` property). Add a type safe `hasEncryptedData` property to `TableBaseProps`. This is now the only way to override this value. BREAKING CHANGE: a differing/tokenized `has_encrypted_data` supplied via `parameters` now throws.
✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.
| throw new ValidationError( | ||
| lit`HasEncryptedDataConflict`, | ||
| `the \`${key}\` table parameter is managed by the \`hasEncryptedData\` property; ` + | ||
| `remove it from \`parameters\` (got ${JSON.stringify(supplied)}, expected ${JSON.stringify(managed)})`, |
There was a problem hiding this comment.
Nit: ... remove it from parameters and use the official property instead.... I can see a scenario where someone just reads remove it from the parameters and doesnt add it back in the new prop, and if they had false in the parameters workaround, we will flip their decision
Updated error message to clarify usage of hasEncryptedData property.
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Merge Queue Status
This pull request spent 37 minutes 10 seconds in the queue, including 36 minutes 40 seconds running CI. Required conditions to merge
|
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |

Glue tables have a storage descriptor, in which certain properties may be configured. One of them is
has_encrypted_data, that is used by Athena do handle encryption when the data is client-side encrypted (server side encrypted data is encrypted and decrypted transparently).Currently, in
S3TableandExternalTablethis value is hard-coded totrue. Although there is a way to override this value, it's incidental (by adding ahas_encrypted_datato the free-formparametersproperty).Add a type safe
hasEncryptedDataproperty toTableBaseProps. This is now the only way to override this value.BREAKING CHANGE: a differing/tokenized
has_encrypted_datasupplied viaparametersnow throws.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license