diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/config/ConfigResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/config/ConfigResource.java index b674df1594e..b8d13284cd4 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/config/ConfigResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/config/ConfigResource.java @@ -20,7 +20,6 @@ import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import org.openmetadata.catalog.CatalogApplicationConfig; import org.openmetadata.catalog.security.AuthenticationConfiguration; -import org.openmetadata.catalog.security.AuthorizerConfiguration; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -45,6 +44,10 @@ public class ConfigResource { @Path(("/auth")) @Operation(summary = "Get auth configuration") public AuthenticationConfiguration getAuthConfig(@Context UriInfo uriInfo, @Context SecurityContext securityContext) { - return catalogApplicationConfig.getAuthenticationConfiguration(); + AuthenticationConfiguration authenticationConfiguration = new AuthenticationConfiguration(); + if (catalogApplicationConfig.getAuthenticationConfiguration() != null) { + authenticationConfiguration = catalogApplicationConfig.getAuthenticationConfiguration(); + } + return authenticationConfiguration; } } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/AuthenticationConfiguration.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/AuthenticationConfiguration.java index 4a850d59b01..1b6c44ab7c8 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/AuthenticationConfiguration.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/security/AuthenticationConfiguration.java @@ -9,6 +9,8 @@ public class AuthenticationConfiguration { private String clientId; + private String callbackUrl; + public String getProvider() { return provider; } @@ -38,4 +40,12 @@ public class AuthenticationConfiguration { public void setClientId(String clientId) { this.clientId = clientId; } + + public String getCallbackUrl() { + return callbackUrl; + } + + public void setCallbackUrl(String callbackUrl) { + this.callbackUrl = callbackUrl; + } } diff --git a/catalog-rest-service/src/main/resources/ui/src/auth-provider/AuthProvider.tsx b/catalog-rest-service/src/main/resources/ui/src/auth-provider/AuthProvider.tsx index 2264387a24c..c05b90ca496 100644 --- a/catalog-rest-service/src/main/resources/ui/src/auth-provider/AuthProvider.tsx +++ b/catalog-rest-service/src/main/resources/ui/src/auth-provider/AuthProvider.tsx @@ -156,8 +156,12 @@ const AuthProvider: FunctionComponent = ({ fetchAuthorizerConfig() .then((res: AxiosResponse) => { if (res.data) { - const { provider, authority, clientId } = res.data; - const userConfig = getUserManagerConfig({ authority, clientId }); + const { provider, authority, clientId, callbackUrl } = res.data; + const userConfig = getUserManagerConfig({ + authority, + clientId, + callbackUrl, + }); setUserManagerConfig(userConfig); setUserManager(makeUserManager(userConfig)); if (!oidcUserToken) { diff --git a/catalog-rest-service/src/main/resources/ui/src/interface/types.d.ts b/catalog-rest-service/src/main/resources/ui/src/interface/types.d.ts index eb6a5ee1422..96d18a6d9ca 100644 --- a/catalog-rest-service/src/main/resources/ui/src/interface/types.d.ts +++ b/catalog-rest-service/src/main/resources/ui/src/interface/types.d.ts @@ -211,6 +211,7 @@ declare module 'Models' { authority: string; client_id: string; provider?: 'google' | 'okta' | 'github'; + callbackUrl?: string; signingIn?: boolean; }; diff --git a/catalog-rest-service/src/main/resources/ui/src/utils/AuthProvider.util.ts b/catalog-rest-service/src/main/resources/ui/src/utils/AuthProvider.util.ts index 2e0df4907ce..bc95ca3a5c6 100644 --- a/catalog-rest-service/src/main/resources/ui/src/utils/AuthProvider.util.ts +++ b/catalog-rest-service/src/main/resources/ui/src/utils/AuthProvider.util.ts @@ -1,4 +1,5 @@ import { CookieStorage } from 'cookie-storage'; +import { isNil } from 'lodash'; import { WebStorageStateStore } from 'oidc-client'; import { isDev } from '../utils/EnvironmentUtils'; @@ -11,7 +12,7 @@ export const getOidcExpiry = () => { export const getUserManagerConfig = ( authClient: Record = {} ): Record => { - const { authority, clientId } = authClient; + const { authority, clientId, callbackUrl } = authClient; return { authority, @@ -22,7 +23,9 @@ export const getUserManagerConfig = ( // eslint-disable-next-line @typescript-eslint/camelcase redirect_uri: isDev() ? 'http://localhost:3000/callback' - : 'http://localhost:8585/callback', + : !isNil(callbackUrl) + ? callbackUrl + : `${window.location.origin}/callback`, scope: 'openid email profile', userStore: new WebStorageStateStore({ store: cookieStorage }), }; diff --git a/catalog-rest-service/src/test/resources/catalog-secure-test.yaml b/catalog-rest-service/src/test/resources/catalog-secure-test.yaml index 6b7c0131cb3..b139d649163 100644 --- a/catalog-rest-service/src/test/resources/catalog-secure-test.yaml +++ b/catalog-rest-service/src/test/resources/catalog-secure-test.yaml @@ -137,3 +137,4 @@ authenticationConfiguration: publicKey: "https://www.googleapis.com/oauth2/v3/certs" authority: "https://accounts.google.com" clientId: "261867039324-neb92r2147i6upchb78tv29idk079bps.apps.googleusercontent.com" + callbackUrl: "http://localhost:8585/callback" diff --git a/conf/catalog-security.yaml b/conf/catalog-security.yaml index 61fce859b40..f718a057493 100644 --- a/conf/catalog-security.yaml +++ b/conf/catalog-security.yaml @@ -132,6 +132,7 @@ authenticationConfiguration: publicKey: "https://www.googleapis.com/oauth2/v3/certs" authority: "https://accounts.google.com" clientId: "261867039324-neb92r2147i6upchb78tv29idk079bps.apps.googleusercontent.com" + callbackUrl: "http://localhost:8585/callback" elasticsearch: host: localhost diff --git a/ingestion/src/metadata/ingestion/bulksink/elastic_search.py b/ingestion/src/metadata/ingestion/bulksink/elastic_search.py index bb3e2cd26c6..6b666289ffd 100644 --- a/ingestion/src/metadata/ingestion/bulksink/elastic_search.py +++ b/ingestion/src/metadata/ingestion/bulksink/elastic_search.py @@ -99,7 +99,7 @@ class ElasticSearchBulkSink(BulkSink): suggest = [{'input': [fqdn], 'weight': 5}, {'input': [table_name], 'weight': 10}] column_names = [] column_descriptions = [] - tags = set[str]() + tags = set() timestamp = time.time() tier = None