in polaris-synchronizer/api/src/main/java/org/apache/polaris/tools/sync/polaris/service/impl/PolarisIcebergCatalogService.java [41:70]
public PolarisIcebergCatalogService(
String baseUrl,
String catalogName,
PrincipalWithCredentials omnipotentPrincipal,
Map<String, String> properties
) {
Map<String, String> catalogProperties = new HashMap<>();
String uri = baseUrl + "/api/catalog";
catalogProperties.put("uri", uri);
catalogProperties.put("warehouse", catalogName);
// Default to /v1/oauth/tokens endpoint unless an explicit property was provided
String oauth2ServerUri = properties.getOrDefault(
"omnipotent-principal-oauth2-server-uri", uri + "/" + ResourcePaths.tokens());
catalogProperties.put("oauth2-server-uri", oauth2ServerUri);
String clientId = omnipotentPrincipal.getCredentials().getClientId();
String clientSecret = omnipotentPrincipal.getCredentials().getClientSecret();
catalogProperties.putIfAbsent(
"credential", String.format("%s:%s", clientId, clientSecret));
catalogProperties.putIfAbsent("scope", "PRINCIPAL_ROLE:ALL");
this.catalog = (PolarisCatalog) CatalogUtil.loadCatalog(
PolarisCatalog.class.getName(),
"SOURCE_CATALOG_REST_" + catalogName,
catalogProperties,
null
);
}