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==