Skip to content

Commit 7fce0d2

Browse files
authored
docs: update for GA (#281)
1 parent 7c9f78f commit 7fce0d2

File tree

3 files changed

+60
-10
lines changed

3 files changed

+60
-10
lines changed

CHANGELOG.md

+51
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,56 @@
11
# Changelog
22

3+
## 3.0.0 2023-07-24
4+
5+
### Features
6+
- Updates to the AWS Cryptographic Material Providers Library for Java,
7+
a pivotal dependency of the this library,
8+
introduce Thread Safe Cryptographic Materials Caches (CMCs):
9+
- Storm Tracking Cache
10+
Safe for use in a multi threaded environment,
11+
tries to prevent redundant or overly parallel backend calls.
12+
See [Spec changes](https://github.com/awslabs/aws-encryption-sdk-specification/blob/ce9a4062124edc5085c66a4f10742e15aa039b34/changes/2023-06-19_thread_safe_cache/change.md) for details.
13+
- Multi Threaded Cache
14+
Safe for use in a multi threaded environment,
15+
but no extra functionality
16+
- Examples for using the Enhanced Client via Lombok Annotation and TableSchemaBuilder
17+
- Detection of ignored DynamoDB Encryption Configuration Tags due to Nested Data Models
18+
- Multi Threading Example
19+
20+
### BREAKING CHANGES
21+
- Updates to the AWS Cryptographic Material Providers Library for Java,
22+
a pivotal dependency of the this library,
23+
introduce the following breaking changes:
24+
- CMCs:
25+
- Original Cryptographic Materials Cache has been renamed to Single Threaded Cache
26+
- `CreateCryptographicMaterialsCacheInput` now ONLY accepts `CacheType`,
27+
which determines which, if any, of the three implemented CMCs will be returned.
28+
- The `DefaultCache` is `StormTrackingCache`
29+
- `CreateAwsKmsHierarchicalKeyringInput`:
30+
- no longer has a `maxCacheSize` field
31+
- now has an optional `cache` field for a `CacheType`
32+
- Hierarchical Keyring's Key Store:
33+
- The Hierarchical Keyring's Key Store's Data Structure has changed.
34+
As such, entries persisted in the Key Store with prior versions of this library are NOT compatible.
35+
Instead, we recommend Creating a new DynamoDB Table for this version of the Key Store.
36+
- The Key Store's `CreateKeyInput` now takes:
37+
- An Optional `String branchKeyIdentifier`
38+
- An Optional `EncryptionContext encryptionContext`
39+
- This `encryptionContext` will be added to the Encryption Context sent to KMS prefixed with `aws-crypto-ec:`
40+
- Creating a Key now also calls KMS:ReEncrypt
41+
- `CreateKeyStore` no longer creates a GSI
42+
- The Encryption Context used with KMS' `GenerateDataKeyWithoutPlaintext` no longer includes the discarded GSI's `status`.
43+
- More details about the Key Store's changes are available in our Specification:
44+
- [2023-07-12 Update Key Store](https://github.com/awslabs/aws-encryption-sdk-specification/tree/master/changes/2023_7_12_update-keystore-structure)
45+
- [KeyStore Specification](https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/framework/branch-key-store.md)
46+
47+
### Fix
48+
- With the Enhanced Client, Identify Only Index attributes for Sign Only,
49+
NOT all Key Attributes, such as Auto Generated Last Modified Time Stamp.
50+
51+
### Maintenance
52+
- A variety of fixes to the libraries CI and testing
53+
354
## 3.0.0-preview-2 2023-06-09
455

556
### Fix

README.md

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
# AWS Database Encryption SDK for DynamoDB in Java
22

3-
Note: The AWS Cryptographic Material Providers Library is released as a
4-
[developer preview](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle)
5-
and is subject to change.
6-
The current release is not intended to be used in production environments.
7-
83
The AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Java is a client-side encryption
94
library that allows you to perform attribute-level encryption, enabling you to encrypt specific
105
attribute values within items before storing them in your DynamoDB table. All encryption and
@@ -64,8 +59,8 @@ To use the DB-ESDK for DynamoDB in Java, you must have:
6459
* **Via Gradle Kotlin**
6560
In a Gradle Java Project, add the following to the _dependencies_ section:
6661
```kotlin
67-
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.0.0-preview-2")
68-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0-preview-2")
62+
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.0.0")
63+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
6964
implementation(platform("software.amazon.awssdk:bom:2.19.1"))
7065
implementation("software.amazon.awssdk:dynamodb")
7166
// The following are optional:
@@ -97,12 +92,12 @@ To use the DB-ESDK for DynamoDB in Java, you must have:
9792
<dependency>
9893
<groupId>software.amazon.cryptography</groupId>
9994
<artifactId>aws-database-encryption-sdk-dynamodb</artifactId>
100-
<version>3.0.0-preview-2</version>
95+
<version>3.0.0</version>
10196
</dependency>
10297
<dependency>
10398
<groupId>software.amazon.cryptography</groupId>
10499
<artifactId>aws-cryptographic-material-providers</artifactId>
105-
<version>1.0.0-preview-1</version>
100+
<version>1.0.0</version>
106101
</dependency>
107102
<!-- The following are optional -->
108103
<dependency>

SUPPORT_POLICY.rst

+5-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ This table describes the current support status of each major version of the AWS
2222
- Next status
2323
- Next status date
2424
* - 3.0.0-preview-x
25-
- Developer Preview
25+
- End of Life
26+
-
27+
-
28+
* - 3.x
29+
- Generally Available
2630
-
2731
-
2832

0 commit comments

Comments
 (0)