diff --git a/.projen/deps.json b/.projen/deps.json
index 7263e0d6..3a91cdb6 100644
--- a/.projen/deps.json
+++ b/.projen/deps.json
@@ -125,17 +125,17 @@
},
{
"name": "@aws-cdk/aws-glue-alpha",
- "version": "2.84.0-alpha.0",
+ "version": "2.110.1-alpha.0",
"type": "peer"
},
{
"name": "@aws-cdk/aws-redshift-alpha",
- "version": "2.84.0-alpha.0",
+ "version": "2.110.1-alpha.0",
"type": "peer"
},
{
"name": "aws-cdk-lib",
- "version": "^2.84.0",
+ "version": "^2.110.1",
"type": "peer"
},
{
diff --git a/.projenrc.ts b/.projenrc.ts
index 638e9879..d9a0cdf0 100644
--- a/.projenrc.ts
+++ b/.projenrc.ts
@@ -1,7 +1,11 @@
+/*
+Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+SPDX-License-Identifier: Apache-2.0
+*/
import { CdklabsConstructLibrary } from 'cdklabs-projen-project-types';
import { Stability } from 'projen/lib/cdk';
-const cdkVersion = '2.84.0';
+const cdkVersion = '2.110.1';
const project = new CdklabsConstructLibrary({
name: '@cdklabs/cdk-appflow',
author: 'Amazon Web Services',
diff --git a/API.md b/API.md
index 26788e7d..99868529 100644
--- a/API.md
+++ b/API.md
@@ -11,6 +11,7 @@ For more information, see the [Amazon AppFlow User Guide](https://docs.aws.amazo
## Example
```ts
+import { SecretValue } from 'aws-cdk-lib';
import { Bucket } from 'aws-cdk-lib/aws-s3';
import { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
import {
@@ -30,8 +31,8 @@ import {
} from '@cdklabs/cdk-appflow';
declare const clientSecret: ISecret;
-declare const accessToken: string;
-declare const refreshToken: string;
+declare const accessToken: SecretValue;
+declare const refreshToken: SecretValue;
declare const instanceUrl: string;
const profile = new SalesforceConnectorProfile(this, 'MyConnectorProfile', {
@@ -188,7 +189,7 @@ It is *recommended* to follow [data protection mechanisms for Amazon AppFlow](ht
## Confidential information
-Amazon AppFlow application integration is done using `ConnectionProfiles`. A `ConnectionProfile` requires providing sensitive information in the form of e.g. access and refresh tokens. It is *recommended* that such information is stored securely and passed to AWS CDK securely. All sensitive fields are effectively `IResolvable` and this means they can be resolved at deploy time. With that one should follow the [best practices for credentials with CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).
+Amazon AppFlow application integration is done using `ConnectionProfiles`. A `ConnectionProfile` requires providing sensitive information in the form of e.g. access and refresh tokens. It is *recommended* that such information is stored securely and passed to AWS CDK securely. All sensitive fields are effectively `IResolvable` and this means they can be resolved at deploy time. With that one should follow the [best practices for credentials with CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds). In this library, the sensitive fields are typed as `SecretValue` to emphasize these should not be plain strings.
An example of using a predefined AWS Secrets Manager secret for storing sensitive information can be found below:
@@ -204,9 +205,9 @@ const profile = new GoogleAnalytics4ConnectorProfile(stack, 'GA4Connector', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
@@ -5917,7 +5918,7 @@ const googleAnalytics4OAuthSettings: GoogleAnalytics4OAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| The access token to be used when interacting with Google Analytics 4. |
+| accessToken
| aws-cdk-lib.SecretValue
| The access token to be used when interacting with Google Analytics 4. |
| endpoints
| GoogleAnalytics4OAuthEndpoints
| The OAuth token and authorization endpoints. |
| flow
| GoogleAnalytics4OAuthFlow
| The OAuth flow used for obtaining a new accessToken when the old is not present or expired. |
@@ -5926,10 +5927,10 @@ const googleAnalytics4OAuthSettings: GoogleAnalytics4OAuthSettings = { ... }
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
- *Default:* Retrieves a fresh accessToken with the information in the [flow property]{@link GoogleAnalytics4OAuthSettings#flow}
The access token to be used when interacting with Google Analytics 4.
@@ -5979,19 +5980,19 @@ const googleAnalytics4RefreshTokenGrantFlow: GoogleAnalytics4RefreshTokenGrantFl
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| The id of the client app. |
-| clientSecret
| string
| The secret of the client app. |
-| refreshToken
| string
| A non-expired refresh token. |
+| clientId
| aws-cdk-lib.SecretValue
| The id of the client app. |
+| clientSecret
| aws-cdk-lib.SecretValue
| The secret of the client app. |
+| refreshToken
| aws-cdk-lib.SecretValue
| A non-expired refresh token. |
---
##### `clientId`Optional
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
The id of the client app.
@@ -6000,10 +6001,10 @@ The id of the client app.
##### `clientSecret`Optional
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
The secret of the client app.
@@ -6012,10 +6013,10 @@ The secret of the client app.
##### `refreshToken`Optional
```typescript
-public readonly refreshToken: string;
+public readonly refreshToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
A non-expired refresh token.
@@ -6180,28 +6181,28 @@ const marketoOAuthClientCredentialsFlow: MarketoOAuthClientCredentialsFlow = { .
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Required
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Required
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -6248,7 +6249,7 @@ const marketoOAuthSettings: MarketoOAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| flow
| MarketoOAuthFlow
| *No description.* |
-| accessToken
| string
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
@@ -6265,10 +6266,10 @@ public readonly flow: MarketoOAuthFlow;
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -6455,7 +6456,7 @@ const microsoftDynamics365OAuthSettings: MicrosoftDynamics365OAuthSettings = { .
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| The access token to be used when interacting with Microsoft Dynamics 365. |
+| accessToken
| aws-cdk-lib.SecretValue
| The access token to be used when interacting with Microsoft Dynamics 365. |
| endpoints
| MicrosoftDynamics365OAuthEndpointsSettings
| *No description.* |
| flow
| MicrosoftDynamics365OAuthFlow
| *No description.* |
@@ -6464,10 +6465,10 @@ const microsoftDynamics365OAuthSettings: MicrosoftDynamics365OAuthSettings = { .
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
The access token to be used when interacting with Microsoft Dynamics 365.
@@ -6509,39 +6510,39 @@ const microsoftDynamics365RefreshTokenGrantFlow: MicrosoftDynamics365RefreshToke
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
-| refreshToken
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
+| refreshToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Optional
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Optional
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `refreshToken`Optional
```typescript
-public readonly refreshToken: string;
+public readonly refreshToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -6719,7 +6720,7 @@ const microsoftSharepointOnlineOAuthSettings: MicrosoftSharepointOnlineOAuthSett
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| The access token to be used when interacting with Microsoft Sharepoint Online. |
+| accessToken
| aws-cdk-lib.SecretValue
| The access token to be used when interacting with Microsoft Sharepoint Online. |
| endpoints
| MicrosoftSharepointOnlineOAuthEndpointsSettings
| *No description.* |
| flow
| MicrosoftSharepointOnlineOAuthFlow
| *No description.* |
@@ -6728,10 +6729,10 @@ const microsoftSharepointOnlineOAuthSettings: MicrosoftSharepointOnlineOAuthSett
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
The access token to be used when interacting with Microsoft Sharepoint Online.
@@ -6846,39 +6847,39 @@ const microsoftSharepointOnlineRefreshTokenGrantFlow: MicrosoftSharepointOnlineR
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
-| refreshToken
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
+| refreshToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Optional
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Optional
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `refreshToken`Optional
```typescript
-public readonly refreshToken: string;
+public readonly refreshToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -7385,7 +7386,7 @@ const redshiftConnectorBasicCredentials: RedshiftConnectorBasicCredentials = { .
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| password
| string
| *No description.* |
+| password
| aws-cdk-lib.SecretValue
| *No description.* |
| username
| string
| *No description.* |
---
@@ -7393,10 +7394,10 @@ const redshiftConnectorBasicCredentials: RedshiftConnectorBasicCredentials = { .
##### `password`Optional
```typescript
-public readonly password: string;
+public readonly password: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8244,28 +8245,28 @@ const salesforceMarketingCloudOAuthClientSettings: SalesforceMarketingCloudOAuth
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Required
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Required
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8312,7 +8313,7 @@ const salesforceMarketingCloudOAuthSettings: SalesforceMarketingCloudOAuthSettin
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| endpoints
| SalesforceMarketingCloudOAuthEndpoints
| *No description.* |
-| accessToken
| string
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
| flow
| SalesforceMarketingCloudFlowSettings
| *No description.* |
---
@@ -8330,10 +8331,10 @@ public readonly endpoints: SalesforceMarketingCloudOAuthEndpoints;
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8414,7 +8415,6 @@ const salesforceOAuthFlow: SalesforceOAuthFlow = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| refreshTokenGrant
| SalesforceOAuthRefreshTokenGrantFlow
| The parameters required for the refresh token grant OAuth flow. |
-| refresTokenGrant
| SalesforceOAuthRefreshTokenGrantFlow
| The parameters required for the refresh token grant OAuth flow. |
---
@@ -8430,20 +8430,6 @@ The parameters required for the refresh token grant OAuth flow.
---
-##### ~~`refresTokenGrant`~~Optional
-
-- *Deprecated:* - this property will be removed in the future releases. Use refreshTokenGrant property instead.
-
-```typescript
-public readonly refresTokenGrant: SalesforceOAuthRefreshTokenGrantFlow;
-```
-
-- *Type:* SalesforceOAuthRefreshTokenGrantFlow
-
-The parameters required for the refresh token grant OAuth flow.
-
----
-
### SalesforceOAuthRefreshTokenGrantFlow
#### Initializer
@@ -8459,7 +8445,7 @@ const salesforceOAuthRefreshTokenGrantFlow: SalesforceOAuthRefreshTokenGrantFlow
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| client
| aws-cdk-lib.aws_secretsmanager.ISecret
| *No description.* |
-| refreshToken
| string
| *No description.* |
+| refreshToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
@@ -8476,10 +8462,10 @@ public readonly client: ISecret;
##### `refreshToken`Optional
```typescript
-public readonly refreshToken: string;
+public readonly refreshToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8497,7 +8483,7 @@ const salesforceOAuthSettings: SalesforceOAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
| flow
| SalesforceOAuthFlow
| *No description.* |
---
@@ -8505,10 +8491,10 @@ const salesforceOAuthSettings: SalesforceOAuthSettings = { ... }
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8608,7 +8594,7 @@ const sAPOdataBasicAuthSettings: SAPOdataBasicAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| password
| string
| *No description.* |
+| password
| aws-cdk-lib.SecretValue
| *No description.* |
| username
| string
| *No description.* |
---
@@ -8616,10 +8602,10 @@ const sAPOdataBasicAuthSettings: SAPOdataBasicAuthSettings = { ... }
##### `password`Required
```typescript
-public readonly password: string;
+public readonly password: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8899,39 +8885,39 @@ const sAPOdataOAuthRefreshTokenGrantFlow: SAPOdataOAuthRefreshTokenGrantFlow = {
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
-| refreshToken
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
+| refreshToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Required
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Required
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `refreshToken`Optional
```typescript
-public readonly refreshToken: string;
+public readonly refreshToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -8949,7 +8935,7 @@ const sAPOdataOAuthSettings: SAPOdataOAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
| endpoints
| SAPOdataOAuthEndpoints
| *No description.* |
| flow
| SAPOdataOAuthFlows
| *No description.* |
@@ -8958,10 +8944,10 @@ const sAPOdataOAuthSettings: SAPOdataOAuthSettings = { ... }
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -9141,7 +9127,7 @@ const serviceNowBasicSettings: ServiceNowBasicSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| password
| string
| *No description.* |
+| password
| aws-cdk-lib.SecretValue
| *No description.* |
| username
| string
| *No description.* |
---
@@ -9149,10 +9135,10 @@ const serviceNowBasicSettings: ServiceNowBasicSettings = { ... }
##### `password`Required
```typescript
-public readonly password: string;
+public readonly password: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -9345,39 +9331,39 @@ const slackOAuthSettings: SlackOAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| accessToken
| string
| *No description.* |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `accessToken`Required
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientId`Optional
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Optional
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -9447,7 +9433,7 @@ const snowflakeBasicAuthSettings: SnowflakeBasicAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| password
| string
| *No description.* |
+| password
| aws-cdk-lib.SecretValue
| *No description.* |
| username
| string
| *No description.* |
---
@@ -9455,10 +9441,10 @@ const snowflakeBasicAuthSettings: SnowflakeBasicAuthSettings = { ... }
##### `password`Required
```typescript
-public readonly password: string;
+public readonly password: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
@@ -10126,39 +10112,39 @@ const zendeskOAuthSettings: ZendeskOAuthSettings = { ... }
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| clientId
| string
| *No description.* |
-| clientSecret
| string
| *No description.* |
-| accessToken
| string
| *No description.* |
+| clientId
| aws-cdk-lib.SecretValue
| *No description.* |
+| clientSecret
| aws-cdk-lib.SecretValue
| *No description.* |
+| accessToken
| aws-cdk-lib.SecretValue
| *No description.* |
---
##### `clientId`Required
```typescript
-public readonly clientId: string;
+public readonly clientId: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `clientSecret`Required
```typescript
-public readonly clientSecret: string;
+public readonly clientSecret: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
##### `accessToken`Optional
```typescript
-public readonly accessToken: string;
+public readonly accessToken: SecretValue;
```
-- *Type:* string
+- *Type:* aws-cdk-lib.SecretValue
---
diff --git a/README.md b/README.md
index 9887cb68..4240ffe8 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@ For more information, see the [Amazon AppFlow User Guide](https://docs.aws.amazo
## Example
```ts
+import { SecretValue } from 'aws-cdk-lib';
import { Bucket } from 'aws-cdk-lib/aws-s3';
import { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
import {
@@ -30,8 +31,8 @@ import {
} from '@cdklabs/cdk-appflow';
declare const clientSecret: ISecret;
-declare const accessToken: string;
-declare const refreshToken: string;
+declare const accessToken: SecretValue;
+declare const refreshToken: SecretValue;
declare const instanceUrl: string;
const profile = new SalesforceConnectorProfile(this, 'MyConnectorProfile', {
@@ -188,7 +189,7 @@ It is *recommended* to follow [data protection mechanisms for Amazon AppFlow](ht
## Confidential information
-Amazon AppFlow application integration is done using `ConnectionProfiles`. A `ConnectionProfile` requires providing sensitive information in the form of e.g. access and refresh tokens. It is *recommended* that such information is stored securely and passed to AWS CDK securely. All sensitive fields are effectively `IResolvable` and this means they can be resolved at deploy time. With that one should follow the [best practices for credentials with CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).
+Amazon AppFlow application integration is done using `ConnectionProfiles`. A `ConnectionProfile` requires providing sensitive information in the form of e.g. access and refresh tokens. It is *recommended* that such information is stored securely and passed to AWS CDK securely. All sensitive fields are effectively `IResolvable` and this means they can be resolved at deploy time. With that one should follow the [best practices for credentials with CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds). In this library, the sensitive fields are typed as `SecretValue` to emphasize these should not be plain strings.
An example of using a predefined AWS Secrets Manager secret for storing sensitive information can be found below:
@@ -204,9 +205,9 @@ const profile = new GoogleAnalytics4ConnectorProfile(stack, 'GA4Connector', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
diff --git a/package.json b/package.json
index de3a9a5a..d27a5db7 100644
--- a/package.json
+++ b/package.json
@@ -102,8 +102,8 @@
"organization": true
},
"devDependencies": {
- "@aws-cdk/aws-glue-alpha": "2.84.0-alpha.0",
- "@aws-cdk/aws-redshift-alpha": "2.84.0-alpha.0",
+ "@aws-cdk/aws-glue-alpha": "2.110.1-alpha.0",
+ "@aws-cdk/aws-redshift-alpha": "2.110.1-alpha.0",
"@aws-cdk/integ-runner": "latest",
"@aws-cdk/integ-tests-alpha": "latest",
"@types/jest": "^27",
@@ -111,7 +111,7 @@
"@typescript-eslint/eslint-plugin": "^6",
"@typescript-eslint/parser": "^6",
"aws-cdk": "^2",
- "aws-cdk-lib": "2.84.0",
+ "aws-cdk-lib": "2.110.1",
"cdklabs-projen-project-types": "^0.1.182",
"constructs": "10.0.5",
"esbuild": "^0.19.8",
@@ -132,9 +132,9 @@
"typescript": "^5.2.2"
},
"peerDependencies": {
- "@aws-cdk/aws-glue-alpha": "2.84.0-alpha.0",
- "@aws-cdk/aws-redshift-alpha": "2.84.0-alpha.0",
- "aws-cdk-lib": "^2.84.0",
+ "@aws-cdk/aws-glue-alpha": "2.110.1-alpha.0",
+ "@aws-cdk/aws-redshift-alpha": "2.110.1-alpha.0",
+ "aws-cdk-lib": "^2.110.1",
"constructs": "^10.0.5"
},
"dependencies": {
diff --git a/src/googleanalytics4/profile.ts b/src/googleanalytics4/profile.ts
index 0ce3b414..ce4edc31 100644
--- a/src/googleanalytics4/profile.ts
+++ b/src/googleanalytics4/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { GoogleAnalytics4ConnectorType } from './type';
@@ -35,17 +36,17 @@ export interface GoogleAnalytics4RefreshTokenGrantFlow {
/**
* A non-expired refresh token.
*/
- readonly refreshToken?: string;
+ readonly refreshToken?: SecretValue;
/**
* The secret of the client app.
*/
- readonly clientSecret?: string;
+ readonly clientSecret?: SecretValue;
/**
* The id of the client app.
*/
- readonly clientId?: string;
+ readonly clientId?: SecretValue;
}
/**
@@ -67,7 +68,7 @@ export interface GoogleAnalytics4OAuthSettings {
*
* @default Retrieves a fresh accessToken with the information in the [flow property]{@link GoogleAnalytics4OAuthSettings#flow}
*/
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
/**
* The OAuth flow used for obtaining a new accessToken when the old is not present or expired.
@@ -124,10 +125,10 @@ export class GoogleAnalytics4ConnectorProfile extends ConnectorProfileBase {
customConnector: {
oauth2: {
// INFO: when using Refresh Token Grant Flow - access token property is required
- accessToken: properties.oAuth.accessToken ?? 'dummyAccessToken',
- refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken,
- clientId: properties.oAuth.flow?.refreshTokenGrant.clientId,
- clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap() ?? 'dummyAccessToken',
+ refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.flow?.refreshTokenGrant.clientId?.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret?.unsafeUnwrap(),
},
authenticationType: ConnectorAuthenticationType.OAUTH2,
},
diff --git a/src/marketo/profile.ts b/src/marketo/profile.ts
index c94310a7..e8132bee 100644
--- a/src/marketo/profile.ts
+++ b/src/marketo/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { MarketoConnectorType } from './type';
@@ -13,8 +14,8 @@ export interface MarketoConnectorProfileProps extends ConnectorProfileProps {
}
export interface MarketoOAuthClientCredentialsFlow {
- readonly clientId: string;
- readonly clientSecret: string;
+ readonly clientId: SecretValue;
+ readonly clientSecret: SecretValue;
}
export interface MarketoOAuthFlow {
@@ -22,7 +23,7 @@ export interface MarketoOAuthFlow {
}
export interface MarketoOAuthSettings {
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow: MarketoOAuthFlow;
}
@@ -53,9 +54,9 @@ export class MarketoConnectorProfile extends ConnectorProfileBase {
const properties = (props as MarketoConnectorProfileProps);
return {
marketo: {
- accessToken: properties.oAuth.accessToken,
- clientId: properties.oAuth.flow.clientCredentials.clientId,
- clientSecret: properties.oAuth.flow.clientCredentials.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.flow.clientCredentials.clientId.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow.clientCredentials.clientSecret.unsafeUnwrap(),
},
};
}
diff --git a/src/microsoftdynamics365/profile.ts b/src/microsoftdynamics365/profile.ts
index 59557554..08210743 100644
--- a/src/microsoftdynamics365/profile.ts
+++ b/src/microsoftdynamics365/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { MicrosoftDynamics365ConnectorType } from './type';
@@ -20,9 +21,9 @@ export interface MicrosoftDynamics365OAuthEndpointsSettings {
}
export interface MicrosoftDynamics365RefreshTokenGrantFlow {
- readonly refreshToken?: string;
- readonly clientSecret?: string;
- readonly clientId?: string;
+ readonly refreshToken?: SecretValue;
+ readonly clientSecret?: SecretValue;
+ readonly clientId?: SecretValue;
}
export interface MicrosoftDynamics365OAuthFlow {
@@ -36,7 +37,7 @@ export interface MicrosoftDynamics365OAuthSettings {
*
* Note that if only the access token is provided AppFlow is not able to retrieve a fresh access token when the current one is expired
*/
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow?: MicrosoftDynamics365OAuthFlow;
@@ -93,10 +94,10 @@ export class MicrosoftDynamics365ConnectorProfile extends ConnectorProfileBase {
customConnector: {
oauth2: {
// INFO: when using Refresh Token Grant Flow - access token property is required
- accessToken: properties.oAuth.accessToken ?? 'dummyAccessToken',
- refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken ?? 'dummyRefreshToken',
- clientId: properties.oAuth.flow?.refreshTokenGrant.clientId,
- clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap() ?? 'dummyAccessToken',
+ refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken?.unsafeUnwrap() ?? 'dummyRefreshToken',
+ clientId: properties.oAuth.flow?.refreshTokenGrant.clientId?.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret?.unsafeUnwrap(),
},
authenticationType: ConnectorAuthenticationType.OAUTH2,
},
diff --git a/src/microsoftsharepointonline/profile.ts b/src/microsoftsharepointonline/profile.ts
index 8fdc1e8c..0dd3260d 100644
--- a/src/microsoftsharepointonline/profile.ts
+++ b/src/microsoftsharepointonline/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { MicrosoftSharepointOnlineConnectorType } from './type';
@@ -19,9 +20,9 @@ export interface MicrosoftSharepointOnlineOAuthEndpointsSettings {
}
export interface MicrosoftSharepointOnlineRefreshTokenGrantFlow {
- readonly refreshToken?: string;
- readonly clientSecret?: string;
- readonly clientId?: string;
+ readonly refreshToken?: SecretValue;
+ readonly clientSecret?: SecretValue;
+ readonly clientId?: SecretValue;
}
export interface MicrosoftSharepointOnlineOAuthFlow {
@@ -35,7 +36,7 @@ export interface MicrosoftSharepointOnlineOAuthSettings {
*
* Note that if only the access token is provided AppFlow is not able to retrieve a fresh access token when the current one is expired
*/
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow?: MicrosoftSharepointOnlineOAuthFlow;
@@ -89,10 +90,10 @@ export class MicrosoftSharepointOnlineConnectorProfile extends ConnectorProfileB
customConnector: {
oauth2: {
// INFO: when using Refresh Token Grant Flow - access token property is required
- accessToken: properties.oAuth.accessToken ?? 'dummyAccessToken',
- refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken,
- clientId: properties.oAuth.flow?.refreshTokenGrant.clientId,
- clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap() ?? 'dummyAccessToken',
+ refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.flow?.refreshTokenGrant.clientId?.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret?.unsafeUnwrap(),
},
authenticationType: ConnectorAuthenticationType.OAUTH2,
},
diff --git a/src/redshift/profile.ts b/src/redshift/profile.ts
index 9dc0690f..a07e1227 100644
--- a/src/redshift/profile.ts
+++ b/src/redshift/profile.ts
@@ -3,7 +3,7 @@ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
import { ICluster } from '@aws-cdk/aws-redshift-alpha';
-import { Aws } from 'aws-cdk-lib';
+import { Aws, SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Effect, IRole, Policy, PolicyStatement, Role, ServicePrincipal } from 'aws-cdk-lib/aws-iam';
import { AwsCustomResource, AwsCustomResourcePolicy, PhysicalResourceId } from 'aws-cdk-lib/custom-resources';
@@ -15,7 +15,7 @@ import { ConnectorProfileBase, ConnectorProfileProps } from '../core/connectors/
export interface RedshiftConnectorBasicCredentials {
readonly username?: string;
- readonly password?: string;
+ readonly password?: SecretValue;
}
export interface RedshiftConnectorProfileProps extends ConnectorProfileProps {
@@ -105,7 +105,7 @@ export class RedshiftConnectorProfile extends ConnectorProfileBase {
return {
redshift: properties && {
username: properties.basicAuth.username,
- password: properties.basicAuth.password,
+ password: properties.basicAuth.password?.unsafeUnwrap(),
},
};
}
diff --git a/src/salesforce-marketing-cloud/profile.ts b/src/salesforce-marketing-cloud/profile.ts
index b2c23a65..0c721458 100644
--- a/src/salesforce-marketing-cloud/profile.ts
+++ b/src/salesforce-marketing-cloud/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { SalesforceMarketingCloudConnectorType } from './type';
@@ -19,8 +20,8 @@ export interface SalesforceMarketingCloudOAuthEndpoints {
}
export interface SalesforceMarketingCloudOAuthClientSettings {
- readonly clientId: string;
- readonly clientSecret: string;
+ readonly clientId: SecretValue;
+ readonly clientSecret: SecretValue;
}
export interface SalesforceMarketingCloudFlowSettings {
@@ -28,7 +29,7 @@ export interface SalesforceMarketingCloudFlowSettings {
}
export interface SalesforceMarketingCloudOAuthSettings {
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow?: SalesforceMarketingCloudFlowSettings;
readonly endpoints: SalesforceMarketingCloudOAuthEndpoints;
}
@@ -71,9 +72,9 @@ export class SalesforceMarketingCloudConnectorProfile extends ConnectorProfileBa
return {
customConnector: {
oauth2: {
- accessToken: properties.oAuth.accessToken,
- clientId: properties.oAuth.flow?.clientCredentials.clientId,
- clientSecret: properties.oAuth.flow?.clientCredentials.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.flow?.clientCredentials.clientId?.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow?.clientCredentials.clientSecret?.unsafeUnwrap(),
},
authenticationType: ConnectorAuthenticationType.OAUTH2,
},
diff --git a/src/salesforce/profile.ts b/src/salesforce/profile.ts
index 19eef25b..a56cc892 100644
--- a/src/salesforce/profile.ts
+++ b/src/salesforce/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { ISecret } from 'aws-cdk-lib/aws-secretsmanager';
import { Construct } from 'constructs';
@@ -25,19 +26,12 @@ export interface SalesforceConnectorProfileProps extends ConnectorProfileProps {
// For now only 1) and 2) are implemented, but 3) is not possible due to the requirement of a user's creds
export interface SalesforceOAuthRefreshTokenGrantFlow {
- readonly refreshToken?: string;
+ readonly refreshToken?: SecretValue;
readonly client?: ISecret;
}
export interface SalesforceOAuthFlow {
- /**
- * The parameters required for the refresh token grant OAuth flow
- *
- * @deprecated - this property will be removed in the future releases. Use refreshTokenGrant property instead.
- */
- readonly refresTokenGrant?: SalesforceOAuthRefreshTokenGrantFlow;
-
/**
* The parameters required for the refresh token grant OAuth flow
*/
@@ -45,7 +39,7 @@ export interface SalesforceOAuthFlow {
}
export interface SalesforceOAuthSettings {
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow?: SalesforceOAuthFlow;
}
@@ -61,7 +55,7 @@ export class SalesforceConnectorProfile extends ConnectorProfileBase {
constructor(scope: Construct, id: string, props: SalesforceConnectorProfileProps) {
super(scope, id, props, SalesforceConnectorType.instance);
- this.tryAddNodeDependency(this, this.getRefreshTokenGrantFlowProperty(props.oAuth.flow)?.client);
+ this.tryAddNodeDependency(this, props.oAuth.flow?.refreshTokenGrant?.client);
}
protected buildConnectorProfileProperties(properties: ConnectorProfileProps): CfnConnectorProfile.ConnectorProfilePropertiesProperty {
@@ -74,35 +68,16 @@ export class SalesforceConnectorProfile extends ConnectorProfileBase {
};
}
- /**
- * This is a auxiliary method for obtaining a refreshTokeNGrandFlow. It's a temporary solution due to the typo in the properties
- * as we don't want to abruptly fail customer solutions depending on the library.
- * @param flow a SalesforceOAuthFlow object
- * @returns a SalesforceOAuthRefreshTokenGrantFlow object or undefined if the flow is undefined.
- * @throws an error if both refreshTokenGrant and refresTokenGrant are specified. This is a temporary solution due to the typo in the properties.
- * @deprecated - this method will be removed in the future releases.
- */
- private getRefreshTokenGrantFlowProperty(flow?: SalesforceOAuthFlow): SalesforceOAuthRefreshTokenGrantFlow | undefined {
-
- if (flow) {
- if (flow.refresTokenGrant && flow.refreshTokenGrant) {
- throw new Error('Only one of the properties refreshTokenGrant or refresTokenGrant should be specified');
- }
- return flow.refresTokenGrant ?? flow.refreshTokenGrant;
- }
- return undefined;
- }
-
protected buildConnectorProfileCredentials(properties: ConnectorProfileProps): CfnConnectorProfile.ConnectorProfileCredentialsProperty {
const props = properties as SalesforceConnectorProfileProps;
let salesforce: { [key: string]: any } = {};
- salesforce.accessToken = props.oAuth.accessToken;
+ salesforce.accessToken = props.oAuth.accessToken?.unsafeUnwrap();
- const refreshTokenGrant = this.getRefreshTokenGrantFlowProperty(props.oAuth.flow);
- salesforce.refreshToken = refreshTokenGrant?.refreshToken ?? 'dummyRefreshToken';
+ const refreshTokenGrant = props.oAuth.flow?.refreshTokenGrant;
+ salesforce.refreshToken = refreshTokenGrant?.refreshToken?.unsafeUnwrap() ?? 'dummyRefreshToken';
if (refreshTokenGrant?.client) {
salesforce.clientCredentialsArn = refreshTokenGrant.client.secretArn;
diff --git a/src/sapodata/profile.ts b/src/sapodata/profile.ts
index 6ce5067f..4ea50304 100644
--- a/src/sapodata/profile.ts
+++ b/src/sapodata/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { SAPOdataConnectorType } from './type';
@@ -20,7 +21,7 @@ export interface SAPOdataConnectorProfileProps extends ConnectorProfileProps {
export interface SAPOdataBasicAuthSettings {
readonly username: string;
- readonly password: string;
+ readonly password: SecretValue;
}
export interface SAPOdataOAuthEndpoints {
@@ -28,9 +29,9 @@ export interface SAPOdataOAuthEndpoints {
}
export interface SAPOdataOAuthRefreshTokenGrantFlow {
- readonly refreshToken?: string;
- readonly clientId: string;
- readonly clientSecret: string;
+ readonly refreshToken?: SecretValue;
+ readonly clientId: SecretValue;
+ readonly clientSecret: SecretValue;
}
export interface SAPOdataOAuthFlows {
@@ -38,7 +39,7 @@ export interface SAPOdataOAuthFlows {
}
export interface SAPOdataOAuthSettings {
- readonly accessToken?: string;
+ readonly accessToken?: SecretValue;
readonly flow?: SAPOdataOAuthFlows;
@@ -68,14 +69,14 @@ export class SAPOdataConnectorProfile extends ConnectorProfileBase {
if (properties.basicAuth) {
sapOdata.basicAuthCredentials = {
username: properties.basicAuth.username,
- password: properties.basicAuth.password,
+ password: properties.basicAuth.password.unsafeUnwrap(),
};
} else if (properties.oAuth) {
sapOdata.oAuthCredentials = {
- accessToken: properties.oAuth.accessToken,
- refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken,
- clientId: properties.oAuth.flow?.refreshTokenGrant.clientId,
- clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap(),
+ refreshToken: properties.oAuth.flow?.refreshTokenGrant.refreshToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.flow?.refreshTokenGrant.clientId?.unsafeUnwrap(),
+ clientSecret: properties.oAuth.flow?.refreshTokenGrant.clientSecret?.unsafeUnwrap(),
};
}
diff --git a/src/servicenow/profile.ts b/src/servicenow/profile.ts
index 46b89e94..47d804e2 100644
--- a/src/servicenow/profile.ts
+++ b/src/servicenow/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { ServiceNowConnectorType } from './type';
@@ -14,7 +15,7 @@ export interface ServiceNowConnectorProfileProps extends ConnectorProfileProps {
export interface ServiceNowBasicSettings {
readonly username: string;
- readonly password: string;
+ readonly password: SecretValue;
}
export class ServiceNowConnectorProfile extends ConnectorProfileBase {
@@ -36,7 +37,7 @@ export class ServiceNowConnectorProfile extends ConnectorProfileBase {
return {
serviceNow: {
username: properties.basicAuth?.username,
- password: properties.basicAuth?.password,
+ password: properties.basicAuth?.password.unsafeUnwrap(),
},
};
}
diff --git a/src/slack/profile.ts b/src/slack/profile.ts
index 55ed57e4..eab060d2 100644
--- a/src/slack/profile.ts
+++ b/src/slack/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { SlackConnectorType } from './type';
@@ -13,9 +14,9 @@ export interface SlackConnectorProfileProps extends ConnectorProfileProps {
}
export interface SlackOAuthSettings {
- readonly accessToken: string;
- readonly clientId?: string;
- readonly clientSecret?: string;
+ readonly accessToken: SecretValue;
+ readonly clientId?: SecretValue;
+ readonly clientSecret?: SecretValue;
}
export class SlackConnectorProfile extends ConnectorProfileBase {
@@ -45,9 +46,9 @@ export class SlackConnectorProfile extends ConnectorProfileBase {
const properties = (props as SlackConnectorProfileProps);
return {
slack: {
- accessToken: properties.oAuth.accessToken,
- clientId: properties.oAuth.clientId ?? 'dummyClientId',
- clientSecret: properties.oAuth.clientSecret ?? 'dummyClientSecret',
+ accessToken: properties.oAuth.accessToken.unsafeUnwrap(),
+ clientId: properties.oAuth.clientId?.unsafeUnwrap() ?? 'dummyClientId',
+ clientSecret: properties.oAuth.clientSecret?.unsafeUnwrap() ?? 'dummyClientSecret',
},
};
}
diff --git a/src/snowflake/profile.ts b/src/snowflake/profile.ts
index 03bb6f7d..fa7652c3 100644
--- a/src/snowflake/profile.ts
+++ b/src/snowflake/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { ArnPrincipal, Effect, IRole, PolicyDocument, PolicyStatement, Role } from 'aws-cdk-lib/aws-iam';
import { Construct } from 'constructs';
@@ -55,7 +56,7 @@ export interface SnowflakeConnectorProfileProps extends ConnectorProfileProps {
*/
export interface SnowflakeBasicAuthSettings {
readonly username: string;
- readonly password: string;
+ readonly password: SecretValue;
}
export interface SnowflakeStorageIntegration {
@@ -171,7 +172,7 @@ export class SnowflakeConnectorProfile extends ConnectorProfileBase {
return {
snowflake: {
username: properties.basicAuth.username,
- password: properties.basicAuth.password,
+ password: properties.basicAuth.password?.unsafeUnwrap(),
},
};
}
diff --git a/src/zendesk/profile.ts b/src/zendesk/profile.ts
index 8fb5c26a..6c0e9c6e 100644
--- a/src/zendesk/profile.ts
+++ b/src/zendesk/profile.ts
@@ -2,6 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
+import { SecretValue } from 'aws-cdk-lib';
import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow';
import { Construct } from 'constructs';
import { ZendeskConnectorType } from './type';
@@ -13,9 +14,9 @@ export interface ZendeskConnectorProfileProps extends ConnectorProfileProps {
}
export interface ZendeskOAuthSettings {
- readonly accessToken?: string;
- readonly clientId: string;
- readonly clientSecret: string;
+ readonly accessToken?: SecretValue;
+ readonly clientId: SecretValue;
+ readonly clientSecret: SecretValue;
}
export class ZendeskConnectorProfile extends ConnectorProfileBase {
@@ -45,9 +46,9 @@ export class ZendeskConnectorProfile extends ConnectorProfileBase {
const properties = (props as ZendeskConnectorProfileProps);
return {
zendesk: {
- accessToken: properties.oAuth.accessToken,
- clientId: properties.oAuth.clientId,
- clientSecret: properties.oAuth.clientSecret,
+ accessToken: properties.oAuth.accessToken?.unsafeUnwrap(),
+ clientId: properties.oAuth.clientId.unsafeUnwrap(),
+ clientSecret: properties.oAuth.clientSecret.unsafeUnwrap(),
},
};
}
diff --git a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json
index 3d6a17aa..0e94becc 100644
--- a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "56b3271a0e78fcd226b99fb24f3a5ba322597ac60a1ce3e5bba9f33d2d6275a0": {
+ "ee9761a5e2a7233f6e6315d676d7f9ec38288571346d71bd986f8c7c875c7e14": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "56b3271a0e78fcd226b99fb24f3a5ba322597ac60a1ce3e5bba9f33d2d6275a0.json",
+ "objectKey": "ee9761a5e2a7233f6e6315d676d7f9ec38288571346d71bd986f8c7c875c7e14.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json
index 40fd3f19..c9c6ced2 100644
--- a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnector",
- "ConnectorType": "CustomConnector",
"ConnectorLabel": "GoogleAnalytics4",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
@@ -84,7 +82,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnector",
+ "ConnectorType": "CustomConnector"
}
},
"TestBucket560B80BC": {
@@ -110,6 +110,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -242,18 +243,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -401,109 +402,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-googleanalytics4-to-s3.integ.ts b/test/integ/ondemand-googleanalytics4-to-s3.integ.ts
index 37d9b48a..8a04c545 100644
--- a/test/integ/ondemand-googleanalytics4-to-s3.integ.ts
+++ b/test/integ/ondemand-googleanalytics4-to-s3.integ.ts
@@ -19,9 +19,9 @@ const profile = new GoogleAnalytics4ConnectorProfile(stack, 'TestConnector', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json
index 236f4f4b..2ff3d4b8 100644
--- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,21 +1,21 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-us-east-1": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"region": "us-east-1",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1"
}
}
},
- "8b86735ff2bc3def3cae348aea43e7f632518c6ac2da03e96598c2e1387e5ed8": {
+ "2c0e6f8d668b207ae36fefe56aefb498b434801e17454f6dbe84cdaf18c5bc6a": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -23,7 +23,7 @@
"destinations": {
"current_account-us-east-1": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1",
- "objectKey": "8b86735ff2bc3def3cae348aea43e7f632518c6ac2da03e96598c2e1387e5ed8.json",
+ "objectKey": "2c0e6f8d668b207ae36fefe56aefb498b434801e17454f6dbe84cdaf18c5bc6a.json",
"region": "us-east-1",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1"
}
diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json
index 1113f5ac..001cc06a 100644
--- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnector",
- "ConnectorType": "CustomConnector",
"ConnectorLabel": "MicrosoftDynamics365",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
@@ -105,7 +103,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnector",
+ "ConnectorType": "CustomConnector"
}
},
"TestBucket560B80BC": {
@@ -131,6 +131,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -263,18 +264,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.ts b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.ts
index a92d0f4b..e6d060dd 100644
--- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.ts
+++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.ts
@@ -21,12 +21,12 @@ const secret = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/msdynamics3
const profile = new MicrosoftDynamics365ConnectorProfile(stack, 'TestConnector', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
diff --git a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json
index eff0f0b3..a2cca018 100644
--- a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "6b57b7d92e5a078619ebade6f916f2f97a85517dd96d351c12af4d3b69ccaa6c": {
+ "f75ed7000b3fc5212768e1703cb08000c56265ae42736a4ae63d7ce978b67374": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "6b57b7d92e5a078619ebade6f916f2f97a85517dd96d351c12af4d3b69ccaa6c.json",
+ "objectKey": "f75ed7000b3fc5212768e1703cb08000c56265ae42736a4ae63d7ce978b67374.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json
index 6e9cc8ba..78f46804 100644
--- a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnector",
- "ConnectorType": "CustomConnector",
"ConnectorLabel": "MicrosoftSharePointOnline",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
@@ -82,7 +80,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnector",
+ "ConnectorType": "CustomConnector"
}
},
"TestBucket560B80BC": {
@@ -108,6 +108,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -240,18 +241,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -369,109 +370,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.ts b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.ts
index 94b3a7f8..754a8422 100644
--- a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.ts
+++ b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.ts
@@ -17,10 +17,10 @@ const secret = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/mssharepoin
const profile = new MicrosoftSharepointOnlineConnectorProfile(stack, 'TestConnector', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
},
},
endpoints: {
diff --git a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json
index 8ee0b837..9f6e2290 100644
--- a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json
@@ -1,15 +1,15 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
@@ -27,15 +27,15 @@
}
}
},
- "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd": {
+ "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0": {
"source": {
- "path": "asset.9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd",
+ "path": "asset.0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd.zip",
+ "objectKey": "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
@@ -53,7 +53,7 @@
}
}
},
- "ce20705d9d4cdbf9c80932f6941e94a614467fca32a7ddfdaabec45715ca542b": {
+ "6b314178348156ca204a2adc894442cc326c2ab12b0744df3aa051a654b94da5": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -61,7 +61,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "ce20705d9d4cdbf9c80932f6941e94a614467fca32a7ddfdaabec45715ca542b.json",
+ "objectKey": "6b314178348156ca204a2adc894442cc326c2ab12b0744df3aa051a654b94da5.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json
index b7f05828..b0341207 100644
--- a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json
@@ -27,6 +27,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -155,18 +156,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -357,13 +358,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd.zip"
- },
- "Role": {
- "Fn::GetAtt": [
- "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265",
- "Arn"
- ]
+ "S3Key": "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0.zip"
},
"Environment": {
"Variables": {
@@ -376,6 +371,12 @@
"Ref": "TestDeploymentAwsCliLayerACB69B63"
}
],
+ "Role": {
+ "Fn::GetAtt": [
+ "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265",
+ "Arn"
+ ]
+ },
"Runtime": "python3.9",
"Timeout": 900
},
@@ -388,8 +389,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "SnowTestConnector",
- "ConnectorType": "Snowflake",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Snowflake": {
@@ -563,7 +562,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "SnowTestConnector",
+ "ConnectorType": "Snowflake"
}
},
"OnDemandFlow4ECA54C5": {
@@ -710,109 +711,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-s3-to-snowflake.integ.ts b/test/integ/ondemand-s3-to-snowflake.integ.ts
index 37bfa826..1a6973dc 100644
--- a/test/integ/ondemand-s3-to-snowflake.integ.ts
+++ b/test/integ/ondemand-s3-to-snowflake.integ.ts
@@ -50,7 +50,7 @@ const snowProfile = new SnowflakeConnectorProfile(stack, 'SnowTestConnector', {
region: secret.secretValueFromJson('region').toString(),
basicAuth: {
username: secret.secretValueFromJson('username').toString(),
- password: secret.secretValueFromJson('password').toString(),
+ password: secret.secretValueFromJson('password'),
},
warehouse: secret.secretValueFromJson('warehouse').toString(),
database: secret.secretValueFromJson('database').toString(),
diff --git a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json
index 8262d010..86c094c8 100644
--- a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json
@@ -1,59 +1,59 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "1c86c854dd7bf4e9476b013497c1b08c57bf296dbc4200f2a251f79ad102d15e": {
+ "e275fde8d2a03c793e28878ff6a48e84af45d2655f0c79418b5b86f2add826f7": {
"source": {
- "path": "asset.1c86c854dd7bf4e9476b013497c1b08c57bf296dbc4200f2a251f79ad102d15e",
+ "path": "asset.e275fde8d2a03c793e28878ff6a48e84af45d2655f0c79418b5b86f2add826f7",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "1c86c854dd7bf4e9476b013497c1b08c57bf296dbc4200f2a251f79ad102d15e.zip",
+ "objectKey": "e275fde8d2a03c793e28878ff6a48e84af45d2655f0c79418b5b86f2add826f7.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e": {
+ "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": {
"source": {
- "path": "asset.8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e",
+ "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip",
+ "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "f9346b940b724b094a16ca051c017799995fa93df6da38a0539bf7c000fee50a": {
+ "17c16a3854838fd3ff4bda08146122a6701f33b9c86ae17f415ad0dc47a97544": {
"source": {
- "path": "asset.f9346b940b724b094a16ca051c017799995fa93df6da38a0539bf7c000fee50a",
+ "path": "asset.17c16a3854838fd3ff4bda08146122a6701f33b9c86ae17f415ad0dc47a97544",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "f9346b940b724b094a16ca051c017799995fa93df6da38a0539bf7c000fee50a.zip",
+ "objectKey": "17c16a3854838fd3ff4bda08146122a6701f33b9c86ae17f415ad0dc47a97544.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "e59bbc77a24f524b8f199eddb75b39e3c8be99ba23de0e5eb98f5da56aa637e4": {
+ "0da302d4fbe59ffb575aa17a9b5080bb9c7f912a8974ea89500f04d3d57788b2": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -61,7 +61,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "e59bbc77a24f524b8f199eddb75b39e3c8be99ba23de0e5eb98f5da56aa637e4.json",
+ "objectKey": "0da302d4fbe59ffb575aa17a9b5080bb9c7f912a8974ea89500f04d3d57788b2.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json
index 64ef26b2..4b72be1f 100644
--- a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestProfile",
- "ConnectorType": "Salesforce",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Salesforce": {
@@ -57,7 +55,9 @@
"isSandboxEnvironment": false
}
}
- }
+ },
+ "ConnectorProfileName": "TestProfile",
+ "ConnectorType": "Salesforce"
}
},
"TestBucket560B80BC": {
@@ -83,6 +83,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -217,18 +218,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -264,9 +265,6 @@
"TestVpcPublicSubnet1SubnetA7DB1EDF": {
"Type": "AWS::EC2::Subnet",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"AvailabilityZone": {
"Fn::Select": [
0,
@@ -290,21 +288,24 @@
"Key": "Name",
"Value": "TestStack/TestVpc/PublicSubnet1"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPublicSubnet1RouteTable4CBFF871": {
"Type": "AWS::EC2::RouteTable",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"Tags": [
{
"Key": "Name",
"Value": "TestStack/TestVpc/PublicSubnet1"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPublicSubnet1RouteTableAssociation7D1DECD9": {
@@ -321,12 +322,12 @@
"TestVpcPublicSubnet1DefaultRoute6C0F0315": {
"Type": "AWS::EC2::Route",
"Properties": {
- "RouteTableId": {
- "Ref": "TestVpcPublicSubnet1RouteTable4CBFF871"
- },
"DestinationCidrBlock": "0.0.0.0/0",
"GatewayId": {
"Ref": "TestVpcIGW9DD53F70"
+ },
+ "RouteTableId": {
+ "Ref": "TestVpcPublicSubnet1RouteTable4CBFF871"
}
},
"DependsOn": [
@@ -348,15 +349,15 @@
"TestVpcPublicSubnet1NATGatewayA323E3EC": {
"Type": "AWS::EC2::NatGateway",
"Properties": {
- "SubnetId": {
- "Ref": "TestVpcPublicSubnet1SubnetA7DB1EDF"
- },
"AllocationId": {
"Fn::GetAtt": [
"TestVpcPublicSubnet1EIP4884338C",
"AllocationId"
]
},
+ "SubnetId": {
+ "Ref": "TestVpcPublicSubnet1SubnetA7DB1EDF"
+ },
"Tags": [
{
"Key": "Name",
@@ -372,9 +373,6 @@
"TestVpcPublicSubnet2Subnet80A14523": {
"Type": "AWS::EC2::Subnet",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"AvailabilityZone": {
"Fn::Select": [
1,
@@ -398,21 +396,24 @@
"Key": "Name",
"Value": "TestStack/TestVpc/PublicSubnet2"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPublicSubnet2RouteTable75B88314": {
"Type": "AWS::EC2::RouteTable",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"Tags": [
{
"Key": "Name",
"Value": "TestStack/TestVpc/PublicSubnet2"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPublicSubnet2RouteTableAssociationB386A819": {
@@ -429,12 +430,12 @@
"TestVpcPublicSubnet2DefaultRoute054DAE0A": {
"Type": "AWS::EC2::Route",
"Properties": {
- "RouteTableId": {
- "Ref": "TestVpcPublicSubnet2RouteTable75B88314"
- },
"DestinationCidrBlock": "0.0.0.0/0",
"GatewayId": {
"Ref": "TestVpcIGW9DD53F70"
+ },
+ "RouteTableId": {
+ "Ref": "TestVpcPublicSubnet2RouteTable75B88314"
}
},
"DependsOn": [
@@ -456,15 +457,15 @@
"TestVpcPublicSubnet2NATGatewayA9858C31": {
"Type": "AWS::EC2::NatGateway",
"Properties": {
- "SubnetId": {
- "Ref": "TestVpcPublicSubnet2Subnet80A14523"
- },
"AllocationId": {
"Fn::GetAtt": [
"TestVpcPublicSubnet2EIP83F7944C",
"AllocationId"
]
},
+ "SubnetId": {
+ "Ref": "TestVpcPublicSubnet2Subnet80A14523"
+ },
"Tags": [
{
"Key": "Name",
@@ -480,9 +481,6 @@
"TestVpcPrivateSubnet1SubnetCC65D771": {
"Type": "AWS::EC2::Subnet",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"AvailabilityZone": {
"Fn::Select": [
0,
@@ -506,21 +504,24 @@
"Key": "Name",
"Value": "TestStack/TestVpc/PrivateSubnet1"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPrivateSubnet1RouteTable469B0105": {
"Type": "AWS::EC2::RouteTable",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"Tags": [
{
"Key": "Name",
"Value": "TestStack/TestVpc/PrivateSubnet1"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPrivateSubnet1RouteTableAssociationFFD4DFF7": {
@@ -537,21 +538,18 @@
"TestVpcPrivateSubnet1DefaultRoute32E7B814": {
"Type": "AWS::EC2::Route",
"Properties": {
- "RouteTableId": {
- "Ref": "TestVpcPrivateSubnet1RouteTable469B0105"
- },
"DestinationCidrBlock": "0.0.0.0/0",
"NatGatewayId": {
"Ref": "TestVpcPublicSubnet1NATGatewayA323E3EC"
+ },
+ "RouteTableId": {
+ "Ref": "TestVpcPrivateSubnet1RouteTable469B0105"
}
}
},
"TestVpcPrivateSubnet2SubnetDE0C64A2": {
"Type": "AWS::EC2::Subnet",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"AvailabilityZone": {
"Fn::Select": [
1,
@@ -575,21 +573,24 @@
"Key": "Name",
"Value": "TestStack/TestVpc/PrivateSubnet2"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPrivateSubnet2RouteTableCEF29F7C": {
"Type": "AWS::EC2::RouteTable",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"Tags": [
{
"Key": "Name",
"Value": "TestStack/TestVpc/PrivateSubnet2"
}
- ]
+ ],
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
+ }
}
},
"TestVpcPrivateSubnet2RouteTableAssociation18250AB4": {
@@ -606,12 +607,12 @@
"TestVpcPrivateSubnet2DefaultRouteA7EB6930": {
"Type": "AWS::EC2::Route",
"Properties": {
- "RouteTableId": {
- "Ref": "TestVpcPrivateSubnet2RouteTableCEF29F7C"
- },
"DestinationCidrBlock": "0.0.0.0/0",
"NatGatewayId": {
"Ref": "TestVpcPublicSubnet2NATGatewayA9858C31"
+ },
+ "RouteTableId": {
+ "Ref": "TestVpcPrivateSubnet2RouteTableCEF29F7C"
}
}
},
@@ -629,11 +630,11 @@
"TestVpcVPCGWF1827B84": {
"Type": "AWS::EC2::VPCGatewayAttachment",
"Properties": {
- "VpcId": {
- "Ref": "TestVpcE77CE678"
- },
"InternetGatewayId": {
"Ref": "TestVpcIGW9DD53F70"
+ },
+ "VpcId": {
+ "Ref": "TestVpcE77CE678"
}
}
},
@@ -697,9 +698,15 @@
"TestClusterE0095054": {
"Type": "AWS::Redshift::Cluster",
"Properties": {
+ "AllowVersionUpgrade": true,
+ "AutomatedSnapshotRetentionPeriod": 1,
+ "ClusterSubnetGroupName": {
+ "Ref": "TestClusterSubnets3F89F97D"
+ },
"ClusterType": "multi-node",
"DBName": "workshop",
- "MasterUsername": {
+ "Encrypted": false,
+ "MasterUserPassword": {
"Fn::Join": [
"",
[
@@ -707,11 +714,11 @@
{
"Ref": "TestClusterSecret074CA71D"
},
- ":SecretString:username::}}"
+ ":SecretString:password::}}"
]
]
},
- "MasterUserPassword": {
+ "MasterUsername": {
"Fn::Join": [
"",
[
@@ -719,17 +726,11 @@
{
"Ref": "TestClusterSecret074CA71D"
},
- ":SecretString:password::}}"
+ ":SecretString:username::}}"
]
]
},
"NodeType": "dc2.large",
- "AllowVersionUpgrade": true,
- "AutomatedSnapshotRetentionPeriod": 1,
- "ClusterSubnetGroupName": {
- "Ref": "TestClusterSubnets3F89F97D"
- },
- "Encrypted": false,
"NumberOfNodes": 2,
"PubliclyAccessible": false,
"VpcSecurityGroupIds": [
@@ -824,13 +825,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip"
- },
- "Role": {
- "Fn::GetAtt": [
- "TestTableProviderframeworkonEventServiceRole585FCC2A",
- "Arn"
- ]
+ "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip"
},
"Description": "AWS CDK resource provider framework - onEvent (TestStack/TestTable/Resource/Provider)",
"Environment": {
@@ -844,7 +839,13 @@
}
},
"Handler": "framework.onEvent",
- "Runtime": "nodejs14.x",
+ "Role": {
+ "Fn::GetAtt": [
+ "TestTableProviderframeworkonEventServiceRole585FCC2A",
+ "Arn"
+ ]
+ },
+ "Runtime": "nodejs18.x",
"Timeout": 900
},
"DependsOn": [
@@ -958,24 +959,16 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "1c86c854dd7bf4e9476b013497c1b08c57bf296dbc4200f2a251f79ad102d15e.zip"
+ "S3Key": "e275fde8d2a03c793e28878ff6a48e84af45d2655f0c79418b5b86f2add826f7.zip"
},
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"QueryRedshiftDatabase3de5bea727da479686625efb56431b5fServiceRole0A90D717",
"Arn"
]
},
- "Handler": "index.handler",
- "Runtime": {
- "Fn::FindInMap": [
- "DefaultCrNodeVersionMap",
- {
- "Ref": "AWS::Region"
- },
- "value"
- ]
- },
+ "Runtime": "nodejs18.x",
"Timeout": 60
},
"DependsOn": [
@@ -987,8 +980,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestRedshiftProfile",
- "ConnectorType": "Redshift",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Redshift": {
@@ -1019,7 +1010,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestRedshiftProfile",
+ "ConnectorType": "Redshift"
},
"DependsOn": [
"TestBucketAutoDeleteObjectsCustomResource8FEAABD5",
@@ -1244,24 +1237,16 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "f9346b940b724b094a16ca051c017799995fa93df6da38a0539bf7c000fee50a.zip"
+ "S3Key": "17c16a3854838fd3ff4bda08146122a6701f33b9c86ae17f415ad0dc47a97544.zip"
},
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2",
"Arn"
]
},
- "Handler": "index.handler",
- "Runtime": {
- "Fn::FindInMap": [
- "DefaultCrNodeVersionMap",
- {
- "Ref": "AWS::Region"
- },
- "value"
- ]
- },
+ "Runtime": "nodejs18.x",
"Timeout": 120
},
"DependsOn": [
@@ -1488,109 +1473,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-salesforce-to-redshift.integ.ts b/test/integ/ondemand-salesforce-to-redshift.integ.ts
index ef41d85c..0582a01f 100644
--- a/test/integ/ondemand-salesforce-to-redshift.integ.ts
+++ b/test/integ/ondemand-salesforce-to-redshift.integ.ts
@@ -26,7 +26,7 @@ const creds = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/salesforce')
const profile = new SalesforceConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: creds.secretValueFromJson('accessToken').toString(),
+ accessToken: creds.secretValueFromJson('accessToken'),
},
instanceUrl: creds.secretValueFromJson('instanceUrl').toString(),
isSandbox: false,
diff --git a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json
index 802548ec..3840dff8 100644
--- a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "8fe56b6c16bae7c622843a405408392d274c7cb2a083b65d81d163a3ba2b2398": {
+ "748cc2c3d57a4902c33bb1f3352cdc31a77c9dc4124fc89225d0e8632aee6779": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "8fe56b6c16bae7c622843a405408392d274c7cb2a083b65d81d163a3ba2b2398.json",
+ "objectKey": "748cc2c3d57a4902c33bb1f3352cdc31a77c9dc4124fc89225d0e8632aee6779.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json
index 0ac7d2ba..bf46ada7 100644
--- a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnectorProfile",
- "ConnectorType": "Salesforce",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Salesforce": {
@@ -77,7 +75,9 @@
"isSandboxEnvironment": false
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnectorProfile",
+ "ConnectorType": "Salesforce"
}
},
"TestBucket560B80BC": {
@@ -103,6 +103,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -235,18 +236,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -300,6 +301,20 @@
}
],
"FlowName": "OnDemandFlow",
+ "MetadataCatalogConfig": {
+ "GlueDataCatalog": {
+ "DatabaseName": {
+ "Ref": "TestDatabase7A4A91C2"
+ },
+ "RoleArn": {
+ "Fn::GetAtt": [
+ "OnDemandFlowGlueAccessRole2AB92366",
+ "Arn"
+ ]
+ },
+ "TablePrefix": "test_prefix"
+ }
+ },
"SourceFlowConfig": {
"ConnectorProfileName": "TestConnectorProfile",
"ConnectorType": "Salesforce",
@@ -354,20 +369,6 @@
],
"TriggerConfig": {
"TriggerType": "OnDemand"
- },
- "MetadataCatalogConfig": {
- "GlueDataCatalog": {
- "DatabaseName": {
- "Ref": "TestDatabase7A4A91C2"
- },
- "RoleArn": {
- "Fn::GetAtt": [
- "OnDemandFlowGlueAccessRole2AB92366",
- "Arn"
- ]
- },
- "TablePrefix": "test_prefix"
- }
}
},
"DependsOn": [
@@ -449,109 +450,6 @@
}
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-salesforce-to-s3.integ.ts b/test/integ/ondemand-salesforce-to-s3.integ.ts
index 836ba0c4..83e06d9a 100644
--- a/test/integ/ondemand-salesforce-to-s3.integ.ts
+++ b/test/integ/ondemand-salesforce-to-s3.integ.ts
@@ -30,7 +30,7 @@ const profile = new SalesforceConnectorProfile(stack, 'TestConnectorProfile', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
client: secret,
},
},
diff --git a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json
index efa7657d..67fde2ef 100644
--- a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "c58c3645770c7b44c6dbfdba5f4e022f9f8a0418887d1451ed54d5428ed74049": {
+ "c4821d8564fc871b9aaaf002f65f53d8a120316b55096ae3c0efde62a02853e2": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "c58c3645770c7b44c6dbfdba5f4e022f9f8a0418887d1451ed54d5428ed74049.json",
+ "objectKey": "c4821d8564fc871b9aaaf002f65f53d8a120316b55096ae3c0efde62a02853e2.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json
index c39f1733..1958f4d1 100644
--- a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnectorProfile",
- "ConnectorType": "SAPOData",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"SAPOData": {
@@ -157,7 +155,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnectorProfile",
+ "ConnectorType": "SAPOData"
}
},
"TestBucket560B80BC": {
@@ -183,6 +183,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -315,18 +316,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -415,109 +416,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-sapodata-to-s3.integ.ts b/test/integ/ondemand-sapodata-to-s3.integ.ts
index 2a35ffd7..3d312357 100644
--- a/test/integ/ondemand-sapodata-to-s3.integ.ts
+++ b/test/integ/ondemand-sapodata-to-s3.integ.ts
@@ -24,7 +24,7 @@ const secret = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/sap/basic')
const profile = new SAPOdataConnectorProfile(stack, 'TestConnectorProfile', {
basicAuth: {
username: secret.secretValueFromJson('username').toString(),
- password: secret.secretValueFromJson('password').toString(),
+ password: secret.secretValueFromJson('password'),
},
applicationHostUrl: secret.secretValueFromJson('appHostUrl').toString(),
applicationServicePath: secret.secretValueFromJson('servicePath').toString(),
diff --git a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json
index 9b004821..1d031dd0 100644
--- a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "88ccd5dcc2a71de6e1dd749f98f47635d256e7557c2fa801db5dafd6b40e651a": {
+ "a4eb809da1c2bd505a450f6717f859993a6c3baa5b5013b0b9c61d6e169b64de": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "88ccd5dcc2a71de6e1dd749f98f47635d256e7557c2fa801db5dafd6b40e651a.json",
+ "objectKey": "a4eb809da1c2bd505a450f6717f859993a6c3baa5b5013b0b9c61d6e169b64de.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json
index 8e573577..9185456b 100644
--- a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnectorProfile",
- "ConnectorType": "Slack",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Slack": {
@@ -57,7 +55,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnectorProfile",
+ "ConnectorType": "Slack"
}
},
"TestBucket560B80BC": {
@@ -83,6 +83,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -215,18 +216,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -315,109 +316,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/ondemand-slack-to-s3.integ.ts b/test/integ/ondemand-slack-to-s3.integ.ts
index 4479ca58..c9e4a19d 100644
--- a/test/integ/ondemand-slack-to-s3.integ.ts
+++ b/test/integ/ondemand-slack-to-s3.integ.ts
@@ -23,7 +23,7 @@ const secret = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/slack');
const profile = new SlackConnectorProfile(stack, 'TestConnectorProfile', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
},
instanceUrl: secret.secretValueFromJson('instanceUrl').toString(),
});
diff --git a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json
index cb90a4f8..bb50ca4f 100644
--- a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json
+++ b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json
@@ -1,20 +1,20 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "9bb377591e356ba882acd01f9f2efea6667b6c25a04c83005b8faa5a3e09aa39": {
+ "f2f3f4e331388c278eb61f8769664264ff8cd03b4d9efadabc7b1715e2ec1933": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -22,7 +22,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "9bb377591e356ba882acd01f9f2efea6667b6c25a04c83005b8faa5a3e09aa39.json",
+ "objectKey": "f2f3f4e331388c278eb61f8769664264ff8cd03b4d9efadabc7b1715e2ec1933.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json
index 9be09f01..fbd747c2 100644
--- a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json
+++ b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnectorProfile",
- "ConnectorType": "Salesforce",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Salesforce": {
@@ -77,7 +75,9 @@
"isSandboxEnvironment": false
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnectorProfile",
+ "ConnectorType": "Salesforce"
}
},
"TestBucket560B80BC": {
@@ -103,6 +103,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -235,18 +236,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -358,109 +359,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/onevent-salesforce-to-eventbridge.integ.ts b/test/integ/onevent-salesforce-to-eventbridge.integ.ts
index 66dac8ac..8955f801 100644
--- a/test/integ/onevent-salesforce-to-eventbridge.integ.ts
+++ b/test/integ/onevent-salesforce-to-eventbridge.integ.ts
@@ -26,7 +26,7 @@ const profile = new SalesforceConnectorProfile(stack, 'TestConnectorProfile', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
client: secret,
},
},
diff --git a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json
index b65de896..6d51437d 100644
--- a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json
+++ b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json
@@ -1,15 +1,15 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
@@ -27,15 +27,15 @@
}
}
},
- "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd": {
+ "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0": {
"source": {
- "path": "asset.9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd",
+ "path": "asset.0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd.zip",
+ "objectKey": "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
@@ -66,20 +66,20 @@
}
}
},
- "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e": {
+ "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": {
"source": {
- "path": "asset.8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e",
+ "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94",
"packaging": "zip"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip",
+ "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
- "5fb25212156d1ccff3b104374762c1b30e18e126c0751381cc9ef971e6ef161f": {
+ "ff40c15fceb7f7d7cd19aba8d53e37d71f4f864bf51e8c89a73d4ce0f84786b5": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -87,7 +87,7 @@
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
- "objectKey": "5fb25212156d1ccff3b104374762c1b30e18e126c0751381cc9ef971e6ef161f.json",
+ "objectKey": "ff40c15fceb7f7d7cd19aba8d53e37d71f4f864bf51e8c89a73d4ce0f84786b5.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
diff --git a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json
index b9901e51..467f8376 100644
--- a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json
+++ b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json
@@ -27,6 +27,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -155,18 +156,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -357,13 +358,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "9eb41a5505d37607ac419321497a4f8c21cf0ee1f9b4a6b29aa04301aea5c7fd.zip"
- },
- "Role": {
- "Fn::GetAtt": [
- "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265",
- "Arn"
- ]
+ "S3Key": "0b1f5aa55d045066ed91316b823a808060c12737e0575ab7cefe2335324108b0.zip"
},
"Environment": {
"Variables": {
@@ -376,6 +371,12 @@
"Ref": "TestDeploymentAwsCliLayerACB69B63"
}
],
+ "Role": {
+ "Fn::GetAtt": [
+ "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265",
+ "Arn"
+ ]
+ },
"Runtime": "python3.9",
"Timeout": 900
},
@@ -388,8 +389,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnectorProfile",
- "ConnectorType": "Salesforce",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
"Salesforce": {
@@ -461,7 +460,9 @@
"isSandboxEnvironment": false
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnectorProfile",
+ "ConnectorType": "Salesforce"
}
},
"OnScheduleFlow9A474F3B": {
@@ -480,6 +481,7 @@
}
],
"FlowName": "OnScheduleFlow",
+ "FlowStatus": "Active",
"SourceFlowConfig": {
"ConnectorType": "S3",
"SourceConnectorProperties": {
@@ -576,8 +578,7 @@
}
},
"TriggerType": "Scheduled"
- },
- "FlowStatus": "Active"
+ }
},
"DependsOn": [
"OnScheduleFlowUpdater39178314",
@@ -706,12 +707,6 @@
},
"S3Key": "bda456ca3af7776e8e5ce88f2bbd621cc239ae9a3ce52dce5e34d1770b7380d2.zip"
},
- "Role": {
- "Fn::GetAtt": [
- "comamazonawscdkcustomresourcesflowtimeproviderflowtimeoneventServiceRole00475FEE",
- "Arn"
- ]
- },
"Description": "src/core/flows/flow-time-updater/flow-time-updater.lambda.ts",
"Environment": {
"Variables": {
@@ -719,6 +714,12 @@
}
},
"Handler": "index.handler",
+ "Role": {
+ "Fn::GetAtt": [
+ "comamazonawscdkcustomresourcesflowtimeproviderflowtimeoneventServiceRole00475FEE",
+ "Arn"
+ ]
+ },
"Runtime": "nodejs18.x"
},
"DependsOn": [
@@ -805,13 +806,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
- "S3Key": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip"
- },
- "Role": {
- "Fn::GetAtt": [
- "comamazonawscdkcustomresourcesflowtimeproviderframeworkonEventServiceRole2DC53640",
- "Arn"
- ]
+ "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip"
},
"Description": "AWS CDK resource provider framework - onEvent (TestStack/com.amazonaws.cdk.custom-resources.flow-time-provider/flow-time-provider)",
"Environment": {
@@ -825,7 +820,13 @@
}
},
"Handler": "framework.onEvent",
- "Runtime": "nodejs14.x",
+ "Role": {
+ "Fn::GetAtt": [
+ "comamazonawscdkcustomresourcesflowtimeproviderframeworkonEventServiceRole2DC53640",
+ "Arn"
+ ]
+ },
+ "Runtime": "nodejs18.x",
"Timeout": 900
},
"DependsOn": [
@@ -834,109 +835,6 @@
]
}
},
- "Mappings": {
- "DefaultCrNodeVersionMap": {
- "af-south-1": {
- "value": "nodejs16.x"
- },
- "ap-east-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-1": {
- "value": "nodejs16.x"
- },
- "ap-northeast-2": {
- "value": "nodejs16.x"
- },
- "ap-northeast-3": {
- "value": "nodejs16.x"
- },
- "ap-south-1": {
- "value": "nodejs16.x"
- },
- "ap-south-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-1": {
- "value": "nodejs16.x"
- },
- "ap-southeast-2": {
- "value": "nodejs16.x"
- },
- "ap-southeast-3": {
- "value": "nodejs16.x"
- },
- "ca-central-1": {
- "value": "nodejs16.x"
- },
- "cn-north-1": {
- "value": "nodejs16.x"
- },
- "cn-northwest-1": {
- "value": "nodejs16.x"
- },
- "eu-central-1": {
- "value": "nodejs16.x"
- },
- "eu-central-2": {
- "value": "nodejs16.x"
- },
- "eu-north-1": {
- "value": "nodejs16.x"
- },
- "eu-south-1": {
- "value": "nodejs16.x"
- },
- "eu-south-2": {
- "value": "nodejs16.x"
- },
- "eu-west-1": {
- "value": "nodejs16.x"
- },
- "eu-west-2": {
- "value": "nodejs16.x"
- },
- "eu-west-3": {
- "value": "nodejs16.x"
- },
- "me-central-1": {
- "value": "nodejs16.x"
- },
- "me-south-1": {
- "value": "nodejs16.x"
- },
- "sa-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-1": {
- "value": "nodejs16.x"
- },
- "us-east-2": {
- "value": "nodejs16.x"
- },
- "us-gov-east-1": {
- "value": "nodejs16.x"
- },
- "us-gov-west-1": {
- "value": "nodejs16.x"
- },
- "us-iso-east-1": {
- "value": "nodejs14.x"
- },
- "us-iso-west-1": {
- "value": "nodejs14.x"
- },
- "us-isob-east-1": {
- "value": "nodejs14.x"
- },
- "us-west-1": {
- "value": "nodejs16.x"
- },
- "us-west-2": {
- "value": "nodejs16.x"
- }
- }
- },
"Parameters": {
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value",
diff --git a/test/integ/onschedule-s3-to-salesforce.integ.ts b/test/integ/onschedule-s3-to-salesforce.integ.ts
index 62be6fe3..f3c5c986 100644
--- a/test/integ/onschedule-s3-to-salesforce.integ.ts
+++ b/test/integ/onschedule-s3-to-salesforce.integ.ts
@@ -54,7 +54,7 @@ const profile = new SalesforceConnectorProfile(stack, 'TestConnectorProfile', {
oAuth: {
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
client: secret,
},
},
diff --git a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json
index de2b6b79..da14bf36 100644
--- a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json
+++ b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json
@@ -1,15 +1,15 @@
{
- "version": "32.0.0",
+ "version": "35.0.0",
"files": {
- "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89": {
+ "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": {
"source": {
- "path": "asset.350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89",
+ "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6",
"packaging": "zip"
},
"destinations": {
"current_account-eu-west-2": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2",
- "objectKey": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip",
+ "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip",
"region": "eu-west-2",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2"
}
@@ -29,21 +29,21 @@
}
}
},
- "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e": {
+ "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": {
"source": {
- "path": "asset.8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e",
+ "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94",
"packaging": "zip"
},
"destinations": {
"current_account-eu-west-2": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2",
- "objectKey": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip",
+ "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip",
"region": "eu-west-2",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2"
}
}
},
- "7e15e452fb938666807938be5cf4111e5ef24d446279aa6c9af35c7b6320c355": {
+ "c95ba0f8682b2a6172b7888ca2d491e6ea0aba7a6f38b883e6093866d828c749": {
"source": {
"path": "TestStack.template.json",
"packaging": "file"
@@ -51,7 +51,7 @@
"destinations": {
"current_account-eu-west-2": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2",
- "objectKey": "7e15e452fb938666807938be5cf4111e5ef24d446279aa6c9af35c7b6320c355.json",
+ "objectKey": "c95ba0f8682b2a6172b7888ca2d491e6ea0aba7a6f38b883e6093866d828c749.json",
"region": "eu-west-2",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2"
}
diff --git a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json
index a614ba5b..1d9f357c 100644
--- a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json
+++ b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json
@@ -4,8 +4,6 @@
"Type": "AWS::AppFlow::ConnectorProfile",
"Properties": {
"ConnectionMode": "Public",
- "ConnectorProfileName": "TestConnector",
- "ConnectorType": "CustomConnector",
"ConnectorLabel": "SalesforceMarketingCloud",
"ConnectorProfileConfig": {
"ConnectorProfileCredentials": {
@@ -88,7 +86,9 @@
}
}
}
- }
+ },
+ "ConnectorProfileName": "TestConnector",
+ "ConnectorType": "CustomConnector"
}
},
"TestBucket560B80BC": {
@@ -114,6 +114,7 @@
"Statement": [
{
"Action": [
+ "s3:PutBucketPolicy",
"s3:GetBucket*",
"s3:List*",
"s3:DeleteObject*"
@@ -246,18 +247,18 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2"
},
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
},
"Timeout": 900,
"MemorySize": 128,
- "Handler": "__entrypoint__.handler",
+ "Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
"Arn"
]
},
- "Runtime": "nodejs16.x",
+ "Runtime": "nodejs18.x",
"Description": {
"Fn::Join": [
"",
@@ -477,12 +478,6 @@
},
"S3Key": "bda456ca3af7776e8e5ce88f2bbd621cc239ae9a3ce52dce5e34d1770b7380d2.zip"
},
- "Role": {
- "Fn::GetAtt": [
- "comamazonawscdkcustomresourcesflowtimeproviderflowtimeoneventServiceRole00475FEE",
- "Arn"
- ]
- },
"Description": "src/core/flows/flow-time-updater/flow-time-updater.lambda.ts",
"Environment": {
"Variables": {
@@ -490,6 +485,12 @@
}
},
"Handler": "index.handler",
+ "Role": {
+ "Fn::GetAtt": [
+ "comamazonawscdkcustomresourcesflowtimeproviderflowtimeoneventServiceRole00475FEE",
+ "Arn"
+ ]
+ },
"Runtime": "nodejs18.x"
},
"DependsOn": [
@@ -576,13 +577,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2"
},
- "S3Key": "8e3d635893ea17fa3158623489cd42c680fad925b38de1ef51cb10d84f6e245e.zip"
- },
- "Role": {
- "Fn::GetAtt": [
- "comamazonawscdkcustomresourcesflowtimeproviderframeworkonEventServiceRole2DC53640",
- "Arn"
- ]
+ "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip"
},
"Description": "AWS CDK resource provider framework - onEvent (TestStack/com.amazonaws.cdk.custom-resources.flow-time-provider/flow-time-provider)",
"Environment": {
@@ -596,7 +591,13 @@
}
},
"Handler": "framework.onEvent",
- "Runtime": "nodejs14.x",
+ "Role": {
+ "Fn::GetAtt": [
+ "comamazonawscdkcustomresourcesflowtimeproviderframeworkonEventServiceRole2DC53640",
+ "Arn"
+ ]
+ },
+ "Runtime": "nodejs18.x",
"Timeout": 900
},
"DependsOn": [
diff --git a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.ts b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.ts
index af5ef864..18c4f990 100644
--- a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.ts
+++ b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.ts
@@ -37,8 +37,8 @@ const profile = new SalesforceMarketingCloudConnectorProfile(stack, 'TestConnect
oAuth: {
flow: {
clientCredentials: {
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
endpoints: {
diff --git a/test/marketo/profile.test.ts b/test/marketo/profile.test.ts
index e10dfa0d..e27b2f7f 100644
--- a/test/marketo/profile.test.ts
+++ b/test/marketo/profile.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Key } from 'aws-cdk-lib/aws-kms';
import { Secret } from 'aws-cdk-lib/aws-secretsmanager';
@@ -18,11 +18,11 @@ describe('MarketoConnectorProfile', () => {
new MarketoConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
flow: {
clientCredentials: {
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
},
},
@@ -57,11 +57,11 @@ describe('MarketoConnectorProfile', () => {
new MarketoConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
clientCredentials: {
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
@@ -144,11 +144,11 @@ describe('MarketoConnectorProfile', () => {
new MarketoConnectorProfile(stack, 'TestProfile', {
key: key,
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
clientCredentials: {
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
},
diff --git a/test/marketo/source.test.ts b/test/marketo/source.test.ts
index f962edbe..6abefb0d 100644
--- a/test/marketo/source.test.ts
+++ b/test/marketo/source.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Bucket } from 'aws-cdk-lib/aws-s3';
@@ -67,11 +67,11 @@ describe('MarketoSource', () => {
const profile = new MarketoConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
flow: {
clientCredentials: {
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
},
},
diff --git a/test/microsoftsharepointonline/profile.test.ts b/test/microsoftsharepointonline/profile.test.ts
index 479bdff6..ed86e963 100644
--- a/test/microsoftsharepointonline/profile.test.ts
+++ b/test/microsoftsharepointonline/profile.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Key } from 'aws-cdk-lib/aws-kms';
import { Secret } from 'aws-cdk-lib/aws-secretsmanager';
@@ -18,12 +18,12 @@ describe('MicrosoftSharepointOnlineConnectorProfile', () => {
new MicrosoftSharepointOnlineConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: 'refreshToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ refreshToken: SecretValue.unsafePlainText('refreshToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
},
endpoints: {
@@ -68,12 +68,12 @@ describe('MicrosoftSharepointOnlineConnectorProfile', () => {
new MicrosoftSharepointOnlineConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
endpoints: {
@@ -177,12 +177,12 @@ describe('MicrosoftSharepointOnlineConnectorProfile', () => {
new MicrosoftSharepointOnlineConnectorProfile(stack, 'TestProfile', {
key: key,
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: secret.secretValueFromJson('refreshToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ refreshToken: secret.secretValueFromJson('refreshToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
},
endpoints: {
diff --git a/test/microsoftsharepointonline/source.test.ts b/test/microsoftsharepointonline/source.test.ts
index 02f6992c..37eab150 100644
--- a/test/microsoftsharepointonline/source.test.ts
+++ b/test/microsoftsharepointonline/source.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Bucket } from 'aws-cdk-lib/aws-s3';
@@ -110,12 +110,12 @@ describe('MicrosoftSharepointOnlineSource', () => {
const profile = new MicrosoftSharepointOnlineConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
flow: {
refreshTokenGrant: {
- refreshToken: 'refreshToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ refreshToken: SecretValue.unsafePlainText('refreshToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
},
endpoints: {
diff --git a/test/slack/profile.test.ts b/test/slack/profile.test.ts
index cdd753c4..42571eae 100644
--- a/test/slack/profile.test.ts
+++ b/test/slack/profile.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Key } from 'aws-cdk-lib/aws-kms';
import { Secret } from 'aws-cdk-lib/aws-secretsmanager';
@@ -18,9 +18,9 @@ describe('SlackConnectorProfile', () => {
new SlackConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
instanceUrl: SlackInstanceUrlBuilder.buildFromWorkspace('slackWorkspace'),
});
@@ -53,9 +53,9 @@ describe('SlackConnectorProfile', () => {
new SlackConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
instanceUrl: secret.secretValueFromJson('instanceUrl').toString(),
});
@@ -136,9 +136,9 @@ describe('SlackConnectorProfile', () => {
new SlackConnectorProfile(stack, 'TestProfile', {
key: key,
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
instanceUrl: secret.secretValueFromJson('instanceUrl').toString(),
});
diff --git a/test/slack/source.test.ts b/test/slack/source.test.ts
index a6c26f0e..28162f82 100644
--- a/test/slack/source.test.ts
+++ b/test/slack/source.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Bucket } from 'aws-cdk-lib/aws-s3';
@@ -67,9 +67,9 @@ describe('SlackSource', () => {
const profile = new SlackConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
instanceUrl: SlackInstanceUrlBuilder.buildFromWorkspace('slackWorkspace'),
});
diff --git a/test/zendesk/profile.test.ts b/test/zendesk/profile.test.ts
index 4df37ae2..c2051955 100644
--- a/test/zendesk/profile.test.ts
+++ b/test/zendesk/profile.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Key } from 'aws-cdk-lib/aws-kms';
import { Secret } from 'aws-cdk-lib/aws-secretsmanager';
@@ -18,9 +18,9 @@ describe('ZendeskConnectorProfile', () => {
new ZendeskConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
instanceUrl: ZendeskInstanceUrlBuilder.buildFromAccount('zendeskAccount'),
});
@@ -53,9 +53,9 @@ describe('ZendeskConnectorProfile', () => {
new ZendeskConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
instanceUrl: secret.secretValueFromJson('instanceUrl').toString(),
});
@@ -136,9 +136,9 @@ describe('ZendeskConnectorProfile', () => {
new ZendeskConnectorProfile(stack, 'TestProfile', {
key: key,
oAuth: {
- accessToken: secret.secretValueFromJson('accessToken').toString(),
- clientId: secret.secretValueFromJson('clientId').toString(),
- clientSecret: secret.secretValueFromJson('clientSecret').toString(),
+ accessToken: secret.secretValueFromJson('accessToken'),
+ clientId: secret.secretValueFromJson('clientId'),
+ clientSecret: secret.secretValueFromJson('clientSecret'),
},
instanceUrl: secret.secretValueFromJson('instanceUrl').toString(),
});
diff --git a/test/zendesk/source.test.ts b/test/zendesk/source.test.ts
index 2c6dd51f..4db58c31 100644
--- a/test/zendesk/source.test.ts
+++ b/test/zendesk/source.test.ts
@@ -2,7 +2,7 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
-import { Stack } from 'aws-cdk-lib';
+import { SecretValue, Stack } from 'aws-cdk-lib';
import { Template } from 'aws-cdk-lib/assertions';
import { Bucket } from 'aws-cdk-lib/aws-s3';
@@ -67,9 +67,9 @@ describe('ZendeskSource', () => {
const profile = new ZendeskConnectorProfile(stack, 'TestProfile', {
oAuth: {
- accessToken: 'accessToken',
- clientId: 'clientId',
- clientSecret: 'clientSecret',
+ accessToken: SecretValue.unsafePlainText('accessToken'),
+ clientId: SecretValue.unsafePlainText('clientId'),
+ clientSecret: SecretValue.unsafePlainText('clientSecret'),
},
instanceUrl: ZendeskInstanceUrlBuilder.buildFromAccount('zendeskAccount'),
});
diff --git a/yarn.lock b/yarn.lock
index 9da0aa19..d211427c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15,30 +15,30 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@aws-cdk/asset-awscli-v1@^2.2.177":
+"@aws-cdk/asset-awscli-v1@^2.2.201":
version "2.2.201"
resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.201.tgz#a7b51d3ecc8ff3ca9798269eda3a1db2400b506a"
integrity sha512-INZqcwDinNaIdb5CtW3ez5s943nX5stGBQS6VOP2JDlOFP81hM3fds/9NDknipqfUkZM43dx+HgVvkXYXXARCQ==
-"@aws-cdk/asset-kubectl-v20@^2.1.1":
+"@aws-cdk/asset-kubectl-v20@^2.1.2":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz#d8e20b5f5dc20128ea2000dc479ca3c7ddc27248"
integrity sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==
-"@aws-cdk/asset-node-proxy-agent-v5@^2.0.148":
- version "2.0.166"
- resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.166.tgz#467507db141cd829ff8aa9d6ea5519310a4276b8"
- integrity sha512-j0xnccpUQHXJKPgCwQcGGNu4lRiC1PptYfdxBIH1L4dRK91iBxtSQHESRQX+yB47oGLaF/WfNN/aF3WXwlhikg==
+"@aws-cdk/asset-node-proxy-agent-v6@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz#6dc9b7cdb22ff622a7176141197962360c33e9ac"
+ integrity sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg==
-"@aws-cdk/aws-glue-alpha@2.84.0-alpha.0":
- version "2.84.0-alpha.0"
- resolved "https://registry.yarnpkg.com/@aws-cdk/aws-glue-alpha/-/aws-glue-alpha-2.84.0-alpha.0.tgz#68c3c82d4709ec638627c6698c7df8087efb9c63"
- integrity sha512-PeWSWcByPy9gvqubCd5iu2b1X6LO9ACWYCJbBflAo4vB+/9DMHInQF6sSq+EtxZjjlRqbyJnugaOWkyjfpINHw==
+"@aws-cdk/aws-glue-alpha@2.110.1-alpha.0":
+ version "2.110.1-alpha.0"
+ resolved "https://registry.yarnpkg.com/@aws-cdk/aws-glue-alpha/-/aws-glue-alpha-2.110.1-alpha.0.tgz#5c711d0e6c0ed8ef78d8eb5c9eab7118ed0faa65"
+ integrity sha512-JH0li0znIAPw9ScZPxyxvKVSrQEYch6ALsVC447pIM3ILWkqK52J709OASc+bOzfMYeUU0+4ruK3whQO2weFMg==
-"@aws-cdk/aws-redshift-alpha@2.84.0-alpha.0":
- version "2.84.0-alpha.0"
- resolved "https://registry.yarnpkg.com/@aws-cdk/aws-redshift-alpha/-/aws-redshift-alpha-2.84.0-alpha.0.tgz#00a271d634371d45d1337ff857ad4d458e0bd9e1"
- integrity sha512-msNBQkiT+A1ViyHkcK159gzvfo3zcTR6a99CMqcF7VA0jKAOIQFjiElu0DiNgT+etwZSniVP1Fy/3RD4qxEBHA==
+"@aws-cdk/aws-redshift-alpha@2.110.1-alpha.0":
+ version "2.110.1-alpha.0"
+ resolved "https://registry.yarnpkg.com/@aws-cdk/aws-redshift-alpha/-/aws-redshift-alpha-2.110.1-alpha.0.tgz#3c17d5b9855f20d543bbeab4fa4ccd67912c1060"
+ integrity sha512-dqDuryFbAXCaGUfaH0dlgehs0gdrdh105Fg4ApQ/dIY00RZh9egrB9naI1Vv07DktuepcGMmBcO+MWeNoustAA==
"@aws-cdk/aws-service-spec@0.0.29":
version "0.0.29"
@@ -1338,22 +1338,22 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
-aws-cdk-lib@2.84.0:
- version "2.84.0"
- resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.84.0.tgz#cb08033f5cfba5aed3c0b0cb11a46fc1cbe1586c"
- integrity sha512-4zLtCLCIs5Ia4WRGqiXRwxSkpGaNy3NxMexO9qYHSuIYpqf4sHObzZ0tDHZCFL5Wkui3sCu3OLQWrRHrr93HvA==
+aws-cdk-lib@2.110.1:
+ version "2.110.1"
+ resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.110.1.tgz#3bbe61ec03b73da390ae5718060385c26333749d"
+ integrity sha512-Z+42Jc/KSKFdBOpEv4LK9tz6kQUdVvUBquIYhLajam3aGblkonM0/FgexvAqy8iGwUaVEIpVyBTZUP2/VUMalg==
dependencies:
- "@aws-cdk/asset-awscli-v1" "^2.2.177"
- "@aws-cdk/asset-kubectl-v20" "^2.1.1"
- "@aws-cdk/asset-node-proxy-agent-v5" "^2.0.148"
+ "@aws-cdk/asset-awscli-v1" "^2.2.201"
+ "@aws-cdk/asset-kubectl-v20" "^2.1.2"
+ "@aws-cdk/asset-node-proxy-agent-v6" "^2.0.1"
"@balena/dockerignore" "^1.0.2"
case "1.6.3"
fs-extra "^11.1.1"
ignore "^5.2.4"
jsonschema "^1.4.1"
minimatch "^3.1.2"
- punycode "^2.3.0"
- semver "^7.5.1"
+ punycode "^2.3.1"
+ semver "^7.5.4"
table "^6.8.1"
yaml "1.10.2"
@@ -4504,7 +4504,7 @@ psl@^1.1.33:
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
-punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
+punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
@@ -4749,7 +4749,7 @@ semver-intersect@^1.4.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.5.1, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4:
+semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==