mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-02 11:49:23 +00:00
Merge pull request #1408 from cptran777/upstream-lineage
Use upstream lineage instead of resolved compliance
This commit is contained in:
commit
6b518f9b9e
@ -44,6 +44,8 @@ import { containerDataSource } from 'wherehows-web/utils/components/containers/d
|
|||||||
import { saveDatasetRetentionByUrn } from 'wherehows-web/utils/api/datasets/retention';
|
import { saveDatasetRetentionByUrn } from 'wherehows-web/utils/api/datasets/retention';
|
||||||
import { extractRetentionFromComplianceInfo } from 'wherehows-web/utils/datasets/retention';
|
import { extractRetentionFromComplianceInfo } from 'wherehows-web/utils/datasets/retention';
|
||||||
import { IDatasetRetention } from 'wherehows-web/typings/api/datasets/retention';
|
import { IDatasetRetention } from 'wherehows-web/typings/api/datasets/retention';
|
||||||
|
import { readUpstreamDatasetsByUrn } from 'wherehows-web/utils/api/datasets/lineage';
|
||||||
|
import { LineageList } from 'wherehows-web/typings/api/datasets/relationships';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type alias for the response when container data items are batched
|
* Type alias for the response when container data items are batched
|
||||||
@ -53,7 +55,8 @@ type BatchComplianceResponse = [
|
|||||||
Array<IComplianceDataType>,
|
Array<IComplianceDataType>,
|
||||||
IComplianceSuggestion,
|
IComplianceSuggestion,
|
||||||
IDatasetSchema,
|
IDatasetSchema,
|
||||||
IDatasetExportPolicy | null
|
IDatasetExportPolicy | null,
|
||||||
|
LineageList
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -126,6 +129,13 @@ export default class DatasetComplianceContainer extends Component {
|
|||||||
*/
|
*/
|
||||||
complianceInfo: IComplianceInfo | void;
|
complianceInfo: IComplianceInfo | void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List object containing a list of lineage objects that include upstream dataests and lineage
|
||||||
|
* metainformation
|
||||||
|
* @type {LineageList}
|
||||||
|
*/
|
||||||
|
upstreams: LineageList = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object containing the fields for the export policy for this dataset
|
* Object containing the fields for the export policy for this dataset
|
||||||
* @type {IDatasetExportPolicy}
|
* @type {IDatasetExportPolicy}
|
||||||
@ -190,13 +200,15 @@ export default class DatasetComplianceContainer extends Component {
|
|||||||
complianceDataTypes,
|
complianceDataTypes,
|
||||||
complianceSuggestion,
|
complianceSuggestion,
|
||||||
{ columns, schemaless },
|
{ columns, schemaless },
|
||||||
exportPolicy
|
exportPolicy,
|
||||||
|
upstreams
|
||||||
]: BatchComplianceResponse = await Promise.all([
|
]: BatchComplianceResponse = await Promise.all([
|
||||||
readDatasetComplianceByUrn(urn),
|
readDatasetComplianceByUrn(urn),
|
||||||
readComplianceDataTypes(),
|
readComplianceDataTypes(),
|
||||||
readDatasetComplianceSuggestionByUrn(urn),
|
readDatasetComplianceSuggestionByUrn(urn),
|
||||||
readDatasetSchemaByUrn(urn),
|
readDatasetSchemaByUrn(urn),
|
||||||
readDatasetExportPolicyByUrn(urn)
|
readDatasetExportPolicyByUrn(urn),
|
||||||
|
readUpstreamDatasetsByUrn(urn)
|
||||||
]);
|
]);
|
||||||
const schemaFieldNamesMappedToDataTypes = await iterateArrayAsync(columnDataTypesAndFieldNames)(columns);
|
const schemaFieldNamesMappedToDataTypes = await iterateArrayAsync(columnDataTypesAndFieldNames)(columns);
|
||||||
const { containingPersonalData, fromUpstream } = complianceInfo;
|
const { containingPersonalData, fromUpstream } = complianceInfo;
|
||||||
@ -218,7 +230,8 @@ export default class DatasetComplianceContainer extends Component {
|
|||||||
complianceSuggestion,
|
complianceSuggestion,
|
||||||
schemaFieldNamesMappedToDataTypes,
|
schemaFieldNamesMappedToDataTypes,
|
||||||
schemaless,
|
schemaless,
|
||||||
exportPolicy
|
exportPolicy,
|
||||||
|
upstreams
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,6 @@ import { task, TaskInstance } from 'ember-concurrency';
|
|||||||
import { get, set, computed, setProperties, getProperties } from '@ember/object';
|
import { get, set, computed, setProperties, getProperties } from '@ember/object';
|
||||||
import { IDatasetView } from 'wherehows-web/typings/api/datasets/dataset';
|
import { IDatasetView } from 'wherehows-web/typings/api/datasets/dataset';
|
||||||
import { assert } from '@ember/debug';
|
import { assert } from '@ember/debug';
|
||||||
import { readUpstreamDatasetsByUrn } from 'wherehows-web/utils/api/datasets/lineage';
|
|
||||||
import { IUpstreamWithComplianceMetadata } from 'wherehows-web/typings/app/datasets/lineage';
|
import { IUpstreamWithComplianceMetadata } from 'wherehows-web/typings/app/datasets/lineage';
|
||||||
import { datasetsWithComplianceMetadata } from 'wherehows-web/constants/datasets/lineage';
|
import { datasetsWithComplianceMetadata } from 'wherehows-web/constants/datasets/lineage';
|
||||||
import { arraySome } from 'wherehows-web/utils/array';
|
import { arraySome } from 'wherehows-web/utils/array';
|
||||||
@ -18,6 +17,7 @@ import Notifications, { NotificationEvent } from 'wherehows-web/services/notific
|
|||||||
import { IComplianceInfo } from 'wherehows-web/typings/api/datasets/compliance';
|
import { IComplianceInfo } from 'wherehows-web/typings/api/datasets/compliance';
|
||||||
import { service } from '@ember-decorators/service';
|
import { service } from '@ember-decorators/service';
|
||||||
import { LineageList } from 'wherehows-web/typings/api/datasets/relationships';
|
import { LineageList } from 'wherehows-web/typings/api/datasets/relationships';
|
||||||
|
import { readUpstreamDatasetsByUrn } from 'wherehows-web/utils/api/datasets/lineage';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Aliases the yieldable values for the container task
|
* Aliases the yieldable values for the container task
|
||||||
@ -68,10 +68,10 @@ export default class UpstreamDatasetContainer extends Component {
|
|||||||
supportedPurgePolicies: Array<PurgePolicy> = [];
|
supportedPurgePolicies: Array<PurgePolicy> = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The list of upstream datasets for the related urn
|
* The list of upstream datasets for the related urn, passed in from parent container
|
||||||
* @type {LineageList}
|
* @type {LineageList}
|
||||||
*/
|
*/
|
||||||
upstreamDatasets: LineageList = [];
|
upstreamLineage: LineageList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of metadata properties for upstream datasets
|
* List of metadata properties for upstream datasets
|
||||||
@ -135,8 +135,8 @@ export default class UpstreamDatasetContainer extends Component {
|
|||||||
*/
|
*/
|
||||||
getUpstreamDatasetsTask = task(function*(this: UpstreamDatasetContainer): IterableIterator<Promise<LineageList>> {
|
getUpstreamDatasetsTask = task(function*(this: UpstreamDatasetContainer): IterableIterator<Promise<LineageList>> {
|
||||||
const upstreamDatasets: LineageList = yield readUpstreamDatasetsByUrn(get(this, 'urn'));
|
const upstreamDatasets: LineageList = yield readUpstreamDatasetsByUrn(get(this, 'urn'));
|
||||||
return set(this, 'upstreamDatasets', upstreamDatasets);
|
return set(this, 'upstreamLineage', upstreamDatasets);
|
||||||
});
|
}).restartable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Task to get and set upstream metadata for upstream datasets
|
* Task to get and set upstream metadata for upstream datasets
|
||||||
@ -146,7 +146,9 @@ export default class UpstreamDatasetContainer extends Component {
|
|||||||
getUpstreamMetadataTask = task(function*(
|
getUpstreamMetadataTask = task(function*(
|
||||||
this: UpstreamDatasetContainer
|
this: UpstreamDatasetContainer
|
||||||
): IterableIterator<TaskInstance<Promise<LineageList>> | Promise<Array<IUpstreamWithComplianceMetadata>>> {
|
): IterableIterator<TaskInstance<Promise<LineageList>> | Promise<Array<IUpstreamWithComplianceMetadata>>> {
|
||||||
const upstreamLineage: LineageList = yield get(this, 'getUpstreamDatasetsTask').perform();
|
// Fallback logic, if we have lineage then use that otherwise get upstreams again
|
||||||
|
// prettier-ignore
|
||||||
|
const upstreamLineage = get(this, 'upstreamLineage') || <LineageList>(yield get(this, 'getUpstreamDatasetsTask').perform());
|
||||||
const upstreamMetadataPromises = datasetsWithComplianceMetadata(upstreamLineage.map(lineage => lineage.dataset));
|
const upstreamMetadataPromises = datasetsWithComplianceMetadata(upstreamLineage.map(lineage => lineage.dataset));
|
||||||
const upstreamsMetadata: Array<IUpstreamWithComplianceMetadata> = yield Promise.all(upstreamMetadataPromises);
|
const upstreamsMetadata: Array<IUpstreamWithComplianceMetadata> = yield Promise.all(upstreamMetadataPromises);
|
||||||
|
|
||||||
|
|||||||
@ -10,11 +10,13 @@
|
|||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
||||||
{{#if complianceInfo.fromUpstream}}
|
{{#if upstreams.length}}
|
||||||
|
|
||||||
{{datasets/containers/upstream-dataset
|
{{datasets/containers/upstream-dataset
|
||||||
urn=urn
|
urn=urn
|
||||||
platform=platform
|
platform=platform
|
||||||
|
upstreamLineage=upstreams
|
||||||
|
hasResolvedCompliance=complianceInfo.fromUpstream
|
||||||
upstreamComplianceType=complianceInfo.complianceType
|
upstreamComplianceType=complianceInfo.complianceType
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|||||||
@ -13,10 +13,10 @@
|
|||||||
<div class="upstream-dataset">
|
<div class="upstream-dataset">
|
||||||
<span class="upstream-dataset__compliance-status">
|
<span class="upstream-dataset__compliance-status">
|
||||||
{{tooltip-on-element
|
{{tooltip-on-element
|
||||||
text=(if parent.hasCompliance "Compliance completed for parent dataset" "Please complete the Compliance on this parent dataset")
|
text=(if hasResolvedCompliance "Compliance completed for parent dataset" "Please complete the Compliance on this parent dataset")
|
||||||
}}
|
}}
|
||||||
|
|
||||||
{{#if parent.hasCompliance}}
|
{{#if hasResolvedCompliance}}
|
||||||
{{fa-icon "check" class="upstream-dataset__compliance-status__complete"}}
|
{{fa-icon "check" class="upstream-dataset__compliance-status__complete"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{fa-icon "exclamation" class="upstream-dataset__compliance-status__incomplete"}}
|
{{fa-icon "exclamation" class="upstream-dataset__compliance-status__incomplete"}}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user