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,
+ };
+}