Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
kanavnarula authored Sep 24, 2024
2 parents 5ef48ee + 32c8702 commit 332015f
Show file tree
Hide file tree
Showing 161 changed files with 5,492 additions and 9,255 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/docker-unified.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1030,6 +1030,7 @@ jobs:
TEST_STRATEGY: ${{ matrix.test_strategy }}
run: |
echo "$DATAHUB_VERSION"
./gradlew --stop
./smoke-test/smoke.sh
- name: Disk Check
run: df -h . && docker images
Expand All @@ -1043,8 +1044,9 @@ jobs:
uses: actions/upload-artifact@v3
if: failure()
with:
name: docker logs
name: docker-logs-${{ matrix.test_strategy }}
path: "docker_logs/*.log"
retention-days: 5
- name: Upload screenshots
uses: actions/upload-artifact@v3
if: failure()
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/pr-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,14 @@ jobs:
contains(
fromJson('[
"siladitya2",
"sgomezvillamor",
"ngamanda",
"HarveyLeo",
"frsann",
"bossenti",
"nikolakasev",
"PatrickfBraz",
"cuong-pham",
"sudhakarast",
"tkdrahn",
"rtekal",
"sgm44"
"mikeburke24",
"DSchmidtDev"
]'),
github.actor
)
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ buildscript {
buildscript.repositories.addAll(project.repositories)
dependencies {
classpath 'com.linkedin.pegasus:gradle-plugins:' + pegasusVersion
classpath 'com.github.node-gradle:gradle-node-plugin:7.0.1'
classpath 'com.github.node-gradle:gradle-node-plugin:7.0.2'
classpath 'io.acryl.gradle.plugin:gradle-avro-plugin:0.2.0'
classpath 'org.springframework.boot:spring-boot-gradle-plugin:' + springBootVersion
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0"
Expand Down Expand Up @@ -225,7 +225,7 @@ project.ext.externalDependency = [
'pac4j': 'org.pac4j:pac4j-oidc:4.5.8',
'playPac4j': 'org.pac4j:play-pac4j_2.12:9.0.2',
'postgresql': 'org.postgresql:postgresql:42.3.9',
'protobuf': 'com.google.protobuf:protobuf-java:3.19.6',
'protobuf': 'com.google.protobuf:protobuf-java:3.25.5',
'grpcProtobuf': 'io.grpc:grpc-protobuf:1.53.0',
'rangerCommons': 'org.apache.ranger:ranger-plugins-common:2.3.0',
'reflections': 'org.reflections:reflections:0.9.9',
Expand Down
3 changes: 3 additions & 0 deletions datahub-frontend/app/auth/sso/oidc/OidcConfigs.java
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,9 @@ public Builder from(final com.typesafe.config.Config configs, final String ssoSe
Optional.ofNullable(getOptional(configs, OIDC_PREFERRED_JWS_ALGORITHM, null));
}

grantType = Optional.ofNullable(getOptional(configs, OIDC_GRANT_TYPE, null));
acrValues = Optional.ofNullable(getOptional(configs, OIDC_ACR_VALUES, null));

return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public CustomOidcClient(final OidcConfiguration configuration) {
protected void clientInit() {
CommonHelper.assertNotNull("configuration", getConfiguration());
getConfiguration().init();
defaultRedirectionActionBuilder(new OidcRedirectionActionBuilder(getConfiguration(), this));
defaultRedirectionActionBuilder(new CustomOidcRedirectionActionBuilder(getConfiguration(), this));
defaultCredentialsExtractor(new OidcExtractor(getConfiguration(), this));
defaultAuthenticator(new CustomOidcAuthenticator(this));
defaultProfileCreator(new OidcProfileCreator<>(getConfiguration(), this));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package auth.sso.oidc.custom;

import java.util.Map;
import java.util.Optional;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.exception.http.RedirectionAction;
import org.pac4j.core.exception.http.RedirectionActionHelper;
import org.pac4j.oidc.client.OidcClient;
import org.pac4j.oidc.config.OidcConfiguration;
import org.pac4j.oidc.redirect.OidcRedirectionActionBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class CustomOidcRedirectionActionBuilder extends OidcRedirectionActionBuilder {

private static final Logger logger = LoggerFactory.getLogger(OidcRedirectionActionBuilder.class);
public CustomOidcRedirectionActionBuilder(OidcConfiguration configuration, OidcClient client) {
super(configuration, client);
}

@Override
public Optional<RedirectionAction> getRedirectionAction(WebContext context) {
Map<String, String> params = this.buildParams();
String computedCallbackUrl = this.client.computeFinalCallbackUrl(context);
params.put("redirect_uri", computedCallbackUrl);
this.addStateAndNonceParameters(context, params);
if (this.configuration.getMaxAge() != null) {
params.put("max_age", this.configuration.getMaxAge().toString());
}

String location = this.buildAuthenticationRequestUrl(params);

logger.debug("Custom parameters: {}", this.configuration.getCustomParams());

String acrValues = this.configuration.getCustomParam("acr_values");

if (acrValues != null && !location.contains("acr_values=")) {
location += (location.contains("?") ? "&" : "?") + "acr_values=" + acrValues;
}

logger.debug("Authentication request url: {}", location);
return Optional.of(RedirectionActionHelper.buildRedirectUrlAction(context, location));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ public List<NamedLine> getTimeseriesChart(
Optional<String> dimension, // Length 1 for now
Map<String, List<String>> filters,
Map<String, List<String>> mustNotFilters,
Optional<String> uniqueOn) {
Optional<String> uniqueOn,
String dateRangeField) {

log.debug(
String.format(
Expand All @@ -87,11 +88,11 @@ public List<NamedLine> getTimeseriesChart(
+ String.format("filters: %s, uniqueOn: %s", filters, uniqueOn));

AggregationBuilder filteredAgg =
getFilteredAggregation(filters, mustNotFilters, Optional.of(dateRange));
getFilteredAggregation(filters, mustNotFilters, Optional.of(dateRange), dateRangeField);

AggregationBuilder dateHistogram =
AggregationBuilders.dateHistogram(DATE_HISTOGRAM)
.field("timestamp")
.field(dateRangeField)
.calendarInterval(new DateHistogramInterval(granularity.name().toLowerCase()));
uniqueOn.ifPresent(s -> dateHistogram.subAggregation(getUniqueQuery(s)));

Expand Down Expand Up @@ -128,6 +129,25 @@ public List<NamedLine> getTimeseriesChart(
}
}

public List<NamedLine> getTimeseriesChart(
String indexName,
DateRange dateRange,
DateInterval granularity,
Optional<String> dimension, // Length 1 for now
Map<String, List<String>> filters,
Map<String, List<String>> mustNotFilters,
Optional<String> uniqueOn) {
return getTimeseriesChart(
indexName,
dateRange,
granularity,
dimension,
filters,
mustNotFilters,
uniqueOn,
"timestamp");
}

private int extractCount(MultiBucketsAggregation.Bucket bucket, boolean didUnique) {
return didUnique
? (int) bucket.getAggregations().<Cardinality>get(UNIQUE).getValue()
Expand Down Expand Up @@ -323,20 +343,38 @@ private Filter executeAndExtract(SearchRequest searchRequest) {
}
}

// Make dateRangeField as customizable
private AggregationBuilder getFilteredAggregation(
Map<String, List<String>> mustFilters,
Map<String, List<String>> mustNotFilters,
Optional<DateRange> dateRange) {
Optional<DateRange> dateRange,
String dateRangeField) {
BoolQueryBuilder filteredQuery = QueryBuilders.boolQuery();
mustFilters.forEach((key, values) -> filteredQuery.must(QueryBuilders.termsQuery(key, values)));
mustNotFilters.forEach(
(key, values) -> filteredQuery.mustNot(QueryBuilders.termsQuery(key, values)));
dateRange.ifPresent(range -> filteredQuery.must(dateRangeQuery(range)));
dateRange.ifPresent(range -> filteredQuery.must(dateRangeQuery(range, dateRangeField)));
return AggregationBuilders.filter(FILTERED, filteredQuery);
}

private AggregationBuilder getFilteredAggregation(
Map<String, List<String>> mustFilters,
Map<String, List<String>> mustNotFilters,
Optional<DateRange> dateRange) {
// Use timestamp as dateRangeField
return getFilteredAggregation(mustFilters, mustNotFilters, dateRange, "timestamp");
}

private QueryBuilder dateRangeQuery(DateRange dateRange) {
return QueryBuilders.rangeQuery("timestamp").gte(dateRange.getStart()).lt(dateRange.getEnd());
// Use timestamp as dateRangeField
return dateRangeQuery(dateRange, "timestamp");
}

// Make dateRangeField as customizable
private QueryBuilder dateRangeQuery(DateRange dateRange, String dateRangeField) {
return QueryBuilders.rangeQuery(dateRangeField)
.gte(dateRange.getStart())
.lt(dateRange.getEnd());
}

private AggregationBuilder getUniqueQuery(String uniqueOn) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.linkedin.datahub.graphql.generated.ScrollAcrossLineageResults;
import com.linkedin.datahub.graphql.resolvers.ResolverUtils;
import com.linkedin.datahub.graphql.types.common.mappers.LineageFlagsInputMapper;
import com.linkedin.datahub.graphql.types.common.mappers.SearchFlagsInputMapper;
import com.linkedin.datahub.graphql.types.entitytype.EntityTypeMapper;
import com.linkedin.datahub.graphql.types.mappers.UrnScrollAcrossLineageResultsMapper;
import com.linkedin.entity.client.EntityClient;
Expand Down Expand Up @@ -89,7 +90,6 @@ public CompletableFuture<ScrollAcrossLineageResults> get(DataFetchingEnvironment
if (lineageFlags.getEndTimeMillis() == null && endTimeMillis != null) {
lineageFlags.setEndTimeMillis(endTimeMillis);
}
;

com.linkedin.metadata.graph.LineageDirection resolvedDirection =
com.linkedin.metadata.graph.LineageDirection.valueOf(lineageDirection.toString());
Expand All @@ -107,17 +107,13 @@ public CompletableFuture<ScrollAcrossLineageResults> get(DataFetchingEnvironment
count);

final SearchFlags searchFlags;
final com.linkedin.datahub.graphql.generated.SearchFlags inputFlags =
input.getSearchFlags();
com.linkedin.datahub.graphql.generated.SearchFlags inputFlags = input.getSearchFlags();
if (inputFlags != null) {
searchFlags =
new SearchFlags()
.setSkipCache(inputFlags.getSkipCache())
.setFulltext(inputFlags.getFulltext())
.setMaxAggValues(inputFlags.getMaxAggValues());
searchFlags = SearchFlagsInputMapper.INSTANCE.apply(context, inputFlags);
} else {
searchFlags = null;
}

return UrnScrollAcrossLineageResultsMapper.map(
context,
_entityClient.scrollAcrossLineage(
Expand Down
Loading

0 comments on commit 332015f

Please sign in to comment.