diff --git a/wren-ui/src/apollo/server/services/projectService.ts b/wren-ui/src/apollo/server/services/projectService.ts index 489fc2d1e1..a4a7aadfc1 100644 --- a/wren-ui/src/apollo/server/services/projectService.ts +++ b/wren-ui/src/apollo/server/services/projectService.ts @@ -36,6 +36,7 @@ const SENSITIVE_PROPERTY_NAME = new Set([ 'privateKey', 'accessToken', 'clientSecret', + 'webIdentityToken' ]); export interface ProjectData { displayName: string; diff --git a/wren-ui/src/components/pages/setup/dataSources/AthenaProperties.tsx b/wren-ui/src/components/pages/setup/dataSources/AthenaProperties.tsx index ec7209ad66..9205fd9b5b 100644 --- a/wren-ui/src/components/pages/setup/dataSources/AthenaProperties.tsx +++ b/wren-ui/src/components/pages/setup/dataSources/AthenaProperties.tsx @@ -57,9 +57,9 @@ function AthenaOIDCFields(props: { isEditMode: boolean }) { }, ]} > - diff --git a/wren-ui/src/hooks/useSetupConnectionDataSource.tsx b/wren-ui/src/hooks/useSetupConnectionDataSource.tsx index 726ddf5887..31cf821183 100644 --- a/wren-ui/src/hooks/useSetupConnectionDataSource.tsx +++ b/wren-ui/src/hooks/useSetupConnectionDataSource.tsx @@ -85,8 +85,14 @@ export const transformFormToProperties = ( ...properties, ...getDatabricksAuthentication(properties), }; + } else if (dataSourceType === DataSourceName.ATHENA) { + return { + ...properties, + ...getAthenaAuthentication(properties), + }; } + return { ...properties, // remove password placeholder if user doesn't change the password @@ -187,3 +193,21 @@ function getDatabricksAuthentication(properties: Record) { : properties?.accessToken, }; } + +function getAthenaAuthentication(properties: Record) { + if (properties?.webIdentityToken) { + return { + webIdentityToken: + properties?.webIdentityToken === PASSWORD_PLACEHOLDER + ? undefined + : properties?.webIdentityToken, + }; + } + + return { + awsSecretKey: + properties?.awsSecretKey === PASSWORD_PLACEHOLDER + ? undefined + : properties?.awsSecretKey, + }; +}