Skip to content

docs: update for GA #281

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,56 @@
# Changelog

## 3.0.0 2023-07-24

### Features
- Updates to the AWS Cryptographic Material Providers Library for Java,
a pivotal dependency of the this library,
introduce Thread Safe Cryptographic Materials Caches (CMCs):
- Storm Tracking Cache
Safe for use in a multi threaded environment,
tries to prevent redundant or overly parallel backend calls.
See [Spec changes](https://github.com/awslabs/aws-encryption-sdk-specification/blob/ce9a4062124edc5085c66a4f10742e15aa039b34/changes/2023-06-19_thread_safe_cache/change.md) for details.
- Multi Threaded Cache
Safe for use in a multi threaded environment,
but no extra functionality
- Examples for using the Enhanced Client via Lombok Annotation and TableSchemaBuilder
- Detection of ignored DynamoDB Encryption Configuration Tags due to Nested Data Models
- Multi Threading Example

### BREAKING CHANGES
- Updates to the AWS Cryptographic Material Providers Library for Java,
a pivotal dependency of the this library,
introduce the following breaking changes:
- CMCs:
- Original Cryptographic Materials Cache has been renamed to Single Threaded Cache
- `CreateCryptographicMaterialsCacheInput` now ONLY accepts `CacheType`,
which determines which, if any, of the three implemented CMCs will be returned.
- The `DefaultCache` is `StormTrackingCache`
- `CreateAwsKmsHierarchicalKeyringInput`:
- no longer has a `maxCacheSize` field
- now has an optional `cache` field for a `CacheType`
- Hierarchical Keyring's Key Store:
- The Hierarchical Keyring's Key Store's Data Structure has changed.
As such, entries persisted in the Key Store with prior versions of this library are NOT compatible.
Instead, we recommend Creating a new DynamoDB Table for this version of the Key Store.
- The Key Store's `CreateKeyInput` now takes:
- An Optional `String branchKeyIdentifier`
- An Optional `EncryptionContext encryptionContext`
- This `encryptionContext` will be added to the Encryption Context sent to KMS prefixed with `aws-crypto-ec:`
- Creating a Key now also calls KMS:ReEncrypt
- `CreateKeyStore` no longer creates a GSI
- The Encryption Context used with KMS' `GenerateDataKeyWithoutPlaintext` no longer includes the discarded GSI's `status`.
- More details about the Key Store's changes are available in our Specification:
- [2023-07-12 Update Key Store](https://github.com/awslabs/aws-encryption-sdk-specification/tree/master/changes/2023_7_12_update-keystore-structure)
- [KeyStore Specification](https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/framework/branch-key-store.md)

### Fix
- With the Enhanced Client, Identify Only Index attributes for Sign Only,
NOT all Key Attributes, such as Auto Generated Last Modified Time Stamp.

### Maintenance
- A variety of fixes to the libraries CI and testing

## 3.0.0-preview-2 2023-06-09

### Fix
Expand Down
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
# AWS Database Encryption SDK for DynamoDB in Java

Note: The AWS Cryptographic Material Providers Library is released as a
[developer preview](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle)
and is subject to change.
The current release is not intended to be used in production environments.

The AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Java is a client-side encryption
library that allows you to perform attribute-level encryption, enabling you to encrypt specific
attribute values within items before storing them in your DynamoDB table. All encryption and
Expand Down Expand Up @@ -64,8 +59,8 @@ To use the DB-ESDK for DynamoDB in Java, you must have:
* **Via Gradle Kotlin**
In a Gradle Java Project, add the following to the _dependencies_ section:
```kotlin
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.0.0-preview-2")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0-preview-2")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.0.0")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation(platform("software.amazon.awssdk:bom:2.19.1"))
implementation("software.amazon.awssdk:dynamodb")
// The following are optional:
Expand Down Expand Up @@ -97,12 +92,12 @@ To use the DB-ESDK for DynamoDB in Java, you must have:
<dependency>
<groupId>software.amazon.cryptography</groupId>
<artifactId>aws-database-encryption-sdk-dynamodb</artifactId>
<version>3.0.0-preview-2</version>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>software.amazon.cryptography</groupId>
<artifactId>aws-cryptographic-material-providers</artifactId>
<version>1.0.0-preview-1</version>
<version>1.0.0</version>
</dependency>
<!-- The following are optional -->
<dependency>
Expand Down
6 changes: 5 additions & 1 deletion SUPPORT_POLICY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ This table describes the current support status of each major version of the AWS
- Next status
- Next status date
* - 3.0.0-preview-x
- Developer Preview
- End of Life
-
-
* - 3.x
- Generally Available
-
-

Expand Down