Skip to content

Commit af6347d

Browse files
committed
Add S3 SDK upgrade doc to 9 and 10 and reference from the release notes.
1 parent bcd4d51 commit af6347d

4 files changed

Lines changed: 88 additions & 2 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: "Amazon S3 SDK Upgrade"
3+
url: /refguide10/amazon-s3-sdk-upgrade/
4+
description: "Describes breaking changes cause by Amazon S3 SDK library upgrade."
5+
---
6+
7+
### Amazon S3 SDK Upgrade
8+
9+
In Mendix 10.24.14 we upgraded the AWS SDK used for accessing S3 storage from version 1 to version 2. SDK version 2 has some [differences](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-s3.html) which affects our S3 storage implementation.
10+
11+
#### `com.mendix.storage.s3.Region` / `com.mendix.storage.s3.EndPoint` Settings
12+
13+
SDK version 2 is stricter with these settings.
14+
15+
The `com.mendix.storage.s3.Region` setting must always be set to the region matching the region of the bucket.
16+
17+
The `com.mendix.storage.s3.EndPoint` setting must either not be set or set to an endpoint matching the region, for example: `s3.eu-west-1.amazonaws.com`.
18+
19+
When the region is not specified or there is an incompatibility between the two settings above, error logs will contain entries similar to following:
20+
21+
```
22+
- Unable to load region from any of the providers in the chain.
23+
- The bucket you are attempting to access must be addressed using the specified endpoint.
24+
- The authorization header is malformed; the region 'us-east-1' is wrong.
25+
```
26+
27+
#### AWS Signature V2 Support (`com.mendix.storage.s3.UseV2Auth` Setting)
28+
29+
SDK version 2 does not support AWS Signature v2 which is enabled by `UseV2Auth` setting. This signature type is deprecated, and is not supported by new regions. For more information, see [AWS's Documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/specify-signature-version.html).
30+
31+
We do not expect this to have any effect when using Amazon S3. It will, however, prevent use of S3 compatible solutions which only support the v2 signature type. In situations like that, you need to switch to either Amazon S3 or a compatible solution that supports newer signature types.
32+
33+
#### Client Side Encryption Changes
34+
35+
Client side encryption can be enabled using the `com.mendix.storage.s3.EncryptionKeys` setting. Previously, any encryption algorithm supported by the JDK could be used. With the new SDK only AES is supported.
36+
37+
An error similar to the following will be printed in logs when an algorithm other than AES is used:
38+
39+
```
40+
- Unsupported algorithm: DES
41+
```
42+
43+
If you use an encryption algorithm other than `AES`, then all existing files should be migrated to use `AES` before upgrading to Mendix 11.6. This can be done by configuring a new `AES` key and rewriting all file documents.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: "Amazon S3 SDK Upgrade"
3+
url: /refguide10/amazon-s3-sdk-upgrade/
4+
description: "Describes breaking changes cause by Amazon S3 SDK library upgrade."
5+
---
6+
7+
### Amazon S3 SDK Upgrade
8+
9+
In Mendix 9.24.41 we upgraded the AWS SDK used for accessing S3 storage from version 1 to version 2. SDK version 2 has some [differences](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-s3.html) which affects our S3 storage implementation.
10+
11+
#### `com.mendix.storage.s3.Region` / `com.mendix.storage.s3.EndPoint` Settings
12+
13+
SDK version 2 is stricter with these settings.
14+
15+
The `com.mendix.storage.s3.Region` setting must always be set to the region matching the region of the bucket.
16+
17+
The `com.mendix.storage.s3.EndPoint` setting must either not be set or set to an endpoint matching the region, for example: `s3.eu-west-1.amazonaws.com`.
18+
19+
When the region is not specified or there is an incompatibility between the two settings above, error logs will contain entries similar to following:
20+
21+
```
22+
- Unable to load region from any of the providers in the chain.
23+
- The bucket you are attempting to access must be addressed using the specified endpoint.
24+
- The authorization header is malformed; the region 'us-east-1' is wrong.
25+
```
26+
27+
#### AWS Signature V2 Support (`com.mendix.storage.s3.UseV2Auth` Setting)
28+
29+
SDK version 2 does not support AWS Signature v2 which is enabled by `UseV2Auth` setting. This signature type is deprecated, and is not supported by new regions. For more information, see [AWS's Documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/specify-signature-version.html).
30+
31+
We do not expect this to have any effect when using Amazon S3. It will, however, prevent use of S3 compatible solutions which only support the v2 signature type. In situations like that, you need to switch to either Amazon S3 or a compatible solution that supports newer signature types.
32+
33+
#### Client Side Encryption Changes
34+
35+
Client side encryption can be enabled using the `com.mendix.storage.s3.EncryptionKeys` setting. Previously, any encryption algorithm supported by the JDK could be used. With the new SDK only AES is supported.
36+
37+
An error similar to the following will be printed in logs when an algorithm other than AES is used:
38+
39+
```
40+
- Unsupported algorithm: DES
41+
```
42+
43+
If you use an encryption algorithm other than `AES`, then all existing files should be migrated to use `AES` before upgrading to Mendix 11.6. This can be done by configuring a new `AES` key and rewriting all file documents.

content/en/docs/releasenotes/studio-pro/10/10.24.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ This is the [LTS](/releasenotes/studio-pro/lts-mts/#lts) version 10 release for
6161
### Breaking Changes
6262

6363
- Curly braces in a [placeholder text](/refguide/text-box/#placeholder-text) (for example, `{Name}`) must now be escaped with an extra opening curly brace (for example, `{{Name}`) to prevent the text from being incorrectly interpreted as a placeholder expression.
64-
- We upgraded the AWS S3 library used for S3 file storage backend from version 1 to 2. This new version of the library has stricter configuration handling and only supports AES for client side encryption.
64+
- We upgraded the AWS S3 library used for S3 file storage backend from version 1 to 2. This new version of the library has stricter configuration handling and only supports AES for client side encryption. More information can be found in [Amazon S3 SDK Upgrade](/refguide10/amazon-s3-sdk-upgrade/) and [S3 Storage Service Settings](/refguide10/custom-settings/#amazon-s3-storage-service-settings).
6565
- Added a consistency check for code actions that have a file name that does not match the casing of the document name, which could cause issues on certain operating systems and when deploying to the cloud environment.
6666

6767
## 10.24.13 {#102413}

content/en/docs/releasenotes/studio-pro/9/9.24.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ This is the [LTS](/releasenotes/studio-pro/lts-mts/#lts) version 9 release for a
6060

6161
### Breaking Changes
6262

63-
- We upgraded the AWS S3 library used for S3 file storage backend from version 1 to 2. This new version of the library has stricter configuration handling and only supports AES for client side encryption.
63+
- We upgraded the AWS S3 library used for S3 file storage backend from version 1 to 2. This new version of the library has stricter configuration handling and only supports AES for client side encryption. More information can be found in [Amazon S3 SDK Upgrade](/refguide9/amazon-s3-sdk-upgrade/) and [S3 Storage Service Settings](/refguide9/custom-settings/#amazon-s3-storage-service-settings).
6464

6565
## 9.24.40
6666

0 commit comments

Comments
 (0)