From 1a375e4f00fd6248f1c11732f3ffb302ea59c0e8 Mon Sep 17 00:00:00 2001 From: Wei Hou Date: Tue, 20 Jul 2021 17:46:08 -0700 Subject: [PATCH 1/3] Removing frontend Ember app (i.e. datahub-web folder) --- datahub-web/.eslintignore | 48 - datahub-web/.eslintrc.js | 85 - datahub-web/.eslintrc.precommit.js | 24 - datahub-web/.gitignore | 28 - datahub-web/.prettierrc | 4 - datahub-web/.template-lintrc.js | 10 - .../@datahub/data-models/.editorconfig | 20 - datahub-web/@datahub/data-models/.ember-cli | 9 - datahub-web/@datahub/data-models/.gitignore | 23 - datahub-web/@datahub/data-models/.npmignore | 29 - datahub-web/@datahub/data-models/.travis.yml | 67 - .../@datahub/data-models/.watchmanconfig | 3 - datahub-web/@datahub/data-models/LICENSE.md | 13 - datahub-web/@datahub/data-models/README.md | 48 - .../@datahub/data-models/addon/.gitkeep | 0 .../@datahub/data-models/addon/api/browse.ts | 55 - .../addon/api/common/institutional-memory.ts | 35 - .../addon/api/common/social-actions.ts | 86 - .../addon/api/dataset/compliance.ts | 152 - .../data-models/addon/api/dataset/dataset.ts | 30 - .../data-models/addon/api/dataset/groups.ts | 22 - .../data-models/addon/api/dataset/lineage.ts | 28 - .../addon/api/dataset/ownership.ts | 50 - .../addon/api/dataset/platforms.ts | 19 - .../data-models/addon/api/dataset/schema.ts | 18 - .../addon/api/dataset/shared/lists.ts | 8 - .../@datahub/data-models/addon/api/entity.ts | 27 - .../data-models/addon/api/person/entity.ts | 39 - .../addon/components/get-entity-by-urn.hbs | 1 - .../addon/components/get-entity-by-urn.ts | 39 - .../addon/config/urn/base-prefix.ts | 14 - .../constants/entity/common/acl-access.ts | 19 - .../entity/dataset/compliance-suggestions.ts | 22 - .../addon/constants/entity/dataset/groups.ts | 5 - .../constants/entity/dataset/ownership.ts | 8 - .../entity/dataset/tab-properties/all.ts | 59 - .../dataset/tab-properties/properties.ts | 34 - .../addon/constants/entity/dataset/tabs.ts | 16 - .../addon/constants/entity/index.ts | 73 - .../addon/constants/entity/person/links.ts | 7 - .../constants/entity/person/social-actions.ts | 11 - .../addon/constants/entity/person/tabs.ts | 76 - .../addon/constants/entity/shared/index.ts | 2 - .../addon/constants/entity/shared/tabs.ts | 22 - .../data-models/addon/entity/base-entity.ts | 655 - ...data-construct-change-management-entity.ts | 33 - .../addon/entity/dataset/dataset-entity.ts | 371 - .../addon/entity/dataset/fields.ts | 81 - .../entity/dataset/helpers/validators/base.ts | 111 - .../validators/compliance/analyze-diff.ts | 151 - .../validators/compliance/annotations.ts | 103 - .../validators/compliance/comparators.ts | 50 - .../helpers/validators/compliance/schema.ts | 27 - .../dataset/modules/compliance-annotation.ts | 275 - .../modules/compliance-data-types-list.ts | 35 - .../entity/dataset/modules/compliance-info.ts | 379 - .../dataset/modules/compliance-suggestion.ts | 72 - .../modules/constants/annotation-helpers.ts | 110 - .../constants/security-classification.ts | 17 - .../entity/dataset/modules/export-policy.ts | 128 - .../addon/entity/dataset/modules/lineage.ts | 54 - .../addon/entity/dataset/modules/ownership.ts | 114 - .../entity/dataset/modules/platforms-list.ts | 66 - .../entity/dataset/modules/purge-policy.ts | 67 - .../addon/entity/dataset/modules/schema.ts | 56 - .../addon/entity/dataset/render-props.ts | 70 - .../addon/entity/dataset/utils/legacy.ts | 74 - .../addon/entity/dataset/utils/owner.ts | 34 - .../addon/entity/dataset/utils/platform.ts | 45 - .../addon/entity/dataset/utils/segments.ts | 31 - .../addon/entity/dataset/utils/urn.ts | 163 - .../addon/entity/group/group-entity.ts | 34 - .../addon/entity/institutional-memory.ts | 57 - .../addon/entity/list/list-entity.ts | 92 - .../addon/entity/mock/mock-entity.ts | 58 - .../addon/entity/person/modules/acl.ts | 60 - .../addon/entity/person/person-entity.ts | 388 - .../addon/entity/person/render-props.ts | 119 - .../data-models/addon/entity/utils/aspects.ts | 103 - .../addon/entity/utils/entities.ts | 9 - .../data-models/addon/entity/utils/facets.ts | 69 - .../data-models/addon/entity/utils/fields.ts | 7 - .../factories/dataset-ownership.ts | 67 - .../factories/dataset-schema-column.ts | 42 - .../addon/mirage-addon/factories/dataset.ts | 56 - .../fixtures/dataset-ownership.ts | 33 - .../addon/mirage-addon/mirage-config.ts | 17 - .../mirage-addon/models/dataset-ownership.ts | 3 - .../addon/mirage-addon/models/dataset.ts | 3 - .../scenarios/dataset-ownership.ts | 12 - .../test-helpers/datasets/datasets.ts | 15 - .../test-helpers/datasets/ownership.ts | 14 - .../test-helpers/datasets/schema.ts | 52 - .../mirage-addon/test-helpers/get-entity.ts | 14 - .../test-helpers/setup-sinon-test.ts | 25 - .../test-helpers/test-data-models-service.ts | 74 - .../test-entities/test-person-entity.ts | 34 - .../models/aspects/institutional-memory.ts | 79 - .../addon/relationships/creator.ts | 86 - .../addon/relationships/decorator.ts | 57 - .../data-models/addon/services/data-models.ts | 172 - .../addon/utils/entity-route-name-resolver.ts | 38 - .../addon/utils/get-actor-from-urn.ts | 7 - .../addon/utils/get-group-from-urn.ts | 7 - .../data-models/addon/utils/ownership.ts | 7 - datahub-web/@datahub/data-models/app/.gitkeep | 0 .../app/components/get-entity-by-urn.js | 1 - .../app/mirage-factories/dataset-ownership.js | 1 - .../app/mirage-models/dataset-ownership.js | 1 - .../data-models/app/services/data-models.js | 1 - .../app/utils/get-actor-from-urn.js | 1 - .../app/utils/get-group-from-urn.js | 1 - .../@datahub/data-models/config/ember-try.js | 84 - .../data-models/config/environment.js | 5 - .../@datahub/data-models/ember-cli-build.js | 18 - datahub-web/@datahub/data-models/index.js | 7 - datahub-web/@datahub/data-models/package.json | 82 - datahub-web/@datahub/data-models/testem.js | 1 - .../data-models/tests/dummy/app/app.js | 12 - .../tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/config/environment.d.ts | 20 - .../tests/dummy/app/controllers/.gitkeep | 0 .../tests/dummy/app/helpers/.gitkeep | 0 .../data-models/tests/dummy/app/index.html | 25 - .../tests/dummy/app/models/.gitkeep | 0 .../data-models/tests/dummy/app/router.js | 9 - .../tests/dummy/app/routes/.gitkeep | 0 .../tests/dummy/app/styles/app.css | 0 .../tests/dummy/app/templates/application.hbs | 3 - .../tests/dummy/config/environment.js | 53 - .../tests/dummy/config/optional-features.json | 6 - .../data-models/tests/dummy/config/targets.js | 14 - .../data-models/tests/dummy/mirage/config.ts | 11 - .../tests/dummy/mirage/scenarios/default.ts | 1 - .../dummy/mirage/serializers/application.ts | 9 - .../data-models/tests/dummy/public/robots.txt | 3 - .../data-models/tests/helpers/.gitkeep | 0 .../@datahub/data-models/tests/index.html | 33 - .../data-models/tests/integration/.gitkeep | 0 .../components/get-entity-by-urn-test.ts | 28 - .../integration/entity/utils/aspects-test.ts | 45 - .../@datahub/data-models/tests/test-helper.js | 9 - .../@datahub/data-models/tests/unit/.gitkeep | 0 .../tests/unit/services/data-models-test.ts | 67 - .../entity/dataset/dataset-entity-test.ts | 39 - .../dataset/helpers/validators/schema-test.ts | 52 - .../modules/compliance-annotation-test.ts | 55 - .../dataset/modules/compliance-info-test.ts | 217 - .../constants/annotation-helpers-test.ts | 84 - .../entity/dataset/modules/ownership-test.ts | 115 - .../utils/entity/mock/mock-entity-test.ts | 18 - .../unit/utils/get-actor-from-urn-test.ts | 14 - .../unit/utils/get-group-from-urn-test.ts | 14 - .../@datahub/data-models/tsconfig.json | 37 - .../data-models/types/dummy/index.d.ts | 1 - .../data-models/types/entity/browse.d.ts | 36 - .../types/entity/dataset/index.d.ts | 37 - .../types/entity/dataset/ownership.d.ts | 52 - .../data-models/types/entity/facets.d.ts | 69 - .../data-models/types/entity/person/props.ts | 14 - .../entity/rendering/entity-render-props.d.ts | 108 - .../entity/rendering/page-components.d.ts | 231 - .../entity/rendering/properties-panel.d.ts | 47 - .../data-models/types/entity/search.d.ts | 48 - .../data-models/types/entity/shared.d.ts | 75 - .../data-models/types/entity/validators.d.ts | 15 - .../@datahub/data-models/types/global.d.ts | 6 - .../types/relationships/decorator-types.d.ts | 19 - ...stom-search-result-property-component.d.ts | 30 - .../date.d.ts | 12 - .../icon.d.ts | 12 - .../link.d.ts | 17 - .../tag.d.ts | 14 - .../search/search-entity-render-prop.d.ts | 87 - .../types/vendor/custom-ember.d.ts | 7 - .../@datahub/data-models/vendor/.gitkeep | 0 datahub-web/@datahub/entities/.editorconfig | 20 - datahub-web/@datahub/entities/.ember-cli | 9 - datahub-web/@datahub/entities/.gitignore | 25 - datahub-web/@datahub/entities/.npmignore | 32 - datahub-web/@datahub/entities/.travis.yml | 67 - datahub-web/@datahub/entities/.watchmanconfig | 3 - datahub-web/@datahub/entities/LICENSE.md | 13 - datahub-web/@datahub/entities/README.md | 25 - datahub-web/@datahub/entities/addon/.gitkeep | 0 .../datasets/containers/dataset-main.ts | 289 - .../datasets/containers/dataset-schema.ts | 65 - .../core/containers/dataset-groups.ts | 141 - .../core/page/platform-discriminator.hbs | 13 - .../core/page/platform-discriminator.ts | 54 - .../components/datasets/dataset-schema.hbs | 100 - .../components/datasets/dataset-schema.ts | 94 - .../dataset-relationship-table.ts | 141 - .../user/containers/entity-header.ts | 53 - .../tab-content/entity-ownership.ts | 61 - .../tab-content/social-action-list.ts | 112 - .../containers/tablist/entity-ownership.ts | 27 - .../components/user/containers/user-main.ts | 210 - .../components/user/profile/entity-header.ts | 115 - .../components/user/profile/info-editor.ts | 198 - .../components/user/profile/page-content.ts | 33 - .../user/profile/page-content/renderer.ts | 32 - .../addon/components/user/profile/view-all.ts | 30 - .../addon/controllers/user/profile/tab.ts | 35 - .../entities/addon/entities-routes.ts | 22 - .../addon/helpers/compliance/is-none.ts | 12 - .../entities/addon/mirage-addon/.gitkeep | 0 .../addon/mirage-addon/datasets-config.ts | 19 - .../addon/mirage-addon/factories/platform.ts | 28 - .../addon/mirage-addon/helpers/ownership.ts | 10 - .../addon/mirage-addon/helpers/platforms.ts | 13 - .../models/compliance-data-types.ts | 3 - .../models/dataset-schema-column.ts | 3 - .../addon/mirage-addon/scenarios/default.ts | 33 - .../entities/addon/mocks/data-access.ts | 34 - .../addon/mocks/models/dataset-entity.ts | 22 - .../entities/addon/mocks/person-entity.ts | 43 - .../addon/placeholder/metadata-acquisition.ts | 36 - .../@datahub/entities/addon/routes/user.ts | 4 - .../entities/addon/routes/user/entity.ts | 21 - .../entities/addon/routes/user/entity/own.ts | 67 - .../entities/addon/routes/user/profile.ts | 51 - .../addon/routes/user/profile/index.ts | 24 - .../entities/addon/routes/user/profile/tab.ts | 67 - .../entities/addon/services/datasets-core.ts | 70 - .../addon/styles/datasets-core/_all.scss | 6 - .../_placeholder-nacho-tooltip.scss | 64 - .../styles/datasets-core/abstracts/_all.scss | 1 - .../datasets-core/abstracts/_mixins.scss | 7 - .../interactivity/_action-bar.scss | 67 - .../datasets-core/interactivity/_all.scss | 1 - .../styles/datasets-core/lineage/_all.scss | 1 - .../lineage/_upstream-dataset.scss | 47 - .../styles/datasets-core/tables/_all.scss | 1 - .../tables/dataset-groups/_all.scss | 1 - .../dataset-groups/_dataset-groups-table.scss | 38 - .../addon/styles/datasets-core/tabs/_all.scss | 1 - .../tabs/_dataset-compliance.scss | 18 - .../@datahub/entities/addon/styles/index.scss | 2 - .../entities/addon/styles/user/_all.scss | 1 - .../addon/styles/user/profile/_all.scss | 4 - .../addon/styles/user/profile/_content.scss | 110 - .../addon/styles/user/profile/_header.scss | 167 - .../styles/user/profile/_info-editor.scss | 57 - .../addon/styles/user/profile/_view-all.scss | 45 - .../datasets/containers/dataset-main.hbs | 24 - .../datasets/containers/dataset-schema.hbs | 16 - .../core/containers/dataset-groups.hbs | 56 - .../dataset-relationship-table.hbs | 74 - .../user/containers/entity-header.hbs | 8 - .../tab-content/entity-ownership.hbs | 16 - .../containers/tablist/entity-ownership.hbs | 4 - .../components/user/containers/user-main.hbs | 11 - .../components/user/profile/entity-header.hbs | 200 - .../components/user/profile/info-editor.hbs | 84 - .../components/user/profile/page-content.hbs | 64 - .../user/profile/page-content/renderer.hbs | 36 - .../components/user/profile/view-all.hbs | 30 - .../entities/addon/templates/user.hbs | 3 - .../entities/addon/templates/user/entity.hbs | 1 - .../addon/templates/user/entity/own.hbs | 23 - .../entities/addon/templates/user/profile.hbs | 1 - .../addon/templates/user/profile/index.hbs | 1 - .../addon/templates/user/profile/tab.hbs | 26 - .../entities/addon/utils/api/columns.ts | 32 - .../entities/addon/utils/api/schema.ts | 35 - .../@datahub/entities/addon/utils/lineage.ts | 53 - .../entities/addon/utils/tabownership.ts | 16 - datahub-web/@datahub/entities/app/.gitkeep | 0 .../datasets/containers/dataset-main.js | 1 - .../datasets/containers/dataset-schema.js | 1 - .../core/containers/dataset-groups.js | 1 - .../core/page/platform-discriminator.js | 1 - .../datasets/core/tabs/dataset-compliance.js | 1 - .../app/components/datasets/dataset-schema.js | 1 - .../dataset-relationship-table.js | 1 - .../user/containers/entity-header.js | 1 - .../tab-content/entity-ownership.js | 1 - .../tab-content/social-action-list.js | 1 - .../containers/tablist/entity-ownership.js | 1 - .../components/user/containers/user-main.js | 1 - .../components/user/profile/entity-header.js | 1 - .../components/user/profile/info-editor.js | 1 - .../components/user/profile/page-content.js | 1 - .../user/profile/page-content/renderer.js | 1 - .../user/profile/tabs/data-access.js | 1 - .../app/components/user/profile/view-all.js | 1 - .../app/controllers/user/profile/tab.js | 1 - .../app/helpers/compliance/is-none.js | 1 - .../@datahub/entities/app/routes/user.js | 1 - .../entities/app/routes/user/entity.js | 1 - .../entities/app/routes/user/entity/own.js | 1 - .../entities/app/routes/user/profile.js | 1 - .../entities/app/routes/user/profile/index.js | 1 - .../entities/app/routes/user/profile/tab.js | 1 - .../entities/app/services/datasets-core.js | 1 - .../tab-content/social-action-list.hbs | 11 - .../@datahub/entities/app/templates/user.js | 1 - .../entities/app/templates/user/entity.js | 1 - .../entities/app/templates/user/entity/own.js | 1 - .../entities/app/templates/user/profile.js | 1 - .../app/templates/user/profile/index.js | 1 - .../app/templates/user/profile/tab.js | 1 - .../@datahub/entities/config/ember-try.js | 80 - .../@datahub/entities/config/environment.d.ts | 13 - .../@datahub/entities/config/environment.js | 8 - datahub-web/@datahub/entities/config/icons.js | 6 - .../@datahub/entities/ember-cli-build.js | 18 - .../@datahub/entities/eyeglass-exports.js | 11 - datahub-web/@datahub/entities/index.js | 14 - datahub-web/@datahub/entities/package.json | 80 - datahub-web/@datahub/entities/testem.js | 1 - .../@datahub/entities/tests/dummy/app/app.ts | 12 - .../tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/config/environment.d.ts | 13 - .../tests/dummy/app/controllers/.gitkeep | 0 .../entities/tests/dummy/app/helpers/.gitkeep | 0 .../entities/tests/dummy/app/index.html | 25 - .../entities/tests/dummy/app/models/.gitkeep | 0 .../entities/tests/dummy/app/router.ts | 9 - .../entities/tests/dummy/app/routes/.gitkeep | 0 .../entities/tests/dummy/app/styles/app.scss | 0 .../tests/dummy/app/templates/application.hbs | 3 - .../dummy/app/templates/components/.gitkeep | 0 .../tests/dummy/config/environment.js | 54 - .../tests/dummy/config/optional-features.json | 6 - .../entities/tests/dummy/config/targets.js | 14 - .../entities/tests/dummy/mirage/config.ts | 9 - .../tests/dummy/mirage/scenarios/default.ts | 1 - .../dummy/mirage/serializers/application.ts | 9 - .../entities/tests/dummy/public/robots.txt | 3 - .../@datahub/entities/tests/helpers/.gitkeep | 0 .../@datahub/entities/tests/index.html | 33 - .../entities/tests/integration/.gitkeep | 0 .../containers/dataset-schema-test.ts | 20 - .../core/page/platform-discriminator-test.ts | 57 - .../datasets/dataset-schema-test.ts | 130 - .../user/containers/entity-header-test.ts | 45 - .../user/profile/entity-header-test.ts | 72 - .../user/profile/info-editor-test.ts | 59 - .../components/user/profile/view-all-test.ts | 29 - .../helpers/compliance/is-none-test.ts | 27 - .../@datahub/entities/tests/test-helper.ts | 9 - .../@datahub/entities/tests/unit/.gitkeep | 0 .../entities/tests/unit/routes/user-test.ts | 11 - .../tests/unit/services/datasets-core-test.ts | 12 - datahub-web/@datahub/entities/tsconfig.json | 44 - .../compliance/annotation-selection.d.ts | 15 - .../types/compliance/export-policy.d.ts | 10 - .../entities/types/datasets/columns.d.ts | 19 - .../entities/types/datasets/schema.d.ts | 8 - .../@datahub/entities/types/dummy/index.d.ts | 1 - .../@datahub/entities/types/global.d.ts | 6 - .../@datahub/entities/types/groups.d.ts | 13 - .../modules/ember-load-initializers.d.ts | 5 - .../entities/types/vendor/custom-ember.d.ts | 7 - .../types/vendor/mirage-for-datasets.d.ts | 33 - datahub-web/@datahub/entities/vendor/.gitkeep | 0 .../@datahub/metadata-types/.editorconfig | 20 - .../@datahub/metadata-types/.ember-cli | 9 - .../@datahub/metadata-types/.gitignore | 26 - .../@datahub/metadata-types/.npmignore | 29 - .../@datahub/metadata-types/.travis.yml | 61 - .../@datahub/metadata-types/.watchmanconfig | 3 - .../@datahub/metadata-types/LICENSE.md | 13 - datahub-web/@datahub/metadata-types/README.md | 60 - .../@datahub/metadata-types/addon/.gitkeep | 0 .../addon/constants/chart/protocol-type.ts | 14 - .../addon/constants/common/fabric-type.ts | 28 - .../constants/common/hadoop-cluster-type.ts | 11 - .../constants/entity/dashboard/access-type.ts | 9 - .../entity/dataset/compliance-data-type.ts | 110 - .../dataset/compliance-field-annotation.ts | 23 - .../entity/dataset/compliance-field-types.ts | 97 - .../entity/dataset/compliance-suggestion.ts | 23 - .../entity/dataset/compliance/classifiers.ts | 34 - .../entity/dataset/compliance/purge-policy.ts | 13 - .../constants/entity/dataset/field-format.ts | 24 - .../constants/entity/dataset/platform.ts | 26 - .../dataset/ump-dataset-azkaban-flow-type.ts | 12 - .../constants/entity/dataset/ump-flows.ts | 9 - .../addon/constants/metadata/aspect.ts | 46 - .../addon/constants/metadata/top-consumers.ts | 7 - .../addon/utils/common/ownership/owner.ts | 9 - .../addon/utils/common/ownership/urn.ts | 42 - .../utils/entity/dataset/platform/index.ts | 19 - .../utils/entity/dataset/platform/urn.ts | 11 - .../@datahub/metadata-types/app/.gitkeep | 0 .../metadata-types/config/ember-try.js | 80 - .../metadata-types/config/environment.js | 5 - .../metadata-types/ember-cli-build.js | 18 - datahub-web/@datahub/metadata-types/index.js | 6 - .../local-types/common/owner.d.ts | 15 - .../@datahub/metadata-types/package.json | 75 - .../metadata-types/restli-types-config.json | 5 - datahub-web/@datahub/metadata-types/testem.js | 1 - .../metadata-types/tests/dummy/app/app.js | 12 - .../tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/config/environment.d.ts | 20 - .../tests/dummy/app/controllers/.gitkeep | 0 .../tests/dummy/app/helpers/.gitkeep | 0 .../metadata-types/tests/dummy/app/index.html | 25 - .../tests/dummy/app/models/.gitkeep | 0 .../metadata-types/tests/dummy/app/router.js | 9 - .../tests/dummy/app/routes/.gitkeep | 0 .../tests/dummy/app/styles/app.css | 0 .../tests/dummy/app/templates/application.hbs | 3 - .../dummy/app/templates/components/.gitkeep | 0 .../tests/dummy/config/environment.js | 54 - .../tests/dummy/config/optional-features.json | 6 - .../tests/dummy/config/targets.js | 14 - .../tests/dummy/public/robots.txt | 3 - .../metadata-types/tests/helpers/.gitkeep | 0 .../@datahub/metadata-types/tests/index.html | 33 - .../metadata-types/tests/integration/.gitkeep | 0 .../metadata-types/tests/test-helper.js | 8 - .../metadata-types/tests/unit/.gitkeep | 0 .../@datahub/metadata-types/tsconfig.json | 28 - .../types/aspects/institutional-memory.d.ts | 16 - .../metadata-types/types/codegen/index.d.ts | 519 - .../types/common/audit-stamp.d.ts | 16 - .../types/common/change-audit-stamp.d.ts | 16 - .../metadata-types/types/common/locale.d.ts | 11 - .../types/common/multi-locale-string.d.ts | 13 - .../types/common/shared-owner.d.ts | 60 - .../metadata-types/types/common/time.d.ts | 6 - .../metadata-types/types/common/user.d.ts | 16 - .../metadata-types/types/dummy/index.d.ts | 0 .../data-concept/data-concept-entity.d.ts | 87 - .../entity/dataset/compliance-data-types.d.ts | 30 - .../dataset/compliance/export-policy.d.ts | 16 - .../types/entity/dataset/compliance/info.d.ts | 30 - .../entity/dataset/compliance/retention.d.ts | 19 - .../types/entity/dataset/dataset-entity.d.ts | 40 - .../types/entity/dataset/lineage.d.ts | 13 - .../types/entity/dataset/platform.d.ts | 33 - .../types/entity/dataset/schema.d.ts | 35 - .../types/entity/dataset/ump-flows.d.ts | 42 - .../types/entity/group/group-entity.d.ts | 8 - .../metadata-types/types/entity/index.d.ts | 11 - .../types/entity/person/person-entity.d.ts | 49 - .../@datahub/metadata-types/types/global.d.ts | 6 - .../metadata-types/types/metadata/aspect.d.ts | 23 - .../types/metadata/snapshot.d.ts | 6 - .../@datahub/metadata-types/vendor/.gitkeep | 0 datahub-web/@datahub/shared/.editorconfig | 20 - datahub-web/@datahub/shared/.ember-cli | 9 - datahub-web/@datahub/shared/.gitignore | 25 - datahub-web/@datahub/shared/.npmignore | 32 - datahub-web/@datahub/shared/.travis.yml | 67 - datahub-web/@datahub/shared/.watchmanconfig | 3 - datahub-web/@datahub/shared/LICENSE.md | 13 - datahub-web/@datahub/shared/README.md | 4 - datahub-web/@datahub/shared/addon/.gitkeep | 0 .../addon/api/change-management/change-log.ts | 34 - .../addon/api/configurator/configurator.ts | 5 - .../shared/addon/api/entity-configs.ts | 33 - .../@datahub/shared/addon/api/health/index.ts | 59 - .../shared/addon/api/lineage/index.ts | 19 - .../shared/addon/api/top-consumers/index.ts | 23 - .../shared/addon/api/user/authentication.ts | 18 - .../shared/addon/authenticators/aad-sso.ts | 39 - .../addon/authenticators/custom-ldap.ts | 33 - .../application/navbar/additional-links.hbs | 4 - .../addon/components/avatar/avatar-name.ts | 43 - .../avatar/containers/avatar-main.ts | 124 - .../components/avatar/generic-wrapper.ts | 29 - .../components/avatar/nacho-table-wrapper.hbs | 7 - .../addon/components/browser/browse-card.ts | 38 - .../components/browser/browse-category.ts | 17 - .../browser/containers/category-container.ts | 67 - .../browser/containers/entity-categories.ts | 216 - .../components/browser/entity-breadcrumbs.ts | 118 - .../entity-breadcrumbs/breadcrumb-error.hbs | 3 - .../browser/entity-breadcrumbs/crumb.ts | 17 - .../browser/search-within-hierarchy.ts | 67 - .../buttons/binary-toggle-button.ts | 105 - .../addon/components/buttons/svg-icon.ts | 43 - .../add-change-log-modal.hbs | 202 - .../change-management/add-change-log-modal.ts | 468 - .../change-log-search-provider.hbs | 20 - .../change-log-search-provider.ts | 66 - .../change-management/change-log-table.ts | 94 - .../containers/change-log.ts | 383 - .../markdown-cheat-sheet.hbs | 60 - .../change-management/markdown-cheat-sheet.ts | 12 - .../read-only-email-content.hbs | 18 - .../read-only-email-content.ts | 23 - .../recipient-search-select.hbs | 54 - .../recipient-search-select.ts | 151 - .../view-change-log-modal.hbs | 54 - .../view-change-log-modal.ts | 38 - .../containers/entity-feature-configs.ts | 74 - .../help-tooltip-with-link.hbs | 5 - .../user-assistance/help-tooltip-with-link.ts | 76 - .../dynamic-components/entity/description.hbs | 3 - .../dynamic-components/entity/field.hbs | 7 - .../dynamic-components/entity/field.ts | 18 - .../components/dynamic-components/header.hbs | 12 - .../components/dynamic-components/header.ts | 62 - .../components/dynamic-components/icon.hbs | 6 - .../components/dynamic-components/icon.ts | 25 - .../components/dynamic-components/text.hbs | 4 - .../components/dynamic-components/text.ts | 21 - .../components/dynamic-components/tooltip.hbs | 12 - .../components/dynamic-components/tooltip.ts | 41 - .../dynamic-components/wiki-link.hbs | 8 - .../dynamic-components/wiki-link.ts | 43 - .../addon/components/entity-alert-banner.ts | 31 - .../entity-page/base-page-component.ts | 10 - .../entity-page/entity-base-container.ts | 160 - .../entity-page/entity-deprecation.ts | 175 - .../entity-header/attribute-callout.ts | 7 - .../entity-page/entity-header/content-row.ts | 9 - .../entity-header/entity-property.ts | 81 - .../entity-page/entity-header/entity-title.ts | 25 - .../entity-page/entity-header/entity-type.ts | 22 - .../entity-page/entity-header/naked-div.ts | 7 - .../entity-page/entity-header/tag.ts | 44 - .../content-panel-with-toggle.hbs | 38 - .../content-panel-with-toggle.ts | 81 - .../entity-page-content/content-panel.ts | 21 - .../entity-discriminator.hbs | 1 - .../entity-discriminator.ts | 54 - .../entity-page-content/entity-switch.hbs | 5 - .../entity-page-content/entity-switch.ts | 17 - .../entity-page-content/file-viewer.ts | 18 - .../entity-page-content/hydrate-entity.hbs | 7 - .../entity-page-content/hydrate-entity.ts | 62 - .../nacho-table-entity-link.hbs | 7 - .../entity-page-content/nacho-table.ts | 42 - .../entity-page/entity-page-main.ts | 33 - .../entity-page/layouts/linear-layout.ts | 16 - .../entity-page/wherehows-entity-header.ts | 54 - .../entity/grid-group/profile-list.ts | 21 - .../components/entity/people/profile-list.ts | 24 - .../entity/properties-panel-label.hbs | 11 - .../entity/properties-panel-label.ts | 12 - .../components/entity/properties-panel.ts | 18 - .../addon/components/expandable-content.ts | 35 - .../addon/components/forms/action-drawer.ts | 48 - .../foxie/dynamic-components/container.hbs | 5 - .../foxie/dynamic-components/container.ts | 10 - .../foxie/dynamic-components/header.hbs | 1 - .../foxie/dynamic-components/header.ts | 35 - .../foxie/dynamic-components/link-button.hbs | 12 - .../foxie/dynamic-components/link-button.ts | 11 - .../addon/components/foxie/foxie-main.hbs | 32 - .../addon/components/foxie/foxie-main.ts | 139 - .../foxie/navbar/toggle-component.hbs | 17 - .../foxie/navbar/toggle-component.ts | 30 - .../foxie/screens/default-scenario.hbs | 21 - .../foxie/screens/default-scenario.ts | 13 - .../components/foxie/screens/random-gif.hbs | 3 - .../components/foxie/screens/random-gif.ts | 49 - .../addon/components/graph/graph-viewer.hbs | 19 - .../addon/components/graph/graph-viewer.ts | 444 - .../shared/addon/components/graph/toolbar.hbs | 115 - .../shared/addon/components/graph/toolbar.ts | 148 - .../components/health/carousel-insight.ts | 35 - .../health/containers/health-metadata.ts | 181 - .../addon/components/health/entity-detail.ts | 63 - .../components/health/health-factor-action.ts | 103 - .../components/health/health-factors-score.ts | 16 - .../addon/components/health/health-factors.ts | 89 - .../health/health-metadata-error.ts | 16 - .../components/health/health-score-value.ts | 47 - .../addon/components/health/insight-card.ts | 74 - .../addon/components/health/last-updated.ts | 76 - .../addon/components/health/search-score.ts | 46 - .../addon/components/insight/carousel.ts | 51 - .../institutional-memory/containers/tab.ts | 122 - .../institutional-memory/wiki/url-list.ts | 149 - .../wiki/url-list/add-dialog.ts | 74 - .../components/lineage/lineage-container.hbs | 8 - .../components/lineage/lineage-container.ts | 127 - .../addon/components/lineage/lineage-main.hbs | 37 - .../addon/components/lineage/lineage-main.ts | 11 - .../addon/components/link-to-section.hbs | 6 - .../addon/components/link-to-section.ts | 60 - .../addon/components/login/login-form.hbs | 29 - .../addon/components/login/login-form.ts | 27 - .../shared/addon/components/mail-to.ts | 59 - .../notifications/banner-alerts.hbs | 31 - .../components/notifications/banner-alerts.ts | 42 - .../date.hbs | 1 - .../date.ts | 31 - .../icon.hbs | 8 - .../icon.ts | 23 - .../link.hbs | 3 - .../link.ts | 18 - .../tag.hbs | 7 - .../tag.ts | 33 - .../social/containers/social-metadata.ts | 133 - .../addon/components/social/social-action.ts | 153 - .../addon/components/tab-content-modal.hbs | 56 - .../addon/components/tab-content-modal.ts | 66 - .../addon/components/tables/simple-record.ts | 46 - .../containers/top-consumers-modal.ts | 88 - .../containers/top-consumers.hbs | 11 - .../top-consumers/containers/top-consumers.ts | 96 - .../top-consumers/insight/insight-card.hbs | 51 - .../top-consumers/insight/insight-card.ts | 78 - .../top-consumers/insight/insight-strip.hbs | 43 - .../top-consumers/insight/insight-strip.ts | 78 - .../insight/top-consumers-insight.hbs | 57 - .../insight/top-consumers-insight.ts | 95 - .../insight/top-consumers-modal.hbs | 16 - .../insight/top-consumers-modal.ts | 120 - .../components/tracking/track-ui-event.ts | 71 - .../components/tracking/trackable-link-to.ts | 83 - .../components/wait-promise-container.ts | 53 - .../constants/authentication/auth-type.ts | 4 - .../constants/change-management/index.ts | 12 - .../scenario-definitions/empty-dataset.ts | 48 - .../constants/foxie/trigger-definitions.ts | 4 - .../constants/foxie/user-function-type.ts | 16 - .../shared/addon/constants/global/index.ts | 2 - .../addon/constants/health/score-grade.ts | 9 - .../addon/constants/social/pending-actions.ts | 6 - .../tracking/event-tracking/compliance.ts | 80 - .../control-interaction-events.ts | 12 - .../tracking/event-tracking/index.ts | 107 - .../tracking/event-tracking/search.ts | 26 - .../tracking/site-search-tracking/adapters.ts | 7 - .../tracking/site-search-tracking/index.ts | 14 - .../addon/controllers/entity-type/urn/tab.ts | 19 - .../shared/addon/controllers/login-base.ts | 94 - .../shared/addon/controllers/login.ts | 3 - .../addon/controllers/protocols/jit-acl.ts | 56 - .../entity/get-field-attribute-props.ts | 25 - .../addon/helpers/with-banner-offset.ts | 63 - .../mirage-addon/factories/change-log.ts | 67 - .../factories/entity-feature-conf.ts | 28 - .../mirage-addon/factories/entity-health.ts | 37 - .../factories/institutional-memory.ts | 33 - .../mirage-addon/factories/top-consumer.ts | 54 - .../mirage-addon/helpers/authenticate.ts | 46 - .../mirage-addon/helpers/browse-paths.ts | 15 - .../addon/mirage-addon/helpers/browse.ts | 26 - .../mirage-addon/helpers/browse/dataset.ts | 65 - .../addon/mirage-addon/helpers/config.ts | 19 - .../mirage-addon/helpers/csrf-protection.ts | 13 - .../helpers/institutional-memory.ts | 33 - .../addon/mirage-addon/mirage-config.ts | 89 - .../addon/mirage-addon/models/change-log.ts | 3 - .../models/entity-feature-conf.ts | 3 - .../mirage-addon/models/entity-health.ts | 3 - .../addon/mirage-addon/models/top-consumer.ts | 3 - .../mirage-addon/scenarios/change-log.ts | 5 - .../mirage-addon/scenarios/entity-config.ts | 5 - .../mirage-addon/scenarios/health-metadata.ts | 5 - .../mirage-addon/scenarios/top-consumers.ts | 5 - .../mirage-addon/test-helpers/change-log.ts | 7 - .../test-helpers/entity-configs.ts | 15 - .../entity-health/health-metadata.ts | 5 - .../test-helpers/top-consumers.ts | 6 - .../addon/mirage-addon/test-helpers/urn.ts | 28 - .../modifiers/track-control-interaction.ts | 130 - .../shared/addon/modules/avatars/avatar.ts | 88 - .../shared/addon/modules/change-log.ts | 48 - .../shared/addon/routes/application-base.ts | 76 - .../shared/addon/routes/browse/entity.ts | 86 - .../shared/addon/routes/browse/index.ts | 56 - .../shared/addon/routes/entity-type.ts | 46 - .../shared/addon/routes/entity-type/index.ts | 10 - .../shared/addon/routes/entity-type/urn.ts | 22 - .../addon/routes/entity-type/urn/index.ts | 17 - .../addon/routes/entity-type/urn/tab.ts | 57 - .../shared/addon/routes/lineage/urn.ts | 16 - .../shared/addon/routes/login-base.ts | 63 - .../@datahub/shared/addon/routes/login.ts | 2 - .../@datahub/shared/addon/services/aad-sso.ts | 79 - .../@datahub/shared/addon/services/avatar.ts | 66 - .../@datahub/shared/addon/services/banners.ts | 180 - .../shared/addon/services/configurator.ts | 124 - .../shared/addon/services/current-user.ts | 101 - .../@datahub/shared/addon/services/foxie.ts | 158 - .../shared/addon/services/graph-renderer.ts | 48 - .../@datahub/shared/addon/services/search.ts | 192 - .../shared/addon/services/unified-tracking.ts | 304 - .../shared/addon/services/user-settings.ts | 101 - .../@datahub/shared/addon/shared-routes.ts | 9 - .../addon/styles/_entity-alert-banner.scss | 48 - .../shared/addon/styles/avatar/_all.scss | 1 - .../shared/addon/styles/avatar/_name.scss | 12 - .../shared/addon/styles/browse-nav/_all.scss | 3 - .../addon/styles/browse-nav/_browse-card.scss | 28 - .../styles/browse-nav/_browse-category.scss | 85 - .../addon/styles/browse-nav/_browse-nav.scss | 111 - .../shared/addon/styles/buttons/_all.scss | 2 - .../styles/buttons/binary-toggle/_all.scss | 3 - .../styles/buttons/binary-toggle/_button.scss | 34 - .../buttons/binary-toggle/_buttons.scss | 5 - .../styles/buttons/binary-toggle/_toggle.scss | 11 - .../addon/styles/buttons/svg-icon/_all.scss | 1 - .../styles/buttons/svg-icon/_button.scss | 16 - .../_add-change-log-modal.scss | 143 - .../addon/styles/change-management/_all.scss | 7 - .../change-management/_change-log-table.scss | 76 - .../styles/change-management/_common.scss | 14 - .../_markdown-cheat-sheet.scss | 21 - .../_read-only-email-content.scss | 20 - .../_recipient-search-select.scss | 44 - .../_view-change-log-modal.scss | 51 - .../shared/addon/styles/components/_all.scss | 1 - .../addon/styles/dynamic-components/_all.scss | 2 - .../styles/dynamic-components/_header.scss | 12 - .../styles/dynamic-components/_tooltip.scss | 20 - .../shared/addon/styles/entity-page/_all.scss | 5 - .../entity-page/entity-deprecation/_all.scss | 1 - .../_entity-deprecation.scss | 68 - .../entity-header-components/_all.scss | 4 - .../_entity-property.scss | 37 - .../_entity-title.scss | 19 - .../_entity-type.scss | 6 - .../_header-content-row.scss | 6 - .../entity-header-layout/_all.scss | 1 - .../entity-header-layout/_entity-header.scss | 38 - .../entity-page/entity-page-content/_all.scss | 1 - .../entity-page-content/_content-panel.scss | 41 - .../entity-page/entity-page-main/_all.scss | 1 - .../entity-page-main/_entity-page-main.scss | 67 - .../shared/addon/styles/entity/_all.scss | 2 - .../addon/styles/entity/_profile-list.scss | 148 - .../styles/entity/_properties-panel.scss | 63 - .../addon/styles/forms/_action-drawer.scss | 18 - .../shared/addon/styles/forms/_all.scss | 1 - .../shared/addon/styles/foxie/_all.scss | 2 - .../addon/styles/foxie/_link-button.scss | 16 - .../shared/addon/styles/foxie/_main.scss | 130 - .../shared/addon/styles/graph/_all.scss | 2 - .../addon/styles/graph/_graph-viewer.scss | 182 - .../shared/addon/styles/graph/_toolbar.scss | 75 - .../shared/addon/styles/health/_all.scss | 5 - .../styles/health/entity-detail/_all.scss | 1 - .../styles/health/entity-detail/_header.scss | 19 - .../addon/styles/health/factors/_all.scss | 2 - .../styles/health/factors/_factor-action.scss | 13 - .../addon/styles/health/factors/_table.scss | 55 - .../addon/styles/health/insight/_all.scss | 1 - .../addon/styles/health/insight/_card.scss | 39 - .../addon/styles/health/score/_all.scss | 2 - .../styles/health/score/_last-updated.scss | 11 - .../addon/styles/health/score/_value.scss | 16 - .../addon/styles/health/search/_all.scss | 1 - .../styles/health/search/_attribute.scss | 9 - .../@datahub/shared/addon/styles/index.scss | 22 - .../shared/addon/styles/insight/_all.scss | 1 - .../addon/styles/insight/carousel/_all.scss | 2 - .../addon/styles/insight/carousel/_card.scss | 16 - .../addon/styles/insight/carousel/_slide.scss | 10 - .../styles/institutional-memory/_all.scss | 1 - .../styles/institutional-memory/_links.scss | 113 - .../shared/addon/styles/lineage/_all.scss | 1 - .../shared/addon/styles/lineage/_lineage.scss | 19 - .../shared/addon/styles/lists/all.scss | 3 - .../addon/styles/lists/list-actions/_all.scss | 1 - .../lists/list-actions/_button-action.scss | 13 - .../addon/styles/lists/list-count/_all.scss | 1 - .../styles/lists/list-count/_nav-bug.scss | 34 - .../shared/addon/styles/lists/lists/_all.scss | 1 - .../styles/lists/lists/_entity-list.scss | 90 - .../shared/addon/styles/login/_all.scss | 1 - .../shared/addon/styles/login/_login.scss | 62 - .../shared/addon/styles/modals/_all.scss | 1 - .../styles/modals/_tab-content-modal.scss | 48 - .../styles/social/_action-container.scss | 11 - .../shared/addon/styles/social/_all.scss | 2 - .../styles/social/_metadata-container.scss | 35 - .../styles/tables/nacho-overrides/_all.scss | 3 - .../tables/nacho-overrides/_border.scss | 8 - .../tables/nacho-overrides/_table-row.scss | 10 - .../tables/nacho-overrides/_table-title.scss | 6 - .../styles/tables/simple-record/_all.scss | 0 .../tables/simple-record/_simple-record.scss | 21 - .../addon/styles/top-consumers/_all.scss | 1 - .../styles/top-consumers/insight/_all.scss | 3 - .../top-consumers/insight/_insight-card.scss | 113 - .../top-consumers/insight/_insight-strip.scss | 96 - .../top-consumers/insight/_top-consumers.scss | 3 - .../shared/addon/templates/browse/entity.hbs | 75 - .../shared/addon/templates/browse/index.hbs | 4 - .../avatar/containers/avatar-main.hbs | 1 - .../components/browser/browse-card.hbs | 25 - .../components/browser/browse-category.hbs | 26 - .../browser/containers/category-container.hbs | 22 - .../browser/containers/entity-categories.hbs | 17 - .../components/browser/entity-breadcrumbs.hbs | 32 - .../browser/entity-breadcrumbs/crumb.hbs | 5 - .../browser/search-within-hierarchy.hbs | 9 - .../change-management/change-log-table.hbs | 101 - .../containers/change-log.hbs | 28 - .../containers/entity-feature-configs.hbs | 5 - .../components/dynamic-components/header.hbs | 1 - .../components/entity-alert-banner.hbs | 31 - .../entity-page/entity-base-container.hbs | 13 - .../entity-page/entity-deprecation.hbs | 110 - .../entity-header/attribute-callout.hbs | 1 - .../entity-page/entity-header/content-row.hbs | 1 - .../entity-header/entity-property.hbs | 52 - .../entity-header/entity-title.hbs | 5 - .../entity-page/entity-header/entity-type.hbs | 5 - .../entity-page/entity-header/naked-div.hbs | 1 - .../entity-page/entity-header/tag.hbs | 8 - .../entity-page-content/content-panel.hbs | 26 - .../entity-page-content/file-viewer.hbs | 16 - .../entity-page-content/nacho-table.hbs | 9 - .../entity-page/entity-page-main.hbs | 149 - .../entity-page/layouts/linear-layout.hbs | 3 - .../entity-page/wherehows-entity-header.hbs | 11 - .../components/expandable-content.hbs | 18 - .../components/forms/action-drawer.hbs | 8 - .../health/containers/health-metadata.hbs | 11 - .../institutional-memory/containers/tab.hbs | 14 - .../institutional-memory/wiki/url-list.hbs | 75 - .../wiki/url-list/add-dialog.hbs | 56 - .../addon/templates/components/mail-to.hbs | 5 - .../social/containers/social-metadata.hbs | 51 - .../components/social/social-action.hbs | 6 - .../components/tables/simple-record.hbs | 38 - .../containers/top-consumers-modal.hbs | 5 - .../components/tracking/track-ui-event.hbs | 5 - .../components/tracking/trackable-link-to.hbs | 1 - .../components/wait-promise-container.hbs | 8 - .../shared/addon/templates/entity-type.hbs | 7 - .../addon/templates/entity-type/index.hbs | 1 - .../addon/templates/entity-type/urn.hbs | 5 - .../addon/templates/entity-type/urn/index.hbs | 1 - .../addon/templates/entity-type/urn/tab.hbs | 17 - .../shared/addon/templates/lineage/urn.hbs | 3 - .../@datahub/shared/addon/templates/login.hbs | 28 - .../test-helpers/search/search-acceptance.ts | 36 - .../addon/test-helpers/tracking/index.ts | 16 - datahub-web/@datahub/shared/addon/urn/tab.ts | 19 - .../shared/addon/utils/change-management.ts | 164 - .../utils/ember-concurrency-task-container.ts | 34 - .../shared/addon/utils/graph/graph-svg.ts | 214 - .../shared/addon/utils/graph/graph-to-dot.ts | 375 - .../utils/graph/graph-transformations.ts | 197 - .../addon/utils/graph/svg-pan-and-zoom.ts | 140 - .../shared/addon/utils/health/health-proxy.ts | 95 - .../shared/addon/utils/search/entities.ts | 10 - .../addon/utils/search/search-results.ts | 183 - .../shared/addon/utils/search/search.ts | 79 - .../shared/addon/utils/search/values-v2.ts | 21 - .../shared/addon/utils/tracking/dwell-time.ts | 186 - .../shared/addon/utils/tracking/piwik.ts | 20 - datahub-web/@datahub/shared/app/.gitkeep | 0 .../shared/app/authenticators/aad-sso.js | 1 - .../shared/app/authenticators/custom-ldap.js | 1 - .../application/navbar/additional-links.js | 1 - .../app/components/avatar/avatar-name.js | 1 - .../avatar/containers/avatar-main.js | 1 - .../app/components/avatar/generic-wrapper.js | 1 - .../components/avatar/nacho-table-wrapper.js | 1 - .../app/components/browser/browse-card.js | 1 - .../app/components/browser/browse-category.js | 1 - .../browser/containers/category-container.js | 1 - .../browser/containers/entity-categories.js | 1 - .../components/browser/entity-breadcrumbs.js | 1 - .../entity-breadcrumbs/breadcrumb-error.js | 1 - .../browser/entity-breadcrumbs/crumb.js | 1 - .../browser/search-within-hierarchy.js | 1 - .../buttons/binary-toggle-button.js | 1 - .../shared/app/components/buttons/svg-icon.js | 1 - .../change-management/add-change-log-modal.js | 1 - .../change-log-search-provider.js | 1 - .../change-management/change-log-table.js | 1 - .../containers/change-log.js | 1 - .../change-management/markdown-cheat-sheet.js | 1 - .../read-only-email-content.js | 1 - .../recipient-search-select.js | 1 - .../view-change-log-modal.js | 1 - .../containers/entity-feature-configs.js | 1 - .../user-assistance/help-tooltip-with-link.js | 1 - .../dynamic-components/entity/field.js | 1 - .../components/dynamic-components/header.js | 1 - .../app/components/dynamic-components/icon.js | 1 - .../app/components/dynamic-components/text.js | 1 - .../components/dynamic-components/tooltip.js | 1 - .../dynamic-components/wiki-link.js | 1 - .../app/components/entity-alert-banner.js | 1 - .../entity-page/entity-base-container.js | 1 - .../entity-page/entity-deprecation.js | 1 - .../entity-header/attribute-callout.js | 1 - .../entity-page/entity-header/content-row.js | 1 - .../entity-header/entity-property.js | 1 - .../entity-page/entity-header/entity-title.js | 1 - .../entity-page/entity-header/entity-type.js | 1 - .../entity-page/entity-header/naked-div.js | 1 - .../entity-page/entity-header/tag.js | 1 - .../content-panel-with-toggle.js | 1 - .../entity-page-content/content-panel.js | 1 - .../entity-discriminator.js | 1 - .../entity-page-content/entity-switch.js | 1 - .../entity-page-content/file-viewer.js | 1 - .../entity-page-content/hydrate-entity.js | 1 - .../nacho-table-entity-link.js | 1 - .../entity-page-content/nacho-table.js | 1 - .../entity-page/entity-page-main.js | 1 - .../entity-page/layouts/linear-layout.js | 1 - .../entity-page/wherehows-entity-header.js | 1 - .../entity/grid-group/profile-list.js | 1 - .../components/entity/people/profile-list.js | 1 - .../entity/properties-panel-label.js | 1 - .../app/components/entity/properties-panel.js | 1 - .../app/components/expandable-content.js | 1 - .../app/components/forms/action-drawer.js | 1 - .../foxie/dynamic-components/container.js | 1 - .../foxie/dynamic-components/header.js | 1 - .../foxie/dynamic-components/link-button.js | 1 - .../shared/app/components/foxie/foxie-main.js | 1 - .../foxie/navbar/toggle-component.js | 1 - .../foxie/screens/default-scenario.js | 1 - .../components/foxie/screens/random-gif.js | 1 - .../components/foxie/sprites/foxie-active.hbs | 4 - .../components/foxie/sprites/foxie-asleep.hbs | 4 - .../foxie/sprites/foxie-talking.hbs | 4 - .../app/components/graph/graph-viewer.js | 1 - .../shared/app/components/graph/toolbar.js | 1 - .../app/components/health/carousel-insight.js | 1 - .../health/containers/health-metadata.js | 1 - .../app/components/health/entity-detail.js | 1 - .../components/health/health-factor-action.js | 1 - .../components/health/health-factors-score.js | 1 - .../app/components/health/health-factors.js | 1 - .../health/health-metadata-error.js | 1 - .../components/health/health-score-value.js | 1 - .../app/components/health/insight-card.js | 1 - .../app/components/health/last-updated.js | 1 - .../app/components/health/search-score.js | 1 - .../shared/app/components/insight/carousel.js | 1 - .../institutional-memory/containers/tab.js | 1 - .../institutional-memory/wiki/url-list.js | 1 - .../wiki/url-list/add-dialog.js | 1 - .../components/lineage/lineage-container.js | 1 - .../app/components/lineage/lineage-main.js | 1 - .../shared/app/components/link-to-section.js | 1 - .../shared/app/components/login/login-form.js | 1 - .../@datahub/shared/app/components/mail-to.js | 1 - .../components/notifications/banner-alerts.js | 1 - .../date.js | 1 - .../icon.js | 1 - .../link.js | 1 - .../tag.js | 1 - .../social/containers/social-metadata.js | 1 - .../app/components/social/social-action.js | 1 - .../app/components/tab-content-modal.js | 1 - .../app/components/tables/simple-record.js | 1 - .../containers/top-consumers-modal.js | 1 - .../top-consumers/containers/top-consumers.js | 1 - .../top-consumers/insight/insight-card.js | 1 - .../top-consumers/insight/insight-strip.js | 1 - .../insight/top-consumers-insight.js | 1 - .../insight/top-consumers-modal.js | 1 - .../app/components/tracking/track-ui-event.js | 1 - .../components/tracking/trackable-link-to.js | 1 - .../app/components/wait-promise-container.js | 1 - .../app/controllers/entity-type/urn/tab.js | 1 - .../@datahub/shared/app/controllers/login.js | 1 - .../entity/get-field-attribute-props.js | 1 - .../shared/app/helpers/with-banner-offset.js | 1 - .../modifiers/track-control-interaction.js | 1 - .../shared/app/routes/browse/entity.js | 1 - .../shared/app/routes/browse/index.js | 1 - .../@datahub/shared/app/routes/entity-type.js | 1 - .../shared/app/routes/entity-type/index.js | 1 - .../shared/app/routes/entity-type/urn.js | 1 - .../app/routes/entity-type/urn/index.js | 1 - .../shared/app/routes/entity-type/urn/tab.js | 1 - .../@datahub/shared/app/routes/lineage/urn.js | 1 - .../@datahub/shared/app/services/aad-sso.js | 1 - .../@datahub/shared/app/services/avatar.js | 1 - .../@datahub/shared/app/services/banners.js | 1 - .../shared/app/services/configurator.js | 1 - .../shared/app/services/current-user.js | 1 - .../@datahub/shared/app/services/foxie.js | 1 - .../shared/app/services/graph-renderer.js | 1 - .../@datahub/shared/app/services/search.js | 1 - .../shared/app/services/unified-tracking.js | 1 - .../shared/app/services/user-settings.js | 1 - .../shared/app/storages/entity-list.js | 1 - .../shared/app/templates/browse/entity.js | 1 - .../shared/app/templates/browse/index.js | 1 - .../components/avatar/avatar-name.hbs | 5 - .../components/avatar/generic-wrapper.hbs | 11 - .../buttons/binary-toggle-button.hbs | 37 - .../templates/components/buttons/svg-icon.hbs | 18 - .../default-acknowledgement.hbs | 7 - .../entity/grid-group/profile-list.hbs | 29 - .../components/entity/people/profile-list.hbs | 40 - .../components/entity/properties-panel.hbs | 23 - .../components/health/carousel-insight.hbs | 21 - .../components/health/entity-detail.hbs | 30 - .../health/health-factor-action.hbs | 26 - .../health/health-factors-score.hbs | 3 - .../components/health/health-factors.hbs | 36 - .../health-insight-recalculation-button.hbs | 9 - .../health/health-metadata-error.hbs | 2 - .../components/health/health-score-value.hbs | 3 - .../components/health/insight-card.hbs | 64 - .../components/health/last-updated.hbs | 13 - .../components/health/search-score.hbs | 3 - .../templates/components/insight/carousel.hbs | 5 - .../shared/app/templates/entity-type.js | 1 - .../shared/app/templates/entity-type/index.js | 1 - .../shared/app/templates/entity-type/urn.js | 1 - .../app/templates/entity-type/urn/index.js | 1 - .../app/templates/entity-type/urn/tab.js | 1 - .../shared/app/templates/lineage/urn.js | 1 - .../@datahub/shared/app/templates/login.js | 1 - .../default-acknowledgement.hbs | 7 - .../shared/app/utils/graph/graph-to-dot.js | 1 - .../shared/app/utils/health/health-proxy.js | 1 - .../shared/app/utils/tracking/dwell-time.js | 1 - .../shared/app/utils/tracking/piwik.js | 1 - .../@datahub/shared/config/ember-try.js | 80 - .../@datahub/shared/config/environment.d.ts | 12 - .../@datahub/shared/config/environment.js | 8 - .../@datahub/shared/ember-cli-build.js | 20 - .../@datahub/shared/eyeglass-exports.js | 11 - datahub-web/@datahub/shared/index.js | 22 - datahub-web/@datahub/shared/package.json | 111 - .../public/assets/images/Foxie-active.png | Bin 637 -> 0 bytes .../public/assets/images/Foxie-asleep.png | Bin 604 -> 0 bytes .../public/assets/images/Foxie-talking.png | Bin 658 -> 0 bytes .../shared/public/assets/viz-worker.js | 7 - datahub-web/@datahub/shared/testem.js | 1 - .../institutional-memory/tab-test.ts | 75 - .../@datahub/shared/tests/dummy/app/app.ts | 12 - .../tests/dummy/app/components/.gitkeep | 0 .../change-log-search-provider.ts | 4 - .../tests/dummy/app/components/graph.hbs | 7 - .../tests/dummy/app/components/graph.ts | 28 - .../containers/entity-task-container.ts | 4 - .../tests/dummy/app/config/environment.d.ts | 13 - .../tests/dummy/app/constants/lineage.ts | 219 - .../tests/dummy/app/constants/schema.ts | 32 - .../tests/dummy/app/controllers/.gitkeep | 0 .../shared/tests/dummy/app/helpers/.gitkeep | 0 .../shared/tests/dummy/app/index.html | 25 - .../shared/tests/dummy/app/models/.gitkeep | 0 .../shared/tests/dummy/app/models/pokemon.ts | 48 - .../@datahub/shared/tests/dummy/app/router.ts | 26 - .../shared/tests/dummy/app/routes/.gitkeep | 0 .../tests/dummy/app/routes/testcomponents.ts | 24 - .../shared/tests/dummy/app/routes/wiki.ts | 10 - .../shared/tests/dummy/app/styles/app.scss | 14 - .../tests/dummy/app/templates/application.hbs | 1 - .../dummy/app/templates/components/.gitkeep | 0 .../containers/entity-task-container.hbs | 1 - .../dummy/app/templates/lineage-test.hbs | 1 - .../tests/dummy/app/templates/schema.hbs | 1 - .../dummy/app/templates/testcomponents.hbs | 6 - .../shared/tests/dummy/app/templates/wiki.hbs | 6 - .../shared/tests/dummy/config/environment.js | 57 - .../tests/dummy/config/optional-features.json | 6 - .../shared/tests/dummy/config/targets.js | 14 - .../shared/tests/dummy/mirage/config.ts | 30 - .../tests/dummy/mirage/scenarios/default.ts | 5 - .../dummy/mirage/serializers/application.ts | 9 - .../shared/tests/dummy/mirage/types/schema.ts | 16 - .../shared/tests/dummy/public/robots.txt | 3 - .../@datahub/shared/tests/helpers/.gitkeep | 0 .../shared/tests/helpers/graph/graphs.ts | 88 - datahub-web/@datahub/shared/tests/index.html | 33 - .../shared/tests/integration/.gitkeep | 0 .../components/avatar/avatar-name-test.ts | 27 - .../avatar/containers/avatar-main-test.ts | 46 - .../components/avatar/generic-wrapper-test.ts | 43 - .../containers/category-container-test.ts | 72 - .../containers/entity-categories-test.ts | 63 - .../browser/entity-breadcrumbs-test.ts | 27 - .../browser/search-within-hierarchy-test.ts | 74 - .../buttons/binary-toggle-button-test.ts | 76 - .../components/buttons/svg-icon-test.ts | 47 - .../add-change-log-modal-test.ts | 113 - .../change-log-table-test.ts | 154 - .../help-tooltip-with-link-test.ts | 36 - .../dynamic-components/entity/field-test.ts | 30 - .../dynamic-components/header-test.ts | 66 - .../dynamic-components/icon-test.ts | 23 - .../dynamic-components/tooltip-test.ts | 46 - .../dynamic-components/wiki-link-test.ts | 28 - .../components/entity-alert-banner-test.ts | 19 - .../entity-page/entity-base-container-test.ts | 118 - .../entity-page/entity-deprecation-test.ts | 141 - .../entity-header/attribute-callout-test.ts | 22 - .../entity-header/content-row-test.ts | 14 - .../entity-header/entity-property-test.ts | 30 - .../entity-header/entity-title-test.ts | 29 - .../entity-header/naked-div-test.ts | 22 - .../entity-page-content/content-panel-test.ts | 37 - .../content-panel-with-toggle-test.ts | 93 - .../entity-discriminator-test.ts | 47 - .../entity-page-content/entity-switch-test.ts | 60 - .../entity-page-content/file-viewer-test.ts | 58 - .../hydrate-entity-test.ts | 54 - .../entity-page-content/nacho-table-test.ts | 27 - .../entity-page/entity-page-main-test.ts | 99 - .../entity-page/layouts/linear-layout-test.ts | 38 - .../wherehows-entity-header-test.ts | 40 - .../entity/grid-group/profile-list-test.ts | 40 - .../entity/people/profile-list-test.ts | 43 - .../entity/properties-panel-label-test.ts | 29 - .../entity/properties-panel-test.ts | 52 - .../components/expandable-content-test.ts | 50 - .../components/forms/action-drawer-test.ts | 44 - .../components/foxie/foxie-main-test.ts | 19 - .../components/graph/graph-viewer-test.ts | 154 - .../health/carousel-insight-test.ts | 115 - .../health/containers/health-metadata-test.ts | 65 - .../components/health/entity-detail-test.ts | 64 - .../health/health-factor-action-test.ts | 88 - .../health/health-factors-score-test.ts | 21 - .../components/health/health-factors-test.ts | 67 - ...ealth-insight-recalculation-button-test.ts | 24 - .../health/health-metadata-error-test.ts | 13 - .../health/health-score-value-test.ts | 59 - .../components/health/insight-card-test.ts | 36 - .../components/health/last-updated-test.ts | 59 - .../components/health/search-score-test.ts | 39 - .../components/insight/carousel-test.ts | 52 - .../containers/tab-test.ts | 14 - .../wiki/url-list-test.ts | 70 - .../wiki/url-list/add-dialog-test.ts | 13 - .../lineage/lineage-container-test.ts | 32 - .../components/lineage/lineage-main-test.ts | 36 - .../components/link-to-section-test.ts | 43 - .../components/login/login-form-test.ts | 35 - .../integration/components/mail-to-test.ts | 65 - .../notifications/banner-alerts-test.ts | 65 - .../search-date-test.ts | 25 - .../search-icon-test.ts | 37 - .../search-link-test.ts | 33 - .../search-tag-test.ts | 40 - .../social/containers/social-metadata-test.ts | 57 - .../components/social/social-action-test.ts | 123 - .../components/tab-content-modal-test.ts | 58 - .../components/tables/simple-record-test.ts | 57 - .../containers/top-consumers-modal-test.ts | 41 - .../containers/top-consumers-test.ts | 40 - .../insight/insight-card-test.ts | 61 - .../insight/insight-strip-test.ts | 61 - .../insight/top-consumers-insight-test.ts | 47 - .../insight/top-consumers-modal-test.ts | 25 - .../tracking/track-ui-event-test.ts | 93 - .../tracking/trackable-link-to-test.ts | 54 - .../components/wait-promise-container-test.ts | 32 - .../entity/get-field-attribute-props-test.ts | 28 - .../track-control-interaction-test.ts | 61 - .../shared/tests/stubs/services/metrics.ts | 12 - .../@datahub/shared/tests/test-helper.ts | 9 - .../@datahub/shared/tests/unit/.gitkeep | 0 .../unit/authenticators/custom-ldap-test.ts | 47 - .../shared/tests/unit/modules/avatar-test.ts | 16 - .../unit/routes/browse/entity/index-test.ts | 20 - .../tests/unit/routes/lineage/urn-test.ts | 11 - .../tests/unit/services/aad-sso-test.ts | 11 - .../shared/tests/unit/services/avatar-test.ts | 27 - .../shared/tests/unit/services/foxie-test.ts | 12 - .../services/graph/graph-renderer-test.ts | 17 - .../unit/services/unified-tracking-test.ts | 48 - .../tests/unit/services/user-settings-test.ts | 12 - .../tests/unit/utils/api/health-test.ts | 36 - .../unit/utils/change-management-test.ts | 51 - .../unit/utils/graph/graph-to-dot-test.ts | 42 - .../utils/graph/graph-transformations-test.ts | 312 - .../unit/utils/health/health-proxy-test.ts | 47 - .../tests/unit/utils/health/health-test.ts | 24 - .../unit/utils/tracking/dwell-time-test.ts | 44 - datahub-web/@datahub/shared/tsconfig.json | 46 - .../shared/types/authentication/user.d.ts | 23 - .../@datahub/shared/types/browse/browse.d.ts | 13 - .../types/change-management/change-log.d.ts | 13 - .../types/configurator/configurator.d.ts | 115 - .../shared/types/configurator/tracking.d.ts | 19 - .../@datahub/shared/types/dummy/index.d.ts | 1 - .../shared/types/dynamic-component.d.ts | 22 - .../entity-header/entity-property-config.d.ts | 15 - .../content-panel-with-toggle.d.ts | 12 - .../types/entity-page/containers/index.d.ts | 22 - .../@datahub/shared/types/foxie/service.d.ts | 83 - .../types/foxie/user-function-object.d.ts | 22 - datahub-web/@datahub/shared/types/global.d.ts | 6 - .../shared/types/graph/graph-options.d.ts | 9 - .../types/graph/graph-viewer-state.d.ts | 61 - .../shared/types/grid-group/index.d.ts | 15 - .../shared/types/insight/carousel/card.d.ts | 15 - .../modules/ember-load-initializers.d.ts | 5 - .../@datahub/shared/types/profile-list.d.ts | 15 - .../@datahub/shared/types/search/entity.d.ts | 42 - .../shared/types/search/fields-v2.d.ts | 19 - .../shared/types/tracking/event-tracking.d.ts | 125 - .../shared/types/tracking/search/index.d.ts | 26 - .../tracking/session/session-tracking.d.ts | 10 - .../types/user-settings/user-settings.d.ts | 7 - .../@datahub/shared/types/vendor/animate.d.ts | 3 - .../vendor/ember-cli-string-helpers.d.ts | 1 - .../@datahub/shared/types/vendor/piwik.d.ts | 8 - datahub-web/@datahub/shared/vendor/.gitkeep | 0 datahub-web/@datahub/utils/.editorconfig | 19 - datahub-web/@datahub/utils/.ember-cli | 9 - datahub-web/@datahub/utils/.gitignore | 23 - datahub-web/@datahub/utils/.npmignore | 29 - datahub-web/@datahub/utils/.travis.yml | 66 - datahub-web/@datahub/utils/.watchmanconfig | 3 - datahub-web/@datahub/utils/LICENSE.md | 13 - datahub-web/@datahub/utils/README.md | 70 - datahub-web/@datahub/utils/addon/.gitkeep | 0 .../@datahub/utils/addon/api/autocomplete.ts | 102 - .../@datahub/utils/addon/api/build-url.ts | 84 - .../utils/addon/api/data-source-stage2.ts | 97 - .../@datahub/utils/addon/api/data-source.ts | 52 - .../encode-decode-uri-component-with-space.ts | 42 - datahub-web/@datahub/utils/addon/api/error.ts | 76 - .../@datahub/utils/addon/api/fetcher.ts | 210 - .../@datahub/utils/addon/api/shared.ts | 78 - .../utils/addon/array/array-to-string.ts | 13 - .../@datahub/utils/addon/array/every.ts | 8 - .../@datahub/utils/addon/array/index.ts | 257 - .../@datahub/utils/addon/array/one-or-many.ts | 8 - .../utils/addon/array/serialize-string.ts | 8 - .../utils/addon/components/big-list.ts | 115 - .../utils/addon/components/blank-template.ts | 12 - .../concurrency-task-state-handler.ts | 41 - .../utils/addon/components/dh-info-panel.hbs | 23 - .../utils/addon/components/dh-info-panel.ts | 15 - .../components/dynamic-link-with-action.ts | 47 - .../utils/addon/components/empty-state.ts | 30 - .../utils/addon/components/last-saved-by.ts | 51 - .../addon/components/link/optional-value.ts | 50 - .../utils/addon/components/more-info.ts | 43 - .../addon/components/nacho-hover-dropdown.ts | 130 - .../nacho-hover-dropdown/dropdown-content.ts | 8 - .../nacho-hover-dropdown/dropdown-option.ts | 44 - .../addon/components/nacho/array-link-cell.ts | 22 - .../components/nacho/nacho-tab-cacher.ts | 48 - .../utils/addon/components/nav-link.ts | 11 - .../notifications-confirm-dialog.ts | 61 - .../addon/components/notifications-toast.ts | 19 - .../utils/addon/components/notifications.ts | 31 - .../notifications/dialog/dialog-content.ts | 9 - .../notifications/dialog/dialog-footer.ts | 25 - .../notifications/dialog/dialog-header.ts | 9 - .../utils/addon/components/page-not-found.ts | 10 - .../properties/single-value-renderer.ts | 35 - .../components/properties/value-renderer.ts | 29 - .../components/radio-button-composer.hbs | 27 - .../addon/components/radio-button-composer.ts | 118 - .../addon/components/radio-button-input.hbs | 8 - .../addon/components/radio-button-input.ts | 43 - .../components/truncated-text-with-tooltip.ts | 66 - .../utils/addon/constants/notifications.ts | 33 - .../utils/addon/controllers/protocol.ts | 50 - .../@datahub/utils/addon/decorators/assert.ts | 25 - .../decorators/expand-options-attribute.ts | 35 - .../@datahub/utils/addon/function/avatar.ts | 24 - .../utils/addon/function/deep-clone.ts | 10 - .../@datahub/utils/addon/function/index.ts | 14 - .../utils/addon/function/promise-delay.ts | 6 - .../utils/addon/helpers/csrf-token.ts | 32 - .../@datahub/utils/addon/helpers/email.ts | 22 - .../@datahub/utils/addon/helpers/get-flat.ts | 17 - .../utils/addon/helpers/ms-time-as-unix.ts | 15 - .../utils/addon/helpers/past-tense.ts | 57 - .../helpers/render-links-as-anchor-tags.ts | 45 - .../utils/addon/helpers/split-text.ts | 16 - .../@datahub/utils/addon/helpers/url.ts | 25 - .../@datahub/utils/addon/helpers/wait-time.ts | 12 - .../instance-initializers/cache-enabler.ts | 14 - .../@datahub/utils/addon/lib/notifications.ts | 140 - .../routes/refresh-model-for-query-params.ts | 18 - .../@datahub/utils/addon/routes/routing.ts | 25 - .../utils/addon/services/notifications.ts | 241 - .../addon/styles/datahub-utils/_all.scss | 1 - .../styles/datahub-utils/components/_all.scss | 10 - .../_concurrency-task-state-handler.scss | 7 - .../components/_dh-info-panel.scss | 18 - .../components/_empty-state.scss | 30 - .../components/_last-saved-by.scss | 22 - .../components/_link-optional-value.scss | 8 - .../datahub-utils/components/_modals.scss | 4 - .../components/_text-only-button.scss | 4 - .../_truncated-text-with-tooltip.scss | 15 - .../components/_value-renderer.scss | 21 - .../components/notifications/_all.scss | 2 - .../notifications/_modal-dialog.scss | 70 - .../components/notifications/_toast.scss | 114 - .../addon/styles/global-mixins/_all.scss | 4 - .../styles/global-mixins/_info-card.scss | 26 - .../global-mixins/_nacho-table-mixins.scss | 16 - .../styles/global-mixins/_separators.scss | 20 - .../styles/global-mixins/effects/_all.scss | 1 - .../styles/global-mixins/effects/_hover.scss | 5 - .../@datahub/utils/addon/styles/index.scss | 3 - .../utils/addon/styles/vendor/_all.scss | 0 .../addon/templates/components/big-list.hbs | 3 - .../templates/components/blank-template.hbs | 1 - .../concurrency-task-state-handler.hbs | 55 - .../components/dynamic-link-with-action.hbs | 1 - .../templates/components/empty-state.hbs | 15 - .../templates/components/last-saved-by.hbs | 33 - .../components/link/optional-value.hbs | 16 - .../addon/templates/components/more-info.hbs | 19 - .../components/nacho-hover-dropdown.hbs | 40 - .../nacho-hover-dropdown/dropdown-content.hbs | 16 - .../nacho-hover-dropdown/dropdown-option.hbs | 2 - .../components/nacho/array-link-cell.hbs | 1 - .../components/nacho/nacho-tab-cacher.hbs | 8 - .../addon/templates/components/nav-link.hbs | 7 - .../notifications-confirm-dialog.hbs | 24 - .../components/notifications-toast.hbs | 36 - .../templates/components/notifications.hbs | 33 - .../notifications/dialog/dialog-content.hbs | 5 - .../notifications/dialog/dialog-footer.hbs | 53 - .../notifications/dialog/dialog-header.hbs | 7 - .../templates/components/page-not-found.hbs | 1 - .../properties/single-value-renderer.hbs | 9 - .../components/properties/value-renderer.hbs | 11 - .../truncated-text-with-tooltip.hbs | 31 - .../addon/test-helpers/arrays/functions.ts | 22 - .../field-changeset-constants.ts | 40 - .../recent-suggestions-constants.ts | 81 - .../utils/addon/test-helpers/dom-helpers.ts | 49 - .../addon/test-helpers/login/constants.ts | 47 - .../login/page-element-constants.ts | 4 - .../addon/test-helpers/login/test-login.ts | 18 - .../addon/test-helpers/register-component.ts | 71 - .../utils/addon/test-helpers/rendering.ts | 10 - .../search/global-search-constants.ts | 19 - .../test-helpers/serialize-mirage-model.ts | 20 - .../utils/addon/test-helpers/setup-error.ts | 27 - .../utils/addon/test-helpers/setup-router.ts | 23 - .../utils/addon/test-helpers/stub-service.ts | 15 - .../addon/test-helpers/test-exception.ts | 33 - .../validators/tracking-headers/constants.ts | 47 - .../@datahub/utils/addon/types/array.d.ts | 19 - .../@datahub/utils/addon/types/async.d.ts | 4 - .../utils/addon/types/avatars/index.d.ts | 34 - .../@datahub/utils/addon/types/base.d.ts | 59 - .../utils/addon/types/controllers.d.ts | 6 - .../types/jan-2019-stage-2-decorators.d.ts | 36 - .../addon/types/notifications/service.d.ts | 85 - .../@ember-decorators/argument/index.d.ts | 35 - .../vendor/@sinonjs/fake-timers/index.d.ts | 1 - .../addon/types/vendor/babel-decorators.d.ts | 22 - .../addon/types/vendor/dynamic-link.d.ts | 7 - .../vendor/ember-changeset-validations.d.ts | 4 - .../addon/types/vendor/ember-changeset.d.ts | 73 - .../vendor/ember-cli-mirage-deprecated.d.ts | 126 - .../types/vendor/ember-cli-mirage/index.d.ts | 312 - .../vendor/ember-cli-mirage/mirage-tests.d.ts | 7 - .../test-support/setup-mirage.d.ts | 3 - .../test-support/start-mirage.d.ts | 6 - .../types/registries/model.d.ts | 4 - .../types/registries/schema.d.ts | 4 - .../types/vendor/ember-inflector/index.d.ts | 5 - .../types/vendor/ember-simple-dropdown.d.ts | 9 - .../addon/types/vendor/ember-sinon-qunit.d.ts | 15 - .../utils/addon/types/vendor/fetch.d.ts | 12 - .../addon/types/vendor/resize-observer.d.ts | 245 - .../utils/addon/types/vendor/routerjs.d.ts | 13 - .../@datahub/utils/addon/validators/encode.ts | 12 - .../@datahub/utils/addon/validators/json.ts | 39 - .../@datahub/utils/addon/validators/object.ts | 6 - .../@datahub/utils/addon/validators/urn.ts | 66 - datahub-web/@datahub/utils/app/.gitkeep | 0 .../@datahub/utils/app/components/big-list.js | 1 - .../utils/app/components/blank-template.js | 1 - .../concurrency-task-state-handler.js | 1 - .../utils/app/components/dh-info-panel.js | 1 - .../components/dynamic-link-with-action.js | 1 - .../utils/app/components/empty-state.js | 1 - .../utils/app/components/last-saved-by.js | 1 - .../app/components/link/optional-value.js | 1 - .../utils/app/components/more-info.js | 1 - .../app/components/nacho-hover-dropdown.js | 1 - .../nacho-hover-dropdown/dropdown-content.js | 1 - .../nacho-hover-dropdown/dropdown-option.js | 1 - .../app/components/nacho/array-link-cell.js | 1 - .../app/components/nacho/nacho-tab-cacher.js | 1 - .../@datahub/utils/app/components/nav-link.js | 1 - .../notifications-confirm-dialog.js | 1 - .../app/components/notifications-toast.js | 1 - .../utils/app/components/notifications.js | 1 - .../notifications/dialog/dialog-content.js | 1 - .../notifications/dialog/dialog-footer.js | 1 - .../notifications/dialog/dialog-header.js | 1 - .../utils/app/components/page-not-found.js | 1 - .../properties/single-value-renderer.js | 1 - .../components/properties/value-renderer.js | 1 - .../app/components/radio-button-composer.js | 1 - .../app/components/radio-button-input.js | 1 - .../components/truncated-text-with-tooltip.js | 1 - .../@datahub/utils/app/helpers/get-flat.js | 1 - .../utils/app/helpers/ms-time-as-unix.js | 1 - .../@datahub/utils/app/helpers/past-tense.js | 1 - .../helpers/render-links-as-anchor-tags.js | 1 - .../@datahub/utils/app/helpers/split-text.js | 1 - .../instance-initializers/cache-enabler.js | 1 - .../utils/app/services/notifications.js | 1 - .../@datahub/utils/config/ember-try.js | 80 - .../@datahub/utils/config/environment.d.ts | 13 - .../@datahub/utils/config/environment.js | 5 - datahub-web/@datahub/utils/ember-cli-build.js | 18 - .../@datahub/utils/eyeglass-exports.js | 11 - datahub-web/@datahub/utils/index.js | 6 - datahub-web/@datahub/utils/package.json | 108 - .../images/svgs/article-conversation.svg | 21 - .../public/assets/images/svgs/cancel-icon.svg | 3 - .../public/assets/images/svgs/check-icon.svg | 3 - .../images/svgs/ellipsis-vertical-icon.svg | 4 - .../assets/images/svgs/lightbulb-icon.svg | 11 - .../public/assets/images/svgs/lightbulb.svg | 8 - .../assets/images/svgs/link-external-icon.svg | 4 - .../public/assets/images/svgs/nav-people.svg | 4 - datahub-web/@datahub/utils/testem.js | 1 - .../@datahub/utils/tests/dummy/app/app.js | 12 - .../utils/tests/dummy/app/components/.gitkeep | 0 .../test-for/decorators/data-source.ts | 22 - .../tests/dummy/app/config/environment.d.ts | 20 - .../tests/dummy/app/controllers/.gitkeep | 0 .../utils/tests/dummy/app/helpers/.gitkeep | 0 .../@datahub/utils/tests/dummy/app/index.html | 25 - .../utils/tests/dummy/app/models/.gitkeep | 0 .../@datahub/utils/tests/dummy/app/router.ts | 12 - .../utils/tests/dummy/app/routes/.gitkeep | 0 .../utils/tests/dummy/app/styles/app.scss | 2 - .../tests/dummy/app/templates/application.hbs | 3 - .../test-for/decorators/data-source.hbs | 1 - .../utils/tests/dummy/config/environment.js | 54 - .../tests/dummy/config/optional-features.json | 6 - .../utils/tests/dummy/config/targets.js | 14 - .../utils/tests/dummy/public/robots.txt | 3 - .../@datahub/utils/tests/helpers/.gitkeep | 0 .../tests/helpers/email/email-test-fixture.ts | 58 - datahub-web/@datahub/utils/tests/index.html | 33 - .../@datahub/utils/tests/integration/.gitkeep | 0 .../integration/components/big-list-test.ts | 98 - .../concurrency-task-state-handler-test.ts | 89 - .../components/dh-info-panel-test.ts | 24 - .../dynamic-link-with-action-test.ts | 24 - .../components/empty-state-test.ts | 45 - .../components/last-saved-by-test.ts | 52 - .../components/link/optional-value-test.ts | 74 - .../integration/components/more-info-test.ts | 49 - .../components/nacho/array-link-cell-test.ts | 26 - .../components/nacho/nacho-tab-cacher-test.ts | 95 - .../notifications-confirm-dialog-test.ts | 32 - .../components/notifications-test.ts | 104 - .../components/notifications-toast-test.ts | 65 - .../dialog/dialog-content-test.ts | 20 - .../dialog/dialog-footer-test.ts | 87 - .../dialog/dialog-header-test.ts | 17 - .../components/page-not-found-test.ts | 14 - .../properties/single-value-renderer-test.ts | 39 - .../properties/value-renderer-test.ts | 27 - .../components/radio-button-composer-test.ts | 405 - .../truncated-text-with-tooltip-test.ts | 91 - .../expand-options-attribute-test.ts | 30 - .../integration/helpers/get-flat-test.ts | 25 - .../helpers/ms-time-as-unix-test.ts | 18 - .../integration/helpers/past-tense-test.ts | 39 - .../render-links-as-anchor-tags-test.ts | 22 - .../integration/helpers/split-text-test.ts | 14 - .../@datahub/utils/tests/test-helper.ts | 9 - .../@datahub/utils/tests/unit/.gitkeep | 0 .../utils/tests/unit/api/autocomplete-test.ts | 34 - .../utils/tests/unit/api/build-url-test.ts | 68 - ...de-decode-uri-component-with-space-test.ts | 27 - .../utils/tests/unit/api/errors-test.ts | 28 - .../utils/tests/unit/array/every-test.ts | 38 - .../tests/unit/array/serialize-string-test.ts | 11 - .../tests/unit/controllers/protocol-test.ts | 20 - .../decorators/containers/data-source-test.ts | 18 - .../@datahub/utils/tests/unit/email-test.ts | 17 - .../refresh-model-for-query-params-test.ts | 14 - .../tests/unit/services/notifications-test.ts | 98 - .../tests/unit/validators/encode-test.ts | 21 - .../utils/tests/unit/validators/json-test.ts | 24 - datahub-web/@datahub/utils/tsconfig.json | 17 - .../@datahub/utils/types/api/fetcher.d.ts | 22 - .../@datahub/utils/types/api/response.d.ts | 13 - .../@datahub/utils/types/concurrency.d.ts | 23 - .../utils/types/dummy/ember-radio-button.d.ts | 1 - .../@datahub/utils/types/dummy/index.d.ts | 1 - datahub-web/@datahub/utils/types/global.d.ts | 6 - .../utils/types/tests/notifications.d.ts | 11 - .../utils/types/vendor/custom-ember.d.ts | 41 - .../utils/types/vendor/dynamic-link.d.ts | 51 - .../vendor/ember-cli-string-helpers.d.ts | 3 - .../utils/types/vendor/ember-concurrency.d.ts | 109 - .../utils/types/vendor/ember-cookies.d.ts | 7 - .../types/vendor/ember-local-storage.d.ts | 20 - .../utils/types/vendor/ember-metrics.d.ts | 126 - .../types/vendor/ember-modal-dialog.d.ts | 3 - .../utils/types/vendor/ember-modifier.d.ts | 57 - .../utils/types/vendor/ember-simple-auth.d.ts | 31 - .../types/vendor/ember-test-helpers.d.ts | 11 - .../utils/types/vendor/ember-uuid.d.ts | 47 - .../@datahub/utils/types/vendor/marked.d.ts | 48 - .../types/vendor/power-select-helper.d.ts | 3 - .../utils/types/vendor/power-select.d.ts | 28 - datahub-web/@datahub/utils/vendor/.gitkeep | 0 datahub-web/@dh-tools/dependencies/.gitignore | 25 - .../@dh-tools/dependencies/package.json | 20 - datahub-web/@dh-tools/dependencies/src/io.ts | 59 - .../process/create-transitive-dependencies.ts | 24 - .../src/process/get-all-dependencies.ts | 29 - .../src/process/list-duplicated.ts | 30 - .../dependencies/src/process/merge-dev.ts | 21 - .../dependencies/src/process/move-to.ts | 29 - .../dependencies/src/process/sort-deps.ts | 13 - datahub-web/@dh-tools/dependencies/src/run.ts | 10 - .../@dh-tools/dependencies/src/utils.ts | 82 - .../@dh-tools/dependencies/types/index.d.ts | 7 - .../@dh-tools/eslint-plugin/.eslintrc.js | 5 - .../@dh-tools/eslint-plugin/.gitignore | 1 - datahub-web/@dh-tools/eslint-plugin/README.md | 49 - .../docs/rules/no-addon-import.md | 26 - .../docs/rules/no-linkedin-import.md | 23 - .../@dh-tools/eslint-plugin/lib/index.js | 18 - .../lib/rules/no-addon-import.js | 29 - .../lib/rules/no-linkedin-import.js | 29 - .../@dh-tools/eslint-plugin/package.json | 26 - .../tests/lib/rules/no-addon-import.js | 40 - .../tests/lib/rules/no-linkedin-import.js | 40 - datahub-web/@dh-tools/pdsc/.gitignore | 3 - datahub-web/@dh-tools/pdsc/README.md | 13 - .../pdsc/local-types/decompress.d.ts | 21 - .../@dh-tools/pdsc/local-types/find-root.d.ts | 4 - datahub-web/@dh-tools/pdsc/package.json | 63 - .../@dh-tools/pdsc/restli-types-config.json | 5 - datahub-web/@dh-tools/pdsc/src/config.ts | 9 - .../@dh-tools/pdsc/src/download-cache.ts | 87 - datahub-web/@dh-tools/pdsc/src/index.ts | 143 - .../pdsc/src/pdsc/data-models-gen.ts | 139 - datahub-web/@dh-tools/pdsc/src/pdsc/field.ts | 29 - datahub-web/@dh-tools/pdsc/src/pdsc/schema.ts | 316 - .../pdsc/src/rest-spec/api-declaration-gen.ts | 96 - .../@dh-tools/pdsc/src/rest-spec/rest-spec.ts | 30 - datahub-web/@dh-tools/pdsc/src/ts-emitter.ts | 112 - ...ish.feed.sailfishFeedUpdates.restspec.json | 29 - .../api-rest-model-0.1.21/expected.ts.txt | 19 - datahub-web/@dh-tools/pdsc/test/tsconfig.json | 15 - .../pdsc/test/unit/pdsc/schema.spec.ts | 337 - .../rest-spec/api-declaration-gen.spec.ts | 23 - .../pdsc/test/unit/ts-emitter.spec.ts | 80 - datahub-web/@dh-tools/pdsc/tsconfig.json | 24 - datahub-web/@nacho-ui/core/.editorconfig | 20 - datahub-web/@nacho-ui/core/.ember-cli | 4 - datahub-web/@nacho-ui/core/.gitignore | 23 - datahub-web/@nacho-ui/core/.npmignore | 30 - .../@nacho-ui/core/.template-lintrc.js | 5 - datahub-web/@nacho-ui/core/.travis.yml | 54 - datahub-web/@nacho-ui/core/.watchmanconfig | 3 - datahub-web/@nacho-ui/core/CHANGELOG.md | 21 - datahub-web/@nacho-ui/core/LICENSE.md | 13 - datahub-web/@nacho-ui/core/README.md | 291 - datahub-web/@nacho-ui/core/addon/.gitkeep | 0 .../nacho-animation/pendulum-ellipsis.hbs | 7 - .../nacho-animation/pendulum-ellipsis.ts | 3 - .../nacho-avatar/nacho-avatar-image.hbs | 1 - .../nacho-avatar/nacho-avatar-image.ts | 70 - .../nacho-button/nacho-sort-button.hbs | 10 - .../nacho-button/nacho-sort-button.ts | 141 - .../components/nacho-button/nacho-toggle.hbs | 28 - .../components/nacho-button/nacho-toggle.ts | 70 - .../nacho-dropdown/nacho-dropdown-basic.hbs | 20 - .../nacho-dropdown/nacho-dropdown-basic.ts | 60 - .../nacho-dropdown-power-select.hbs | 26 - .../nacho-dropdown-power-select.ts | 67 - .../nacho-pill/nacho-pill-input.hbs | 64 - .../components/nacho-pill/nacho-pill-input.ts | 239 - .../components/nacho-pill/nacho-pill-link.hbs | 17 - .../components/nacho-pill/nacho-pill-link.ts | 89 - .../components/nacho-pill/nacho-pill.hbs | 11 - .../addon/components/nacho-pill/nacho-pill.ts | 69 - .../nacho-table/nacho-table-body.ts | 54 - .../nacho-table/nacho-table-cell.ts | 11 - .../nacho-table/nacho-table-footer.ts | 11 - .../nacho-table/nacho-table-global.ts | 10 - .../nacho-table/nacho-table-header.ts | 37 - .../components/nacho-table/nacho-table-row.ts | 44 - .../nacho-table/nacho-table-title-cell.ts | 11 - .../components/nacho-table/nacho-table.ts | 85 - .../nacho-table/default-table-properties.ts | 27 - .../addon/helpers/nacho-core/display-value.ts | 32 - .../addon/helpers/nacho-core/list-includes.ts | 8 - .../core/addon/helpers/nacho-core/titleize.ts | 14 - .../nacho-table/nacho-table-link-compute.ts | 14 - .../core/addon/services/nacho-avatars.ts | 24 - .../@nacho-ui/core/addon/styles/index.scss | 9 - .../addon/styles/nacho-abstracts/_all.scss | 5 - .../styles/nacho-abstracts/_functions.scss | 126 - .../addon/styles/nacho-abstracts/_mixins.scss | 147 - .../styles/nacho-abstracts/_variables.scss | 34 - .../styles/nacho-abstracts/colors/_all.scss | 3 - .../styles/nacho-abstracts/colors/_bin.scss | 13 - .../nacho-abstracts/colors/_canvas.scss | 79 - .../nacho-abstracts/colors/_palette.scss | 24 - .../nacho-animations-components/_all.scss | 1 - .../_ellipsis-animation.scss | 60 - .../core/addon/styles/nacho-avatar/_all.scss | 2 - .../styles/nacho-avatar/_avatar-image.scss | 22 - .../addon/styles/nacho-avatar/_mixins.scss | 12 - .../core/addon/styles/nacho-base/_all.scss | 5 - .../core/addon/styles/nacho-base/_common.scss | 130 - .../core/addon/styles/nacho-base/_fonts.scss | 70 - .../core/addon/styles/nacho-base/_layout.scss | 1031 - .../addon/styles/nacho-base/_tooltips.scss | 13 - .../addon/styles/nacho-base/_typography.scss | 99 - .../addon/styles/nacho-button/_abstracts.scss | 11 - .../core/addon/styles/nacho-button/_all.scss | 5 - .../core/addon/styles/nacho-button/_base.scss | 255 - .../addon/styles/nacho-button/_mixins.scss | 8 - .../core/addon/styles/nacho-button/_sort.scss | 6 - .../addon/styles/nacho-button/_toggle.scss | 55 - .../styles/nacho-core-theme-example.scss | 22 - .../core/addon/styles/nacho-core-theme.scss | 250 - .../addon/styles/nacho-dropdown/_all.scss | 2 - .../nacho-dropdown/_basic-dropdown.scss | 57 - .../styles/nacho-dropdown/_deco-dropdown.scss | 28 - .../core/addon/styles/nacho-pill/_all.scss | 4 - .../addon/styles/nacho-pill/_pill-base.scss | 22 - .../addon/styles/nacho-pill/_pill-input.scss | 41 - .../addon/styles/nacho-pill/_pill-link.scss | 29 - .../styles/nacho-pill/_pill-standard.scss | 46 - .../core/addon/styles/nacho-tables/_all.scss | 1 - .../styles/nacho-tables/_base-table.scss | 63 - .../nacho-table/nacho-table-body.hbs | 20 - .../nacho-table/nacho-table-cell.hbs | 1 - .../nacho-table/nacho-table-footer.hbs | 1 - .../nacho-table/nacho-table-global.hbs | 1 - .../nacho-table/nacho-table-header.hbs | 29 - .../nacho-table/nacho-table-row.hbs | 47 - .../nacho-table/nacho-table-title-cell.hbs | 1 - .../components/nacho-table/nacho-table.hbs | 66 - .../core/addon/utils/functions/noop.ts | 6 - .../core/addon/utils/lib/is-primitive.ts | 6 - .../core/addon/utils/lib/is-templatable.ts | 16 - .../addon/utils/lib/key-value-map-to-list.ts | 12 - .../core/addon/utils/strings/titleize.ts | 65 - datahub-web/@nacho-ui/core/app/.gitkeep | 0 .../nacho-animation/pendulum-ellipsis.js | 1 - .../nacho-avatar/nacho-avatar-image.js | 1 - .../nacho-button/nacho-sort-button.js | 1 - .../components/nacho-button/nacho-toggle.js | 1 - .../nacho-dropdown/nacho-dropdown-basic.js | 1 - .../nacho-dropdown-power-select.js | 1 - .../components/nacho-pill/nacho-pill-input.js | 1 - .../components/nacho-pill/nacho-pill-link.js | 1 - .../app/components/nacho-pill/nacho-pill.js | 1 - .../nacho-table/nacho-table-body.js | 1 - .../nacho-table/nacho-table-cell.js | 1 - .../nacho-table/nacho-table-footer.js | 1 - .../nacho-table/nacho-table-global.js | 1 - .../nacho-table/nacho-table-header.js | 1 - .../components/nacho-table/nacho-table-row.js | 1 - .../nacho-table/nacho-table-title-cell.js | 1 - .../app/components/nacho-table/nacho-table.js | 1 - .../app/helpers/nacho-core/display-value.js | 1 - .../app/helpers/nacho-core/list-includes.js | 1 - .../core/app/helpers/nacho-core/titleize.js | 1 - .../nacho-table/nacho-table-link-compute.js | 1 - .../core/app/services/nacho-avatars.js | 1 - .../@nacho-ui/core/app/templates/.gitkeep | 0 .../core/app/utils/lib/is-primitive.js | 1 - .../core/app/utils/lib/is-templatable.js | 1 - .../app/utils/lib/key-value-map-to-list.js | 1 - .../core/app/utils/strings/titleize.js | 1 - .../@nacho-ui/core/config/ember-try.js | 80 - .../@nacho-ui/core/config/environment.d.ts | 13 - .../@nacho-ui/core/config/environment.js | 5 - datahub-web/@nacho-ui/core/ember-cli-build.js | 18 - .../@nacho-ui/core/eyeglass-exports.js | 11 - datahub-web/@nacho-ui/core/index.js | 30 - datahub-web/@nacho-ui/core/package.json | 89 - datahub-web/@nacho-ui/core/testem.js | 1 - .../@nacho-ui/core/tests/dummy/app/app.ts | 12 - .../core/tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/config/environment.d.ts | 16 - .../core/tests/dummy/app/controllers/.gitkeep | 0 .../core/tests/dummy/app/helpers/.gitkeep | 0 .../@nacho-ui/core/tests/dummy/app/index.html | 25 - .../core/tests/dummy/app/models/.gitkeep | 0 .../@nacho-ui/core/tests/dummy/app/router.ts | 9 - .../core/tests/dummy/app/routes/.gitkeep | 0 .../core/tests/dummy/app/styles/app.scss | 14 - .../tests/dummy/app/templates/application.hbs | 3 - .../dummy/app/templates/components/.gitkeep | 0 .../core/tests/dummy/config/environment.js | 54 - .../tests/dummy/config/optional-features.json | 6 - .../core/tests/dummy/config/targets.js | 14 - .../core/tests/dummy/public/robots.txt | 3 - .../@nacho-ui/core/tests/helpers/.gitkeep | 0 .../core/tests/helpers/mock/table-configs.ts | 23 - datahub-web/@nacho-ui/core/tests/index.html | 33 - .../@nacho-ui/core/tests/integration/.gitkeep | 0 .../pendulum-ellipsis-animation-test.ts | 23 - .../nacho-avatar/nacho-avatar-image-test.ts | 45 - .../nacho-button/nacho-sort-button-test.ts | 102 - .../nacho-button/nacho-toggle-test.ts | 61 - .../nacho-dropdown-basic-test.ts | 73 - .../nacho-dropdown-power-select-test.ts | 48 - .../nacho-pill/nacho-pill-input-test.ts | 92 - .../nacho-pill/nacho-pill-link-test.ts | 16 - .../components/nacho-pill/nacho-pill-test.ts | 35 - .../nacho-table/nacho-table-body-test.ts | 31 - .../nacho-table/nacho-table-cell-test.ts | 13 - .../nacho-table/nacho-table-footer-test.ts | 13 - .../nacho-table/nacho-table-global-test.ts | 13 - .../nacho-table/nacho-table-header-test.ts | 45 - .../nacho-table/nacho-table-row-test.ts | 13 - .../nacho-table/nacho-table-test.ts | 178 - .../nacho-table-title-cell-test.ts | 13 - .../helpers/nacho-core/display-value-test.ts | 29 - .../helpers/nacho-core/list-includes-test.ts | 35 - .../helpers/nacho-core/titleize-test.ts | 16 - .../nacho-table-link-compute-test.ts | 36 - .../@nacho-ui/core/tests/test-helper.ts | 9 - .../@nacho-ui/core/tests/unit/.gitkeep | 0 .../tests/unit/services/nacho-avatars-test.ts | 12 - .../@nacho-ui/core/tests/unit/style-test.ts | 63 - .../tests/unit/utils/lib/is-primitive-test.ts | 28 - .../unit/utils/lib/is-templatable-test.ts | 24 - .../utils/lib/key-value-map-to-list-test.ts | 31 - .../tests/unit/utils/strings/titleize-test.ts | 38 - datahub-web/@nacho-ui/core/tsconfig.json | 23 - .../@nacho-ui/core/types/dummy/index.d.ts | 2 - datahub-web/@nacho-ui/core/types/index.d.ts | 4 - .../@nacho-ui/core/types/nacho-dropdown.d.ts | 23 - .../@nacho-ui/core/types/nacho-table.d.ts | 105 - datahub-web/@nacho-ui/core/types/testing.d.ts | 5 - .../@nacho-ui/core/types/utils/generics.d.ts | 43 - datahub-web/@nacho-ui/core/vendor/.gitkeep | 0 .../core/vendor/fonts/Lato/Lato-Black.ttf | Bin 69484 -> 0 bytes .../vendor/fonts/Lato/Lato-BlackItalic.ttf | Bin 71948 -> 0 bytes .../core/vendor/fonts/Lato/Lato-Bold.ttf | Bin 73316 -> 0 bytes .../vendor/fonts/Lato/Lato-BoldItalic.ttf | Bin 77680 -> 0 bytes .../core/vendor/fonts/Lato/Lato-Italic.ttf | Bin 75744 -> 0 bytes .../core/vendor/fonts/Lato/Lato-Light.ttf | Bin 77192 -> 0 bytes .../vendor/fonts/Lato/Lato-LightItalic.ttf | Bin 49064 -> 0 bytes .../core/vendor/fonts/Lato/Lato-Regular.ttf | Bin 75136 -> 0 bytes .../core/vendor/fonts/Lato/Lato-Thin.ttf | Bin 69968 -> 0 bytes .../vendor/fonts/Lato/Lato-ThinItalic.ttf | Bin 48848 -> 0 bytes .../@nacho-ui/core/vendor/fonts/Lato/OFL.txt | 93 - datahub-web/CHANGELOG.md | 27 - datahub-web/CONTRIBUTORS.md | 77 - datahub-web/README.md | 83 - .../blueprints/datahub-addon/README.md | 18 - .../__group__/__template__/.editorconfig | 20 - .../files/__group__/__template__/.ember-cli | 9 - .../files/__group__/__template__/.gitignore | 25 - .../files/__group__/__template__/.npmignore | 32 - .../files/__group__/__template__/.travis.yml | 67 - .../__group__/__template__/.watchmanconfig | 3 - .../files/__group__/__template__/LICENSE.md | 13 - .../files/__group__/__template__/README.md | 4 - .../__group__/__template__/addon/.gitkeep | 0 .../files/__group__/__template__/app/.gitkeep | 0 .../__template__/config/ember-try.js | 80 - .../__template__/config/environment.d.ts | 13 - .../__template__/config/environment.js | 5 - .../__group__/__template__/ember-cli-build.js | 18 - .../files/__group__/__template__/index.js | 9 - .../files/__group__/__template__/package.json | 67 - .../files/__group__/__template__/testem.js | 1 - .../__template__/tests/dummy/app/app.ts | 12 - .../tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/config/environment.d.ts | 13 - .../tests/dummy/app/controllers/.gitkeep | 0 .../tests/dummy/app/helpers/.gitkeep | 0 .../__template__/tests/dummy/app/index.html | 25 - .../tests/dummy/app/models/.gitkeep | 0 .../__template__/tests/dummy/app/router.ts | 9 - .../tests/dummy/app/routes/.gitkeep | 0 .../tests/dummy/app/routes/application.js | 9 - .../tests/dummy/app/styles/app.scss | 0 .../tests/dummy/app/templates/application.hbs | 3 - .../dummy/app/templates/components/.gitkeep | 0 .../tests/dummy/config/environment.js | 54 - .../tests/dummy/config/optional-features.json | 6 - .../tests/dummy/config/targets.js | 14 - .../__template__/tests/dummy/mirage/config.ts | 6 - .../tests/dummy/mirage/scenarios/default.ts | 1 - .../dummy/mirage/serializers/application.ts | 9 - .../tests/dummy/public/robots.txt | 3 - .../__template__/tests/helpers/.gitkeep | 0 .../__group__/__template__/tests/index.html | 33 - .../__template__/tests/integration/.gitkeep | 0 .../__template__/tests/test-helper.ts | 8 - .../__template__/tests/unit/.gitkeep | 0 .../__group__/__template__/tsconfig.json | 28 - .../__template__/types/dummy/index.d.ts | 1 - .../__group__/__template__/types/global.d.ts | 6 - .../modules/ember-load-initializers.d.ts | 5 - .../__group__/__template__/vendor/.gitkeep | 0 datahub-web/blueprints/datahub-addon/index.js | 38 - datahub-web/build.gradle | 84 - .../configs/ember-cli-build-options.js | 102 - datahub-web/configs/environment.js | 13 - .../configs/import-mirage-tree-from-addon.js | 135 - datahub-web/configs/li-environment.js | 18 - datahub-web/configs/testem-base.js | 22 - datahub-web/configs/tsconfig-base.json | 26 - datahub-web/documentation/MAIN.md | 30 - .../assets/os-module-diagram.png | Bin 140447 -> 0 bytes .../documentation/debugging/EMBER-SERVE.md | 29 - datahub-web/documentation/forward/GRAPHQL.md | 1 - .../documentation/forward/NOFRAMEWORK.md | 1 - datahub-web/documentation/forward/REACT.md | 1 - .../documentation/guides/ASPECT-ONBOARDING.md | 1 - .../documentation/guides/CHANGING-LOGO.md | 11 - .../documentation/guides/ENTITY-ONBOARDING.md | 1 - .../guides/EXTENDING-DATAHUB-UI.md | 1 - .../documentation/guides/MIRAGE-FROM-ADDON.md | 115 - .../documentation/introduction/01-HISTORY.md | 177 - .../documentation/introduction/02-MONOREPO.md | 1 - .../introduction/03-DATAMODELS.md | 1 - .../introduction/04-RENDERPROPS.md | 1 - datahub-web/lerna.json | 5 - datahub-web/package.json | 75 - .../packages/data-portal/.editorconfig | 19 - datahub-web/packages/data-portal/.ember-cli | 3 - datahub-web/packages/data-portal/.gitignore | 41 - datahub-web/packages/data-portal/.travis.yml | 30 - .../packages/data-portal/.watchmanconfig | 3 - datahub-web/packages/data-portal/CHANGELOG.md | 37 - datahub-web/packages/data-portal/README.md | 71 - datahub-web/packages/data-portal/app/app.ts | 27 - .../data-portal/app/components/.gitkeep | 0 .../app/components/avatars/avatar-image.ts | 54 - .../app/components/avatars/avatar-metadata.ts | 20 - .../app/components/avatars/avatars-detail.ts | 25 - .../app/components/avatars/rollup-avatars.ts | 55 - .../avatars/stacked-avatars-list.ts | 75 - .../app/components/comment/comment-header.ts | 6 - .../app/components/comment/comment-item.ts | 146 - .../app/components/comment/comment-new.ts | 110 - .../app/components/comment/comment-stream.ts | 59 - .../app/components/dataset-author.ts | 131 - .../app/components/dataset-authors.ts | 302 - .../app/components/dataset-comments.ts | 66 - .../app/components/dataset-property.js | 2 - .../datasets/containers/dataset-fabrics.ts | 50 - .../containers/dataset-lineage-downstreams.ts | 47 - .../containers/dataset-lineage-upstreams.ts | 47 - .../datasets/containers/dataset-owner-list.ts | 99 - .../datasets/containers/dataset-ownership.ts | 168 - .../datasets/containers/dataset-properties.ts | 92 - .../containers/dataset-relationship-levels.ts | 85 - .../datasets/containers/upstream-owners.ts | 33 - .../datasets/dataset-fabric-switcher.ts | 184 - .../app/components/datasets/dataset-header.ts | 27 - .../app/components/datasets/dataset-page.ts | 44 - .../datasets/dataset-relationships.ts | 16 - .../datasets/owners/suggested-owner-card.ts | 20 - .../datasets/owners/suggested-owners.ts | 41 - .../dataset-relationship-levels.ts | 199 - .../relationships/dataset-relationship-vis.ts | 216 - .../components/datasets/schemaless-tagging.ts | 139 - .../components/datasets/upstream-owners.ts | 7 - .../app/components/draggable-item.js | 11 - .../data-portal/app/components/drop-region.js | 24 - .../app/components/ember-selector.ts | 60 - .../app/components/hero-container.ts | 22 - .../app/components/hotkeys/global-hotkeys.ts | 75 - .../app/components/ivy-tabs-tablist.ts | 35 - .../data-portal/app/components/json-upload.ts | 58 - .../nacho/dropdown/dropdown-content.ts | 3 - .../nacho/dropdown/dropdown-option.ts | 46 - .../nacho/dropdown/hover-dropdown.ts | 134 - .../app/components/nacho/nacho-pagination.ts | 210 - .../app/components/navbar-right-column.hbs | 0 .../data-portal/app/components/navbar.ts | 91 - .../app/components/pwr-user-lookup.ts | 127 - .../containers/entity-task-container.ts | 368 - ...i-entity-task-container-top-components.hbs | 0 .../containers/multi-entity-task-container.ts | 184 - .../search/containers/search-box.ts | 101 - .../search/containers/search-facets.ts | 240 - .../app/components/search/search-box.ts | 366 - .../app/components/search/search-facet.ts | 30 - .../app/components/search/search-field.ts | 35 - .../app/components/search/search-main.ts | 25 - .../app/components/search/search-result.ts | 104 - .../app/components/search/search-results.ts | 45 - .../data-portal/app/config/environment.d.ts | 20 - .../data-portal/app/constants/application.ts | 8 - .../app/constants/avatars/avatars.ts | 27 - .../app/constants/dataset-classification.ts | 44 - .../app/constants/dataset-comments.ts | 48 - .../app/constants/dataset-purge-policy.ts | 76 - .../app/constants/datasets/owner.ts | 181 - .../app/constants/datasets/retention.ts | 15 - .../data-portal/app/constants/index.ts | 5 - .../data-portal/app/constants/keyboard.ts | 10 - .../app/constants/metadata-acquisition.ts | 89 - .../data-portal/app/constants/typeahead.ts | 9 - .../data-portal/app/controllers/.gitkeep | 0 .../app/controllers/application-error.ts | 9 - .../app/controllers/application.ts | 24 - .../app/controllers/datasets/dataset/tab.ts | 31 - .../data-portal/app/controllers/login-base.ts | 30 - .../data-portal/app/controllers/login.js | 6 - .../data-portal/app/controllers/search.ts | 48 - .../packages/data-portal/app/helpers/.gitkeep | 0 .../data-portal/app/helpers/find-in-array.ts | 27 - .../packages/data-portal/app/index.html | 30 - .../packages/data-portal/app/models/.gitkeep | 0 .../packages/data-portal/app/more-routes.ts | 3 - .../data-portal/app/parsers/autocomplete.ne | 73 - .../packages/data-portal/app/router.ts | 59 - .../packages/data-portal/app/routes/.gitkeep | 0 .../app/routes/application-main.ts | 165 - .../data-portal/app/routes/application.js | 14 - .../packages/data-portal/app/routes/browse.ts | 4 - .../app/routes/browsesearch/entity.ts | 54 - .../data-portal/app/routes/datasets.ts | 4 - .../app/routes/datasets/dataset.ts | 52 - .../app/routes/datasets/dataset/index.ts | 14 - .../app/routes/datasets/dataset/tab.ts | 34 - .../data-portal/app/routes/datasets/index.ts | 8 - .../data-portal/app/routes/features.ts | 10 - .../app/routes/features/feature.ts | 31 - .../app/routes/features/feature/index.ts | 3 - .../app/routes/features/feature/tab.ts | 75 - .../data-portal/app/routes/features/index.ts | 15 - .../packages/data-portal/app/routes/index.ts | 61 - .../packages/data-portal/app/routes/lists.ts | 10 - .../data-portal/app/routes/lists/entity.ts | 3 - .../packages/data-portal/app/routes/login.ts | 25 - .../packages/data-portal/app/routes/logout.ts | 24 - .../data-portal/app/routes/page-not-found.ts | 4 - .../app/routes/retina-authoring.ts | 21 - .../packages/data-portal/app/routes/search.ts | 102 - .../data-portal/app/routes/user/ump-flow.ts | 24 - .../app/serializers/application.js | 4 - .../data-portal/app/services/hot-keys.ts | 44 - .../app/styles/_open-source-main.scss | 16 - .../data-portal/app/styles/_shame.scss | 7 - .../app/styles/abstracts/_all.scss | 1 - .../app/styles/abstracts/_variables.scss | 27 - .../packages/data-portal/app/styles/app.scss | 1 - .../data-portal/app/styles/base/_all.scss | 3 - .../data-portal/app/styles/base/_base.scss | 13 - .../app/styles/base/_checkbox.scss | 92 - .../data-portal/app/styles/base/_helpers.scss | 59 - .../app/styles/components/_all.scss | 38 - .../app/styles/components/_hero.scss | 24 - .../app/styles/components/_navbar.scss | 326 - .../app/styles/components/avatar/_all.scss | 2 - .../app/styles/components/avatar/_avatar.scss | 144 - .../components/avatar/_avatars-detail.scss | 88 - .../app/styles/components/comments/_all.scss | 3 - .../components/comments/_comment-item.scss | 46 - .../components/comments/_comment-new.scss | 23 - .../components/comments/_comment-stream.scss | 13 - .../components/dataset-acl-access/_all.scss | 1 - .../_dataset-acl-access.scss | 118 - .../components/dataset-author/_all.scss | 3 - .../dataset-author/_dataset-author.scss | 71 - .../dataset-author/_owner-table.scss | 67 - .../dataset-author/_suggested-owners.scss | 149 - .../components/dataset-comments/_all.scss | 1 - .../dataset-comments/_dataset-comments.scss | 5 - .../components/dataset-compliance/_all.scss | 4 - .../_compliance-auto-suggester-action.scss | 16 - .../_compliance-container.scss | 77 - .../_compliance-prompts.scss | 42 - .../dataset-compliance/_compliance-table.scss | 386 - .../components/dataset-fabric/_all.scss | 2 - .../_dataset-fabric-container.scss | 8 - .../_dataset-fabric-switcher.scss | 47 - .../styles/components/dataset-owner/_all.scss | 1 - .../components/dataset-owner/_owners.scss | 5 - .../components/dataset-property/_all.scss | 4 - .../_contains-personal-data.scss | 9 - .../dataset-property/_dataset-pill.scss | 10 - .../dataset-property/_deprecated-dataset.scss | 56 - .../dataset-property/_removed-dataset.scss | 9 - .../components/dataset-purge-policy/_all.scss | 1 - .../_purge-policy-list.scss | 24 - .../dataset-relationships/_all.scss | 3 - .../_dataset-relationship-levels.scss | 57 - .../_dataset-relationship-vis.scss | 42 - .../_dataset-relationships.scss | 40 - .../components/dataset-schema/_all.scss | 2 - .../dataset-schema/_schema-header.scss | 5 - .../dataset-schema/_schema-table.scss | 57 - .../styles/components/entity-header/_all.scss | 1 - .../entity-header/_entity-header.scss | 42 - .../styles/components/entity-list/_all.scss | 1 - .../components/entity-list/_entity-list.scss | 38 - .../styles/components/feature-card/_all.scss | 1 - .../feature-card/_feature-card.scss | 34 - .../styles/components/ivy-tabs/_addendum.scss | 3 - .../app/styles/components/ivy-tabs/_all.scss | 4 - .../app/styles/components/ivy-tabs/_tabs.scss | 254 - .../components/nacho/_nacho-breadcrumbs.scss | 169 - .../components/nacho/_nacho-container.scss | 13 - .../components/nacho/_nacho-divider.scss | 5 - .../components/nacho/_nacho-dropdown.scss | 46 - .../components/nacho/_nacho-filter-rail.scss | 83 - .../nacho/_nacho-global-search.scss | 201 - .../styles/components/nacho/_nacho-pager.scss | 18 - .../components/nacho/_nacho-pagination.scss | 65 - .../components/nacho/_nacho-select.scss | 57 - .../styles/components/nacho/_nacho-table.scss | 73 - .../components/nacho/_nacho-uploader.scss | 22 - .../notifications/_action-notifications.scss | 11 - .../styles/components/notifications/_all.scss | 3 - .../notifications/_banner-alerts.scss | 101 - .../notifications/_notification-dot.scss | 19 - .../components/schemaless-tagging/_all.scss | 1 - .../_schemaless-tagging.scss | 15 - .../app/styles/components/search/_all.scss | 3 - .../app/styles/components/search/_facet.scss | 76 - .../search/_multi-entity-search.scss | 10 - .../app/styles/components/search/_search.scss | 152 - .../styles/components/toggle-switch/_all.scss | 1 - .../toggle-switch/_toggle-switch.scss | 60 - .../app/styles/components/tooltips/_all.scss | 1 - .../styles/components/tooltips/_tooltip.scss | 63 - .../styles/components/ump-metrics/_all.scss | 1 - .../components/ump-metrics/_tables.scss | 7 - .../components/upstream-owners/_all.scss | 1 - .../upstream-owners/_upstream-owners.scss | 18 - .../styles/components/user-lookup/_all.scss | 1 - .../user-lookup/_pwr-user-lookup.scss | 58 - .../data-portal/app/styles/layout/_all.scss | 4 - .../app/styles/layout/_dataset.scss | 34 - .../app/styles/layout/_entity.scss | 4 - .../data-portal/app/styles/layout/_page.scss | 17 - .../data-portal/app/styles/layout/_user.scss | 9 - .../app/styles/vendor-extensions/_all.scss | 3 - .../_ember-power-select.scss | 36 - .../_ember-radio-button.scss | 45 - .../vendor-extensions/_ember-tooltip.scss | 9 - .../app/templates/application-error.hbs | 11 - .../data-portal/app/templates/application.hbs | 43 - .../data-portal/app/templates/browse.hbs | 3 - .../app/templates/browsesearch/entity.hbs | 9 - .../components/avatars/avatar-image.hbs | 1 - .../components/avatars/avatar-metadata.hbs | 8 - .../components/avatars/avatars-detail.hbs | 18 - .../components/avatars/rollup-avatars.hbs | 47 - .../avatars/stacked-avatars-list.hbs | 55 - .../components/comment/comment-header.hbs | 11 - .../components/comment/comment-item.hbs | 75 - .../components/comment/comment-new.hbs | 24 - .../components/comment/comment-stream.hbs | 13 - .../templates/components/dataset-access.hbs | 37 - .../templates/components/dataset-author.hbs | 81 - .../templates/components/dataset-authors.hbs | 101 - .../templates/components/dataset-comments.hbs | 15 - .../templates/components/dataset-property.hbs | 19 - .../datasets/containers/dataset-fabrics.hbs | 22 - .../dataset-lineage-downstreams.hbs | 19 - .../containers/dataset-lineage-upstreams.hbs | 19 - .../containers/dataset-owner-list.hbs | 1 - .../datasets/containers/dataset-ownership.hbs | 47 - .../containers/dataset-properties.hbs | 3 - .../dataset-relationship-levels.hbs | 1 - .../datasets/containers/upstream-owners.hbs | 9 - .../datasets/dataset-fabric-switcher.hbs | 40 - .../components/datasets/dataset-header.hbs | 52 - .../components/datasets/dataset-page.hbs | 127 - .../datasets/dataset-relationships.hbs | 54 - .../datasets/owners/suggested-owner-card.hbs | 33 - .../datasets/owners/suggested-owners.hbs | 35 - .../dataset-relationship-levels.hbs | 40 - .../dataset-relationship-vis.hbs | 36 - .../datasets/schemaless-tagging.hbs | 56 - .../components/datasets/upstream-owners.hbs | 22 - .../templates/components/draggable-item.hbs | 1 - .../app/templates/components/drop-region.hbs | 1 - .../templates/components/ember-selector.hbs | 12 - .../templates/components/hero-container.hbs | 1 - .../components/hotkeys/global-hotkeys.hbs | 1 - .../app/templates/components/json-upload.hbs | 27 - .../nacho/dropdown/dropdown-content.hbs | 16 - .../nacho/dropdown/dropdown-option.hbs | 1 - .../nacho/dropdown/hover-dropdown.hbs | 39 - .../components/nacho/nacho-pagination.hbs | 92 - .../app/templates/components/navbar.hbs | 127 - .../templates/components/pwr-user-lookup.hbs | 25 - .../containers/entity-task-container.hbs | 13 - .../multi-entity-task-container.hbs | 44 - .../search/containers/search-box.hbs | 6 - .../search/containers/search-facets.hbs | 5 - .../components/search/search-box.hbs | 70 - .../components/search/search-facet.hbs | 38 - .../components/search/search-field.hbs | 15 - .../components/search/search-main.hbs | 67 - .../components/search/search-result.hbs | 71 - .../components/search/search-results.hbs | 38 - .../data-portal/app/templates/datasets.hbs | 3 - .../app/templates/datasets/dataset.hbs | 1 - .../app/templates/datasets/dataset/tab.hbs | 1 - .../app/templates/datasets/index.hbs | 1 - .../data-portal/app/templates/features.hbs | 3 - .../app/templates/features/feature.hbs | 1 - .../app/templates/features/feature/index.hbs | 1 - .../app/templates/features/feature/tab.hbs | 84 - .../data-portal/app/templates/index.hbs | 27 - .../data-portal/app/templates/lists.hbs | 1 - .../app/templates/lists/entity.hbs | 1 - .../data-portal/app/templates/logout.hbs | 1 - .../app/templates/page-not-found.hbs | 1 - .../app/templates/retina-authoring.hbs | 1 - .../data-portal/app/templates/search.hbs | 16 - .../app/templates/user/ump-flow.hbs | 1 - .../app/typings/api/datasets/comments.d.ts | 40 - .../app/typings/api/datasets/compliance.d.ts | 158 - .../app/typings/api/datasets/origins.d.ts | 25 - .../app/typings/api/datasets/owners.d.ts | 44 - .../app/typings/api/datasets/retention.d.ts | 29 - .../api/list/compliance-datatypes.d.ts | 10 - .../app/typings/api/metadata/index.d.ts | 10 - .../typings/api/ownership/resolved-owner.d.ts | 14 - .../api/ownership/resolved-ownership.d.ts | 10 - .../analytics/site-search-tracking/piwik.d.ts | 22 - .../data-portal/app/typings/app/avatars.d.ts | 20 - .../app/typings/app/controllers.d.ts | 8 - .../data-portal/app/typings/app/core.d.ts | 12 - .../app/typings/app/dataset-columns.d.ts | 38 - .../app/typings/app/dataset-compliance.d.ts | 138 - .../app/typings/app/datasets/lineage.d.ts | 12 - .../app/typings/app/datasets/owners.d.ts | 9 - .../data-portal/app/typings/app/parsers.d.ts | 8 - .../data-portal/app/typings/app/services.d.ts | 16 - .../data-portal/app/typings/generic.d.ts | 26 - .../app/typings/modules/babel-decorators.d.ts | 20 - .../modules/ember-load-initializers.d.ts | 5 - .../app/typings/modules/nearley.d.ts | 28 - .../app/typings/untyped-js-module.d.ts | 43 - .../app/utils/api/authentication.ts | 8 - .../app/utils/api/datasets/fabrics.ts | 20 - .../app/utils/api/datasets/lineage.ts | 46 - .../app/utils/api/datasets/origins.ts | 28 - .../app/utils/api/datasets/owners.ts | 178 - .../app/utils/api/datasets/properties.ts | 32 - .../app/utils/api/datasets/retention.ts | 43 - .../app/utils/api/errors/errors.ts | 44 - .../app/utils/api/urn-endpoint-reader.ts | 22 - .../packages/data-portal/app/utils/array.ts | 257 - .../utils/datasets/compliance-suggestions.ts | 43 - .../datasets/compliance/metadata-schema.ts | 89 - .../app/utils/datasets/retention.ts | 20 - .../data-portal/app/utils/graph-db.ts | 318 - .../app/utils/helpers/ember-concurrency.ts | 16 - .../app/utils/helpers/functions.ts | 14 - .../data-portal/app/utils/helpers/string.ts | 9 - .../packages/data-portal/app/utils/object.ts | 69 - .../app/utils/parsers/autocomplete/index.ts | 56 - .../parsers/autocomplete/processors/entity.ts | 33 - .../parsers/autocomplete/processors/facets.ts | 127 - .../autocomplete/processors/facets/fabric.ts | 7 - .../processors/facets/local-facet.ts | 22 - .../autocomplete/processors/facets/metrics.ts | 14 - .../processors/facets/platform.ts | 29 - .../processors/logical-operators.ts | 37 - .../steps/create-wanted-rules-map.ts | 29 - .../utils/parsers/autocomplete/steps/feed.ts | 28 - .../steps/filter-wanted-rules-map.ts | 19 - .../autocomplete/steps/generate-groups.ts | 49 - .../utils/parsers/autocomplete/steps/init.ts | 17 - .../autocomplete/steps/process-rules.ts | 52 - .../autocomplete/steps/process-text.ts | 21 - .../app/utils/parsers/autocomplete/types.ts | 98 - .../app/utils/parsers/autocomplete/utils.ts | 32 - .../data-portal/app/utils/parsers/helpers.ts | 56 - .../data-portal/app/utils/parsers/parser.ts | 16 - .../data-portal/app/utils/search/typeahead.ts | 29 - .../data-portal/app/utils/validators/email.ts | 12 - .../app/utils/validators/regexp.ts | 46 - .../app/utils/validators/tracking-headers.ts | 16 - .../packages/data-portal/config/coverage.js | 4 - .../data-portal/config/dependency-lint.js | 18 - .../config/deprecation-workflow.js | 8 - .../data-portal/config/environment.d.ts | 20 - .../data-portal/config/environment.js | 87 - .../data-portal/config/optional-features.json | 6 - .../packages/data-portal/config/targets.js | 14 - .../packages/data-portal/ember-cli-build.js | 11 - .../packages/data-portal/lib/.eslintrc.js | 6 - .../lib/ember-nearley/broccoli-nearley.js | 59 - .../data-portal/lib/ember-nearley/index.js | 24 - .../lib/ember-nearley/package.json | 6 - datahub-web/packages/data-portal/package.json | 103 - .../apple-touch-icon-precomposed-144.png | Bin 2309 -> 0 bytes .../apple-touch-icon-precomposed-57.png | Bin 1261 -> 0 bytes .../assets/apple-touch-icon-precomposed.png | Bin 2309 -> 0 bytes .../public/assets/apple-touch-icon.png | Bin 1261 -> 0 bytes .../public/assets/favicon-notification.ico | Bin 24838 -> 0 bytes .../data-portal/public/assets/favicon.ico | Bin 14189 -> 0 bytes .../public/assets/images/default_avatar.png | Bin 1816 -> 0 bytes .../public/assets/images/favicon.png | Bin 687 -> 0 bytes .../images/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes .../assets/images/glyphicons-halflings.png | Bin 13826 -> 0 bytes .../images/icons/app-catalogue/azkaban.png | Bin 2830 -> 0 bytes .../images/icons/app-catalogue/callisto.png | Bin 2317 -> 0 bytes .../images/icons/app-catalogue/cmon.png | Bin 2557 -> 0 bytes .../images/icons/app-catalogue/data-hub.png | Bin 8726 -> 0 bytes .../icons/app-catalogue/dr-elephant.png | Bin 4752 -> 0 bytes .../images/icons/app-catalogue/easy-data.png | Bin 4450 -> 0 bytes .../images/icons/app-catalogue/faro.png | Bin 3978 -> 0 bytes .../images/icons/app-catalogue/goblin.png | Bin 3720 -> 0 bytes .../images/icons/app-catalogue/holdem.png | Bin 2191 -> 0 bytes .../images/icons/app-catalogue/in-charts.png | Bin 2219 -> 0 bytes .../images/icons/app-catalogue/kepler.png | Bin 4496 -> 0 bytes .../images/icons/app-catalogue/merlin.png | Bin 4114 -> 0 bytes .../images/icons/app-catalogue/prestoi.png | Bin 4228 -> 0 bytes .../images/icons/app-catalogue/raptor.png | Bin 5470 -> 0 bytes .../images/icons/app-catalogue/reportal.png | Bin 3027 -> 0 bytes .../images/icons/app-catalogue/third-eye.png | Bin 3911 -> 0 bytes .../images/icons/app-catalogue/trex.png | Bin 3783 -> 0 bytes .../assets/images/icons/app-catalogue/war.png | Bin 4123 -> 0 bytes .../images/icons/app-catalogue/wimd.png | Bin 3101 -> 0 bytes .../public/assets/images/icons/browse.png | Bin 18350 -> 0 bytes .../public/assets/images/icons/idpc.png | Bin 39706 -> 0 bytes .../public/assets/images/icons/metadata.png | Bin 24881 -> 0 bytes .../public/assets/images/icons/schema.png | Bin 18026 -> 0 bytes .../assets/images/icons/script-finder.png | Bin 31353 -> 0 bytes .../public/assets/images/import.png | Bin 596 -> 0 bytes .../public/assets/images/landing-logo.png | Bin 41573 -> 0 bytes .../public/assets/images/loading.gif | Bin 3542 -> 0 bytes .../assets/images/login_screen_bckgrd.png | Bin 270652 -> 0 bytes .../public/assets/images/svgs/app-logo.svg | 3 - .../public/assets/images/text_blockquote.png | Bin 522 -> 0 bytes .../public/assets/images/text_bold.png | Bin 573 -> 0 bytes .../public/assets/images/text_code.png | Bin 586 -> 0 bytes .../public/assets/images/text_delimiter.png | Bin 136 -> 0 bytes .../public/assets/images/text_empty.png | Bin 348 -> 0 bytes .../public/assets/images/text_heading_1.png | Bin 532 -> 0 bytes .../public/assets/images/text_heading_2.png | Bin 577 -> 0 bytes .../public/assets/images/text_heading_3.png | Bin 578 -> 0 bytes .../public/assets/images/text_image.png | Bin 664 -> 0 bytes .../public/assets/images/text_italic.png | Bin 521 -> 0 bytes .../public/assets/images/text_link.png | Bin 649 -> 0 bytes .../assets/images/text_list_bullets.png | Bin 600 -> 0 bytes .../assets/images/text_list_numbers.png | Bin 562 -> 0 bytes .../public/assets/images/text_strike.png | Bin 567 -> 0 bytes .../public/assets/images/text_underline.png | Bin 563 -> 0 bytes .../public/assets/images/user_empty.png | Bin 1816 -> 0 bytes .../assets/images/wherehows-logo-backup.png | Bin 1765 -> 0 bytes .../public/assets/images/wherehows-logo.png | Bin 1526 -> 0 bytes .../public/assets/images/wizard.gif | Bin 20656 -> 0 bytes .../packages/data-portal/public/robots.txt | 3 - datahub-web/packages/data-portal/testem.js | 1 - .../packages/data-portal/tests/.eslintrc.js | 5 - .../packages/data-portal/tests/index.html | 33 - .../packages/data-portal/tests/test-helper.ts | 9 - .../packages/data-portal/tsconfig.json | 96 - .../data-portal/types/datahub-web/index.d.ts | 9 - .../packages/data-portal/types/global.d.ts | 6 - .../packages/data-portal/vendor/.gitkeep | 0 datahub-web/scripts/ember.sh | 2 - datahub-web/scripts/yarn.sh | 2 - datahub-web/settings.gradle | 0 datahub-web/yarn.lock | 15495 ---------------- 2265 files changed, 93494 deletions(-) delete mode 100644 datahub-web/.eslintignore delete mode 100644 datahub-web/.eslintrc.js delete mode 100644 datahub-web/.eslintrc.precommit.js delete mode 100644 datahub-web/.gitignore delete mode 100644 datahub-web/.prettierrc delete mode 100644 datahub-web/.template-lintrc.js delete mode 100644 datahub-web/@datahub/data-models/.editorconfig delete mode 100644 datahub-web/@datahub/data-models/.ember-cli delete mode 100644 datahub-web/@datahub/data-models/.gitignore delete mode 100644 datahub-web/@datahub/data-models/.npmignore delete mode 100644 datahub-web/@datahub/data-models/.travis.yml delete mode 100644 datahub-web/@datahub/data-models/.watchmanconfig delete mode 100644 datahub-web/@datahub/data-models/LICENSE.md delete mode 100644 datahub-web/@datahub/data-models/README.md delete mode 100644 datahub-web/@datahub/data-models/addon/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/addon/api/browse.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/common/institutional-memory.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/common/social-actions.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/compliance.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/dataset.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/groups.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/lineage.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/platforms.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/schema.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/dataset/shared/lists.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/api/person/entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.hbs delete mode 100644 datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.ts delete mode 100644 datahub-web/@datahub/data-models/addon/config/urn/base-prefix.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/common/acl-access.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/compliance-suggestions.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/groups.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/all.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/properties.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/dataset/tabs.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/index.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/person/links.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/person/social-actions.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/person/tabs.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/shared/index.ts delete mode 100644 datahub-web/@datahub/data-models/addon/constants/entity/shared/tabs.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/base-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/data-construct-change-management/data-construct-change-management-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/dataset-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/fields.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/base.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/analyze-diff.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/annotations.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/comparators.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/schema.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-annotation.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-data-types-list.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-info.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-suggestion.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/annotation-helpers.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/security-classification.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/export-policy.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/lineage.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/platforms-list.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/purge-policy.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/modules/schema.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/render-props.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/utils/legacy.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/utils/owner.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/utils/platform.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/utils/segments.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/dataset/utils/urn.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/group/group-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/institutional-memory.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/list/list-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/mock/mock-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/person/modules/acl.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/person/person-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/person/render-props.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/utils/aspects.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/utils/entities.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/utils/facets.ts delete mode 100644 datahub-web/@datahub/data-models/addon/entity/utils/fields.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-schema-column.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/fixtures/dataset-ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/mirage-config.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset-ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/scenarios/dataset-ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/datasets.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/ownership.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/schema.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/get-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/setup-sinon-test.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-data-models-service.ts delete mode 100644 datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-entities/test-person-entity.ts delete mode 100644 datahub-web/@datahub/data-models/addon/models/aspects/institutional-memory.ts delete mode 100644 datahub-web/@datahub/data-models/addon/relationships/creator.ts delete mode 100644 datahub-web/@datahub/data-models/addon/relationships/decorator.ts delete mode 100644 datahub-web/@datahub/data-models/addon/services/data-models.ts delete mode 100644 datahub-web/@datahub/data-models/addon/utils/entity-route-name-resolver.ts delete mode 100644 datahub-web/@datahub/data-models/addon/utils/get-actor-from-urn.ts delete mode 100644 datahub-web/@datahub/data-models/addon/utils/get-group-from-urn.ts delete mode 100644 datahub-web/@datahub/data-models/addon/utils/ownership.ts delete mode 100644 datahub-web/@datahub/data-models/app/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/app/components/get-entity-by-urn.js delete mode 100644 datahub-web/@datahub/data-models/app/mirage-factories/dataset-ownership.js delete mode 100644 datahub-web/@datahub/data-models/app/mirage-models/dataset-ownership.js delete mode 100644 datahub-web/@datahub/data-models/app/services/data-models.js delete mode 100644 datahub-web/@datahub/data-models/app/utils/get-actor-from-urn.js delete mode 100644 datahub-web/@datahub/data-models/app/utils/get-group-from-urn.js delete mode 100644 datahub-web/@datahub/data-models/config/ember-try.js delete mode 100644 datahub-web/@datahub/data-models/config/environment.js delete mode 100644 datahub-web/@datahub/data-models/ember-cli-build.js delete mode 100644 datahub-web/@datahub/data-models/index.js delete mode 100644 datahub-web/@datahub/data-models/package.json delete mode 100644 datahub-web/@datahub/data-models/testem.js delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/app.js delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/index.html delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/router.js delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/styles/app.css delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/config/environment.js delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/config/targets.js delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/mirage/config.ts delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/mirage/scenarios/default.ts delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/mirage/serializers/application.ts delete mode 100644 datahub-web/@datahub/data-models/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@datahub/data-models/tests/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/index.html delete mode 100644 datahub-web/@datahub/data-models/tests/integration/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/integration/components/get-entity-by-urn-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/integration/entity/utils/aspects-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/test-helper.js delete mode 100644 datahub-web/@datahub/data-models/tests/unit/.gitkeep delete mode 100644 datahub-web/@datahub/data-models/tests/unit/services/data-models-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/dataset-entity-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/helpers/validators/schema-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-annotation-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-info-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/constants/annotation-helpers-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/ownership-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/entity/mock/mock-entity-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/get-actor-from-urn-test.ts delete mode 100644 datahub-web/@datahub/data-models/tests/unit/utils/get-group-from-urn-test.ts delete mode 100644 datahub-web/@datahub/data-models/tsconfig.json delete mode 100644 datahub-web/@datahub/data-models/types/dummy/index.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/browse.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/dataset/index.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/dataset/ownership.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/facets.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/person/props.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/rendering/entity-render-props.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/rendering/page-components.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/rendering/properties-panel.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/search.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/shared.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/entity/validators.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/global.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/relationships/decorator-types.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/custom-search-result-property-component.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/date.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/icon.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/link.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/tag.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/search/search-entity-render-prop.d.ts delete mode 100644 datahub-web/@datahub/data-models/types/vendor/custom-ember.d.ts delete mode 100644 datahub-web/@datahub/data-models/vendor/.gitkeep delete mode 100644 datahub-web/@datahub/entities/.editorconfig delete mode 100644 datahub-web/@datahub/entities/.ember-cli delete mode 100644 datahub-web/@datahub/entities/.gitignore delete mode 100644 datahub-web/@datahub/entities/.npmignore delete mode 100644 datahub-web/@datahub/entities/.travis.yml delete mode 100644 datahub-web/@datahub/entities/.watchmanconfig delete mode 100644 datahub-web/@datahub/entities/LICENSE.md delete mode 100644 datahub-web/@datahub/entities/README.md delete mode 100644 datahub-web/@datahub/entities/addon/.gitkeep delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-main.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-schema.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/core/containers/dataset-groups.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.hbs delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.hbs delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/datasets/relationships/dataset-relationship-table.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/containers/entity-header.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/containers/tab-content/entity-ownership.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/containers/tab-content/social-action-list.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/containers/tablist/entity-ownership.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/containers/user-main.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/profile/entity-header.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/profile/info-editor.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/profile/page-content.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/profile/page-content/renderer.ts delete mode 100644 datahub-web/@datahub/entities/addon/components/user/profile/view-all.ts delete mode 100644 datahub-web/@datahub/entities/addon/controllers/user/profile/tab.ts delete mode 100644 datahub-web/@datahub/entities/addon/entities-routes.ts delete mode 100644 datahub-web/@datahub/entities/addon/helpers/compliance/is-none.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/.gitkeep delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/datasets-config.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/factories/platform.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/helpers/ownership.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/helpers/platforms.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/models/compliance-data-types.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/models/dataset-schema-column.ts delete mode 100644 datahub-web/@datahub/entities/addon/mirage-addon/scenarios/default.ts delete mode 100644 datahub-web/@datahub/entities/addon/mocks/data-access.ts delete mode 100644 datahub-web/@datahub/entities/addon/mocks/models/dataset-entity.ts delete mode 100644 datahub-web/@datahub/entities/addon/mocks/person-entity.ts delete mode 100644 datahub-web/@datahub/entities/addon/placeholder/metadata-acquisition.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user/entity.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user/entity/own.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user/profile.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user/profile/index.ts delete mode 100644 datahub-web/@datahub/entities/addon/routes/user/profile/tab.ts delete mode 100644 datahub-web/@datahub/entities/addon/services/datasets-core.ts delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/_placeholder-nacho-tooltip.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_mixins.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_action-bar.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_upstream-dataset.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/tables/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_dataset-groups-table.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_dataset-compliance.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/index.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/profile/_all.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/profile/_content.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/profile/_header.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/profile/_info-editor.scss delete mode 100644 datahub-web/@datahub/entities/addon/styles/user/profile/_view-all.scss delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-main.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-schema.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/datasets/core/containers/dataset-groups.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/datasets/relationships/dataset-relationship-table.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/containers/entity-header.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/containers/tab-content/entity-ownership.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/containers/tablist/entity-ownership.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/containers/user-main.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/profile/entity-header.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/profile/info-editor.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/profile/page-content.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/profile/page-content/renderer.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/components/user/profile/view-all.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user/entity.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user/entity/own.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user/profile.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user/profile/index.hbs delete mode 100644 datahub-web/@datahub/entities/addon/templates/user/profile/tab.hbs delete mode 100644 datahub-web/@datahub/entities/addon/utils/api/columns.ts delete mode 100644 datahub-web/@datahub/entities/addon/utils/api/schema.ts delete mode 100644 datahub-web/@datahub/entities/addon/utils/lineage.ts delete mode 100644 datahub-web/@datahub/entities/addon/utils/tabownership.ts delete mode 100644 datahub-web/@datahub/entities/app/.gitkeep delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/containers/dataset-main.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/containers/dataset-schema.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/core/containers/dataset-groups.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/core/page/platform-discriminator.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/core/tabs/dataset-compliance.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/dataset-schema.js delete mode 100644 datahub-web/@datahub/entities/app/components/datasets/relationships/dataset-relationship-table.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/containers/entity-header.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/containers/tab-content/entity-ownership.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/containers/tab-content/social-action-list.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/containers/tablist/entity-ownership.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/containers/user-main.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/entity-header.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/info-editor.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/page-content.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/page-content/renderer.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/tabs/data-access.js delete mode 100644 datahub-web/@datahub/entities/app/components/user/profile/view-all.js delete mode 100644 datahub-web/@datahub/entities/app/controllers/user/profile/tab.js delete mode 100644 datahub-web/@datahub/entities/app/helpers/compliance/is-none.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user/entity.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user/entity/own.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user/profile.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user/profile/index.js delete mode 100644 datahub-web/@datahub/entities/app/routes/user/profile/tab.js delete mode 100644 datahub-web/@datahub/entities/app/services/datasets-core.js delete mode 100644 datahub-web/@datahub/entities/app/templates/components/user/containers/tab-content/social-action-list.hbs delete mode 100644 datahub-web/@datahub/entities/app/templates/user.js delete mode 100644 datahub-web/@datahub/entities/app/templates/user/entity.js delete mode 100644 datahub-web/@datahub/entities/app/templates/user/entity/own.js delete mode 100644 datahub-web/@datahub/entities/app/templates/user/profile.js delete mode 100644 datahub-web/@datahub/entities/app/templates/user/profile/index.js delete mode 100644 datahub-web/@datahub/entities/app/templates/user/profile/tab.js delete mode 100644 datahub-web/@datahub/entities/config/ember-try.js delete mode 100644 datahub-web/@datahub/entities/config/environment.d.ts delete mode 100644 datahub-web/@datahub/entities/config/environment.js delete mode 100644 datahub-web/@datahub/entities/config/icons.js delete mode 100644 datahub-web/@datahub/entities/ember-cli-build.js delete mode 100644 datahub-web/@datahub/entities/eyeglass-exports.js delete mode 100644 datahub-web/@datahub/entities/index.js delete mode 100644 datahub-web/@datahub/entities/package.json delete mode 100644 datahub-web/@datahub/entities/testem.js delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/app.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/index.html delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/router.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/styles/app.scss delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@datahub/entities/tests/dummy/app/templates/components/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/dummy/config/environment.js delete mode 100644 datahub-web/@datahub/entities/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@datahub/entities/tests/dummy/config/targets.js delete mode 100644 datahub-web/@datahub/entities/tests/dummy/mirage/config.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/mirage/scenarios/default.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/mirage/serializers/application.ts delete mode 100644 datahub-web/@datahub/entities/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@datahub/entities/tests/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/index.html delete mode 100644 datahub-web/@datahub/entities/tests/integration/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/datasets/containers/dataset-schema-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/datasets/core/page/platform-discriminator-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/datasets/dataset-schema-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/user/containers/entity-header-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/user/profile/entity-header-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/user/profile/info-editor-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/components/user/profile/view-all-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/integration/helpers/compliance/is-none-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/test-helper.ts delete mode 100644 datahub-web/@datahub/entities/tests/unit/.gitkeep delete mode 100644 datahub-web/@datahub/entities/tests/unit/routes/user-test.ts delete mode 100644 datahub-web/@datahub/entities/tests/unit/services/datasets-core-test.ts delete mode 100644 datahub-web/@datahub/entities/tsconfig.json delete mode 100644 datahub-web/@datahub/entities/types/compliance/annotation-selection.d.ts delete mode 100644 datahub-web/@datahub/entities/types/compliance/export-policy.d.ts delete mode 100644 datahub-web/@datahub/entities/types/datasets/columns.d.ts delete mode 100644 datahub-web/@datahub/entities/types/datasets/schema.d.ts delete mode 100644 datahub-web/@datahub/entities/types/dummy/index.d.ts delete mode 100644 datahub-web/@datahub/entities/types/global.d.ts delete mode 100644 datahub-web/@datahub/entities/types/groups.d.ts delete mode 100644 datahub-web/@datahub/entities/types/modules/ember-load-initializers.d.ts delete mode 100644 datahub-web/@datahub/entities/types/vendor/custom-ember.d.ts delete mode 100644 datahub-web/@datahub/entities/types/vendor/mirage-for-datasets.d.ts delete mode 100644 datahub-web/@datahub/entities/vendor/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/.editorconfig delete mode 100644 datahub-web/@datahub/metadata-types/.ember-cli delete mode 100644 datahub-web/@datahub/metadata-types/.gitignore delete mode 100644 datahub-web/@datahub/metadata-types/.npmignore delete mode 100644 datahub-web/@datahub/metadata-types/.travis.yml delete mode 100644 datahub-web/@datahub/metadata-types/.watchmanconfig delete mode 100644 datahub-web/@datahub/metadata-types/LICENSE.md delete mode 100644 datahub-web/@datahub/metadata-types/README.md delete mode 100644 datahub-web/@datahub/metadata-types/addon/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/chart/protocol-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/common/fabric-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/common/hadoop-cluster-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dashboard/access-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance-data-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance-field-annotation.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance-field-types.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance-suggestion.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance/classifiers.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/compliance/purge-policy.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/field-format.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/platform.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/ump-dataset-azkaban-flow-type.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/entity/dataset/ump-flows.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/metadata/aspect.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/constants/metadata/top-consumers.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/utils/common/ownership/owner.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/utils/common/ownership/urn.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/utils/entity/dataset/platform/index.ts delete mode 100644 datahub-web/@datahub/metadata-types/addon/utils/entity/dataset/platform/urn.ts delete mode 100644 datahub-web/@datahub/metadata-types/app/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/config/ember-try.js delete mode 100644 datahub-web/@datahub/metadata-types/config/environment.js delete mode 100644 datahub-web/@datahub/metadata-types/ember-cli-build.js delete mode 100644 datahub-web/@datahub/metadata-types/index.js delete mode 100644 datahub-web/@datahub/metadata-types/local-types/common/owner.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/package.json delete mode 100644 datahub-web/@datahub/metadata-types/restli-types-config.json delete mode 100644 datahub-web/@datahub/metadata-types/testem.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/app.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/index.html delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/router.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/styles/app.css delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/app/templates/components/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/config/environment.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/config/targets.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@datahub/metadata-types/tests/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/index.html delete mode 100644 datahub-web/@datahub/metadata-types/tests/integration/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tests/test-helper.js delete mode 100644 datahub-web/@datahub/metadata-types/tests/unit/.gitkeep delete mode 100644 datahub-web/@datahub/metadata-types/tsconfig.json delete mode 100644 datahub-web/@datahub/metadata-types/types/aspects/institutional-memory.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/codegen/index.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/audit-stamp.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/change-audit-stamp.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/locale.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/multi-locale-string.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/shared-owner.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/time.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/common/user.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/dummy/index.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/data-concept/data-concept-entity.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/compliance-data-types.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/compliance/export-policy.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/compliance/info.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/compliance/retention.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/dataset-entity.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/lineage.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/platform.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/schema.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/dataset/ump-flows.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/group/group-entity.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/index.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/entity/person/person-entity.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/global.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/metadata/aspect.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/types/metadata/snapshot.d.ts delete mode 100644 datahub-web/@datahub/metadata-types/vendor/.gitkeep delete mode 100644 datahub-web/@datahub/shared/.editorconfig delete mode 100644 datahub-web/@datahub/shared/.ember-cli delete mode 100644 datahub-web/@datahub/shared/.gitignore delete mode 100644 datahub-web/@datahub/shared/.npmignore delete mode 100644 datahub-web/@datahub/shared/.travis.yml delete mode 100644 datahub-web/@datahub/shared/.watchmanconfig delete mode 100644 datahub-web/@datahub/shared/LICENSE.md delete mode 100644 datahub-web/@datahub/shared/README.md delete mode 100644 datahub-web/@datahub/shared/addon/.gitkeep delete mode 100644 datahub-web/@datahub/shared/addon/api/change-management/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/configurator/configurator.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/entity-configs.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/health/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/lineage/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/top-consumers/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/api/user/authentication.ts delete mode 100644 datahub-web/@datahub/shared/addon/authenticators/aad-sso.ts delete mode 100644 datahub-web/@datahub/shared/addon/authenticators/custom-ldap.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/application/navbar/additional-links.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/avatar/avatar-name.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/avatar/containers/avatar-main.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/avatar/generic-wrapper.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/avatar/nacho-table-wrapper.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/browse-card.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/browse-category.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/containers/category-container.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/containers/entity-categories.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/entity-breadcrumbs.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/entity-breadcrumbs/breadcrumb-error.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/entity-breadcrumbs/crumb.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/browser/search-within-hierarchy.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/buttons/binary-toggle-button.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/buttons/svg-icon.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/add-change-log-modal.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/add-change-log-modal.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/change-log-search-provider.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/change-log-search-provider.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/change-log-table.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/containers/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/markdown-cheat-sheet.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/markdown-cheat-sheet.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/read-only-email-content.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/read-only-email-content.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/recipient-search-select.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/recipient-search-select.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/view-change-log-modal.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/change-management/view-change-log-modal.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/configurable/containers/entity-feature-configs.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/composed/user-assistance/help-tooltip-with-link.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/composed/user-assistance/help-tooltip-with-link.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/entity/description.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/entity/field.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/entity/field.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/header.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/header.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/icon.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/icon.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/text.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/text.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/tooltip.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/tooltip.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/wiki-link.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/dynamic-components/wiki-link.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-alert-banner.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/base-page-component.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-base-container.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-deprecation.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/attribute-callout.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/content-row.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/entity-property.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/entity-title.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/entity-type.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/naked-div.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-header/tag.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/content-panel-with-toggle.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/content-panel-with-toggle.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/content-panel.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/entity-discriminator.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/entity-discriminator.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/entity-switch.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/entity-switch.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/file-viewer.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/hydrate-entity.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/hydrate-entity.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/nacho-table-entity-link.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-content/nacho-table.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/entity-page-main.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/layouts/linear-layout.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity-page/wherehows-entity-header.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity/grid-group/profile-list.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity/people/profile-list.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity/properties-panel-label.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/entity/properties-panel-label.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/entity/properties-panel.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/expandable-content.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/forms/action-drawer.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/container.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/container.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/header.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/header.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/link-button.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/dynamic-components/link-button.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/foxie-main.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/foxie-main.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/navbar/toggle-component.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/navbar/toggle-component.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/screens/default-scenario.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/screens/default-scenario.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/screens/random-gif.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/foxie/screens/random-gif.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/graph/graph-viewer.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/graph/graph-viewer.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/graph/toolbar.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/graph/toolbar.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/carousel-insight.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/containers/health-metadata.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/entity-detail.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/health-factor-action.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/health-factors-score.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/health-factors.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/health-metadata-error.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/health-score-value.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/insight-card.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/last-updated.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/health/search-score.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/insight/carousel.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/institutional-memory/containers/tab.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/institutional-memory/wiki/url-list.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/institutional-memory/wiki/url-list/add-dialog.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/lineage/lineage-container.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/lineage/lineage-container.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/lineage/lineage-main.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/lineage/lineage-main.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/link-to-section.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/link-to-section.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/login/login-form.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/login/login-form.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/mail-to.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/notifications/banner-alerts.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/notifications/banner-alerts.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/date.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/date.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/icon.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/icon.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/link.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/link.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/tag.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/search/custom-search-result-property-component/tag.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/social/containers/social-metadata.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/social/social-action.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/tab-content-modal.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/tab-content-modal.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/tables/simple-record.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/containers/top-consumers-modal.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/containers/top-consumers.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/containers/top-consumers.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/insight-card.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/insight-card.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/insight-strip.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/insight-strip.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/top-consumers-insight.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/top-consumers-insight.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/top-consumers-modal.hbs delete mode 100644 datahub-web/@datahub/shared/addon/components/top-consumers/insight/top-consumers-modal.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/tracking/track-ui-event.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/tracking/trackable-link-to.ts delete mode 100644 datahub-web/@datahub/shared/addon/components/wait-promise-container.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/authentication/auth-type.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/change-management/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/foxie/scenario-definitions/empty-dataset.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/foxie/trigger-definitions.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/foxie/user-function-type.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/global/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/health/score-grade.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/social/pending-actions.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/event-tracking/compliance.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/event-tracking/control-interaction-events.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/event-tracking/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/event-tracking/search.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/site-search-tracking/adapters.ts delete mode 100644 datahub-web/@datahub/shared/addon/constants/tracking/site-search-tracking/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/controllers/entity-type/urn/tab.ts delete mode 100644 datahub-web/@datahub/shared/addon/controllers/login-base.ts delete mode 100644 datahub-web/@datahub/shared/addon/controllers/login.ts delete mode 100644 datahub-web/@datahub/shared/addon/controllers/protocols/jit-acl.ts delete mode 100644 datahub-web/@datahub/shared/addon/helpers/entity/get-field-attribute-props.ts delete mode 100644 datahub-web/@datahub/shared/addon/helpers/with-banner-offset.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/factories/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/factories/entity-feature-conf.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/factories/entity-health.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/factories/institutional-memory.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/factories/top-consumer.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/authenticate.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/browse-paths.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/browse.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/browse/dataset.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/config.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/csrf-protection.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/helpers/institutional-memory.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/mirage-config.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/models/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/models/entity-feature-conf.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/models/entity-health.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/models/top-consumer.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/scenarios/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/scenarios/entity-config.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/scenarios/health-metadata.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/scenarios/top-consumers.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/test-helpers/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/test-helpers/entity-configs.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/test-helpers/entity-health/health-metadata.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/test-helpers/top-consumers.ts delete mode 100644 datahub-web/@datahub/shared/addon/mirage-addon/test-helpers/urn.ts delete mode 100644 datahub-web/@datahub/shared/addon/modifiers/track-control-interaction.ts delete mode 100644 datahub-web/@datahub/shared/addon/modules/avatars/avatar.ts delete mode 100644 datahub-web/@datahub/shared/addon/modules/change-log.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/application-base.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/browse/entity.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/browse/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/entity-type.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/entity-type/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/entity-type/urn.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/entity-type/urn/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/entity-type/urn/tab.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/lineage/urn.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/login-base.ts delete mode 100644 datahub-web/@datahub/shared/addon/routes/login.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/aad-sso.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/avatar.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/banners.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/configurator.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/current-user.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/foxie.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/graph-renderer.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/search.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/unified-tracking.ts delete mode 100644 datahub-web/@datahub/shared/addon/services/user-settings.ts delete mode 100644 datahub-web/@datahub/shared/addon/shared-routes.ts delete mode 100644 datahub-web/@datahub/shared/addon/styles/_entity-alert-banner.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/avatar/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/avatar/_name.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/browse-nav/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/browse-nav/_browse-card.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/browse-nav/_browse-category.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/browse-nav/_browse-nav.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/binary-toggle/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/binary-toggle/_button.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/binary-toggle/_buttons.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/binary-toggle/_toggle.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/svg-icon/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/buttons/svg-icon/_button.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_add-change-log-modal.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_change-log-table.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_common.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_markdown-cheat-sheet.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_read-only-email-content.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_recipient-search-select.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/change-management/_view-change-log-modal.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/components/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/dynamic-components/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/dynamic-components/_header.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/dynamic-components/_tooltip.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-deprecation/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-deprecation/_entity-deprecation.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-components/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-components/_entity-property.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-components/_entity-title.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-components/_entity-type.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-components/_header-content-row.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-layout/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-header-layout/_entity-header.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-page-content/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-page-content/_content-panel.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-page-main/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity-page/entity-page-main/_entity-page-main.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity/_profile-list.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/entity/_properties-panel.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/forms/_action-drawer.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/forms/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/foxie/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/foxie/_link-button.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/foxie/_main.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/graph/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/graph/_graph-viewer.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/graph/_toolbar.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/entity-detail/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/entity-detail/_header.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/factors/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/factors/_factor-action.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/factors/_table.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/insight/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/insight/_card.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/score/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/score/_last-updated.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/score/_value.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/search/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/health/search/_attribute.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/index.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/insight/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/insight/carousel/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/insight/carousel/_card.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/insight/carousel/_slide.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/institutional-memory/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/institutional-memory/_links.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lineage/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lineage/_lineage.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/list-actions/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/list-actions/_button-action.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/list-count/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/list-count/_nav-bug.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/lists/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/lists/lists/_entity-list.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/login/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/login/_login.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/modals/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/modals/_tab-content-modal.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/social/_action-container.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/social/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/social/_metadata-container.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/nacho-overrides/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/nacho-overrides/_border.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/nacho-overrides/_table-row.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/nacho-overrides/_table-title.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/simple-record/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/tables/simple-record/_simple-record.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/top-consumers/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/top-consumers/insight/_all.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/top-consumers/insight/_insight-card.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/top-consumers/insight/_insight-strip.scss delete mode 100644 datahub-web/@datahub/shared/addon/styles/top-consumers/insight/_top-consumers.scss delete mode 100644 datahub-web/@datahub/shared/addon/templates/browse/entity.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/browse/index.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/avatar/containers/avatar-main.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/browse-card.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/browse-category.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/containers/category-container.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/containers/entity-categories.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/entity-breadcrumbs.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/entity-breadcrumbs/crumb.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/browser/search-within-hierarchy.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/change-management/change-log-table.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/change-management/containers/change-log.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/configurable/containers/entity-feature-configs.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/dynamic-components/header.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-alert-banner.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-base-container.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-deprecation.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/attribute-callout.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/content-row.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/entity-property.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/entity-title.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/entity-type.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/naked-div.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-header/tag.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-page-content/content-panel.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-page-content/file-viewer.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-page-content/nacho-table.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/entity-page-main.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/layouts/linear-layout.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/entity-page/wherehows-entity-header.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/expandable-content.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/forms/action-drawer.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/health/containers/health-metadata.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/institutional-memory/containers/tab.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/institutional-memory/wiki/url-list.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/institutional-memory/wiki/url-list/add-dialog.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/mail-to.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/social/containers/social-metadata.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/social/social-action.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/tables/simple-record.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/top-consumers/containers/top-consumers-modal.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/tracking/track-ui-event.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/tracking/trackable-link-to.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/components/wait-promise-container.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/entity-type.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/entity-type/index.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/entity-type/urn.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/entity-type/urn/index.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/entity-type/urn/tab.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/lineage/urn.hbs delete mode 100644 datahub-web/@datahub/shared/addon/templates/login.hbs delete mode 100644 datahub-web/@datahub/shared/addon/test-helpers/search/search-acceptance.ts delete mode 100644 datahub-web/@datahub/shared/addon/test-helpers/tracking/index.ts delete mode 100644 datahub-web/@datahub/shared/addon/urn/tab.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/change-management.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/ember-concurrency-task-container.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/graph/graph-svg.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/graph/graph-to-dot.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/graph/graph-transformations.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/graph/svg-pan-and-zoom.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/health/health-proxy.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/search/entities.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/search/search-results.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/search/search.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/search/values-v2.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/tracking/dwell-time.ts delete mode 100644 datahub-web/@datahub/shared/addon/utils/tracking/piwik.ts delete mode 100644 datahub-web/@datahub/shared/app/.gitkeep delete mode 100644 datahub-web/@datahub/shared/app/authenticators/aad-sso.js delete mode 100644 datahub-web/@datahub/shared/app/authenticators/custom-ldap.js delete mode 100644 datahub-web/@datahub/shared/app/components/application/navbar/additional-links.js delete mode 100644 datahub-web/@datahub/shared/app/components/avatar/avatar-name.js delete mode 100644 datahub-web/@datahub/shared/app/components/avatar/containers/avatar-main.js delete mode 100644 datahub-web/@datahub/shared/app/components/avatar/generic-wrapper.js delete mode 100644 datahub-web/@datahub/shared/app/components/avatar/nacho-table-wrapper.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/browse-card.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/browse-category.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/containers/category-container.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/containers/entity-categories.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/entity-breadcrumbs.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/entity-breadcrumbs/breadcrumb-error.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/entity-breadcrumbs/crumb.js delete mode 100644 datahub-web/@datahub/shared/app/components/browser/search-within-hierarchy.js delete mode 100644 datahub-web/@datahub/shared/app/components/buttons/binary-toggle-button.js delete mode 100644 datahub-web/@datahub/shared/app/components/buttons/svg-icon.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/add-change-log-modal.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/change-log-search-provider.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/change-log-table.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/containers/change-log.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/markdown-cheat-sheet.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/read-only-email-content.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/recipient-search-select.js delete mode 100644 datahub-web/@datahub/shared/app/components/change-management/view-change-log-modal.js delete mode 100644 datahub-web/@datahub/shared/app/components/configurable/containers/entity-feature-configs.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/composed/user-assistance/help-tooltip-with-link.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/entity/field.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/header.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/icon.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/text.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/tooltip.js delete mode 100644 datahub-web/@datahub/shared/app/components/dynamic-components/wiki-link.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-alert-banner.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-base-container.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-deprecation.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/attribute-callout.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/content-row.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/entity-property.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/entity-title.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/entity-type.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/naked-div.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-header/tag.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/content-panel-with-toggle.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/content-panel.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/entity-discriminator.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/entity-switch.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/file-viewer.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/hydrate-entity.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/nacho-table-entity-link.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-content/nacho-table.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/entity-page-main.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/layouts/linear-layout.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity-page/wherehows-entity-header.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity/grid-group/profile-list.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity/people/profile-list.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity/properties-panel-label.js delete mode 100644 datahub-web/@datahub/shared/app/components/entity/properties-panel.js delete mode 100644 datahub-web/@datahub/shared/app/components/expandable-content.js delete mode 100644 datahub-web/@datahub/shared/app/components/forms/action-drawer.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/dynamic-components/container.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/dynamic-components/header.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/dynamic-components/link-button.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/foxie-main.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/navbar/toggle-component.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/screens/default-scenario.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/screens/random-gif.js delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/sprites/foxie-active.hbs delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/sprites/foxie-asleep.hbs delete mode 100644 datahub-web/@datahub/shared/app/components/foxie/sprites/foxie-talking.hbs delete mode 100644 datahub-web/@datahub/shared/app/components/graph/graph-viewer.js delete mode 100644 datahub-web/@datahub/shared/app/components/graph/toolbar.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/carousel-insight.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/containers/health-metadata.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/entity-detail.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/health-factor-action.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/health-factors-score.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/health-factors.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/health-metadata-error.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/health-score-value.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/insight-card.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/last-updated.js delete mode 100644 datahub-web/@datahub/shared/app/components/health/search-score.js delete mode 100644 datahub-web/@datahub/shared/app/components/insight/carousel.js delete mode 100644 datahub-web/@datahub/shared/app/components/institutional-memory/containers/tab.js delete mode 100644 datahub-web/@datahub/shared/app/components/institutional-memory/wiki/url-list.js delete mode 100644 datahub-web/@datahub/shared/app/components/institutional-memory/wiki/url-list/add-dialog.js delete mode 100644 datahub-web/@datahub/shared/app/components/lineage/lineage-container.js delete mode 100644 datahub-web/@datahub/shared/app/components/lineage/lineage-main.js delete mode 100644 datahub-web/@datahub/shared/app/components/link-to-section.js delete mode 100644 datahub-web/@datahub/shared/app/components/login/login-form.js delete mode 100644 datahub-web/@datahub/shared/app/components/mail-to.js delete mode 100644 datahub-web/@datahub/shared/app/components/notifications/banner-alerts.js delete mode 100644 datahub-web/@datahub/shared/app/components/search/custom-search-result-property-component/date.js delete mode 100644 datahub-web/@datahub/shared/app/components/search/custom-search-result-property-component/icon.js delete mode 100644 datahub-web/@datahub/shared/app/components/search/custom-search-result-property-component/link.js delete mode 100644 datahub-web/@datahub/shared/app/components/search/custom-search-result-property-component/tag.js delete mode 100644 datahub-web/@datahub/shared/app/components/social/containers/social-metadata.js delete mode 100644 datahub-web/@datahub/shared/app/components/social/social-action.js delete mode 100644 datahub-web/@datahub/shared/app/components/tab-content-modal.js delete mode 100644 datahub-web/@datahub/shared/app/components/tables/simple-record.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/containers/top-consumers-modal.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/containers/top-consumers.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/insight/insight-card.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/insight/insight-strip.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/insight/top-consumers-insight.js delete mode 100644 datahub-web/@datahub/shared/app/components/top-consumers/insight/top-consumers-modal.js delete mode 100644 datahub-web/@datahub/shared/app/components/tracking/track-ui-event.js delete mode 100644 datahub-web/@datahub/shared/app/components/tracking/trackable-link-to.js delete mode 100644 datahub-web/@datahub/shared/app/components/wait-promise-container.js delete mode 100644 datahub-web/@datahub/shared/app/controllers/entity-type/urn/tab.js delete mode 100644 datahub-web/@datahub/shared/app/controllers/login.js delete mode 100644 datahub-web/@datahub/shared/app/helpers/entity/get-field-attribute-props.js delete mode 100644 datahub-web/@datahub/shared/app/helpers/with-banner-offset.js delete mode 100644 datahub-web/@datahub/shared/app/modifiers/track-control-interaction.js delete mode 100644 datahub-web/@datahub/shared/app/routes/browse/entity.js delete mode 100644 datahub-web/@datahub/shared/app/routes/browse/index.js delete mode 100644 datahub-web/@datahub/shared/app/routes/entity-type.js delete mode 100644 datahub-web/@datahub/shared/app/routes/entity-type/index.js delete mode 100644 datahub-web/@datahub/shared/app/routes/entity-type/urn.js delete mode 100644 datahub-web/@datahub/shared/app/routes/entity-type/urn/index.js delete mode 100644 datahub-web/@datahub/shared/app/routes/entity-type/urn/tab.js delete mode 100644 datahub-web/@datahub/shared/app/routes/lineage/urn.js delete mode 100644 datahub-web/@datahub/shared/app/services/aad-sso.js delete mode 100644 datahub-web/@datahub/shared/app/services/avatar.js delete mode 100644 datahub-web/@datahub/shared/app/services/banners.js delete mode 100644 datahub-web/@datahub/shared/app/services/configurator.js delete mode 100644 datahub-web/@datahub/shared/app/services/current-user.js delete mode 100644 datahub-web/@datahub/shared/app/services/foxie.js delete mode 100644 datahub-web/@datahub/shared/app/services/graph-renderer.js delete mode 100644 datahub-web/@datahub/shared/app/services/search.js delete mode 100644 datahub-web/@datahub/shared/app/services/unified-tracking.js delete mode 100644 datahub-web/@datahub/shared/app/services/user-settings.js delete mode 100644 datahub-web/@datahub/shared/app/storages/entity-list.js delete mode 100644 datahub-web/@datahub/shared/app/templates/browse/entity.js delete mode 100644 datahub-web/@datahub/shared/app/templates/browse/index.js delete mode 100644 datahub-web/@datahub/shared/app/templates/components/avatar/avatar-name.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/avatar/generic-wrapper.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/buttons/binary-toggle-button.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/buttons/svg-icon.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/entity-type/entity-deprecation/default-acknowledgement.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/entity/grid-group/profile-list.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/entity/people/profile-list.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/entity/properties-panel.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/carousel-insight.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/entity-detail.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-factor-action.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-factors-score.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-factors.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-insight-recalculation-button.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-metadata-error.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/health-score-value.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/insight-card.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/last-updated.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/health/search-score.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/components/insight/carousel.hbs delete mode 100644 datahub-web/@datahub/shared/app/templates/entity-type.js delete mode 100644 datahub-web/@datahub/shared/app/templates/entity-type/index.js delete mode 100644 datahub-web/@datahub/shared/app/templates/entity-type/urn.js delete mode 100644 datahub-web/@datahub/shared/app/templates/entity-type/urn/index.js delete mode 100644 datahub-web/@datahub/shared/app/templates/entity-type/urn/tab.js delete mode 100644 datahub-web/@datahub/shared/app/templates/lineage/urn.js delete mode 100644 datahub-web/@datahub/shared/app/templates/login.js delete mode 100644 datahub-web/@datahub/shared/app/templates/partials/entity-deprecation/default-acknowledgement.hbs delete mode 100644 datahub-web/@datahub/shared/app/utils/graph/graph-to-dot.js delete mode 100644 datahub-web/@datahub/shared/app/utils/health/health-proxy.js delete mode 100644 datahub-web/@datahub/shared/app/utils/tracking/dwell-time.js delete mode 100644 datahub-web/@datahub/shared/app/utils/tracking/piwik.js delete mode 100644 datahub-web/@datahub/shared/config/ember-try.js delete mode 100644 datahub-web/@datahub/shared/config/environment.d.ts delete mode 100644 datahub-web/@datahub/shared/config/environment.js delete mode 100644 datahub-web/@datahub/shared/ember-cli-build.js delete mode 100644 datahub-web/@datahub/shared/eyeglass-exports.js delete mode 100644 datahub-web/@datahub/shared/index.js delete mode 100644 datahub-web/@datahub/shared/package.json delete mode 100644 datahub-web/@datahub/shared/public/assets/images/Foxie-active.png delete mode 100644 datahub-web/@datahub/shared/public/assets/images/Foxie-asleep.png delete mode 100644 datahub-web/@datahub/shared/public/assets/images/Foxie-talking.png delete mode 100644 datahub-web/@datahub/shared/public/assets/viz-worker.js delete mode 100644 datahub-web/@datahub/shared/testem.js delete mode 100644 datahub-web/@datahub/shared/tests/acceptance/institutional-memory/tab-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/app.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/components/change-management/change-log-search-provider.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/components/graph.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/components/graph.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/components/search/containers/entity-task-container.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/constants/lineage.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/constants/schema.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/index.html delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/models/pokemon.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/router.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/routes/testcomponents.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/routes/wiki.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/styles/app.scss delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/components/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/components/containers/entity-task-container.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/lineage-test.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/schema.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/testcomponents.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/app/templates/wiki.hbs delete mode 100644 datahub-web/@datahub/shared/tests/dummy/config/environment.js delete mode 100644 datahub-web/@datahub/shared/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@datahub/shared/tests/dummy/config/targets.js delete mode 100644 datahub-web/@datahub/shared/tests/dummy/mirage/config.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/mirage/scenarios/default.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/mirage/serializers/application.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/mirage/types/schema.ts delete mode 100644 datahub-web/@datahub/shared/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@datahub/shared/tests/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/helpers/graph/graphs.ts delete mode 100644 datahub-web/@datahub/shared/tests/index.html delete mode 100644 datahub-web/@datahub/shared/tests/integration/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/avatar/avatar-name-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/avatar/containers/avatar-main-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/avatar/generic-wrapper-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/browser/containers/category-container-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/browser/containers/entity-categories-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/browser/entity-breadcrumbs-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/browser/search-within-hierarchy-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/buttons/binary-toggle-button-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/buttons/svg-icon-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/change-management/add-change-log-modal-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/change-management/change-log-table-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/composed/user-assistance/help-tooltip-with-link-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/entity/field-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/header-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/icon-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/tooltip-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/dynamic-components/wiki-link-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-alert-banner-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-base-container-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-deprecation-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-header/attribute-callout-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-header/content-row-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-header/entity-property-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-header/entity-title-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-header/naked-div-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/content-panel-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/content-panel-with-toggle-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/entity-discriminator-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/entity-switch-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/file-viewer-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/hydrate-entity-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-content/nacho-table-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/entity-page-main-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/layouts/linear-layout-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity-page/wherehows-entity-header-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity/grid-group/profile-list-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity/people/profile-list-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity/properties-panel-label-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/entity/properties-panel-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/expandable-content-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/forms/action-drawer-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/foxie/foxie-main-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/graph/graph-viewer-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/carousel-insight-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/containers/health-metadata-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/entity-detail-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-factor-action-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-factors-score-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-factors-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-insight-recalculation-button-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-metadata-error-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/health-score-value-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/insight-card-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/last-updated-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/health/search-score-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/insight/carousel-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/institutional-memory/containers/tab-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/institutional-memory/wiki/url-list-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/institutional-memory/wiki/url-list/add-dialog-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/lineage/lineage-container-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/lineage/lineage-main-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/link-to-section-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/login/login-form-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/mail-to-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/notifications/banner-alerts-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/search/custom-search-result-property-component/search-date-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/search/custom-search-result-property-component/search-icon-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/search/custom-search-result-property-component/search-link-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/search/custom-search-result-property-component/search-tag-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/social/containers/social-metadata-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/social/social-action-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/tab-content-modal-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/tables/simple-record-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/containers/top-consumers-modal-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/containers/top-consumers-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/insight/insight-card-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/insight/insight-strip-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/insight/top-consumers-insight-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/top-consumers/insight/top-consumers-modal-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/tracking/track-ui-event-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/tracking/trackable-link-to-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/components/wait-promise-container-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/helpers/entity/get-field-attribute-props-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/integration/modifiers/track-control-interaction-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/stubs/services/metrics.ts delete mode 100644 datahub-web/@datahub/shared/tests/test-helper.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/.gitkeep delete mode 100644 datahub-web/@datahub/shared/tests/unit/authenticators/custom-ldap-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/modules/avatar-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/routes/browse/entity/index-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/routes/lineage/urn-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/aad-sso-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/avatar-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/foxie-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/graph/graph-renderer-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/unified-tracking-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/services/user-settings-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/api/health-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/change-management-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/graph/graph-to-dot-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/graph/graph-transformations-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/health/health-proxy-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/health/health-test.ts delete mode 100644 datahub-web/@datahub/shared/tests/unit/utils/tracking/dwell-time-test.ts delete mode 100644 datahub-web/@datahub/shared/tsconfig.json delete mode 100644 datahub-web/@datahub/shared/types/authentication/user.d.ts delete mode 100644 datahub-web/@datahub/shared/types/browse/browse.d.ts delete mode 100644 datahub-web/@datahub/shared/types/change-management/change-log.d.ts delete mode 100644 datahub-web/@datahub/shared/types/configurator/configurator.d.ts delete mode 100644 datahub-web/@datahub/shared/types/configurator/tracking.d.ts delete mode 100644 datahub-web/@datahub/shared/types/dummy/index.d.ts delete mode 100644 datahub-web/@datahub/shared/types/dynamic-component.d.ts delete mode 100644 datahub-web/@datahub/shared/types/entity-page/components/entity-header/entity-property-config.d.ts delete mode 100644 datahub-web/@datahub/shared/types/entity-page/components/entity-page-content/content-panel-with-toggle.d.ts delete mode 100644 datahub-web/@datahub/shared/types/entity-page/containers/index.d.ts delete mode 100644 datahub-web/@datahub/shared/types/foxie/service.d.ts delete mode 100644 datahub-web/@datahub/shared/types/foxie/user-function-object.d.ts delete mode 100644 datahub-web/@datahub/shared/types/global.d.ts delete mode 100644 datahub-web/@datahub/shared/types/graph/graph-options.d.ts delete mode 100644 datahub-web/@datahub/shared/types/graph/graph-viewer-state.d.ts delete mode 100644 datahub-web/@datahub/shared/types/grid-group/index.d.ts delete mode 100644 datahub-web/@datahub/shared/types/insight/carousel/card.d.ts delete mode 100644 datahub-web/@datahub/shared/types/modules/ember-load-initializers.d.ts delete mode 100644 datahub-web/@datahub/shared/types/profile-list.d.ts delete mode 100644 datahub-web/@datahub/shared/types/search/entity.d.ts delete mode 100644 datahub-web/@datahub/shared/types/search/fields-v2.d.ts delete mode 100644 datahub-web/@datahub/shared/types/tracking/event-tracking.d.ts delete mode 100644 datahub-web/@datahub/shared/types/tracking/search/index.d.ts delete mode 100644 datahub-web/@datahub/shared/types/tracking/session/session-tracking.d.ts delete mode 100644 datahub-web/@datahub/shared/types/user-settings/user-settings.d.ts delete mode 100644 datahub-web/@datahub/shared/types/vendor/animate.d.ts delete mode 100644 datahub-web/@datahub/shared/types/vendor/ember-cli-string-helpers.d.ts delete mode 100644 datahub-web/@datahub/shared/types/vendor/piwik.d.ts delete mode 100644 datahub-web/@datahub/shared/vendor/.gitkeep delete mode 100644 datahub-web/@datahub/utils/.editorconfig delete mode 100644 datahub-web/@datahub/utils/.ember-cli delete mode 100644 datahub-web/@datahub/utils/.gitignore delete mode 100644 datahub-web/@datahub/utils/.npmignore delete mode 100644 datahub-web/@datahub/utils/.travis.yml delete mode 100644 datahub-web/@datahub/utils/.watchmanconfig delete mode 100644 datahub-web/@datahub/utils/LICENSE.md delete mode 100644 datahub-web/@datahub/utils/README.md delete mode 100644 datahub-web/@datahub/utils/addon/.gitkeep delete mode 100644 datahub-web/@datahub/utils/addon/api/autocomplete.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/build-url.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/data-source-stage2.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/data-source.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/encode-decode-uri-component-with-space.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/error.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/fetcher.ts delete mode 100644 datahub-web/@datahub/utils/addon/api/shared.ts delete mode 100644 datahub-web/@datahub/utils/addon/array/array-to-string.ts delete mode 100644 datahub-web/@datahub/utils/addon/array/every.ts delete mode 100644 datahub-web/@datahub/utils/addon/array/index.ts delete mode 100644 datahub-web/@datahub/utils/addon/array/one-or-many.ts delete mode 100644 datahub-web/@datahub/utils/addon/array/serialize-string.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/big-list.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/blank-template.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/concurrency-task-state-handler.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/dh-info-panel.hbs delete mode 100644 datahub-web/@datahub/utils/addon/components/dh-info-panel.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/dynamic-link-with-action.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/empty-state.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/last-saved-by.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/link/optional-value.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/more-info.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nacho-hover-dropdown.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nacho-hover-dropdown/dropdown-content.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nacho-hover-dropdown/dropdown-option.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nacho/array-link-cell.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nacho/nacho-tab-cacher.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/nav-link.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications-confirm-dialog.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications-toast.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications/dialog/dialog-content.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications/dialog/dialog-footer.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/notifications/dialog/dialog-header.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/page-not-found.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/properties/single-value-renderer.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/properties/value-renderer.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/radio-button-composer.hbs delete mode 100644 datahub-web/@datahub/utils/addon/components/radio-button-composer.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/radio-button-input.hbs delete mode 100644 datahub-web/@datahub/utils/addon/components/radio-button-input.ts delete mode 100644 datahub-web/@datahub/utils/addon/components/truncated-text-with-tooltip.ts delete mode 100644 datahub-web/@datahub/utils/addon/constants/notifications.ts delete mode 100644 datahub-web/@datahub/utils/addon/controllers/protocol.ts delete mode 100644 datahub-web/@datahub/utils/addon/decorators/assert.ts delete mode 100644 datahub-web/@datahub/utils/addon/decorators/expand-options-attribute.ts delete mode 100644 datahub-web/@datahub/utils/addon/function/avatar.ts delete mode 100644 datahub-web/@datahub/utils/addon/function/deep-clone.ts delete mode 100644 datahub-web/@datahub/utils/addon/function/index.ts delete mode 100644 datahub-web/@datahub/utils/addon/function/promise-delay.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/csrf-token.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/email.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/get-flat.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/ms-time-as-unix.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/past-tense.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/render-links-as-anchor-tags.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/split-text.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/url.ts delete mode 100644 datahub-web/@datahub/utils/addon/helpers/wait-time.ts delete mode 100644 datahub-web/@datahub/utils/addon/instance-initializers/cache-enabler.ts delete mode 100644 datahub-web/@datahub/utils/addon/lib/notifications.ts delete mode 100644 datahub-web/@datahub/utils/addon/routes/refresh-model-for-query-params.ts delete mode 100644 datahub-web/@datahub/utils/addon/routes/routing.ts delete mode 100644 datahub-web/@datahub/utils/addon/services/notifications.ts delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_concurrency-task-state-handler.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_dh-info-panel.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_empty-state.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_last-saved-by.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_link-optional-value.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_modals.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_text-only-button.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_truncated-text-with-tooltip.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/_value-renderer.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/notifications/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/notifications/_modal-dialog.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/datahub-utils/components/notifications/_toast.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/_info-card.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/_nacho-table-mixins.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/_separators.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/effects/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/global-mixins/effects/_hover.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/index.scss delete mode 100644 datahub-web/@datahub/utils/addon/styles/vendor/_all.scss delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/big-list.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/blank-template.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/concurrency-task-state-handler.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/dynamic-link-with-action.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/empty-state.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/last-saved-by.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/link/optional-value.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/more-info.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nacho-hover-dropdown.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nacho-hover-dropdown/dropdown-content.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nacho-hover-dropdown/dropdown-option.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nacho/array-link-cell.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nacho/nacho-tab-cacher.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/nav-link.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications-confirm-dialog.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications-toast.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications/dialog/dialog-content.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications/dialog/dialog-footer.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/notifications/dialog/dialog-header.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/page-not-found.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/properties/single-value-renderer.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/properties/value-renderer.hbs delete mode 100644 datahub-web/@datahub/utils/addon/templates/components/truncated-text-with-tooltip.hbs delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/arrays/functions.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/datasets/compliance-policy/field-changeset-constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/datasets/compliance-policy/recent-suggestions-constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/dom-helpers.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/login/constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/login/page-element-constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/login/test-login.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/register-component.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/rendering.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/search/global-search-constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/serialize-mirage-model.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/setup-error.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/setup-router.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/stub-service.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/test-exception.ts delete mode 100644 datahub-web/@datahub/utils/addon/test-helpers/validators/tracking-headers/constants.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/array.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/async.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/avatars/index.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/base.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/controllers.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/jan-2019-stage-2-decorators.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/notifications/service.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/@ember-decorators/argument/index.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/@sinonjs/fake-timers/index.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/babel-decorators.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/dynamic-link.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-changeset-validations.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-changeset.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage-deprecated.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/index.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/mirage-tests.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/test-support/setup-mirage.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/test-support/start-mirage.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/types/registries/model.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-cli-mirage/types/registries/schema.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-inflector/index.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-simple-dropdown.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/ember-sinon-qunit.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/fetch.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/resize-observer.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/types/vendor/routerjs.d.ts delete mode 100644 datahub-web/@datahub/utils/addon/validators/encode.ts delete mode 100644 datahub-web/@datahub/utils/addon/validators/json.ts delete mode 100644 datahub-web/@datahub/utils/addon/validators/object.ts delete mode 100644 datahub-web/@datahub/utils/addon/validators/urn.ts delete mode 100644 datahub-web/@datahub/utils/app/.gitkeep delete mode 100644 datahub-web/@datahub/utils/app/components/big-list.js delete mode 100644 datahub-web/@datahub/utils/app/components/blank-template.js delete mode 100644 datahub-web/@datahub/utils/app/components/concurrency-task-state-handler.js delete mode 100644 datahub-web/@datahub/utils/app/components/dh-info-panel.js delete mode 100644 datahub-web/@datahub/utils/app/components/dynamic-link-with-action.js delete mode 100644 datahub-web/@datahub/utils/app/components/empty-state.js delete mode 100644 datahub-web/@datahub/utils/app/components/last-saved-by.js delete mode 100644 datahub-web/@datahub/utils/app/components/link/optional-value.js delete mode 100644 datahub-web/@datahub/utils/app/components/more-info.js delete mode 100644 datahub-web/@datahub/utils/app/components/nacho-hover-dropdown.js delete mode 100644 datahub-web/@datahub/utils/app/components/nacho-hover-dropdown/dropdown-content.js delete mode 100644 datahub-web/@datahub/utils/app/components/nacho-hover-dropdown/dropdown-option.js delete mode 100644 datahub-web/@datahub/utils/app/components/nacho/array-link-cell.js delete mode 100644 datahub-web/@datahub/utils/app/components/nacho/nacho-tab-cacher.js delete mode 100644 datahub-web/@datahub/utils/app/components/nav-link.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications-confirm-dialog.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications-toast.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications/dialog/dialog-content.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications/dialog/dialog-footer.js delete mode 100644 datahub-web/@datahub/utils/app/components/notifications/dialog/dialog-header.js delete mode 100644 datahub-web/@datahub/utils/app/components/page-not-found.js delete mode 100644 datahub-web/@datahub/utils/app/components/properties/single-value-renderer.js delete mode 100644 datahub-web/@datahub/utils/app/components/properties/value-renderer.js delete mode 100644 datahub-web/@datahub/utils/app/components/radio-button-composer.js delete mode 100644 datahub-web/@datahub/utils/app/components/radio-button-input.js delete mode 100644 datahub-web/@datahub/utils/app/components/truncated-text-with-tooltip.js delete mode 100644 datahub-web/@datahub/utils/app/helpers/get-flat.js delete mode 100644 datahub-web/@datahub/utils/app/helpers/ms-time-as-unix.js delete mode 100644 datahub-web/@datahub/utils/app/helpers/past-tense.js delete mode 100644 datahub-web/@datahub/utils/app/helpers/render-links-as-anchor-tags.js delete mode 100644 datahub-web/@datahub/utils/app/helpers/split-text.js delete mode 100644 datahub-web/@datahub/utils/app/instance-initializers/cache-enabler.js delete mode 100644 datahub-web/@datahub/utils/app/services/notifications.js delete mode 100644 datahub-web/@datahub/utils/config/ember-try.js delete mode 100644 datahub-web/@datahub/utils/config/environment.d.ts delete mode 100644 datahub-web/@datahub/utils/config/environment.js delete mode 100644 datahub-web/@datahub/utils/ember-cli-build.js delete mode 100644 datahub-web/@datahub/utils/eyeglass-exports.js delete mode 100644 datahub-web/@datahub/utils/index.js delete mode 100644 datahub-web/@datahub/utils/package.json delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/article-conversation.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/cancel-icon.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/check-icon.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/ellipsis-vertical-icon.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/lightbulb-icon.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/lightbulb.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/link-external-icon.svg delete mode 100644 datahub-web/@datahub/utils/public/assets/images/svgs/nav-people.svg delete mode 100644 datahub-web/@datahub/utils/testem.js delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/app.js delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/components/test-for/decorators/data-source.ts delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/index.html delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/router.ts delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/styles/app.scss delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@datahub/utils/tests/dummy/app/templates/components/test-for/decorators/data-source.hbs delete mode 100644 datahub-web/@datahub/utils/tests/dummy/config/environment.js delete mode 100644 datahub-web/@datahub/utils/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@datahub/utils/tests/dummy/config/targets.js delete mode 100644 datahub-web/@datahub/utils/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@datahub/utils/tests/helpers/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/helpers/email/email-test-fixture.ts delete mode 100644 datahub-web/@datahub/utils/tests/index.html delete mode 100644 datahub-web/@datahub/utils/tests/integration/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/big-list-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/concurrency-task-state-handler-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/dh-info-panel-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/dynamic-link-with-action-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/empty-state-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/last-saved-by-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/link/optional-value-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/more-info-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/nacho/array-link-cell-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/nacho/nacho-tab-cacher-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications-confirm-dialog-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications-toast-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications/dialog/dialog-content-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications/dialog/dialog-footer-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/notifications/dialog/dialog-header-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/page-not-found-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/properties/single-value-renderer-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/properties/value-renderer-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/radio-button-composer-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/components/truncated-text-with-tooltip-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/decorators/expand-options-attribute-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/helpers/get-flat-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/helpers/ms-time-as-unix-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/helpers/past-tense-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/helpers/render-links-as-anchor-tags-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/integration/helpers/split-text-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/test-helper.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/.gitkeep delete mode 100644 datahub-web/@datahub/utils/tests/unit/api/autocomplete-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/api/build-url-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/api/encode-decode-uri-component-with-space-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/api/errors-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/array/every-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/array/serialize-string-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/controllers/protocol-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/decorators/containers/data-source-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/email-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/routes/refresh-model-for-query-params-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/services/notifications-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/validators/encode-test.ts delete mode 100644 datahub-web/@datahub/utils/tests/unit/validators/json-test.ts delete mode 100644 datahub-web/@datahub/utils/tsconfig.json delete mode 100644 datahub-web/@datahub/utils/types/api/fetcher.d.ts delete mode 100644 datahub-web/@datahub/utils/types/api/response.d.ts delete mode 100644 datahub-web/@datahub/utils/types/concurrency.d.ts delete mode 100644 datahub-web/@datahub/utils/types/dummy/ember-radio-button.d.ts delete mode 100644 datahub-web/@datahub/utils/types/dummy/index.d.ts delete mode 100644 datahub-web/@datahub/utils/types/global.d.ts delete mode 100644 datahub-web/@datahub/utils/types/tests/notifications.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/custom-ember.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/dynamic-link.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-cli-string-helpers.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-concurrency.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-cookies.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-local-storage.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-metrics.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-modal-dialog.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-modifier.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-simple-auth.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-test-helpers.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/ember-uuid.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/marked.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/power-select-helper.d.ts delete mode 100644 datahub-web/@datahub/utils/types/vendor/power-select.d.ts delete mode 100644 datahub-web/@datahub/utils/vendor/.gitkeep delete mode 100644 datahub-web/@dh-tools/dependencies/.gitignore delete mode 100644 datahub-web/@dh-tools/dependencies/package.json delete mode 100644 datahub-web/@dh-tools/dependencies/src/io.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/create-transitive-dependencies.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/get-all-dependencies.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/list-duplicated.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/merge-dev.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/move-to.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/process/sort-deps.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/run.ts delete mode 100644 datahub-web/@dh-tools/dependencies/src/utils.ts delete mode 100644 datahub-web/@dh-tools/dependencies/types/index.d.ts delete mode 100644 datahub-web/@dh-tools/eslint-plugin/.eslintrc.js delete mode 100644 datahub-web/@dh-tools/eslint-plugin/.gitignore delete mode 100644 datahub-web/@dh-tools/eslint-plugin/README.md delete mode 100644 datahub-web/@dh-tools/eslint-plugin/docs/rules/no-addon-import.md delete mode 100644 datahub-web/@dh-tools/eslint-plugin/docs/rules/no-linkedin-import.md delete mode 100644 datahub-web/@dh-tools/eslint-plugin/lib/index.js delete mode 100644 datahub-web/@dh-tools/eslint-plugin/lib/rules/no-addon-import.js delete mode 100644 datahub-web/@dh-tools/eslint-plugin/lib/rules/no-linkedin-import.js delete mode 100644 datahub-web/@dh-tools/eslint-plugin/package.json delete mode 100644 datahub-web/@dh-tools/eslint-plugin/tests/lib/rules/no-addon-import.js delete mode 100644 datahub-web/@dh-tools/eslint-plugin/tests/lib/rules/no-linkedin-import.js delete mode 100644 datahub-web/@dh-tools/pdsc/.gitignore delete mode 100644 datahub-web/@dh-tools/pdsc/README.md delete mode 100644 datahub-web/@dh-tools/pdsc/local-types/decompress.d.ts delete mode 100644 datahub-web/@dh-tools/pdsc/local-types/find-root.d.ts delete mode 100644 datahub-web/@dh-tools/pdsc/package.json delete mode 100644 datahub-web/@dh-tools/pdsc/restli-types-config.json delete mode 100644 datahub-web/@dh-tools/pdsc/src/config.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/download-cache.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/index.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/pdsc/data-models-gen.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/pdsc/field.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/pdsc/schema.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/rest-spec/api-declaration-gen.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/rest-spec/rest-spec.ts delete mode 100644 datahub-web/@dh-tools/pdsc/src/ts-emitter.ts delete mode 100644 datahub-web/@dh-tools/pdsc/test/fixtures/rest-spec/api-rest-model-0.1.21/com.linkedin.sailfish.feed.sailfishFeedUpdates.restspec.json delete mode 100644 datahub-web/@dh-tools/pdsc/test/fixtures/rest-spec/api-rest-model-0.1.21/expected.ts.txt delete mode 100644 datahub-web/@dh-tools/pdsc/test/tsconfig.json delete mode 100644 datahub-web/@dh-tools/pdsc/test/unit/pdsc/schema.spec.ts delete mode 100644 datahub-web/@dh-tools/pdsc/test/unit/rest-spec/api-declaration-gen.spec.ts delete mode 100644 datahub-web/@dh-tools/pdsc/test/unit/ts-emitter.spec.ts delete mode 100644 datahub-web/@dh-tools/pdsc/tsconfig.json delete mode 100644 datahub-web/@nacho-ui/core/.editorconfig delete mode 100644 datahub-web/@nacho-ui/core/.ember-cli delete mode 100644 datahub-web/@nacho-ui/core/.gitignore delete mode 100644 datahub-web/@nacho-ui/core/.npmignore delete mode 100644 datahub-web/@nacho-ui/core/.template-lintrc.js delete mode 100644 datahub-web/@nacho-ui/core/.travis.yml delete mode 100644 datahub-web/@nacho-ui/core/.watchmanconfig delete mode 100644 datahub-web/@nacho-ui/core/CHANGELOG.md delete mode 100644 datahub-web/@nacho-ui/core/LICENSE.md delete mode 100644 datahub-web/@nacho-ui/core/README.md delete mode 100644 datahub-web/@nacho-ui/core/addon/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-animation/pendulum-ellipsis.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-animation/pendulum-ellipsis.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-avatar/nacho-avatar-image.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-avatar/nacho-avatar-image.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-button/nacho-sort-button.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-button/nacho-sort-button.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-button/nacho-toggle.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-button/nacho-toggle.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-dropdown/nacho-dropdown-basic.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-dropdown/nacho-dropdown-basic.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-dropdown/nacho-dropdown-power-select.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-dropdown/nacho-dropdown-power-select.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill-input.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill-input.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill-link.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill-link.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-pill/nacho-pill.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-body.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-cell.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-footer.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-global.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-header.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-row.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table-title-cell.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/components/nacho-table/nacho-table.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/constants/nacho-table/default-table-properties.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/helpers/nacho-core/display-value.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/helpers/nacho-core/list-includes.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/helpers/nacho-core/titleize.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/helpers/nacho-table/nacho-table-link-compute.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/services/nacho-avatars.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/index.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/_functions.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/_mixins.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/_variables.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/colors/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/colors/_bin.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/colors/_canvas.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-abstracts/colors/_palette.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-animations-components/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-animations-components/_ellipsis-animation.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-avatar/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-avatar/_avatar-image.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-avatar/_mixins.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_common.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_fonts.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_layout.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_tooltips.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-base/_typography.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_abstracts.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_base.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_mixins.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_sort.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-button/_toggle.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-core-theme-example.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-core-theme.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-dropdown/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-dropdown/_basic-dropdown.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-dropdown/_deco-dropdown.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-pill/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-pill/_pill-base.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-pill/_pill-input.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-pill/_pill-link.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-pill/_pill-standard.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-tables/_all.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/styles/nacho-tables/_base-table.scss delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-body.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-cell.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-footer.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-global.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-header.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-row.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table-title-cell.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/templates/components/nacho-table/nacho-table.hbs delete mode 100644 datahub-web/@nacho-ui/core/addon/utils/functions/noop.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/utils/lib/is-primitive.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/utils/lib/is-templatable.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/utils/lib/key-value-map-to-list.ts delete mode 100644 datahub-web/@nacho-ui/core/addon/utils/strings/titleize.ts delete mode 100644 datahub-web/@nacho-ui/core/app/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-animation/pendulum-ellipsis.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-avatar/nacho-avatar-image.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-button/nacho-sort-button.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-button/nacho-toggle.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-dropdown/nacho-dropdown-basic.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-dropdown/nacho-dropdown-power-select.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-pill/nacho-pill-input.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-pill/nacho-pill-link.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-pill/nacho-pill.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-body.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-cell.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-footer.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-global.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-header.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-row.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table-title-cell.js delete mode 100644 datahub-web/@nacho-ui/core/app/components/nacho-table/nacho-table.js delete mode 100644 datahub-web/@nacho-ui/core/app/helpers/nacho-core/display-value.js delete mode 100644 datahub-web/@nacho-ui/core/app/helpers/nacho-core/list-includes.js delete mode 100644 datahub-web/@nacho-ui/core/app/helpers/nacho-core/titleize.js delete mode 100644 datahub-web/@nacho-ui/core/app/helpers/nacho-table/nacho-table-link-compute.js delete mode 100644 datahub-web/@nacho-ui/core/app/services/nacho-avatars.js delete mode 100644 datahub-web/@nacho-ui/core/app/templates/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/app/utils/lib/is-primitive.js delete mode 100644 datahub-web/@nacho-ui/core/app/utils/lib/is-templatable.js delete mode 100644 datahub-web/@nacho-ui/core/app/utils/lib/key-value-map-to-list.js delete mode 100644 datahub-web/@nacho-ui/core/app/utils/strings/titleize.js delete mode 100644 datahub-web/@nacho-ui/core/config/ember-try.js delete mode 100644 datahub-web/@nacho-ui/core/config/environment.d.ts delete mode 100644 datahub-web/@nacho-ui/core/config/environment.js delete mode 100644 datahub-web/@nacho-ui/core/ember-cli-build.js delete mode 100644 datahub-web/@nacho-ui/core/eyeglass-exports.js delete mode 100644 datahub-web/@nacho-ui/core/index.js delete mode 100644 datahub-web/@nacho-ui/core/package.json delete mode 100644 datahub-web/@nacho-ui/core/testem.js delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/app.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/index.html delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/router.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/styles/app.scss delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/app/templates/components/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/config/environment.js delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/config/targets.js delete mode 100644 datahub-web/@nacho-ui/core/tests/dummy/public/robots.txt delete mode 100644 datahub-web/@nacho-ui/core/tests/helpers/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/helpers/mock/table-configs.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/index.html delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-animation/pendulum-ellipsis-animation-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-avatar/nacho-avatar-image-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-button/nacho-sort-button-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-button/nacho-toggle-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-dropdown/nacho-dropdown-basic-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-dropdown/nacho-dropdown-power-select-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-pill/nacho-pill-input-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-pill/nacho-pill-link-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-pill/nacho-pill-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-body-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-cell-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-footer-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-global-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-header-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-row-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/components/nacho-table/nacho-table-title-cell-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/helpers/nacho-core/display-value-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/helpers/nacho-core/list-includes-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/helpers/nacho-core/titleize-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/integration/helpers/nacho-table/nacho-table-link-compute-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/test-helper.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/services/nacho-avatars-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/style-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/utils/lib/is-primitive-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/utils/lib/is-templatable-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/utils/lib/key-value-map-to-list-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tests/unit/utils/strings/titleize-test.ts delete mode 100644 datahub-web/@nacho-ui/core/tsconfig.json delete mode 100644 datahub-web/@nacho-ui/core/types/dummy/index.d.ts delete mode 100644 datahub-web/@nacho-ui/core/types/index.d.ts delete mode 100644 datahub-web/@nacho-ui/core/types/nacho-dropdown.d.ts delete mode 100644 datahub-web/@nacho-ui/core/types/nacho-table.d.ts delete mode 100644 datahub-web/@nacho-ui/core/types/testing.d.ts delete mode 100644 datahub-web/@nacho-ui/core/types/utils/generics.d.ts delete mode 100644 datahub-web/@nacho-ui/core/vendor/.gitkeep delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Black.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-BlackItalic.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Bold.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-BoldItalic.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Italic.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Light.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-LightItalic.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Regular.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-Thin.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/Lato-ThinItalic.ttf delete mode 100644 datahub-web/@nacho-ui/core/vendor/fonts/Lato/OFL.txt delete mode 100644 datahub-web/CHANGELOG.md delete mode 100644 datahub-web/CONTRIBUTORS.md delete mode 100644 datahub-web/README.md delete mode 100644 datahub-web/blueprints/datahub-addon/README.md delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.editorconfig delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.ember-cli delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.gitignore delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.npmignore delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.travis.yml delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/.watchmanconfig delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/LICENSE.md delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/README.md delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/addon/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/app/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/config/ember-try.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/config/environment.d.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/config/environment.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/ember-cli-build.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/index.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/package.json delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/testem.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/app.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/components/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/config/environment.d.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/controllers/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/helpers/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/index.html delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/models/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/router.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/routes/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/routes/application.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/styles/app.scss delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/templates/application.hbs delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/app/templates/components/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/config/environment.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/config/optional-features.json delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/config/targets.js delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/mirage/config.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/mirage/scenarios/default.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/mirage/serializers/application.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/dummy/public/robots.txt delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/helpers/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/index.html delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/integration/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/test-helper.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tests/unit/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/tsconfig.json delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/types/dummy/index.d.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/types/global.d.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/types/modules/ember-load-initializers.d.ts delete mode 100644 datahub-web/blueprints/datahub-addon/files/__group__/__template__/vendor/.gitkeep delete mode 100644 datahub-web/blueprints/datahub-addon/index.js delete mode 100644 datahub-web/build.gradle delete mode 100644 datahub-web/configs/ember-cli-build-options.js delete mode 100644 datahub-web/configs/environment.js delete mode 100644 datahub-web/configs/import-mirage-tree-from-addon.js delete mode 100644 datahub-web/configs/li-environment.js delete mode 100644 datahub-web/configs/testem-base.js delete mode 100644 datahub-web/configs/tsconfig-base.json delete mode 100644 datahub-web/documentation/MAIN.md delete mode 100644 datahub-web/documentation/assets/os-module-diagram.png delete mode 100644 datahub-web/documentation/debugging/EMBER-SERVE.md delete mode 100644 datahub-web/documentation/forward/GRAPHQL.md delete mode 100644 datahub-web/documentation/forward/NOFRAMEWORK.md delete mode 100644 datahub-web/documentation/forward/REACT.md delete mode 100644 datahub-web/documentation/guides/ASPECT-ONBOARDING.md delete mode 100644 datahub-web/documentation/guides/CHANGING-LOGO.md delete mode 100644 datahub-web/documentation/guides/ENTITY-ONBOARDING.md delete mode 100644 datahub-web/documentation/guides/EXTENDING-DATAHUB-UI.md delete mode 100644 datahub-web/documentation/guides/MIRAGE-FROM-ADDON.md delete mode 100644 datahub-web/documentation/introduction/01-HISTORY.md delete mode 100644 datahub-web/documentation/introduction/02-MONOREPO.md delete mode 100644 datahub-web/documentation/introduction/03-DATAMODELS.md delete mode 100644 datahub-web/documentation/introduction/04-RENDERPROPS.md delete mode 100644 datahub-web/lerna.json delete mode 100644 datahub-web/package.json delete mode 100644 datahub-web/packages/data-portal/.editorconfig delete mode 100644 datahub-web/packages/data-portal/.ember-cli delete mode 100644 datahub-web/packages/data-portal/.gitignore delete mode 100644 datahub-web/packages/data-portal/.travis.yml delete mode 100644 datahub-web/packages/data-portal/.watchmanconfig delete mode 100644 datahub-web/packages/data-portal/CHANGELOG.md delete mode 100644 datahub-web/packages/data-portal/README.md delete mode 100644 datahub-web/packages/data-portal/app/app.ts delete mode 100644 datahub-web/packages/data-portal/app/components/.gitkeep delete mode 100644 datahub-web/packages/data-portal/app/components/avatars/avatar-image.ts delete mode 100644 datahub-web/packages/data-portal/app/components/avatars/avatar-metadata.ts delete mode 100644 datahub-web/packages/data-portal/app/components/avatars/avatars-detail.ts delete mode 100644 datahub-web/packages/data-portal/app/components/avatars/rollup-avatars.ts delete mode 100644 datahub-web/packages/data-portal/app/components/avatars/stacked-avatars-list.ts delete mode 100644 datahub-web/packages/data-portal/app/components/comment/comment-header.ts delete mode 100644 datahub-web/packages/data-portal/app/components/comment/comment-item.ts delete mode 100644 datahub-web/packages/data-portal/app/components/comment/comment-new.ts delete mode 100644 datahub-web/packages/data-portal/app/components/comment/comment-stream.ts delete mode 100644 datahub-web/packages/data-portal/app/components/dataset-author.ts delete mode 100644 datahub-web/packages/data-portal/app/components/dataset-authors.ts delete mode 100644 datahub-web/packages/data-portal/app/components/dataset-comments.ts delete mode 100644 datahub-web/packages/data-portal/app/components/dataset-property.js delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-fabrics.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-lineage-downstreams.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-lineage-upstreams.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-owner-list.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-ownership.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-properties.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/dataset-relationship-levels.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/containers/upstream-owners.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/dataset-fabric-switcher.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/dataset-header.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/dataset-page.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/dataset-relationships.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/owners/suggested-owner-card.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/owners/suggested-owners.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/relationships/dataset-relationship-levels.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/relationships/dataset-relationship-vis.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/schemaless-tagging.ts delete mode 100644 datahub-web/packages/data-portal/app/components/datasets/upstream-owners.ts delete mode 100644 datahub-web/packages/data-portal/app/components/draggable-item.js delete mode 100644 datahub-web/packages/data-portal/app/components/drop-region.js delete mode 100644 datahub-web/packages/data-portal/app/components/ember-selector.ts delete mode 100644 datahub-web/packages/data-portal/app/components/hero-container.ts delete mode 100644 datahub-web/packages/data-portal/app/components/hotkeys/global-hotkeys.ts delete mode 100644 datahub-web/packages/data-portal/app/components/ivy-tabs-tablist.ts delete mode 100644 datahub-web/packages/data-portal/app/components/json-upload.ts delete mode 100644 datahub-web/packages/data-portal/app/components/nacho/dropdown/dropdown-content.ts delete mode 100644 datahub-web/packages/data-portal/app/components/nacho/dropdown/dropdown-option.ts delete mode 100644 datahub-web/packages/data-portal/app/components/nacho/dropdown/hover-dropdown.ts delete mode 100644 datahub-web/packages/data-portal/app/components/nacho/nacho-pagination.ts delete mode 100644 datahub-web/packages/data-portal/app/components/navbar-right-column.hbs delete mode 100644 datahub-web/packages/data-portal/app/components/navbar.ts delete mode 100644 datahub-web/packages/data-portal/app/components/pwr-user-lookup.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/containers/entity-task-container.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/containers/multi-entity-task-container-top-components.hbs delete mode 100644 datahub-web/packages/data-portal/app/components/search/containers/multi-entity-task-container.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/containers/search-box.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/containers/search-facets.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-box.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-facet.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-field.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-main.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-result.ts delete mode 100644 datahub-web/packages/data-portal/app/components/search/search-results.ts delete mode 100644 datahub-web/packages/data-portal/app/config/environment.d.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/application.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/avatars/avatars.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/dataset-classification.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/dataset-comments.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/dataset-purge-policy.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/datasets/owner.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/datasets/retention.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/index.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/keyboard.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/metadata-acquisition.ts delete mode 100644 datahub-web/packages/data-portal/app/constants/typeahead.ts delete mode 100644 datahub-web/packages/data-portal/app/controllers/.gitkeep delete mode 100644 datahub-web/packages/data-portal/app/controllers/application-error.ts delete mode 100644 datahub-web/packages/data-portal/app/controllers/application.ts delete mode 100644 datahub-web/packages/data-portal/app/controllers/datasets/dataset/tab.ts delete mode 100644 datahub-web/packages/data-portal/app/controllers/login-base.ts delete mode 100644 datahub-web/packages/data-portal/app/controllers/login.js delete mode 100644 datahub-web/packages/data-portal/app/controllers/search.ts delete mode 100644 datahub-web/packages/data-portal/app/helpers/.gitkeep delete mode 100644 datahub-web/packages/data-portal/app/helpers/find-in-array.ts delete mode 100644 datahub-web/packages/data-portal/app/index.html delete mode 100644 datahub-web/packages/data-portal/app/models/.gitkeep delete mode 100644 datahub-web/packages/data-portal/app/more-routes.ts delete mode 100644 datahub-web/packages/data-portal/app/parsers/autocomplete.ne delete mode 100644 datahub-web/packages/data-portal/app/router.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/.gitkeep delete mode 100644 datahub-web/packages/data-portal/app/routes/application-main.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/application.js delete mode 100644 datahub-web/packages/data-portal/app/routes/browse.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/browsesearch/entity.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/datasets.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/datasets/dataset.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/datasets/dataset/index.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/datasets/dataset/tab.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/datasets/index.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/features.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/features/feature.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/features/feature/index.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/features/feature/tab.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/features/index.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/index.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/lists.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/lists/entity.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/login.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/logout.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/page-not-found.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/retina-authoring.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/search.ts delete mode 100644 datahub-web/packages/data-portal/app/routes/user/ump-flow.ts delete mode 100644 datahub-web/packages/data-portal/app/serializers/application.js delete mode 100644 datahub-web/packages/data-portal/app/services/hot-keys.ts delete mode 100644 datahub-web/packages/data-portal/app/styles/_open-source-main.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/_shame.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/abstracts/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/abstracts/_variables.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/app.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/base/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/base/_base.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/base/_checkbox.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/base/_helpers.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/_hero.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/_navbar.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/avatar/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/avatar/_avatar.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/avatar/_avatars-detail.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/comments/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/comments/_comment-item.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/comments/_comment-new.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/comments/_comment-stream.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-acl-access/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-acl-access/_dataset-acl-access.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-author/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-author/_dataset-author.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-author/_owner-table.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-author/_suggested-owners.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-comments/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-comments/_dataset-comments.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-compliance/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-compliance/_compliance-auto-suggester-action.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-compliance/_compliance-container.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-compliance/_compliance-prompts.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-compliance/_compliance-table.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-fabric/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-fabric/_dataset-fabric-container.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-fabric/_dataset-fabric-switcher.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-owner/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-owner/_owners.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-property/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-property/_contains-personal-data.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-property/_dataset-pill.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-property/_deprecated-dataset.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-property/_removed-dataset.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-purge-policy/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-purge-policy/_purge-policy-list.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-relationships/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-relationships/_dataset-relationship-levels.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-relationships/_dataset-relationship-vis.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-relationships/_dataset-relationships.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-schema/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-schema/_schema-header.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/dataset-schema/_schema-table.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/entity-header/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/entity-header/_entity-header.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/entity-list/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/entity-list/_entity-list.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/feature-card/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/feature-card/_feature-card.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/ivy-tabs/_addendum.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/ivy-tabs/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/ivy-tabs/_tabs.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-breadcrumbs.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-container.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-divider.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-dropdown.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-filter-rail.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-global-search.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-pager.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-pagination.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-select.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-table.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/nacho/_nacho-uploader.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/notifications/_action-notifications.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/notifications/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/notifications/_banner-alerts.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/notifications/_notification-dot.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/schemaless-tagging/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/schemaless-tagging/_schemaless-tagging.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/search/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/search/_facet.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/search/_multi-entity-search.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/search/_search.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/toggle-switch/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/toggle-switch/_toggle-switch.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/tooltips/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/tooltips/_tooltip.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/ump-metrics/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/ump-metrics/_tables.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/upstream-owners/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/upstream-owners/_upstream-owners.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/user-lookup/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/components/user-lookup/_pwr-user-lookup.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/layout/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/layout/_dataset.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/layout/_entity.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/layout/_page.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/layout/_user.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/vendor-extensions/_all.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/vendor-extensions/_ember-power-select.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/vendor-extensions/_ember-radio-button.scss delete mode 100644 datahub-web/packages/data-portal/app/styles/vendor-extensions/_ember-tooltip.scss delete mode 100644 datahub-web/packages/data-portal/app/templates/application-error.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/application.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/browse.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/browsesearch/entity.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/avatars/avatar-image.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/avatars/avatar-metadata.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/avatars/avatars-detail.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/avatars/rollup-avatars.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/avatars/stacked-avatars-list.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/comment/comment-header.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/comment/comment-item.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/comment/comment-new.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/comment/comment-stream.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/dataset-access.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/dataset-author.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/dataset-authors.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/dataset-comments.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/dataset-property.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-fabrics.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-lineage-downstreams.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-lineage-upstreams.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-owner-list.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-ownership.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-properties.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/dataset-relationship-levels.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/containers/upstream-owners.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/dataset-fabric-switcher.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/dataset-header.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/dataset-page.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/dataset-relationships.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/owners/suggested-owner-card.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/owners/suggested-owners.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/relationships/dataset-relationship-levels.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/relationships/dataset-relationship-vis.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/schemaless-tagging.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/datasets/upstream-owners.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/draggable-item.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/drop-region.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/ember-selector.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/hero-container.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/hotkeys/global-hotkeys.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/json-upload.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/nacho/dropdown/dropdown-content.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/nacho/dropdown/dropdown-option.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/nacho/dropdown/hover-dropdown.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/nacho/nacho-pagination.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/navbar.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/pwr-user-lookup.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/containers/entity-task-container.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/containers/multi-entity-task-container.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/containers/search-box.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/containers/search-facets.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-box.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-facet.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-field.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-main.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-result.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/components/search/search-results.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/datasets.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/datasets/dataset.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/datasets/dataset/tab.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/datasets/index.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/features.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/features/feature.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/features/feature/index.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/features/feature/tab.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/index.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/lists.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/lists/entity.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/logout.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/page-not-found.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/retina-authoring.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/search.hbs delete mode 100644 datahub-web/packages/data-portal/app/templates/user/ump-flow.hbs delete mode 100644 datahub-web/packages/data-portal/app/typings/api/datasets/comments.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/datasets/compliance.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/datasets/origins.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/datasets/owners.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/datasets/retention.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/list/compliance-datatypes.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/metadata/index.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/ownership/resolved-owner.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/api/ownership/resolved-ownership.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/analytics/site-search-tracking/piwik.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/avatars.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/controllers.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/core.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/dataset-columns.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/dataset-compliance.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/datasets/lineage.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/datasets/owners.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/parsers.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/app/services.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/generic.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/modules/babel-decorators.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/modules/ember-load-initializers.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/modules/nearley.d.ts delete mode 100644 datahub-web/packages/data-portal/app/typings/untyped-js-module.d.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/authentication.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/fabrics.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/lineage.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/origins.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/owners.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/properties.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/datasets/retention.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/errors/errors.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/api/urn-endpoint-reader.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/array.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/datasets/compliance-suggestions.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/datasets/compliance/metadata-schema.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/datasets/retention.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/graph-db.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/helpers/ember-concurrency.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/helpers/functions.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/helpers/string.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/object.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/index.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/entity.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/facets.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/facets/fabric.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/facets/local-facet.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/facets/metrics.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/facets/platform.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/processors/logical-operators.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/create-wanted-rules-map.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/feed.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/filter-wanted-rules-map.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/generate-groups.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/init.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/process-rules.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/steps/process-text.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/types.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/autocomplete/utils.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/helpers.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/parsers/parser.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/search/typeahead.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/validators/email.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/validators/regexp.ts delete mode 100644 datahub-web/packages/data-portal/app/utils/validators/tracking-headers.ts delete mode 100644 datahub-web/packages/data-portal/config/coverage.js delete mode 100644 datahub-web/packages/data-portal/config/dependency-lint.js delete mode 100644 datahub-web/packages/data-portal/config/deprecation-workflow.js delete mode 100644 datahub-web/packages/data-portal/config/environment.d.ts delete mode 100644 datahub-web/packages/data-portal/config/environment.js delete mode 100644 datahub-web/packages/data-portal/config/optional-features.json delete mode 100644 datahub-web/packages/data-portal/config/targets.js delete mode 100644 datahub-web/packages/data-portal/ember-cli-build.js delete mode 100644 datahub-web/packages/data-portal/lib/.eslintrc.js delete mode 100644 datahub-web/packages/data-portal/lib/ember-nearley/broccoli-nearley.js delete mode 100644 datahub-web/packages/data-portal/lib/ember-nearley/index.js delete mode 100644 datahub-web/packages/data-portal/lib/ember-nearley/package.json delete mode 100644 datahub-web/packages/data-portal/package.json delete mode 100644 datahub-web/packages/data-portal/public/assets/apple-touch-icon-precomposed-144.png delete mode 100644 datahub-web/packages/data-portal/public/assets/apple-touch-icon-precomposed-57.png delete mode 100644 datahub-web/packages/data-portal/public/assets/apple-touch-icon-precomposed.png delete mode 100644 datahub-web/packages/data-portal/public/assets/apple-touch-icon.png delete mode 100755 datahub-web/packages/data-portal/public/assets/favicon-notification.ico delete mode 100644 datahub-web/packages/data-portal/public/assets/favicon.ico delete mode 100644 datahub-web/packages/data-portal/public/assets/images/default_avatar.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/favicon.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/glyphicons-halflings-white.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/glyphicons-halflings.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/azkaban.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/callisto.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/cmon.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/data-hub.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/dr-elephant.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/easy-data.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/faro.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/goblin.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/holdem.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/in-charts.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/kepler.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/merlin.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/prestoi.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/raptor.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/reportal.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/third-eye.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/trex.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/war.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/app-catalogue/wimd.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/browse.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/idpc.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/metadata.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/schema.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/icons/script-finder.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/import.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/landing-logo.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/loading.gif delete mode 100644 datahub-web/packages/data-portal/public/assets/images/login_screen_bckgrd.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/svgs/app-logo.svg delete mode 100644 datahub-web/packages/data-portal/public/assets/images/text_blockquote.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_bold.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/text_code.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/text_delimiter.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/text_empty.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_heading_1.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_heading_2.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_heading_3.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_image.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_italic.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_link.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_list_bullets.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_list_numbers.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_strike.png delete mode 100755 datahub-web/packages/data-portal/public/assets/images/text_underline.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/user_empty.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/wherehows-logo-backup.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/wherehows-logo.png delete mode 100644 datahub-web/packages/data-portal/public/assets/images/wizard.gif delete mode 100644 datahub-web/packages/data-portal/public/robots.txt delete mode 100644 datahub-web/packages/data-portal/testem.js delete mode 100644 datahub-web/packages/data-portal/tests/.eslintrc.js delete mode 100644 datahub-web/packages/data-portal/tests/index.html delete mode 100644 datahub-web/packages/data-portal/tests/test-helper.ts delete mode 100644 datahub-web/packages/data-portal/tsconfig.json delete mode 100644 datahub-web/packages/data-portal/types/datahub-web/index.d.ts delete mode 100644 datahub-web/packages/data-portal/types/global.d.ts delete mode 100644 datahub-web/packages/data-portal/vendor/.gitkeep delete mode 100755 datahub-web/scripts/ember.sh delete mode 100755 datahub-web/scripts/yarn.sh delete mode 100644 datahub-web/settings.gradle delete mode 100644 datahub-web/yarn.lock diff --git a/datahub-web/.eslintignore b/datahub-web/.eslintignore deleted file mode 100644 index 26cc4ee507dc0..0000000000000 --- a/datahub-web/.eslintignore +++ /dev/null @@ -1,48 +0,0 @@ -# unconventional js -/blueprints/*/files/ -/vendor/ - -# compiled output -/dist/ -/tmp/ -**/tmp/ -**/dist/ - -# dependencies -/bower_components/ -/node_modules/ -**/node_modules/ - -# misc -/coverage/ -!.* - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try - -# TODO [META-12204] Fix issues in datahub/pdsc that make us have to ignore the directory -# vendor generator for metadata-models TypeScript type definitions -**/@dh-tools/pdsc/ - -# generated metadata-models TypeScript type definitions -**/types/codegen/**/*.d.ts - -# generated addon sources for publishing -**/@datahub/*/addon/**/*.js -**/@datahub/*/addon/**/*.js -**/@datahub/*/app/**/*.js -**/@datahub/*/app/**/*.js -**/@datahub/*/components/**/*.d.ts -**/@datahub/*/components/**/*.d.ts -**/@datahub/*/constants/**/*.d.ts -**/@datahub/*/entity/**/*.d.ts -**/@datahub/*/utils/**/*.d.ts -**/@datahub/*/array/**/*.d.ts -**/@datahub/*/validators/**/*.d.ts -**/@datahub/*/api/**/*.d.ts -**/@datahub/*/placeholder/**/*.d.ts - - -testem.js diff --git a/datahub-web/.eslintrc.js b/datahub-web/.eslintrc.js deleted file mode 100644 index 5fd131378fd8c..0000000000000 --- a/datahub-web/.eslintrc.js +++ /dev/null @@ -1,85 +0,0 @@ -module.exports = { - root: true, - globals: { - server: true, - define: true - }, - extends: [ - 'plugin:ember/recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - 'prettier/@typescript-eslint' - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module' - }, - env: { - browser: true, - node: true - }, - rules: { - 'no-implicit-globals': [1], - 'no-console': 'error', - 'no-debugger': 'error', - 'require-await': 'error', - '@typescript-eslint/class-name-casing': 'error', - '@typescript-eslint/interface-name-prefix': ['error', 'always'], - '@typescript-eslint/member-delimiter-style': 'error', - '@typescript-eslint/no-empty-interface': 'error', - '@typescript-eslint/consistent-type-assertions': 'warn', - '@typescript-eslint/array-type': ['error', { default: 'generic' }], - '@typescript-eslint/no-non-null-assertion': 'warn', - '@typescript-eslint/explicit-member-accessibility': 'off', - '@typescript-eslint/no-parameter-properties': 'off', - '@typescript-eslint/explicit-function-return-type': 'warn', - '@typescript-eslint/ban-ts-ignore': 'warn', - '@typescript-eslint/no-empty-function': 'warn', - '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], - 'prettier/prettier': ['error', { singleQuote: true, printWidth: 120 }], - 'ember/no-ember-super-in-es-classes': 'error', - '@dh-tools/no-addon-import': 'error', - '@dh-tools/no-linkedin-import': 'warn', - eqeqeq: ['error', 'always'] - }, - plugins: ['prettier', 'ember', '@typescript-eslint', '@dh-tools'], - overrides: [ - // node files - { - files: [ - '**/.eslintrc.js', - '**/.template-lintrc.js', - '**/ember-cli-build.js', - '**/scripts/**/*.js', - '**/testem.js', - '**/index.js', - '**/config/**/*.js', - '**/lib/*/**.js', - '**/eyeglass-exports.js' - ], - parserOptions: { - sourceType: 'script', - ecmaVersion: 2015 - }, - env: { - browser: false, - node: true - }, - rules: { - '@typescript-eslint/no-var-requires': 'off' - } - }, - { - files: [ - '@linkedin/**/*.ts', - '@linkedin/**/*.js', - 'packages/data-portal-internal-clone/**/*.ts', - 'packages/data-portal-internal-clone/**/*.js' - ], - rules: { - '@dh-tools/no-linkedin-import': 'off' - } - } - ] -}; diff --git a/datahub-web/.eslintrc.precommit.js b/datahub-web/.eslintrc.precommit.js deleted file mode 100644 index 7b7d9d358a136..0000000000000 --- a/datahub-web/.eslintrc.precommit.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - rules: { - '@typescript-eslint/consistent-type-assertions': 'error', - '@typescript-eslint/no-non-null-assertion': 'error', - '@typescript-eslint/explicit-function-return-type': 'error', - '@typescript-eslint/no-explicit-any': 'error', - eqeqeq: ['error', 'always'] - }, - overrides: [ - { - files: ['*-test.js', '*-test.ts', '**/mirage/**/*.ts'], - rules: { - '@typescript-eslint/consistent-type-assertions': 'warn', - '@typescript-eslint/no-non-null-assertion': 'warn', - '@typescript-eslint/explicit-function-return-type': 'warn', - '@typescript-eslint/no-explicit-any': 'warn' - }, - files: ['*.js'], - rules: { - '@typescript-eslint/explicit-function-return-type': 'warn' - } - } - ] -}; diff --git a/datahub-web/.gitignore b/datahub-web/.gitignore deleted file mode 100644 index a48e3881c2909..0000000000000 --- a/datahub-web/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp -/build - -# dependencies -/node_modules -/bower_components - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log* -yarn-error.log -testem.log -/.npmrc - -# ember-try -.node_modules.ember-try/ -bower.json.ember-try -package.json.ember-try -# vscode -jsconfig.json -/.vscode/ diff --git a/datahub-web/.prettierrc b/datahub-web/.prettierrc deleted file mode 100644 index d3c9635598622..0000000000000 --- a/datahub-web/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "printWidth": 120, - "singleQuote": true -} \ No newline at end of file diff --git a/datahub-web/.template-lintrc.js b/datahub-web/.template-lintrc.js deleted file mode 100644 index d3544b933da94..0000000000000 --- a/datahub-web/.template-lintrc.js +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-env node */ -'use strict'; - -module.exports = { - extends: 'recommended', - - rules: { - 'no-shadowed-elements': true - } -}; diff --git a/datahub-web/@datahub/data-models/.editorconfig b/datahub-web/@datahub/data-models/.editorconfig deleted file mode 100644 index 219985c2289f7..0000000000000 --- a/datahub-web/@datahub/data-models/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 2 - -[*.hbs] -insert_final_newline = false - -[*.{diff,md}] -trim_trailing_whitespace = false diff --git a/datahub-web/@datahub/data-models/.ember-cli b/datahub-web/@datahub/data-models/.ember-cli deleted file mode 100644 index ee64cfed2a890..0000000000000 --- a/datahub-web/@datahub/data-models/.ember-cli +++ /dev/null @@ -1,9 +0,0 @@ -{ - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false -} diff --git a/datahub-web/@datahub/data-models/.gitignore b/datahub-web/@datahub/data-models/.gitignore deleted file mode 100644 index 29c9bc65a1cc1..0000000000000 --- a/datahub-web/@datahub/data-models/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ - -# misc -/.sass-cache -/connect.lock -/coverage/ -/libpeerconnection.log -/npm-debug.log* -/testem.log -/yarn-error.log - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try diff --git a/datahub-web/@datahub/data-models/.npmignore b/datahub-web/@datahub/data-models/.npmignore deleted file mode 100644 index 410da08fbf3f7..0000000000000 --- a/datahub-web/@datahub/data-models/.npmignore +++ /dev/null @@ -1,29 +0,0 @@ -# compiled output -/dist/ -/tmp/ - -# dependencies -/bower_components/ - -# misc -/.bowerrc -/.editorconfig -/.ember-cli -/.eslintignore -/.eslintrc.js -/.git/ -/.gitignore -/.watchmanconfig -/.travis.yml -/bower.json -/config/ember-try.js -/ember-cli-build.js -/testem.js -/tests/ -/yarn.lock -.gitkeep - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try diff --git a/datahub-web/@datahub/data-models/.travis.yml b/datahub-web/@datahub/data-models/.travis.yml deleted file mode 100644 index 8c8f454054475..0000000000000 --- a/datahub-web/@datahub/data-models/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -language: node_js -node_js: - # we recommend testing addons with the same minimum supported node version as Ember CLI - # so that your addon works for all apps - - '10' - -sudo: false -dist: trusty - -addons: - chrome: stable - -cache: - yarn: true - -env: - global: - # See https://git.io/vdao3 for details. - - JOBS=1 - -jobs: - fail_fast: true - allow_failures: - - env: EMBER_TRY_SCENARIO=ember-canary - - include: - # runs linting and tests with current locked deps - - stage: 'Tests' - name: 'Tests' - install: - - yarn install --non-interactive - script: - - yarn lint:hbs - - yarn lint:js - - yarn test - - - name: 'Floating Dependencies' - script: - - yarn test - - - stage: 'Additional Tests' - name: 'Floating Dependencies' - install: - - npm install --no-package-lock - script: - - npm test - - # we recommend new addons test the current and previous LTS - # as well as latest stable release (bonus points to beta/canary) - - env: EMBER_TRY_SCENARIO=ember-lts-3.8 - - env: EMBER_TRY_SCENARIO=ember-lts-3.12 - - env: EMBER_TRY_SCENARIO=ember-release - - env: EMBER_TRY_SCENARIO=ember-beta - - env: EMBER_TRY_SCENARIO=ember-canary - - env: EMBER_TRY_SCENARIO=ember-default-with-jquery - - env: EMBER_TRY_SCENARIO=ember-classic - -before_install: - - curl -o- -L https://yarnpkg.com/install.sh | bash - - export PATH=$HOME/.yarn/bin:$PATH - -install: - - yarn install --no-lockfile --non-interactive - -script: - - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/datahub-web/@datahub/data-models/.watchmanconfig b/datahub-web/@datahub/data-models/.watchmanconfig deleted file mode 100644 index e7834e3e4f39c..0000000000000 --- a/datahub-web/@datahub/data-models/.watchmanconfig +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignore_dirs": ["tmp", "dist"] -} diff --git a/datahub-web/@datahub/data-models/LICENSE.md b/datahub-web/@datahub/data-models/LICENSE.md deleted file mode 100644 index 0d02ed0266734..0000000000000 --- a/datahub-web/@datahub/data-models/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2020 LinkedIn - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/datahub-web/@datahub/data-models/README.md b/datahub-web/@datahub/data-models/README.md deleted file mode 100644 index 778eab355e761..0000000000000 --- a/datahub-web/@datahub/data-models/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# @datahub/data-models - -## Compatibility - -- Ember.js v3.8 or above -- Ember CLI v2.13 or above -- Node.js v8 or above - -## Installation - -``` -ember install @datahub/data-models -``` - -## Usage - -[Longer description of how to use the addon in apps.] - -## Contributing - -### Installation - -- `git clone ` -- `cd @datahub/data-models` -- `yarn install` - -### Linting - -- `yarn lint:hbs` -- `yarn lint:js` -- `yarn lint:js --fix` - -### Running tests - -- `ember test` – Runs the test suite on the current Ember version -- `ember test --server` – Runs the test suite in "watch mode" -- `ember try:each` – Runs the test suite against multiple Ember versions - -### Running the dummy application - -- `ember serve` -- Visit the dummy application at [http://localhost:4200](http://localhost:4200). - -For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). - -## License - -This project is licensed under the [Apache License](LICENSE.md). diff --git a/datahub-web/@datahub/data-models/addon/.gitkeep b/datahub-web/@datahub/data-models/addon/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/addon/api/browse.ts b/datahub-web/@datahub/data-models/addon/api/browse.ts deleted file mode 100644 index 0072b01d1b6eb..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/browse.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { getJSON, cacheApi } from '@datahub/utils/api/fetcher'; -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; -import buildUrl from '@datahub/utils/api/build-url'; -import { IBrowseParams, IBrowseResponse, IBrowsePathParams } from '@datahub/data-models/types/entity/browse'; - -/** - * URL for browse - * @param version api version - */ -export const browseUrlRoot = (version: ApiVersion): string => `${getApiRoot(version)}/browse`; - -/** - * URL for browse paths - * @param version api version - */ -export const browsePathUrlRoot = (version: ApiVersion): string => `${getApiRoot(version)}/browsePaths`; - -/** - * Will return the string url for the browse api - * @param params GET paramaters required for this API call, see IBrowseParams type - */ -const browseUrl = (params: IBrowseParams): string => { - const urlRoot = browseUrlRoot(ApiVersion.v2); - return buildUrl(`${urlRoot}`, params); -}; - -/** - * Build GET request for browse - * @param params entity type and URN - */ -const browsePathUrl = (params: IBrowsePathParams): string => { - const urlRoot = browsePathUrlRoot(ApiVersion.v2); - return buildUrl(`${urlRoot}`, params); -}; -/** - * Will fetch browse information for a specific path and entity. - * Will return a paginated return of elements and a fixed set of groups/folders. - * Note that groups won't be affected by pagination - */ -export const readBrowse = cacheApi( - (params: IBrowseParams): Promise => { - const url = browseUrl(params); - return getJSON({ url }); - } -); - -/** - * Read the path to reach to the specified entity - */ -export const readBrowsePath = cacheApi( - (params: IBrowsePathParams): Promise> => { - const url = browsePathUrl(params); - return getJSON>({ url }); - } -); diff --git a/datahub-web/@datahub/data-models/addon/api/common/institutional-memory.ts b/datahub-web/@datahub/data-models/addon/api/common/institutional-memory.ts deleted file mode 100644 index 70b3f91c73a52..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/common/institutional-memory.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { IInstitutionalMemory } from '@datahub/metadata-types/types/aspects/institutional-memory'; -import { getJSON, postJSON } from '@datahub/utils/api/fetcher'; -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; - -/** - * Constructs the url for institutional memory - * @param {string} urn - the urn for the entity - */ -const institutionalMemoryByUrn = (urn: string, entityType: string): string => - `${getApiRoot(ApiVersion.v2)}/${entityType}s/${urn}/institutionalmemory`; - -/** - * Fetches the list of wiki-type url links to documents related to an entity - * @param {string} urn - urn for the entity - */ -export const readInstitutionalMemory = ( - urn: string, - entityType: string -): Promise<{ elements: Array }> => getJSON({ url: institutionalMemoryByUrn(urn, entityType) }); - -/** - * Returns a view of the full list of wiki-type url links to documents related to an entity. This should be how the - * list appears after any changes by the user (add or delete) - * @param {string} urn - urn for the entity - * @param {Array} wikiLinks - related links snapshot - */ -export const writeInstitutionalMemory = ( - urn: string, - entityType: string, - wikiLinks: Array -): Promise => - postJSON({ - url: institutionalMemoryByUrn(urn, entityType), - data: { elements: wikiLinks } - }); diff --git a/datahub-web/@datahub/data-models/addon/api/common/social-actions.ts b/datahub-web/@datahub/data-models/addon/api/common/social-actions.ts deleted file mode 100644 index 95bfc3e70e062..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/common/social-actions.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { DataModelName } from '@datahub/data-models/constants/entity'; -import { getApiRoot, ApiVersion } from '@datahub/utils/api/shared'; -import { getJSON, postJSON } from '@datahub/utils/api/fetcher'; -import { encodeUrn } from '@datahub/utils/validators/urn'; - -/** - * Creates a url for a specific entity by urn and the social action we are constructing - * @param {DataModelName} entityType - the type of entity for which we are making this request - * @param {string} urn - identifier for the specific entity for which we want to construct the url - * @param {string} action - the kind of action we are creating - */ -const getSocialActionsUrl = (entityType: DataModelName, urn: string, action: string): string => - `${getApiRoot(ApiVersion.v2)}/${entityType}/${encodeUrn(urn)}/${action}`; - -/** - * Using the socialActionsUrl as a base, create a function that constructs one specifically for - * like actions - * @param {DataModelName} entityType - type of entity for which we want to construct this url - * @param {string} urn - urn identifier for the specific entity for which we are constructing the url - */ -const getLikeActionsUrl = (entityType: DataModelName, urn: string): string => - getSocialActionsUrl(entityType, urn, 'likes'); - -/** - * Given an entity type and urn, construct a getter for which to retrieve likes information - * @param {DataModelName} entityType - the type of entity for which we want to read like information - * @param {string} urn - the identifier for the entity for which we want to read like information - */ -export const readLikesForEntity = (entityType: DataModelName, urn: string): Promise => - getJSON({ url: getLikeActionsUrl(entityType, urn) }); - -/** - * Given an entity type and urn, post an update request that adds the user to the list of those who - * like the specified entity - * @param {DataModelName} entityType - the type of entity for which we want to add a like - * @param {string} urn - the identifier for the entity to which to add the user's like action - * @return an updated likes aspect for the entity - */ -export const addLikeForEntity = (entityType: DataModelName, urn: string): Promise => - postJSON({ url: `${getLikeActionsUrl(entityType, urn)}/add`, data: {} }); - -/** - * Given an entity type and urn, post an update request that removes the user to the list of those - * who like the specified entity - * @param {DataModelName} entityType - the type of entity for which we want to add a like - * @param {string} urn - the identifier for teh entity to which to add the user's like action - * @return an updated likes aspect for the entity - */ -export const removeLikeForEntity = (entityType: DataModelName, urn: string): Promise => - postJSON({ url: `${getLikeActionsUrl(entityType, urn)}/remove`, data: {} }); - -/** - * Using the socialActionsUrl as a base, create a function that constructs one specifically for - * follow actions - * @param {DataModelName} entityType - the type of entity for which we want to construct this urn - * @param {string} urn - urn identifier for the specific entity instance for which we are - * constructing the url - */ -const getFollowActionsUrl = (entityType: DataModelName, urn: string): string => - getSocialActionsUrl(entityType, urn, 'follows'); - -/** - * Given an entity type and urn, construct a getter for which to retrieve follows information - * @param {DataModelName} entityType - the type of entity for which we want to read follow information - * @param {string} urn - the identifier for the entity for which we want to read follow information - */ -export const readFollowsForEntity = (entityType: DataModelName, urn: string): Promise => - getJSON({ url: getFollowActionsUrl(entityType, urn) }); - -/** - * Given an entity type and urn, construct a getter for which to add the user as a follower - * @param {DataModelName} entityType - the type of entity for which we want to add the user as a follower - * @param {string} urn - the identifier for the entity for which we want to update follow information - * @return an updated follow aspect for the entity, if successful - */ -export const addFollowForEntity = (entityType: DataModelName, urn: string): Promise => - postJSON({ url: `${getFollowActionsUrl(entityType, urn)}/add`, data: {} }); - -/** - * Given an entity type and urn, construct a getter for which to remove the user as a follower - * @param {DataModelName} entityType - the type of entity for which we want to remove the user as a follower - * @param {string} urn - the identifier for the entity for which we want to update follow information - * @return an updated follow aspect for the entity, if successful - */ -export const removeFollowForEntity = (entityType: DataModelName, urn: string): Promise => - postJSON({ url: `${getFollowActionsUrl(entityType, urn)}/remove`, data: {} }); diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/compliance.ts b/datahub-web/@datahub/data-models/addon/api/dataset/compliance.ts deleted file mode 100644 index aa0812f8cdf71..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/compliance.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { datasetUrlByUrn } from '@datahub/data-models/api/dataset/dataset'; -import { IDatasetComplianceInfo } from '@datahub/metadata-types/types/entity/dataset/compliance/info'; -import { getJSON, postJSON } from '@datahub/utils/api/fetcher'; -import { getListUrlRoot } from '@datahub/data-models/api/dataset/shared/lists'; -import { ApiVersion } from '@datahub/utils/api/shared'; -import { IComplianceDataType } from '@datahub/metadata-types/types/entity/dataset/compliance-data-types'; -import { IDatasetRetentionPolicy } from '@datahub/metadata-types/types/entity/dataset/compliance/retention'; -import { IDatasetExportPolicy } from '@datahub/metadata-types/types/entity/dataset/compliance/export-policy'; -import { Omit } from 'lodash'; -import { IDatasetComplianceSuggestionInfo } from '@datahub/data-models/types/entity/dataset'; -import { SuggestionIntent } from '@datahub/data-models/constants/entity/dataset/compliance-suggestions'; - -/** - * Returns the url for a datasets compliance policy by urn - * @param {string} urn - * @return {string} - */ -export const datasetComplianceUrl = (urn: string): string => `${datasetUrlByUrn(urn)}/compliance`; - -/** - * Returns the url for a dataset compliance suggestion by urn - * @param {string} urn - * @return {string} - */ -export const datasetComplianceSuggestionUrlByUrn = (urn: string): string => - `${datasetUrlByUrn(urn)}/compliance/suggestion`; - -/** - * Returns the url for a dataset compliance suggestion feedback by urn - * @param {string} urn the urn for the dataset - * @return {string} - */ -export const datasetComplianceSuggestionFeedbackUrlByUrn = (urn: string): string => - `${datasetComplianceSuggestionUrlByUrn(urn)}/feedback`; - -/** - * Returns the url for a dataset's export policy by urn - * @param {string} urn - * @return {string} - */ -export const datasetExportPolicyByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/exportpolicy`; - -/** - * Reads the dataset compliance policy by urn. - * Resolves with a new compliance policy instance if remote response is ApiResponseStatus.NotFound - * @param {string} urn the urn for the related dataset - * @return {Promise} - */ -export const readDatasetCompliance = (urn: string): Promise => - getJSON({ url: datasetComplianceUrl(urn) }).then(({ complianceInfo }): IDatasetComplianceInfo => complianceInfo); - -/** - * Reads the suggestions for a dataset compliance policy by urn - * @param {string} urn - * @return {Promise} - */ -export const readDatasetComplianceSuggestion = (urn: string): Promise => - getJSON({ url: datasetComplianceSuggestionUrlByUrn(urn) }).then( - ({ complianceSuggestion }): IDatasetComplianceSuggestionInfo => complianceSuggestion - ); - -/** - * Saves the suggestion feedback for a dataset when selected by the user - * @param {string} urn the urn for the dataset with suggestions - * @param {string | null} uid the suggestion uid - * @param {SuggestionIntent} feedback indicator for acceptance or discarding a suggestion - * @return {Promise} - */ -export const saveDatasetComplianceSuggestionFeedbackByUrn = ( - urn: string, - uid: string | null, - feedback: SuggestionIntent -): Promise => postJSON({ url: datasetComplianceSuggestionFeedbackUrlByUrn(urn), data: { uid, feedback } }); - -/** - * Persists the dataset compliance policy - * @param {string} urn - * @param {IComplianceInfo} complianceInfo - * @return {Promise} - */ -export const saveDatasetCompliance = (urn: string, complianceInfo: IDatasetComplianceInfo): Promise => - postJSON({ - url: datasetComplianceUrl(urn), - data: { ...complianceInfo, complianceType: null, compliancePurgeNote: null } - }); - -/** - * Defines the url endpoint for the list of dataset compliance data types and attributes - * @type {string} - */ -const complianceDataTypesUrl = `${getListUrlRoot(ApiVersion.v2)}/compliance-data-types`; - -/** - * Requests the list of compliance data types and the related attributes - * @returns {Promise>} - */ -export const readComplianceDataTypes = (): Promise> => - getJSON({ url: complianceDataTypesUrl }).then( - ({ complianceDataTypes }): Array => complianceDataTypes - ); - -/** - * Constructs the url for a datasets retention policy - * @param {string} urn the urn for the dataset - * @return {string} - */ -const datasetRetentionUrlByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/retention`; - -/** - * Fetches the list of retention policy for a dataset by urn - * @param {string} urn urn for the dataset - * @return {Promise} - */ -export const readDatasetRetention = (urn: string): Promise => - getJSON({ url: datasetRetentionUrlByUrn(urn) }).then( - ({ retentionPolicy }): IDatasetRetentionPolicy => retentionPolicy - ); - -/** - * Persists the dataset retention policy remotely - * @param {string} urn the urn of the dataset to save - * @param {IDatasetRetention} retention the dataset retention policy to update - * @return {Promise} - */ -export const saveDatasetRetention = ( - urn: string, - retention: Omit -): Promise => - postJSON({ - url: datasetRetentionUrlByUrn(urn), - data: retention - }); - -/** - * Reads the export policy for a dataset by urn - * @param urn - * @return {Promise} - */ -export const readDatasetExportPolicy = (urn: string): Promise => - getJSON({ url: datasetExportPolicyByUrn(urn) }).then(({ exportPolicy }): IDatasetExportPolicy => exportPolicy); - -export const saveDatasetExportPolicy = async ( - urn: string, - exportPolicy: Omit -): Promise => { - const response = (await postJSON({ - url: datasetExportPolicyByUrn(urn), - data: exportPolicy - })) as { exportPolicy: IDatasetExportPolicy }; - - return response.exportPolicy; -}; diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/dataset.ts b/datahub-web/@datahub/data-models/addon/api/dataset/dataset.ts deleted file mode 100644 index f6480edd4acf3..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/dataset.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; -import { getJSON } from '@datahub/utils/api/fetcher'; -import { encodeUrn } from '@datahub/utils/validators/urn'; - -/** - * Constructs the Dataset url root endpoint - * @param {ApiVersion} version the version of the api applicable to retrieve the Dataset - * @returns {string} - */ -const datasetUrlRoot = (version: ApiVersion): string => `${getApiRoot(version)}/datasets`; - -/** - * Constructs the url for a dataset identified by the provided string urn - * @param {string} urn the urn to use in querying for dataset entity - * @returns {string} - */ -export const datasetUrlByUrn = (urn: string): string => `${datasetUrlRoot(ApiVersion.v2)}/${encodeUrn(urn)}`; - -/** - * Constructs the url for a dataset identified by the provided string urn - * @param {string} urn the urn to use in querying for dataset entity - * @returns {string} - */ -export const datasetV1UrlByUrn = (urn: string): string => `${datasetUrlRoot(ApiVersion.v1)}/${encodeUrn(urn)}`; - -/** - * Reads a dataset entity from api - */ -export const readDataset = (urn: string): Promise => - getJSON({ url: datasetUrlByUrn(urn) }); diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/groups.ts b/datahub-web/@datahub/data-models/addon/api/dataset/groups.ts deleted file mode 100644 index d103d7f1992e9..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/groups.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { getJSON } from '@datahub/utils/api/fetcher'; -import { datasetUrlByUrn } from '@datahub/data-models/api/dataset/dataset'; -import { isNotFoundApiError } from '@datahub/utils/api/shared'; - -const datasetGroupsByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/groups`; - -/** - * Fetches the dataset groups from the mid tier for the given URN - * @param {string} urn The URN of the dataset - * @return {Promise} - */ -export const readDatasetGroups = (urn: string): Promise> => { - try { - return getJSON({ url: datasetGroupsByUrn(urn) }); - } catch (e) { - // In the case a 404 is encountered. We return an empty list to the UI , so that the 404 is gracefully handled. - if (isNotFoundApiError(e)) { - return Promise.resolve([]); - } - throw e; - } -}; diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/lineage.ts b/datahub-web/@datahub/data-models/addon/api/dataset/lineage.ts deleted file mode 100644 index f2d56ee9f1a15..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/lineage.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { datasetUrlByUrn } from '@datahub/data-models/api/dataset/dataset'; -import { DatasetLineageList } from '@datahub/metadata-types/types/entity/dataset/lineage'; -import { getJSON } from '@datahub/utils/api/fetcher'; - -/** - * Constructs the url for a datasets upstreams - * @param urn the urn for the child dataset - */ -const datasetUpstreamUrlByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/upstreams`; - -/** - * Constructs the url for a datasets downstreams - * @param urn - */ -const datasetDownstreamUrlByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/downstreams`; - -/** - * Fetches the list of upstream datasets for a dataset by urn - */ -export const readUpstreamDatasets = (urn: string): Promise => - getJSON({ url: datasetUpstreamUrlByUrn(urn) }); - -/** - * Requests the downstream datasets for the dataset identified by urn - * @param urn string urn for the dataset - */ -export const readDownstreamDatasets = (urn: string): Promise => - getJSON({ url: datasetDownstreamUrlByUrn(urn) }); diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/ownership.ts b/datahub-web/@datahub/data-models/addon/api/dataset/ownership.ts deleted file mode 100644 index 4ce9b75957d50..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/ownership.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { IOwnerResponse, IOwner } from '@datahub/data-models/types/entity/dataset/ownership'; -import { getJSON } from '@datahub/utils/api/fetcher'; -import { isNotFoundApiError } from '@datahub/utils/api/shared'; -import { datasetUrlByUrn } from '@datahub/data-models/api/dataset/dataset'; - -/** - * Shared Dataset ownership mid-tier endpoint - */ -export const ownershipEndpoint = 'owners'; - -/** - * Modifies an owner object by applying the modified date property as a Date object - * @param {IOwner} owner an instance of a Dataset Owner - */ -export const ownerWithModifiedTimeAsDate = (owner: IOwner): IOwner => ({ - ...owner, - modifiedTime: new Date(owner.modifiedTime as number) -}); - -/** - * Returns the dataset owners url by urn - * @param {string} urn the related dataset urn for which ownership is sought - */ -export const datasetOwnersUrlByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/${ownershipEndpoint}`; - -/** - * Reads the owners for dataset by urn - * @param {string} urn associated dataset urn to request ownership information of - */ -export const readDatasetOwnersByUrn = async (urn: string): Promise => { - let owners: Array = [], - fromUpstream = false, - datasetUrn = '', - lastModified = 0, - actor = ''; - - try { - ({ owners = [], fromUpstream, datasetUrn, actor, lastModified } = await getJSON({ - url: datasetOwnersUrlByUrn(urn) - })); - - return { owners: owners.map(ownerWithModifiedTimeAsDate), fromUpstream, datasetUrn, actor, lastModified }; - } catch (e) { - if (isNotFoundApiError(e)) { - return { owners, fromUpstream, datasetUrn, actor, lastModified }; - } - - throw e; - } -}; diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/platforms.ts b/datahub-web/@datahub/data-models/addon/api/dataset/platforms.ts deleted file mode 100644 index 8724043630b15..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/platforms.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { getListUrlRoot } from '@datahub/data-models/api/dataset/shared/lists'; -import { ApiVersion } from '@datahub/utils/api/shared'; -import { getJSON } from '@datahub/utils/api/fetcher'; -import { IDataPlatform } from '@datahub/metadata-types/types/entity/dataset/platform'; - -/** - * Defines the url endpoint for the list of dataset compliance data types and attributes - * @type {string} - */ -const platformsUrl = `${getListUrlRoot(ApiVersion.v2)}/platforms`; - -/** - * Requests the list of compliance data types and the related attributes - * @returns {Promise>} - */ -export const readDataPlatforms = (): Promise> => - getJSON({ url: platformsUrl }) - .then(({ platforms }) => platforms || []) - .catch(() => []); diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/schema.ts b/datahub-web/@datahub/data-models/addon/api/dataset/schema.ts deleted file mode 100644 index bbb107bcf684b..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/schema.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { datasetUrlByUrn } from '@datahub/data-models/api/dataset/dataset'; -import { IDatasetSchema } from '@datahub/metadata-types/types/entity/dataset/schema'; -import { getJSON } from '@datahub/utils/api/fetcher'; - -/** - * Returns the url for a dataset schema by urn - * @param {string} urn - * @return {string} - */ -const datasetSchemaUrlByUrn = (urn: string): string => `${datasetUrlByUrn(urn)}/schema`; - -/** - * Reads the schema for a dataset with the related urn - * @param {string} urn - * @return {Promise} - */ -export const readDatasetSchema = (urn: string): Promise => - getJSON({ url: datasetSchemaUrlByUrn(urn) }).then(({ schema }) => schema); diff --git a/datahub-web/@datahub/data-models/addon/api/dataset/shared/lists.ts b/datahub-web/@datahub/data-models/addon/api/dataset/shared/lists.ts deleted file mode 100644 index 3197751aeb195..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/dataset/shared/lists.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; - -/** - * Composes the url to the list endpoint, will pass-through the api version if provided - * @param {ApiVersion} [version] the version of the api to fetch against - * @return {string} - */ -export const getListUrlRoot = (version?: ApiVersion): string => `${getApiRoot(version)}/list`; diff --git a/datahub-web/@datahub/data-models/addon/api/entity.ts b/datahub-web/@datahub/data-models/addon/api/entity.ts deleted file mode 100644 index c89512d6a5172..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/entity.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; -import { encodeUrn } from '@datahub/utils/validators/urn'; -import { getJSON } from '@datahub/utils/api/fetcher'; - -/** - * Generic entity root path - * @param entityEndpoint the URL path segment or endpoint for the specific entity, this may be different from the entity name - * @param version version of the API, defaulted to V2 - */ -export const entityApiRoot = (entityEndpoint: string, version: ApiVersion = ApiVersion.v2): string => - `${getApiRoot(version)}/${entityEndpoint}`; - -/** - * Generic entity read api url - * @param urn urn for the entity - * @param entityEndpoint the URL path segment or endpoint for the specific entity, this may be different from the entity name - */ -export const entityApiByUrn = (urn: string, entityEndpoint: string): string => - `${entityApiRoot(entityEndpoint)}/${encodeUrn(urn)}`; - -/** - * Generic entity read api call - * @param urn urn for the entity - * @param entityEndpoint the URL path segment or endpoint for the specific entity, this may be different from the entity name - */ -export const readEntity = (urn: string, entityEndpoint: string): Promise => - getJSON({ url: entityApiByUrn(urn, entityEndpoint) }); diff --git a/datahub-web/@datahub/data-models/addon/api/person/entity.ts b/datahub-web/@datahub/data-models/addon/api/person/entity.ts deleted file mode 100644 index 853680bf9102a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/api/person/entity.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { ApiVersion, getApiRoot } from '@datahub/utils/api/shared'; -import { encodeUrn } from '@datahub/utils/validators/urn'; -import { ICorpUserInfo } from '@datahub/metadata-types/types/entity/person/person-entity'; -import { getJSON, postJSON } from '@datahub/utils/api/fetcher'; - -/** - * Constructs the Person url root endpoint - * @param {ApiVersion} version the version of the api applicable to retrieve the Person - */ -export const personUrlRoot = (version: ApiVersion): string => `${getApiRoot(version)}/corpusers`; - -/** - * Constructs the url for a person identified by the provided string urn - * @param {string} urn the urn to use in querying for person entity - */ -export const personUrlByUrn = (urn: string): string => `${personUrlRoot(ApiVersion.v2)}/${encodeUrn(urn)}`; - -/** - * Constructs the person url for the endpoint to update editable info - * @param {string} urn - the urn identifier for the person entity - */ -const personEditableInfoUrlByUrn = (urn: string): string => `${personUrlByUrn(urn)}/editableInfo`; - -/** - * Queries the person endpoint with the urn provided to retrieve entity information - * @param {string} urn - */ -export const readPerson = (urn: string): Promise => getJSON({ url: personUrlByUrn(urn) }); - -/** - * Writes to the person endpoint with the update to a person's editable info - * @param {string} urn - the unique identifier for the person entity - * @param {ICorpUserInfo['editableInfo']} data - the data to send to the endpoint to update editable info - */ -export const saveEditablePersonalInfo = (urn: string, data: ICorpUserInfo['editableInfo']): Promise => - postJSON({ - data, - url: personEditableInfoUrlByUrn(urn) - }); diff --git a/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.hbs b/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.hbs deleted file mode 100644 index e83cc52266c1f..0000000000000 --- a/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.hbs +++ /dev/null @@ -1 +0,0 @@ -{{yield this.entityInstance}} diff --git a/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.ts b/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.ts deleted file mode 100644 index e3fb968aa3b22..0000000000000 --- a/datahub-web/@datahub/data-models/addon/components/get-entity-by-urn.ts +++ /dev/null @@ -1,39 +0,0 @@ -import Component from '@glimmer/component'; -import { inject as service } from '@ember/service'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { DataModelEntityInstance } from '@datahub/data-models/constants/entity'; -import { extractEntityType } from '@datahub/utils/validators/urn'; - -interface IGetEntityByUrnArgs { - urn: string; -} - -/** - * Allows us to get an entity instance from our data model service by its urn. Helpful when we are composing templates - * and only have a urn to work with (and we may or may not know the entity type we are working with) and we want to - * abstract the concern of instantiating a model with the data models service away from the parent component. - * - * @example - * - * - * {{dataset.name}} - * {{dataset.someOtherInfo}} - * - * - */ -export default class GetEntityByUrn extends Component { - /** - * Injects the data models service so that we can get the actual entity class/instance - */ - @service - dataModels!: DataModelsService; - - /** - * Given the entity type and urn, we are able to return a partial instance - */ - get entityInstance(): DataModelEntityInstance | void { - const urn = this.args.urn; - const entityModel = this.dataModels.getModelByApiName(extractEntityType(urn) as string); - return entityModel && this.dataModels.createPartialInstance(entityModel.displayName, urn); - } -} diff --git a/datahub-web/@datahub/data-models/addon/config/urn/base-prefix.ts b/datahub-web/@datahub/data-models/addon/config/urn/base-prefix.ts deleted file mode 100644 index 117e5bb4d4ebd..0000000000000 --- a/datahub-web/@datahub/data-models/addon/config/urn/base-prefix.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Base for all corpuser type user urns. A person's username is appended to this base - */ -export const corpUserUrnBasePrefix = 'urn:li:corpuser:'; - -/** - * Base for all actor type user urns. A person's username is appended to this base - */ -export const actorUrnBasePrefix = 'urn:li:actor:'; - -/** - * Base for all grid group type urns. A group's account name is appended to this base - */ -export const gridGroupUrnBasePrefix = 'urn:li:gridGroup:'; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/common/acl-access.ts b/datahub-web/@datahub/data-models/addon/constants/entity/common/acl-access.ts deleted file mode 100644 index 3c96c972fa6fe..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/common/acl-access.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Enumerates the access control types for an ACL entry - * @export - */ -export enum AccessControlAccessType { - Read = 'READ', - Write = 'WRITE', - ReadWrite = 'READ_WRITE' -} - -/** - * Possible values for the ACL access status, where expired means we are past the expiration time - */ -export enum AclAccessStatus { - // Access existed but is past the expiration - EXPIRED = 'EXPIRED', - // Access is currently standing - ACTIVE = 'ACTIVE' -} diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/compliance-suggestions.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/compliance-suggestions.ts deleted file mode 100644 index 73ae4b13f8dfe..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/compliance-suggestions.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * String indicating that the user affirms or ignored a field suggestion - * @export - * @namespace Dataset - * @enum {string} - */ -export enum SuggestionIntent { - accept = 'accept', - ignore = 'reject' -} - -/** - * Possible states to record the user interaction with a suggestion. - * @export - * @namespace Dataset - * @enum {string} - */ -export enum UserSuggestionInteraction { - NONE = 'none', - ACCEPT = 'accepted', - REJECT = 'rejected' -} diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/groups.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/groups.ts deleted file mode 100644 index 6af0012d8560d..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/groups.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Regex pattern used to extract the group name and the namespace from the URN resulting from the `readDatasetGroups` api call - * - */ -export const datasetGroupNameRegexPattern = /^urn:li:datasetGroup:\((.*)\)/; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/ownership.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/ownership.ts deleted file mode 100644 index b433f0090db19..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/ownership.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Accepted string values for the namespace of a user - */ -export enum OwnerUrnNamespace { - corpUser = 'urn:li:corpuser', - groupUser = 'urn:li:corpGroup', - multiProduct = 'urn:li:multiProduct' -} diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/all.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/all.ts deleted file mode 100644 index 2d47267fa9b52..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/all.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { CommonTabProperties } from '@datahub/data-models/constants/entity/shared/tabs'; -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { DatasetPropertiesTab } from '@datahub/data-models/constants/entity/dataset/tab-properties/properties'; -import { DatasetTab } from '@datahub/data-models/constants/entity/dataset/tabs'; - -/** - * Properties for dataset tabs - */ -export const TabProperties: Array = [ - { - id: DatasetTab.Schema, - title: 'Schema', - contentComponent: 'datasets/containers/dataset-schema' - }, - { - id: DatasetTab.Status, - title: 'Status', - contentComponent: 'datasets/containers/dataset-properties' - }, - { - id: DatasetTab.Access, - title: 'ACL Access', - contentComponent: 'jit-acl/containers/jit-acl-access-container', - lazyRender: true - }, - { - id: DatasetTab.Ownership, - title: 'Ownership', - contentComponent: 'datasets/containers/dataset-ownership' - }, - { - id: DatasetTab.Compliance, - title: 'Compliance', - contentComponent: 'datasets/containers/compliance-main' - }, - { - id: DatasetTab.DatasetGroups, - title: 'Dataset Groups', - contentComponent: 'datasets/core/containers/dataset-groups', - lazyRender: true - }, - /* - ** Todo : META-9512 datasets - relationships view is unable to handle big payloads - ** Adding lazy render as a workaround, so as to unblock rest of the tabs on the page. - */ { - id: DatasetTab.Relationships, - title: 'Relationships', - contentComponent: 'datasets/dataset-relationships', - lazyRender: true - }, - { - id: DatasetTab.Health, - title: 'Health', - contentComponent: 'health/entity-detail', - lazyRender: true - }, - DatasetPropertiesTab, - ...CommonTabProperties -]; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/properties.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/properties.ts deleted file mode 100644 index 420b05a6a4e9d..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tab-properties/properties.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { DatasetTab } from '@datahub/data-models/constants/entity/dataset/tabs'; -import { INachoTableConfigs } from '@nacho-ui/core/types/nacho-table'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; - -/** - * Configurations for the render props for the nacho table dynamic component - */ -const tableConfigs: INachoTableConfigs = { - labels: ['label', 'value'] -}; - -/** - * Properties for the dataset custom properties tab. - */ -export const DatasetPropertiesTab: ITabProperties = { - id: DatasetTab.Properties, - title: 'Properties', - contentComponent: { - name: 'entity-page/entity-page-content/content-panel', - options: { - title: 'Dataset Properties', - contentComponent: { - // name of the component - name: 'entity-page/entity-page-content/nacho-table', - options: { - propertyName: 'customDatasetProperties', - emptyStateMessage: 'We could not find properties for this dataset.', - tableConfigs - } - } - } - } -}; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tabs.ts b/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tabs.ts deleted file mode 100644 index 1d4291b3f54ea..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/dataset/tabs.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Lists the dataset tabs available - * @export - * @enum {string} - */ -export enum DatasetTab { - Status = 'status', - Properties = 'properties', - Access = 'access', - Schema = 'schema', - Ownership = 'ownership', - Compliance = 'compliance', - Relationships = 'relationships', - Health = 'health', - DatasetGroups = 'datasetgroups' -} diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/index.ts b/datahub-web/@datahub/data-models/addon/constants/entity/index.ts deleted file mode 100644 index 65b59f3951411..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { ListEntity } from '@datahub/data-models/entity/list/list-entity'; -import { BaseEntity } from '@datahub/data-models/entity/base-entity'; -import { IBaseEntity } from '@datahub/metadata-types/types/entity/index'; -import { DataConstructChangeManagementEntity } from '@datahub/data-models/entity/data-construct-change-management/data-construct-change-management-entity'; -import { GroupEntity } from '@datahub/data-models/entity/group/group-entity'; - -/** - * Defines the interface for the DataModelEntity enum below. - * This allows each entry in the enum to be indexable - */ -export interface IDataModelEntity { - [DatasetEntity.displayName]: typeof DatasetEntity; - [PersonEntity.displayName]: typeof PersonEntity; - [ListEntity.displayName]: typeof ListEntity; - [GroupEntity.displayName]: typeof GroupEntity; - [DataConstructChangeManagementEntity.displayName]: typeof DataConstructChangeManagementEntity; -} - -/** - * Enumeration of data model entity displayName values to the related Data Model entity - * Serves as the primary resource map of all DataModelEntity available classes - */ -export const DataModelEntity: IDataModelEntity = { - [DatasetEntity.displayName]: DatasetEntity, - [PersonEntity.displayName]: PersonEntity, - [GroupEntity.displayName]: GroupEntity, - [ListEntity.displayName]: ListEntity, - [DataConstructChangeManagementEntity.displayName]: DataConstructChangeManagementEntity -}; - -/** - * Will Generate a map of entities using the api name. Since some entities will throw exceptions while - * accesing their render props, it will ignore those entities - * @param entities - */ -export const generateEntityApiNameMap = (entities: k): Record => - Object.values(entities).reduce((m, entity: IDataModelEntity[keyof IDataModelEntity]) => { - // some entities may no implement render props - try { - return { ...m, [`${entity.renderProps.apiEntityName}`]: entity }; - } catch (e) { - return m; - } - }, {}); - -/** - * Reverse lookup by apiName - */ -export const DataModelEntityApiNameMap: Record< - string, - IDataModelEntity[keyof IDataModelEntity] -> = generateEntityApiNameMap(DataModelEntity); -/** - * Aliases the keys on the DataModelEntity enum for reference convenience - * This maps to the names of the available entities for example 'datasets', 'users', etc - */ -export type DataModelName = keyof typeof DataModelEntity; - -/** - * Aliases the DataModelEntity classes found in the DataModelEntity enum, this is a union type of all entity classifiers - * For example { typeof DatasetEntity | typeof UserEntity | ... } - */ -export type DataModelEntity = typeof DataModelEntity[DataModelName]; - -/** - * A specific instance of data model entity - * For example { DatasetEntity | UserEntity | ... } - * As we move to a dynamic world of entities. Having a more open entity like BaseEntity, which all entities should - * implement aliviate some type constrains. - */ -export type DataModelEntityInstance = BaseEntity; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/person/links.ts b/datahub-web/@datahub/data-models/addon/constants/entity/person/links.ts deleted file mode 100644 index 3bd7c19f21d80..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/person/links.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Constant base for the user profile link. We append the username to this to reach their - * profile - * @type {string} - * @deprecated - should be moved to internal version - */ -export const profileLinkBase = 'https://cinco.linkedin.biz/people/'; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/person/social-actions.ts b/datahub-web/@datahub/data-models/addon/constants/entity/person/social-actions.ts deleted file mode 100644 index 551651103ec85..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/person/social-actions.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * The expected types of social actions that a user can take on an entity. - */ -export enum SocialAction { - // Gives an upvote to the entity to endorse its usefulness - LIKE = 'like', - // Opts into notifications for the entity's changes in metadata - FOLLOW = 'follow', - // Saves the entity to a specified list, organized by the user for some organizational benefit - SAVE = 'save' -} diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/person/tabs.ts b/datahub-web/@datahub/data-models/addon/constants/entity/person/tabs.ts deleted file mode 100644 index b00e0f563f7ca..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/person/tabs.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * Tabs available for Person entity - */ -export enum PersonTab { - DataAccess = 'dataaccess', - UserLists = 'userlists', - UserOwnership = 'userownership', - UserJitAccess = 'userjitaccess', - UserUMPFlows = 'userumpflows', - UserFeatureList = 'userfeaturelist', - UserLikeList = 'userlikelist', - UserSocialActionList = 'usersocialactionlist', - UserDYMIList = 'userdymilist' -} - -/** - * Tab properties available for Person entity - */ -export const personTabProperties: Array = [ - { - id: PersonTab.DataAccess, - title: 'Data Access', - contentComponent: '', - tablistMenuComponent: 'user/containers/tablist/data-access' - }, - { - id: PersonTab.UserLists, - title: 'Lists', - contentComponent: '', - tablistMenuComponent: 'user/containers/tablist/entity-lists' - }, - { - id: PersonTab.UserFeatureList, - title: 'Features', - contentComponent: 'user/containers/tab-content/entity-lists', - lazyRender: true - }, - { - id: PersonTab.UserDYMIList, - title: 'Data you might be interested in', - contentComponent: '', - tablistMenuComponent: 'user/containers/tablist/recommendation-list' - }, - { - id: PersonTab.UserOwnership, - title: 'Ownership', - contentComponent: '', - tablistMenuComponent: 'user/containers/tablist/entity-ownership' - }, - { - id: PersonTab.UserJitAccess, - title: 'JIT Datasets', - contentComponent: 'user/containers/tab-content/data-access' - }, - { - id: PersonTab.UserUMPFlows, - title: 'UMP Flows', - contentComponent: 'ump-flows/route-content', - lazyRender: true - }, - { - id: PersonTab.UserSocialActionList, - title: '', - contentComponent: 'user/containers/tab-content/social-action-list', - lazyRender: true - } -]; - -/** - * Helper fn to filter the personTabProperties using the ids. - * @param ids ids to filter - */ -export const getPersonTabPropertiesFor = (ids: Array): Array => - personTabProperties.filter((tab): boolean => ids.includes(tab.id)); diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/shared/index.ts b/datahub-web/@datahub/data-models/addon/constants/entity/shared/index.ts deleted file mode 100644 index 5c9c4d0bf7f54..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/shared/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Error message for statics, methods or properties expected but not implemented in concrete class -export const NotImplementedError = 'Not Implemented'; diff --git a/datahub-web/@datahub/data-models/addon/constants/entity/shared/tabs.ts b/datahub-web/@datahub/data-models/addon/constants/entity/shared/tabs.ts deleted file mode 100644 index 2a685214b287c..0000000000000 --- a/datahub-web/@datahub/data-models/addon/constants/entity/shared/tabs.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * Lists the tabs shared globally - * @export - * @enum {string} - */ -export enum CommonTab { - Wiki = 'wiki' -} - -/** - * List the tab properties of shared tabs - */ -export const CommonTabProperties: Array = [ - { - id: CommonTab.Wiki, - title: 'Docs', - contentComponent: 'institutional-memory/containers/tab', - lazyRender: true - } -]; diff --git a/datahub-web/@datahub/data-models/addon/entity/base-entity.ts b/datahub-web/@datahub/data-models/addon/entity/base-entity.ts deleted file mode 100644 index 577ed2e1fa1cb..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/base-entity.ts +++ /dev/null @@ -1,655 +0,0 @@ -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { Snapshot } from '@datahub/metadata-types/types/metadata/snapshot'; -import { computed, set } from '@ember/object'; -import { MetadataAspect } from '@datahub/metadata-types/types/metadata/aspect'; -import { getMetadataAspect } from '@datahub/metadata-types/constants/metadata/aspect'; -import { map, mapBy } from '@ember/object/computed'; -import { - IEntityLinkAttrs, - EntityLinkNode, - IBrowsePath, - IEntityLinkAttrsWithCount, - AppRoute, - EntityPageRoute -} from '@datahub/data-models/types/entity/shared'; -import { NotImplementedError } from '@datahub/data-models/constants/entity/shared/index'; -import { readBrowse, readBrowsePath } from '@datahub/data-models/api/browse'; -import { getFacetDefaultValueForEntity } from '@datahub/data-models/entity/utils/facets'; -import { InstitutionalMemory } from '@datahub/data-models/models/aspects/institutional-memory'; -import { IBaseEntity } from '@datahub/metadata-types/types/entity'; -import { readEntity } from '@datahub/data-models/api/entity'; -import { relationship } from '@datahub/data-models/relationships/decorator'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { SocialAction } from '@datahub/data-models/constants/entity/person/social-actions'; -import { - readLikesForEntity, - addLikeForEntity, - removeLikeForEntity, - readFollowsForEntity, - addFollowForEntity, - removeFollowForEntity -} from '@datahub/data-models/api/common/social-actions'; -import { DataModelName } from '@datahub/data-models/constants/entity'; -import { getDefaultIfNotFoundError } from '@datahub/utils/api/error'; -import { noop } from 'lodash-es'; -import { aspect, setAspect } from '@datahub/data-models/entity/utils/aspects'; - -/** - * Options for get category method - */ -interface IGetCategoryOptions { - // Page number to fetch from BE starting from 0 - page?: number; - // number of items per page that the BE should return - count?: number; -} - -/** - * Parameters for the BaseEntity static method, getLinkForEntity - * @interface IGetLinkForEntityParams - */ -interface IGetLinkForEntityParams { - // The display text for the generated entity link, not related to BaseEntity['displayName'] - displayName: string; - // The URN for the specific entity instance - entityUrn: string; - // Optional text for the title attribute in the consuming anchor element - title?: string; -} - -/** - * Interfaces and abstract classes define the "instance side" of a type / class, - * therefore ts will only check the instance side - * To check the static side / constructor, the interface should define the constructor, then static properties - * - * statics is a generic ClassDecorator that checks the static side T of the decorated class - * @template T {T extends new (...args: Array) => void} constrains T to constructor interfaces - * @type {() => ClassDecorator} - */ -export const statics = ) => void>(): ((c: T) => void) => noop; - -/** - * Defines the interface for the static side or constructor of a class that extends BaseEntity - * @export - * @interface IBaseEntityStatics - * @template T constrained by the IBaseEntity interface, the entity interface that BaseEntity subclass will encapsulate - */ -export interface IBaseEntityStatics { - new (urn: string): BaseEntity; - - /** - * Properties that guide the rendering of ui elements and features in the host application - * @readonly - * @static - */ - renderProps: IEntityRenderProps; - - /** - * Statically accessible name of the concrete DataModel type - * @type {string} - */ - displayName: string; - - /** - * Queries the entity's endpoint to retrieve the list of nodes that are contained in the hierarchy - * @param {(Array)} args list of string values corresponding to the different hierarchical categories for the entity - */ - readCategories(args: Array, options?: IGetCategoryOptions): Promise; - - /** - * Queries the batch GET endpoint for snapshots for the supplied urns - */ - readSnapshots(_urns: Array): Promise>; - - /** - * Builds a search query keyword from a list of segments for the related DataModelEntity - * @memberof IBaseEntityStatics - */ - getQueryForHierarchySegments(_segments: Array): string; - - /** - * Gets the entity link for the current entity - */ - getLinkForEntity(params: { entityUrn: string; displayName: string }): IEntityLinkAttrs | void; -} - -/** - * Check if entity extends baseEntity by checking on the urn property - */ -export const isBaseEntity = (entity?: T | IBaseEntity): entity is IBaseEntity => - (entity && entity.hasOwnProperty('urn')) || false; - -/** - * This defines the base attributes and methods for the instance side of an entity data model - * i.e. the public interface for an entity object - * Shared methods and default properties may be defined on this class - * Properties intended to be implemented by the concrete entity, and shared methods that - * need to be delegated to the concrete entity should be declared here - * @export - * @abstract - * @class BaseEntity - * @template T the entity interface that the entity model (subclass) encapsulates - */ -export abstract class BaseEntity { - /** - * A reference to the derived concrete entity instance - * @type {T} - */ - entity?: T; - - /** - * TODO META-10097: We should be consistent with entity and use a generic type - * References the Snapshot for the related Entity - * @type {Snapshot} - */ - snapshot?: S; - - /** - * References the wiki related documents and objects related to this entity - */ - _institutionalMemories?: Array; - - /** - * Getter and setter for institutional memories - */ - @computed('_institutionalMemories') - get institutionalMemories(): Array | undefined { - return this._institutionalMemories; - } - - set institutionalMemories(institutionalMemories: Array | undefined) { - set(this, '_institutionalMemories', institutionalMemories); - } - - /** - * Hook for custom fetching operations after entity is created - */ - onAfterCreate(): Promise { - return Promise.resolve(); - } - - /** - * A dictionary of host Ember application routes which can be used as route arguments to the link-to helper - */ - get hostRoutes(): Record { - return { dataSourceRoute: 'datasets.dataset' }; - } - - /** - * Indicates whether the entity has been removed (soft deletion), reads from reified entity, - * otherwise defaults to false - * @readonly - * @type {boolean} - * @memberof BaseEntity - */ - @computed('entity') - get removed(): boolean { - return isBaseEntity(this.entity) ? this.entity.removed : false; - } - - /** - * Selects the list of owners from the ownership aspect attribute of the entity - * All entities have an ownership aspect have this property exists on the base and is inherited - * - * This provides the full Owner objects in a list, if what is needed is just the list of - * owner urns, the macro value ownerUrns provides that immediately - * @readonly - * @type {Array} - * @memberof BaseEntity - */ - @computed('snapshot') - get owners(): Array { - const ownership = getMetadataAspect(this.snapshot as Snapshot)( - 'com.linkedin.common.Ownership' - ) as MetadataAspect['com.linkedin.common.Ownership']; - - return ownership ? ownership.owners : []; - } - - /** - * Extracts the owner urns into a list from each IOwner instance - * @readonly - * @type {Array} - * @memberof BaseEntity - */ - @map('owners.[]', ({ owner }: Com.Linkedin.Common.Owner): string => owner) - ownerUrns!: Array; - - /** - * Class instance JSON serialization does not by default serialize non-enumerable property names - * This provides a custom toJSON method to ensure that displayName attribute is present when serialized, - * allowing correct de-serialization back to source instance / DataModelEntity type - */ - toJSON(): this { - return { ...this, displayName: this.displayName }; - } - - /** - * Base Ember route reference for entity pages - * @static - */ - static entityBaseRoute: EntityPageRoute = 'entity-type.urn'; - - /** - * Base entity display name - * @static - */ - static displayName: string; - - /** - * Human friendly string alias for the entity type e.g. Dashboard, Users - * @type {string} - */ - get displayName(): string { - // Implemented in concrete class - throw new Error(NotImplementedError); - } - - /** - * Workaround to get the current static instance - * This makes sense if you want to get a static property only - * implemented in a subclass, therefore, the same static - * class is needed - */ - get staticInstance(): IBaseEntityStatics { - return (this.constructor as unknown) as IBaseEntityStatics; - } - - /** - * Will read the current path for an entity - */ - get readPath(): Promise> { - const { urn, staticInstance } = this; - const entityName = staticInstance.renderProps.apiEntityName; - return readBrowsePath({ - type: entityName, - urn - }).then( - (paths): Array => { - return paths && paths.length > 0 ? paths[0].split('/').filter(Boolean) : []; - } - ); - } - - /** - * Asynchronously resolves with an instance of T - * @readonly - * @type {Promise} - */ - get readEntity(): Promise | Promise { - const { entityPage } = this.staticInstance.renderProps; - if (entityPage && entityPage.apiRouteName) { - return readEntity(this.urn, entityPage.apiRouteName); - } - // Implemented in concrete class, if it exists for the entity - throw new Error(NotImplementedError); - } - - /** - * Asynchronously resolves with the Snapshot for the entity - * This should be implemented on the concrete class and is enforced to be available with the - * abstract modifier - * - * Backend is moving away from snapshot api. UI won't enforce implementing this fn. - * @readonly - * @type {Promise} - */ - get readSnapshot(): Promise | Promise { - // Implemented in concrete class, if it exists for the entity - return Promise.resolve(undefined); - } - - /** - * Every entity should have a way to return the name. - * This can be used for search results or entity header - */ - get name(): string { - // Implemented in concrete class - throw new Error(NotImplementedError); - } - - /** - * Returns a link for the entity page for this entity - */ - get entityLink(): IEntityLinkAttrs | void { - return this.staticInstance.getLinkForEntity({ - entityUrn: this.urn, - displayName: this.name - }); - } - - /** - * Constructs a link to a specific entity tab using the supplied tab name - * @param {string} tabName the name of the tab to generate a link for - */ - entityTabLink(tabName: string): this['entityLink'] { - const { entityLink } = this; - - if (entityLink) { - const { - link, - link: { model = [], route } - } = entityLink; - - return { ...entityLink, link: { ...link, route: `${route}.tab` as AppRoute, model: [...model, tabName] } }; - } - - return entityLink; - } - - /** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * Implemented as a getter to ensure that reads are idempotent - */ - static get renderProps(): IEntityRenderProps { - throw new Error(NotImplementedError); - } - - /** - * Queries the entity's endpoint to retrieve the list of nodes that are contained in the hierarchy - * @param {(Array)} args list of string values corresponding to the different hierarchical categories for the entity - */ - static async readCategories( - segments: Array, - { page = 0, count = 100 }: IGetCategoryOptions = {} - ): Promise { - const { browse } = this.renderProps; - if (browse) { - const cleanSegments: Array = segments.filter(Boolean) as Array; - const defaultFacets: Record> = browse.attributes - ? getFacetDefaultValueForEntity(browse.attributes) - : {}; - const { elements, metadata, total } = await readBrowse({ - type: this.renderProps.apiEntityName, - path: cleanSegments.length > 0 ? `/${cleanSegments.join('/')}` : '', - count, - start: page * count, - ...defaultFacets - }); - // List of entities - // Create links for the entities for the current category - const entityLinks: Array = elements - .map((element): IEntityLinkAttrs | void => - this.getLinkForEntity({ - displayName: element.name, - entityUrn: element.urn - }) - ) - .filter((link): boolean => Boolean(link)) as Array; // filter removed undefined - - // List of folders - // For this category will append and create a link for the next category (the one that you can potentially go) - const categoryLinks: Array = metadata.groups.map( - (group): IEntityLinkAttrsWithCount => { - return this.getLinkForCategory({ - segments: [...cleanSegments, group.name], - count: group.count, - displayName: group.name - }); - } - ); - return { - segments, - title: segments[segments.length - 1] || this.displayName, - totalNumEntities: metadata.totalNumEntities, - entitiesPaginationCount: total, - entities: entityLinks, - groups: categoryLinks - }; - } - - // if no browse available return empty - return { - segments: [], - title: '', - totalNumEntities: 0, - entitiesPaginationCount: 0, - entities: [], - groups: [] - }; - } - - /** - * Will generate a link for an entity based on a displayName and a entityUrn - * displayName attribute is used in the anchor tag as a the text representation if provided, is unrelated to BaseEntity['displayName'] - * optionally, a title attribute can be provided to generate the consuming anchor element title - * @static - * @param {IGetLinkForEntityParams} params parameters for generating the link object matching the IEntityLinkAttrs interface - */ - static getLinkForEntity(params: IGetLinkForEntityParams): IEntityLinkAttrs | void { - const entityPage = this.renderProps.entityPage; - const { displayName = this.displayName, entityUrn, title = displayName } = params; - - if (entityPage && entityUrn) { - const model = entityPage.route === 'entity-type.urn' ? [this.displayName, entityUrn] : [entityUrn]; - - const link: EntityLinkNode = { - route: entityPage.route, - text: displayName, - title, - model - }; - - return { - entity: this.displayName, - link - }; - } - } - - /** - * Generate link for category given segments, displayName and count as optional - */ - static getLinkForCategory(params: { - segments: Array; - displayName: string; - count: number; - }): IEntityLinkAttrsWithCount { - const { segments, count, displayName } = params; - const link: EntityLinkNode<{ path: string }> = { - title: displayName || '', - text: displayName || segments[0] || '', - route: 'browse.entity', - model: [this.displayName], - queryParams: { path: segments.filter(Boolean).join('/') } - }; - return { - link, - entity: this.displayName, - count - }; - } - - /** - * Reads the snapshots for the entity - * @static - */ - static readSnapshots(_urns: Array): Promise> { - throw new Error(NotImplementedError); - } - - /** - * Builds a search query keyword from a list of segments - * @static - * @param {Array} [segments=[]] the list of hierarchy segments to generate the keyword for - */ - static getQueryForHierarchySegments(segments: Array = []): string { - return `browsePaths:\\/${segments.join('\\/').replace(/\s/gi, '\\ ')}`; - } - - // TODO META-12149 this should be part of an Aspect. This fns can't live under BaseEntity as - // then we would have a circular dependency: - // BaseEntity -> InstitutionalMemory -> PersonEntity -> BaseEntity - /** - * Retrieves a list of wiki documents related to the particular entity instance - * @readonly - */ - readInstitutionalMemory(): Promise> { - throw new Error(NotImplementedError); - } - - // TODO META-12149 this should be part of an Aspect. This fns can't live under BaseEntity as - // then we would have a circular dependency: - // BaseEntity -> InstitutionalMemory -> PersonEntity -> BaseEntity - /** - * Writes a list of wiki documents related to a particular entity instance to the api layer - */ - writeInstitutionalMemory(): Promise { - throw new Error(NotImplementedError); - } - - /** - * For social features, we flag whether or not the entity is opted into social actions - * @default true - */ - allowedSocialActions: Record = { - like: true, - follow: true, - save: true - }; - - /** - * For this particular entity, get the list of like actions related to the entity, - * effectively getting the number of people that have upvoted the entity - */ - async readLikes(): Promise { - if (this.allowedSocialActions.like) { - const likes = await readLikesForEntity(this.displayName as DataModelName, this.urn).catch( - getDefaultIfNotFoundError({ actions: [] }) - ); - setAspect(this, 'likes', likes); - } - } - - /** - * For this particular entity, add the user's like action to the entity - */ - async addLike(): Promise { - if (this.allowedSocialActions.like) { - const updatedLikes = await addLikeForEntity(this.displayName as DataModelName, this.urn); - - setAspect(this, 'likes', updatedLikes); - } - } - - /** - * For this particular entity, remove the user's like action from the entity - */ - async removeLike(): Promise { - if (this.allowedSocialActions.like) { - const updatedLikes = await removeLikeForEntity(this.displayName as DataModelName, this.urn); - - setAspect(this, 'likes', updatedLikes); - } - } - - /** - * For this particular entity, get the list of follow actions related to the entity, - * effectively getting the number of people that have subscribed to notifications for metadata - * changes in the entity - */ - async readFollows(): Promise { - if (this.allowedSocialActions.follow) { - const follow = await readFollowsForEntity(this.displayName as DataModelName, this.urn).catch( - getDefaultIfNotFoundError({ followers: [] }) - ); - setAspect(this, 'follow', follow); - } - } - - /** - * For this particular entity, add the user's follow action to the entity, subscribing them to - * updates for metadata changes - */ - async addFollow(): Promise { - if (this.allowedSocialActions.follow) { - const follow = await addFollowForEntity(this.displayName as DataModelName, this.urn); - setAspect(this, 'follow', follow); - } - } - - /** - * For this particular entity, remove the user's follow action from the entity, unsubscribing - * them from changes - */ - async removeFollow(): Promise { - if (this.allowedSocialActions.follow) { - const follow = await removeFollowForEntity(this.displayName as DataModelName, this.urn); - setAspect(this, 'follow', follow); - } - } - /** - * Likes aspect that will reference to `entity.likes` or to the value passed to - * setAspect('com.linkedin.common.Likes') - */ - @aspect('com.linkedin.common.Likes') - likes!: Com.Linkedin.Common.Likes; - - /** - * Follow aspect that will reference to `entity.follow` or to the value passed to - * setAspect('com.linkedin.common.Follow') - */ - @aspect('com.linkedin.common.Follow') - follow?: Com.Linkedin.Common.Follow; - - /** - * EntityTopUsage aspect will reference to `entity.entityTopUsage` or to the value passed to - * setAspect('com.linkedin.common.EntityTopUsage') - */ - @aspect('com.linkedin.common.EntityTopUsage') - entityTopUsage?: Com.Linkedin.Common.EntityTopUsage; - - /** - * For social features, we add the concept of "liking" an entity which implies that the data - * related to the entity is useful or of importance - */ - @mapBy('likes.actions', 'likedBy') - likedByUrns!: Array; - - /** - * For social features, we translate the urn ids of the people who have liked an entity into - * the related PersonEntity instances - */ - @relationship('people', 'likedByUrns') - likedBy!: Array; - - /** - * For social features, we add the concept of "following" an entity, which means that the person - * (current user) has opted into notifications of updates regarding this entity's metadata - */ - @computed('follow') - get followedByUrns(): Array { - const { follow } = this; - // corpUser || corpGroup is guaranteed to be a string as one of them MUST be defined, as - // dictated by our API interface - return (follow?.followers || []).map( - ({ follower: { corpGroup, corpUser } }): string => (corpUser || corpGroup) as string - ); - } - - /** - * For social features, we translate the urn ids of the people who have followed an entity into - * the related PersonEntity instances - */ - @relationship('people', 'followedByUrns') - followedBy!: Array; - - /** - * Creates an instance of BaseEntity concrete class - * @param {string} urn the urn for the entity being instantiated. urn is a parameter property - * @memberof BaseEntity - */ - constructor(readonly urn: string = '') {} -} - -/** - * Adding available aspects - */ -declare module '@datahub/data-models/entity/utils/aspects' { - export interface IAvailableAspects { - ['likes']?: Com.Linkedin.Common.Likes; - ['follow']?: Com.Linkedin.Common.Follow; - ['entityTopUsage']?: Com.Linkedin.Common.EntityTopUsage; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/data-construct-change-management/data-construct-change-management-entity.ts b/datahub-web/@datahub/data-models/addon/entity/data-construct-change-management/data-construct-change-management-entity.ts deleted file mode 100644 index 385cd1f5dcd69..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/data-construct-change-management/data-construct-change-management-entity.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { BaseEntity, statics, IBaseEntityStatics } from '@datahub/data-models/entity/base-entity'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * A Placeholder entity only meant to get search working ( i.e have a valid displayName, renderProps ) - * - * There is no intention to display an Entity page or utilize this as an aspect. - */ -@statics>() -export class DataConstructChangeManagementEntity extends BaseEntity< - Com.Linkedin.DataConstructChangeManagement.DataConstructChangeManagement -> { - /** - * Human friendly Identifier for the entity. - */ - static displayName: 'data-construct-change-management' = 'data-construct-change-management'; - - /** - * Default renderProps for changeManagement. - * We will not be dealing with entity pages for this entity. - */ - static get renderProps(): IEntityRenderProps { - return { - apiEntityName: 'dataConstructChangeManagement', - search: { - placeholder: '', - attributes: [], - isEnabled: false, - defaultAspects: [] - } - }; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/dataset-entity.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/dataset-entity.ts deleted file mode 100644 index 73fa041c8800a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/dataset-entity.ts +++ /dev/null @@ -1,371 +0,0 @@ -import { BaseEntity, IBaseEntityStatics, statics } from '@datahub/data-models/entity/base-entity'; -import { saveDatasetComplianceSuggestionFeedbackByUrn } from '@datahub/data-models/api/dataset/compliance'; -import { readDatasetSchema } from '@datahub/data-models/api/dataset/schema'; -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; -import { set, setProperties, computed } from '@ember/object'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { DatasetExportPolicy } from '@datahub/data-models/entity/dataset/modules/export-policy'; -import { DatasetPurgePolicy } from '@datahub/data-models/entity/dataset/modules/purge-policy'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { decodeUrn } from '@datahub/utils/validators/urn'; -import { IDataPlatform } from '@datahub/metadata-types/types/entity/dataset/platform'; -import { DatasetLineage } from '@datahub/data-models/entity/dataset/modules/lineage'; -import { readUpstreamDatasets } from '@datahub/data-models/api/dataset/lineage'; -import { DatasetLineageList } from '@datahub/metadata-types/types/entity/dataset/lineage'; -import { getRenderProps } from '@datahub/data-models/entity/dataset/render-props'; -import { NotImplementedError } from '@datahub/data-models/constants/entity/shared'; -import { every } from 'lodash-es'; -import DatasetComplianceSuggestion from '@datahub/data-models/entity/dataset/modules/compliance-suggestion'; -import { SuggestionIntent } from '@datahub/data-models/constants/entity/dataset/compliance-suggestions'; -import { FabricType } from '@datahub/metadata-types/constants/common/fabric-type'; -import { getDatasetUrnParts } from '@datahub/data-models/entity/dataset/utils/urn'; -import { readDataPlatforms } from '@datahub/data-models/api/dataset/platforms'; -import { getDefaultIfNotFoundError } from '@datahub/utils/api/error'; -import { Snapshot } from '@datahub/metadata-types/types/metadata/snapshot'; -import { oneWay, alias, reads } from '@ember/object/computed'; -import { IDatasetEntity } from '@datahub/metadata-types/types/entity/dataset/dataset-entity'; -import { readDatasetOwnersByUrn } from '@datahub/data-models/api/dataset/ownership'; -import { transformOwnersResponseIntoOwners } from '@datahub/data-models/entity/dataset/utils/owner'; -import { readInstitutionalMemory, writeInstitutionalMemory } from '@datahub/data-models/entity/institutional-memory'; -import { relationship } from '@datahub/data-models/relationships/decorator'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import titleize from '@nacho-ui/core/utils/strings/titleize'; - -/** - * Defines the data model for the Dataset entity. - */ -@statics>() -export class DatasetEntity extends BaseEntity { - /** - * The human friendly alias for Dataset entities - */ - static displayName: 'datasets' = 'datasets'; - - // TODO: [META-9120] This logic should not exist on the UI and is a temporary fix that will hopefully one day - // get changed and read from API level instead. Also it won't matter once we fully migrate to new compliance - /** - * Calculates whether or not to show this dataset compliance as inherited from parents based on the nature - * of the upstream releationships - * @param upstreams - representation of upstream lineage information. Typing can change if used in data-portal - */ - static hasInheritedCompliance(upstreams: Array = []): boolean { - if (!upstreams.length) { - return false; - } - // Rule 1: If all upstreams are transformed, then we don't want to show this as inherited compliance - const upstreamsAreAllTransformed: boolean = every( - upstreams, - (upstream): boolean => upstream.type === 'TRANSFORMED' - ); - return !upstreamsAreAllTransformed; - } - - /** - * There is no snapshot for datasets, returning undefined but - * implementing since, framework may call it - */ - get readSnapshot(): Promise | Promise { - return Promise.resolve(undefined); - } - - /** - * Additional hook to fetch the platforms needed for some operation in datasets - */ - async onAfterCreate(): Promise { - const dataPlatforms: Array = await readDataPlatforms(); - const currentDataPlatform = dataPlatforms.find((platform): boolean => platform.name === this.platform); - // Reads dataset owner information from the resolved ownership endpoint - const ownersResponse = await readDatasetOwnersByUrn(this.urn); - // Transforms the owners response into a more generic owners response and sets it on the entity - const owners = transformOwnersResponseIntoOwners(ownersResponse); - setProperties(this, { owners, currentDataPlatform }); - } - - get displayName(): 'datasets' { - return DatasetEntity.displayName; - } - - /** - * Discriminant when included in a tagged Entity union - */ - static kind = 'DatasetEntity'; - - get kind(): string { - return DatasetEntity.kind; - } - - /** - * Shows the urn as an unencoded value - */ - get rawUrn(): string { - return decodeUrn(this.urn); - } - - /** - * Returns the fabric/environment for this particular dataset entity - */ - get fabric(): FabricType | undefined { - throw new Error(NotImplementedError); - } - - /** - * Reads the snapshots for a list of Dataset urns - * @static - */ - static readSnapshots(_urns: Array): Promise> { - throw new Error(NotImplementedError); - } - - /** - * Holds the classified data retrieved from the API layer for the schema information as a DatasetSchema - * class - * @type {DatasetSchema} - */ - schema?: DatasetSchema; - - /** - * Holds the classified data retrieved from the API layer for the export policy as a DatasetExportPolicy - * class - * @type {DatasetExportPolicy} - */ - exportPolicy?: DatasetExportPolicy; - - /** - * Holds the classified data retrieved from the API layer for the purge policy as a DatasetPurgePOlicy - * class - * @type {DatasetPurgePolicy} - */ - purgePolicy?: DatasetPurgePolicy; - - /** - * Holds the classified data retrieved from the API layer for the upstream datasets list as an array of - * DatasetLineage classes - * @type {Array} - */ - upstreams?: Array; - - /** - * Allows us to, instead of relying on the actual lineage objects for fetching the upstream datasets, create a - * connection to the raw information within the instantiated lineage piece to form a relationship to other dataset - * entities - * @note WARNING - do not use this property directly. Because of the difference between internal and open source - * models, this can create unintentional issues if relying on the underlying types directly - */ - get _upstreamsRawDatasets(): Array { - const { upstreams = [] } = this; - return upstreams.map((upstream): DatasetLineage['_rawDatasetData'] => upstream._rawDatasetData); - } - - /** - * Relates to the upstream dataset entities - */ - @relationship('datasets', '_upstreamsRawDatasets') - upstreamDatasets!: Array; - - /** - * Whether or not the dataset has been deprecated - */ - @alias('entity.deprecated') - deprecated?: boolean; - - /** - * Note attached to the deprecation process for this dataset - */ - @alias('entity.deprecationNote') - deprecationNote?: string; - - /** - * Timestamp for when the dataset was deprecated - */ - @alias('entity.decommissionTime') - decommissionTime?: number; - - /** - * Last timestamp for the modification of this dataset - */ - @oneWay('entity.modifiedTime') - modifiedTime?: number; - - /** - * Whether or not the entity has been removed. - * Note: This overrides the BaseEntity implementation since DatasetEntity has a different behavior than - * other entities - */ - @oneWay('entity.removed') - removed!: boolean; - - /** - * Description for the dataset that contains more information about the nature of the data or metadata - */ - @oneWay('entity.description') - description?: string; - - /** - * References the value of the healthScore from the underlying IDatasetEntity object - * used in search results where the Health Score is shown as an attribute - */ - @reads('entity.health.score') - healthScore?: number; - - /** - * For open source support only, creates a reference to the customProperties, which can be found as an aspect of the - * dataset entity. This helps to display various properties that may be specific to certain datasets and allows for - * flexible display - */ - @oneWay('entity.customProperties') - customProperties?: Com.Linkedin.Dataset.DatasetProperties['customProperties']; - - /** - * Computes the custom dataset properties as a list of label and values rather than object mapping - */ - @computed('customProperties') - get customDatasetProperties(): Array<{ label: string; value: string }> | void { - const { customProperties } = this; - if (customProperties) { - return Object.keys(customProperties).map((key): { label: string; value: string } => ({ - label: key, - value: customProperties[key] - })); - } - } - - /** - * Platform native type, for example it can be TABLE or VIEW for Hive. - */ - @reads('entity.platformNativeType') - platformNativeType?: Com.Linkedin.Dataset.Dataset['platformNativeType']; - - /** - * Combined platform and native type, for example: Hive Table - */ - @computed('platformNativeType', 'platform') - get platformAndNativeType(): string { - return titleize(`${this.platform} ${this.platformNativeType?.toLocaleLowerCase()}`); - } - /** - * gets the dataorigin field (needed from search) - * from the urn - */ - @computed('urn') - get dataorigin(): FabricType | undefined { - return getDatasetUrnParts(this.urn).fabric; - } - - /** - * Reference to the data entity, is the data platform to which the dataset belongs - */ - @computed('entity.platform', 'urn') - get platform(): DatasetPlatform | undefined { - const { urn } = this; - const parts = getDatasetUrnParts(urn); - // TODO META-12937: Due to inconsistencies we can't rely on platform field - // const platform = (entity && entity.platform) || parts.platform; - const platform = parts.platform; - - // New API return platform with urn:li:dataPlatform:, in order to - // make it compatible, we manually remove that part. - const platformName = platform?.replace('urn:li:dataPlatform:', ''); - - return platformName as DatasetPlatform | undefined; - } - - /** - * Reference to the data entity's native name, should not be something that is editable but gives us a - * more human readable form for the dataset vs the urn - */ - get name(): string { - const { entity } = this; - const name = (entity && entity.name) || ''; - return name || getDatasetUrnParts(this.urn).prefix || this.urn; - } - - /** - * Reference to the constructed data platform once it is fetched from api - */ - currentDataPlatform?: IDataPlatform; - - /** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * Implemented as a getter to ensure that reads are idempotent - * @readonly - * @static - * @type {IEntityRenderProps} - */ - static get renderProps(): IEntityRenderProps { - return getRenderProps(); - } - - /** - * Is a promise that retrieves the compliance information (if it doesn't exist yet) and returns whether or not - * the dataset contains personally identifiable information - */ - readPiiStatus(): Promise { - return Promise.resolve().then(() => false); - } - - /** - * Is a promise that retrieves the schema information and returns and sets the schema information in a - * thennable format - */ - async readSchema(): Promise { - const schema = await readDatasetSchema(this.urn); - const datasetSchema = new DatasetSchema(schema); - set(this, 'schema', datasetSchema); - return datasetSchema; - } - - /** - * Asynchronously retrieves the upstream datasets for this dataset and assigns to the upstreams property - */ - async readUpstreams(): Promise> { - const lineageList = await readUpstreamDatasets(this.urn).catch( - // Handling for an expected possibility of receiving a 404 error for this upstream dataset response, which - // would require us to replace error with just an empty list - getDefaultIfNotFoundError([] as DatasetLineageList) - ); - - const upstreams = lineageList.map((lineage): DatasetLineage => new DatasetLineage(lineage)); - set(this, 'upstreams', upstreams); - return upstreams; - } - - /** - * Processes a save request to save the suggestion feedback given by the user, or inferred from the user action. - * Since this is a background task, we do not await for a response from the server - * @param suggestion - suggestion for which we are saving the feedback - * @param feedback - whether the user has accepted or rejected the suggestion as accurate - */ - saveSuggestionFeedback(suggestion: DatasetComplianceSuggestion, feedback: SuggestionIntent): void { - const { uid } = suggestion; - saveDatasetComplianceSuggestionFeedbackByUrn(this.urn, uid, feedback); - } - - /** - * TODO META-11674 - * Interim method until IDatasetEntity is removed - */ - get legacyDataset(): IDatasetEntity | void { - if (this.entity) { - return (this.entity as unknown) as IDatasetEntity; - } - } - - // TODO META-12149 this should be part of an Aspect. This fns can't live under BaseEntity as - // then we would have a circular dependency: - // BaseEntity -> InstitutionalMemory -> PersonEntity -> BaseEntity - readInstitutionalMemory = readInstitutionalMemory; - writeInstitutionalMemory = writeInstitutionalMemory; - - constructor(readonly urn: string, entityData?: Com.Linkedin.Dataset.Dataset) { - super(urn); - // Sometimes we do not need readEntity to get this information as it was already provided by another entity - // and we can just instantiate the class with it - if (entityData) { - set(this, 'entity', entityData); - } - } - - @relationship('people', 'ownerUrns') - datasetOwners?: Array; -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/fields.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/fields.ts deleted file mode 100644 index 7675b4fc1ff79..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/fields.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { ISearchEntityRenderProps } from '@datahub/data-models/types/search/search-entity-render-prop'; - -/** - * Fields for dataset - */ -export const fields: Array = [ - { - showInAutoCompletion: true, - fieldName: 'dataorigin', - showInResultsPreview: true, - displayName: 'Data Origin', - showInFacets: true, - desc: 'The data origin of the dataset', - example: 'dataorigin:PROD', - headerComponent: { - name: 'dynamic-components/header', - options: { - className: 'search-facet__dynamic-header', - title: 'Data Origin', - contentComponents: [ - { - name: 'dynamic-components/composed/user-assistance/help-tooltip-with-link', - options: { - text: 'The environment where the source data lives and the metadata is extracted from', - wikiKey: 'terminologies', - wikiLinkText: 'Learn more' - } - } - ] - } - } - }, - { - showInAutoCompletion: true, - fieldName: 'name', - showInResultsPreview: false, - displayName: 'name', - showInFacets: false, - desc: 'The name of the dataset', - example: 'name:TRACKING.PageViewEvent' - }, - { - showInAutoCompletion: true, - fieldName: 'owners', - showInResultsPreview: true, - displayName: 'owners', - showInFacets: false, - desc: 'The confirmed owners for the dataset', - example: 'owners:jweiner' - }, - { - showInAutoCompletion: true, - fieldName: 'platform', - showInResultsPreview: true, - displayName: 'Platform', - showInFacets: true, - desc: 'The platform of the dataset', - example: 'platform:kafka' - }, - { - showInAutoCompletion: true, - fieldName: 'fieldPaths', - showInResultsPreview: false, - displayName: 'fieldPaths', - showInFacets: true, - desc: 'Fields of the dataset', - example: 'fieldPaths:field1' - }, - { - showInAutoCompletion: false, - fieldName: 'healthScore', - showInResultsPreview: true, - displayName: 'Health', - showInFacets: false, - desc: 'The health score of the dataset which is a signal for the quality of the dataset', - example: 'N/A', - component: { - name: 'health/search-score' - } - } -]; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/base.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/base.ts deleted file mode 100644 index 9863a64fe8441..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/base.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { IMetadataType } from '@datahub/data-models/types/entity/validators'; -import { every, difference } from 'lodash-es'; -import { typeOf } from '@ember/utils'; -import { isObject } from '@datahub/utils/validators/object'; - -/** - * Extracts the type key and the pattern string from the string mapping into a tuple pair - * @param {IMetadataType} metadataType - * @return {[string , (string | Array)]} - */ -const typePatternMap = (metadataType: IMetadataType): [string, string | Array] => [ - metadataType['@name'], - metadataType['@type'] -]; - -/** - * Checks that a value type matches an expected pattern string - * @param {*} value the value to check - * @param {string | Array} expectedType the pattern string to match against - * @returns {boolean} - */ -const isValueEquiv = (value: unknown, expectedType: string | Array): true => { - const valueType = typeOf(value); - const isValueOfExpectedType = expectedType.includes(valueType); - - if (!isValueOfExpectedType) { - throw new Error(`Expected ${value} to be of type(s) ${expectedType}, got ${valueType}`); - } - - return isValueOfExpectedType; -}; - -/** - * Returns a iteratee bound to an object that checks that a key matches the expected value in the typeMap - * @param {Record} object the object with keys to check - * @return {(metadataType: IMetadataType) => boolean} - */ -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -const keyValueHasMatch = (object: Record) => (metadataType: IMetadataType): boolean => { - const [name, type] = typePatternMap(metadataType); - const value = object[name]; - const isRootValueEquiv = object.hasOwnProperty(name) && isValueEquiv(value, type); - const innerType = metadataType['@props']; - - if (!isRootValueEquiv) { - throw new Error(`Expected "${name}" to be a key on object with the identifierField: "${object.identifierField}`); - } - - if (type.includes('object') && isObject(value)) { - // recurse on object properties - return isRootValueEquiv && keysEquiv(value, innerType as Array); // eslint-disable-line @typescript-eslint/no-use-before-define - } - - if (type.includes('array') && Array.isArray(value)) { - const { length } = value; - - if (!length) { - throw new Error(`Expected array for ${name} to not be empty`); - } - - return ( - // recursively reduce on array elements - // ensure the array contains at least on element - isRootValueEquiv && - length > 0 && - value.reduce( - // eslint-disable-next-line @typescript-eslint/no-use-before-define - (isEquiv: boolean, value) => isEquiv && keysEquiv(value, innerType as Array), - isRootValueEquiv - ) - ); - } - - return isRootValueEquiv; -}; - -/** - * Ensures that the keys on the supplied object are equivalent to the names in the type definition list - * @param {Record} object - * @param {Array} typeMaps - * @return {boolean} - * @throws {Error} if object keys do not match type @names - */ -const keysMatchNames = (object: Record, typeMaps: Array): true => { - const objectKeys = Object.keys(object).sort(); - const typeKeys = typeMaps.map((typeMap: IMetadataType) => typeMap['@name']).sort(); - const objectKeysSerialized = objectKeys.toString(); - const typeKeysSerialized = typeKeys.toString(); - const match = objectKeysSerialized === typeKeysSerialized; - - if (!match) { - throw new Error( - `Expected attributes ${typeKeys.join(', ')} on object. Found additional attributes ${difference( - objectKeys, - typeKeys - ).join(', ')}` - ); - } - - return match; -}; - -/** - * Checks each key on an object matches the expected types in the typeMap - * @param {object} object the object with keys to check - * @param {Array} typeMaps the colon delimited type string - * @returns {boolean} - */ -// This object value is based on parsed user input and can truly take on any value -export const keysEquiv = (object: {}, typeMaps: Array): boolean => - every(typeMaps, keyValueHasMatch(object)) && keysMatchNames(object, typeMaps); diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/analyze-diff.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/analyze-diff.ts deleted file mode 100644 index 50ecfbd59103a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/analyze-diff.ts +++ /dev/null @@ -1,151 +0,0 @@ -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { groupBy, uniq } from 'lodash-es'; -import { annotationsMatchByRelevantKeys } from '@datahub/data-models/entity/dataset/helpers/validators/compliance/comparators'; - -/** - * Options for the type of diff we are defining, whether that diff type is a new item added (create), a modification - * of an existing one (update) or a removal of one (delete) - */ -export enum DiffType { - CREATE = 'create', - UPDATE = 'update', - DELETE = 'delete' -} - -/** - * Represents a single diff item in a list for - */ -export interface IDiffValue { - type: DiffType; - annotation: DatasetComplianceAnnotation; -} - -/** - * Expected object to describe the accumulated diffs for a single field in the compliance annotations - */ -export interface IFieldAnnotationDiff { - identifierField: string; - // Old annotations that are not deleted for the field are listed in oldValues, however, - // this will include mutations since they are also a deletion of an old annotation and replacement with a new annotation - // This can be refactored to address only deletions exclusive of mutations, downstream consumers will have to be updated as well - oldValues: Array; - // New annotations for the field are listed in newValues, however, - // this is more encompassing list that will also include mutations since they are technically new values - // This can be refactored to address only new additions exclusive of mutations, downstream consumers will have to be updated as well - newValues: Array; - // Mutations represent updates to existing annotations for a given field, type will be update - mutations: Array; -} - -/** - * Creates an IFieldAnnotationDiff object for a particular given field. This will operate on the following assumptions: - * Rule 1: If there are no annotations for a given field in the original, then everything that the user has done is - * presumed to be a create operation - * Rule 2: If there are no annotations for a given field in the working copy, then everything that the user has done is - * presumed to be a delete operation - * Rule 3: The more complicated rule, in a more complex scenario we might decide to detect what annotations are considered - * updates and what are adds and deletes, but we are seeking a more simplified version where anything in the original that - * is not in the working is a delete and everything in the working that is not in the original is an add. This means we - * need to determine fields that are diffs by removing fields that exist on both sides - * @param {string} field - name of the field we are diffing for - * @param {Array} originalAnnotations - the original annotations for that field - * @param {Array} annotationsBeingUpdated - the working copy of annotations for that field after user changes - */ -const createAnnotationDiffForField = ( - field: string, - originalAnnotations: Array = [], - annotationsBeingUpdated: Array = [] -): IFieldAnnotationDiff => { - // Rule 1: If there are no original annotations for a certain field, then we know that anything in the - // working copy is a CREATE type diff - if (!originalAnnotations.length) { - return { - identifierField: field, - oldValues: [], - newValues: annotationsBeingUpdated.map(tag => ({ type: DiffType.CREATE, annotation: tag })), - mutations: [] - }; - } - - // Rule 2: On the opposite end, if there are no working copy annotations for a particular field, then we - // know that everything in the original was a delete for that field - if (!annotationsBeingUpdated.length) { - return { - identifierField: field, - oldValues: originalAnnotations.map(tag => ({ type: DiffType.DELETE, annotation: tag })), - newValues: [], - mutations: [] - }; - } - - // If both original and working copy annotations exist for a field, then there could be create, update, - // or delete operations involved, or a combination of these - // In the case of compliance annotations, we will call all diffs found in the original but not the - // working copy are DELETE and all diffs found in the working copy but not original are CREATE - // Any tag that is found in both copies is considered no diff - - /** - * Creates a filter predicate that finds an annotation that is not present in the subsequently supplied - * list of annotations using the function annotationsMatchByRelevantKeys for equality evaluation - * @param {Array} annotations the list of annotations to find where the relevant keys are matched i.e. annotationsMatchByRelevantKeys returns true for, but not wanted in the final list - */ - const annotationsNotFoundIn = ( - annotations: Array - ): ((needle: DatasetComplianceAnnotation) => boolean) => (needle: DatasetComplianceAnnotation): boolean => - !annotations.find(annotation => annotationsMatchByRelevantKeys(annotation, needle)); - - const updatedAnnotationsOnly = annotationsBeingUpdated.filter(annotationsNotFoundIn(originalAnnotations)); - const originalAnnotationsOnly = originalAnnotations.filter(annotationsNotFoundIn(annotationsBeingUpdated)); - - // The current implementation will consider a mutation exclusively as a DiffType.DELETE & DiffType.CREATE, - // 'mutations' provides an intersect between the - return { - identifierField: field, - oldValues: originalAnnotationsOnly.map(tag => ({ type: DiffType.DELETE, annotation: tag })), - newValues: updatedAnnotationsOnly.map(tag => ({ type: DiffType.CREATE, annotation: tag })), - mutations: annotationsBeingUpdated - .filter((annotation): boolean => annotation.hasChangedFromSavedAnnotation) - .map((annotation): IDiffValue => ({ type: DiffType.UPDATE, annotation })) - }; -}; - -/** - * Taking what we original fetched from the API and the working copy (accumulated user changes), we calculate a list of - * of diff changes for every applicable field. This list can be used to power things such as any summary of changes report - * for the user to see. - * @param {Array} original - original retrieved API data for the compliance info annotations that - * has been pre-converted into the compliance annotations classified object so that we can compare apples to apples - * @param {Array, - workingCopy: Array -): Array => { - // Groups the original annotations list by identifier field - const originalAnnotationsGroupedByIdentifierField = groupBy(original, item => item.identifierField); - // Groups the working copy annotations by identifier field. This way we can organize how we parse - // through to find diffs - const workingCopyGroupedByIdentifierField = groupBy(workingCopy, item => item.identifierField); - - // Create the list of identifier fields from each copy and then create a unique list of field names - const originalAnnotationsFieldsList = Object.keys(originalAnnotationsGroupedByIdentifierField); - const workingCopyFieldsList = Object.keys(workingCopyGroupedByIdentifierField); - const uniqueFieldsList = uniq(originalAnnotationsFieldsList.concat(workingCopyFieldsList)); - - // We use the unique field list to iterate through and seek out what kind of diffs exist for each field, if any - const diffListPerField: Array = []; - return uniqueFieldsList.reduce((diffList, field) => { - const diffs = createAnnotationDiffForField( - field, - originalAnnotationsGroupedByIdentifierField[field], - workingCopyGroupedByIdentifierField[field] - ); - // We only add something if there are new values or old values to be compared. Otherwise, there - // is no sense in adding in two empty lists (as this means no diff) - if (diffs.newValues.length || diffs.oldValues.length) { - diffList.push(diffs); - } - - return diffList; - }, diffListPerField); -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/annotations.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/annotations.ts deleted file mode 100644 index f090ee59691b5..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/annotations.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { IMetadataType } from '@datahub/data-models/types/entity/validators'; -import { keysEquiv } from '@datahub/data-models/entity/dataset/helpers/validators/base'; -import { IComplianceFieldAnnotation } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-annotation'; - -export type ComplianceAnnotationsEditableProps = - | 'identifierField' - | 'identifierType' - | 'logicalType' - | 'isPurgeKey' - | 'valuePattern' - | 'isReadOnly'; - -export type RawComplianceAnnotationsEditableProps = - | 'identifierField' - | 'identifierType' - | 'logicalType' - | 'nonOwner' - | 'valuePattern' - | 'readonly'; - -/** - * Lists the types for objects or instances in the the compliance metadata entities list - * @type {Array} - */ -export const complianceAnnotationsTaxonomy: Array = [ - { - '@type': 'array', - '@name': 'complianceEntities', - '@props': [ - { - '@name': 'identifierField', - '@type': 'string' - }, - { - '@name': 'identifierType', - '@type': ['string', 'null'] - }, - { - '@name': 'logicalType', - '@type': ['string', 'null'] - }, - { - '@name': 'isPurgeKey', - '@type': ['boolean', 'null'] - }, - { - '@name': 'valuePattern', - '@type': ['string', 'null'] - }, - { - '@name': 'isReadOnly', - '@type': 'boolean' - } - ] - } -]; - -/** - * Lists the types for objects or instances in the the compliance metadata entities list - * @type {Array} - */ -export const rawComplianceAnnotationsTaxonomy: Array = [ - { - '@type': 'array', - '@name': 'complianceEntities', - '@props': [ - { - '@name': 'identifierField', - '@type': 'string' - }, - { - '@name': 'identifierType', - '@type': ['string', 'null'] - }, - { - '@name': 'logicalType', - '@type': ['string', 'null'] - }, - { - '@name': 'nonOwner', - '@type': ['boolean', 'null'] - }, - { - '@name': 'valuePattern', - '@type': ['string', 'null'] - }, - { - '@name': 'readonly', - '@type': 'boolean' - } - ] - } -]; - -/** - * Type guard asserts that object is assignable to { complianceEntities: Array } - * @param {*} object object to be tested against complianceEntitiesTaxonomy - * @returns {(object is { complianceEntities: Array> })} - */ -export const isValidForEditableProps = ( - object: unknown -): object is Array> => - keysEquiv({ complianceEntities: object }, rawComplianceAnnotationsTaxonomy); diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/comparators.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/comparators.ts deleted file mode 100644 index 89190f6840145..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/comparators.ts +++ /dev/null @@ -1,50 +0,0 @@ -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; - -/** - * Keys that have been arbitrarily determined to be relevant in regards to determining whether two tags are saying - * the same thing annotation wise. Excluded keys would generally mean that the key is either a readonly key that is - * decorated by the API or a key that is generally more about rendering helpers than identifying the compliance - * qualities of the tag - * @type {Array} - */ -const relevantKeys: Array = [ - 'identifierField', - 'identifierType', - 'logicalType', - 'isPurgeKey', - 'valuePattern' -]; - -/** - * Returns whether two values are the same (by strict match) or are both falsy values (such as null or undefined) - * @param valueA - first value for comparison - * @param valueB - second value for comparison - */ -const valuesMatchOrAreFalsy = (valueA: unknown, valueB: unknown): boolean => valueA === valueB || (!valueA && !valueB); - -/** - * Takes two annotation tags of class DatasetComplianceAnnotation and, given a list of relevant keys for comparison, returns the - * number of keys that are the same for both sides. This will help when we want to calculate how similar two tags are. - * @param basline - annotation to compare to - * @param annotation - annotation to be compared - */ -const countMatchingRelevantKeysBetweenAnnotations = ( - basline: DatasetComplianceAnnotation, - annotation: DatasetComplianceAnnotation -): number => - relevantKeys.reduce( - // We compare whether key values match, or if they are both falsy values because if both values are null or undefined, or an - // empty string they are for all intents and purposes the same - (matches, key) => matches + (valuesMatchOrAreFalsy(basline[key], annotation[key]) ? 1 : 0), - 0 - ); - -/** - * Given a list of relevant keys, determine if two tags are functionally the same by matching on all relevant keys - * @param baseline - annotation to compare to - * @param annotation - annotation to be compared - */ -export const annotationsMatchByRelevantKeys = ( - baseline: DatasetComplianceAnnotation, - annotation: DatasetComplianceAnnotation -): boolean => countMatchingRelevantKeysBetweenAnnotations(baseline, annotation) === relevantKeys.length; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/schema.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/schema.ts deleted file mode 100644 index a581979b0b3d6..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/helpers/validators/compliance/schema.ts +++ /dev/null @@ -1,27 +0,0 @@ -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; -import { IDatasetSchemaColumn } from '@datahub/metadata-types/types/entity/dataset/schema'; - -/** - * Given a list of compliance annotations and a schema to match against, removes annotations for - * which there is no matching schema field - * @param {Array} annotations - list of annotations to filter - * @param {DatasetSchema} schema - schema to filter against - */ -export const filterAnnotationsToDatasetSchema = ( - annotations: Array, - schema: DatasetSchema -): Array => { - const { schemaFields } = schema; - - if (!schemaFields) { - return annotations; - } - - const schemaFieldSet: Set = new Set(); - schemaFields.forEach((field): void => { - schemaFieldSet.add(field.fullFieldPath); - }); - - return annotations.filter((annotation): boolean => schemaFieldSet.has(annotation.identifierField)); -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-annotation.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-annotation.ts deleted file mode 100644 index 66c6e1ae27a15..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-annotation.ts +++ /dev/null @@ -1,275 +0,0 @@ -import { IComplianceFieldAnnotation } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-annotation'; -import { annotationIsValid } from '@datahub/data-models/entity/dataset/modules/constants/annotation-helpers'; -import { set, setProperties, computed } from '@ember/object'; -import { ComplianceAnnotationsEditableProps } from '@datahub/data-models/entity/dataset/helpers/validators/compliance/annotations'; -import { IComplianceDataType } from '@datahub/metadata-types/types/entity/dataset/compliance-data-types'; -import { pick, omit, isEqual } from 'lodash-es'; -/** - * Creates a basic factory to generate default values for a compliance annotation tag. This class is created both to - * translate the API response for annotations as well as when the user initiates the creation of a new tag from the UI. In - * the latter case, the process is a step by step user flow, so we start with these undefined fields and then start to - * fill them out throughout the process. - */ -const complianceAnnotationFactory = (fieldName: string): IComplianceFieldAnnotation => ({ - identifierField: fieldName, - identifierType: undefined, - logicalType: null, - nonOwner: undefined, - pii: false, - readonly: false, - securityClassification: null, - valuePattern: undefined -}); - -/** - * Annotation fields that can be modified on the DatasetComplianceAnnotation class while a user is actively annotating a field - * Extracted out of class to allow ComputedProperty dependent key reference - */ -const modifiableKeysOnClassData: Array = [ - 'identifierField', - 'identifierType', - 'logicalType', - 'isPurgeKey', - 'valuePattern', - 'isReadOnly' -]; - -/** - * A dataset is expected to have a number of fields that can be tagged with metadata regarding what kind of - * information that dataset field contains (namely in terms of PII). Each field has an identifierField to - * tell us the field name, and a number of tags (annotations) tied to that identifierField. This class is the - * objectified representation of a single instance of such a tag. - */ -export default class DatasetComplianceAnnotation implements IComplianceFieldAnnotation { - /** - * The original data that initialized this class. Stored here and expected to remain static. Allows us to - * maintain the original data read from the API. The initialization of this class is not connected to the - * API for each individual tag, so this property does not need an async getter - * @type {IComplianceFieldAnnotation} - */ - private readonly data: Readonly; - - static modifiableKeysOnRawData(): Array { - return ['identifierField', 'identifierType', 'logicalType', 'nonOwner', 'valuePattern', 'readonly']; - } - - /** - * Static class reference to the modifiableKeysOnClassData list. - * @static - */ - static modifiableKeysOnClassData(): Array { - return modifiableKeysOnClassData; - } - - /** - * Whether or not there have been changes made to this annotation tag from the base data that created it. - */ - isDirty = false; - - /** - * The field name that this annotation tag is tied to. Class cannot be initialized with this undefined - */ - identifierField!: IComplianceFieldAnnotation['identifierField']; - - /** - * Determines which kind of tag we are dealing with. If a newly created tag, this item starts undefined - * and becomes defined if the person chooses a tag for the field in the specified dataset. - */ - identifierType?: IComplianceFieldAnnotation['identifierType']; - - /** - * Tag indicating the type of the identifierType, - * solely applicable to corresponding id's with an idType of `false` in the complianceDataTypes endpoint - */ - logicalType?: IComplianceFieldAnnotation['logicalType']; - - /** - * Whether the tag is specified as a "purge key" in the UI by the user in their annotation. Null is allowable - * only as a working copy construct as sometimes it is necessary to specifically assign null instead of - * undefined for no-value situations - */ - isPurgeKey?: boolean | null; - - /** - * Whether the field is flagged as containing PII data - */ - pii!: IComplianceFieldAnnotation['pii']; - - /** - * User specified / default security classification for the related schema field. Null is allowable only - * as a working copy construct as it is sometimes necessary to specifically assign null instead of undefined - * for no-value situations - */ - - securityClassification!: IComplianceFieldAnnotation['securityClassification']; - - /** - * Optional attribute for the value of a CUSTOM regex. Required for CUSTOM field format - */ - valuePattern?: IComplianceFieldAnnotation['valuePattern']; - - /** - * Whether the field should be read only (and therefore requires override to be editable) - */ - isReadOnly!: IComplianceFieldAnnotation['readonly']; - - /** - * Flags a divergence between the underlying previously saved IComplianceFieldAnnotation and attributes on the working copy - * @readonly - */ - @computed('data', ...modifiableKeysOnClassData) - get hasChangedFromSavedAnnotation(): boolean { - const { data } = this; - const { modifiableKeysOnRawData, modifiableKeysOnClassData } = DatasetComplianceAnnotation; - const { nonOwner, ...remainingSourceAnnotation } = pick(data, modifiableKeysOnRawData()); - const { isPurgeKey, ...remainingPossibleUpdates } = pick(this, modifiableKeysOnClassData()); - /** - * Values of this[isReadOnly] / data[readonly] are not considered when comparing annotation values since they are irrelevant to equality - * isPurgeKey is a *reversal* of nonOwner, they are considered equal / unchanged for all other values except if their boolean values are equal - */ - const purgeKeyHasChanged = - typeof nonOwner === 'boolean' && typeof isPurgeKey === 'boolean' ? isPurgeKey === nonOwner : false; - const attributesHaveChanged = - !isEqual(omit(remainingSourceAnnotation, 'readonly'), omit(remainingPossibleUpdates, 'isReadOnly')) || - purgeKeyHasChanged; - - // identifierType being present on the source data is a trusted indicator that this may have been saved perviously - return Boolean(data.identifierType && attributesHaveChanged); - } - - /** - * Creates or resets the fields of this class by applying the original data over the current items. Allows - * us to initialize a working copy of the class or revert back if the user has canceled their changes - */ - createWorkingCopy(): void { - const data = this.data; - const keys: Array = [ - 'identifierField', - 'logicalType', - 'pii', - 'securityClassification' - ]; - // Assigns each value from the object given in the constructor or factory to the corresponding - // class key in the definition - keys.forEach((key): void => { - set(this, key, typeof data[key] === 'object' ? JSON.parse(JSON.stringify(data[key])) : data[key]); - }); - - // Leftover for non-matching keys - // Upon initialization or reverting, we assume that the working copy is no longer dirtied with changes - setProperties(this, { - identifierType: data.identifierType || null, - valuePattern: data.valuePattern || null, - isPurgeKey: typeof data.nonOwner === 'boolean' ? data.nonOwner === false : null, - // Protection vs undefined case - isReadOnly: data.readonly || false, - isDirty: false - }); - } - - /** - * Creates an API friendly object from our classified working copy. This way, we can iterate through a list - * of these annotation objects calling this method to create a batch POST request - */ - readWorkingCopy(): IComplianceFieldAnnotation { - const { - identifierField, - identifierType, - logicalType, - pii, - securityClassification, - valuePattern, - isReadOnly - } = this; - - return { - identifierField, - logicalType, - pii, - securityClassification, - identifierType: identifierType || null, - valuePattern: valuePattern || null, - nonOwner: typeof this.isPurgeKey === 'boolean' ? !this.isPurgeKey : null, - readonly: isReadOnly || false - }; - } - - /** - * Exposes a copy of the private underlying compliance annotation - */ - readOriginalCopy(): IComplianceFieldAnnotation { - return JSON.parse(JSON.stringify(this.data)); - } - - /** - * This function calls on createWorkingCopy as both perform the same functionality, but having this makes - * the interface more consumer friendly. - */ - resetWorkingCopy(): void { - this.createWorkingCopy(); - } - - /** - * Used to determine whether this annotation is currently a valid tag. Ruleset is determined as a definition - * since in open source the rules for what is valid may vary - */ - isValidAnnotation(complianceDataTypes?: Array): boolean { - return annotationIsValid(this, complianceDataTypes); - } - - /** - * Serializes `this` compliance annotation attributes to a match the field compliance interface which is supported by newer - * annotation / compliance endpoints - */ - toFieldCompliance(): Com.Linkedin.Dataset.FieldCompliance { - return DatasetComplianceAnnotation.toFieldCompliance(this); - } - - /** - * Serializes a provided compliance annotation instance of field annotation attributes and maps to an object - * that matches the field compliance interface which is supported by newer - * annotation / compliance endpoints - * @static - * @param {(DatasetComplianceAnnotation | IComplianceFieldAnnotation)} annotation the annotation attributes to transform, can either be an instance of this class - * or attributes that conform to the IComplianceFieldAnnotation interface - */ - static toFieldCompliance( - annotationOrAttributes: DatasetComplianceAnnotation | IComplianceFieldAnnotation - ): Com.Linkedin.Dataset.FieldCompliance { - const annotation = - annotationOrAttributes instanceof DatasetComplianceAnnotation - ? annotationOrAttributes - : new DatasetComplianceAnnotation(annotationOrAttributes); - const { - identifierField, - identifierType, - logicalType, - securityClassification, - valuePattern, - pii, - isPurgeKey - } = annotation; - - return { - fieldPath: identifierField, - pegasusFieldPath: '', - containingPersonalData: pii, - valuePattern: valuePattern === null ? undefined : valuePattern, - fieldFormat: logicalType ? logicalType : undefined, - purgeKey: typeof isPurgeKey === 'boolean' ? isPurgeKey : undefined, - dataType: (identifierType ? identifierType : undefined) as Com.Linkedin.Dataset.FieldCompliance['dataType'], - securityClassification: (securityClassification - ? securityClassification - : undefined) as Com.Linkedin.Dataset.FieldCompliance['securityClassification'], - readonly: annotation.hasOwnProperty('readonly') - ? (annotation as IComplianceFieldAnnotation).readonly - : (annotation as DatasetComplianceAnnotation).isReadOnly - }; - } - - constructor(annotationTag?: IComplianceFieldAnnotation, fieldName = '') { - const data = Object.freeze(annotationTag || complianceAnnotationFactory(fieldName)); - this.data = data; - this.createWorkingCopy(); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-data-types-list.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-data-types-list.ts deleted file mode 100644 index 174d32d7f29c6..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-data-types-list.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { IComplianceDataType } from '@datahub/metadata-types/types/entity/dataset/compliance-data-types'; -import { readComplianceDataTypes } from '@datahub/data-models/api/dataset/compliance'; -import { set } from '@ember/object'; - -/** - * A simple wrapper around the reader for a compliance data types list that helps us provide the read from - * the data layer to the consuming application - */ -export class ComplianceDataTypesList { - /** - * The read list for the compliance data types, which are used to determine what options are available - * for annoations of a dataset's fields - * @type {Array} - */ - list?: Array; - - /** - * Read function to fetch the compliance data types from the API layer - */ - readDataTypesList(): Promise> { - return readComplianceDataTypes(); - } -} - -/** - * Custom factory for the data types list factory, useful as this does not follow the typical creator - * for a base entity. - */ -export const createComplianceDataTypesList = async (): Promise => { - const dataTypesList = new ComplianceDataTypesList(); - const complianceDataTypes = await dataTypesList.readDataTypesList(); - - set(dataTypesList, 'list', complianceDataTypes); - return dataTypesList; -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-info.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-info.ts deleted file mode 100644 index 964f23d114862..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-info.ts +++ /dev/null @@ -1,379 +0,0 @@ -import { IDatasetComplianceInfo } from '@datahub/metadata-types/types/entity/dataset/compliance/info'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { - IEntityComplianceSuggestion, - SuggestionSource -} from '@datahub/metadata-types/constants/entity/dataset/compliance-suggestion'; -import DatasetComplianceSuggestion from '@datahub/data-models/entity/dataset/modules/compliance-suggestion'; -import { IComplianceFieldAnnotation } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-annotation'; -import { set, setProperties } from '@ember/object'; -import { decodeUrn } from '@datahub/utils/validators/urn'; -import { isArray } from '@ember/array'; -import { oneWay } from '@ember/object/computed'; -import { PurgePolicy } from '@datahub/metadata-types/constants/entity/dataset/compliance/purge-policy'; -import { - IFieldAnnotationDiff, - analyzeAnnotationsDiff -} from '@datahub/data-models/entity/dataset/helpers/validators/compliance/analyze-diff'; -import { computed } from '@ember/object'; -import { applyAnnotationsByEditableProperties } from '@datahub/data-models/entity/dataset/modules/constants/annotation-helpers'; -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; -import { filterAnnotationsToDatasetSchema } from '@datahub/data-models/entity/dataset/helpers/validators/compliance/schema'; -import { omit } from 'lodash-es'; -import { IComplianceAnnotationUpdates } from '@datahub/data-models/types/entity/dataset'; - -interface IReadWorkingComplianceOptions { - withoutNullFields?: boolean; - schema?: DatasetSchema; -} - -/** - * Builds a default shape for securitySpecification & privacyCompliancePolicy with default / unset values - * for non null properties as per Avro schema - * @param {string} datasetUrn identifier for the dataset that this privacy object applies to - * @return {IComplianceInfo} - */ -export const initialComplianceObjectFactory = (datasetUrn: string): IDatasetComplianceInfo => ({ - datasetUrn: decodeUrn(datasetUrn), - datasetId: null, - confidentiality: null, - complianceType: '', - compliancePurgeNote: '', - complianceEntities: [], - datasetClassification: null -}); - -/** - * Strips out the readonly attribute from a list of compliance annotations - * @param {Array} tags list of compliance annotations for a specific entity e.g dataset - */ -export const removeReadonlyAttributeFromTags = ( - tags: Array -): Array> => - tags.map((tag: IComplianceFieldAnnotation): Omit => omit(tag, ['readonly'])); - -/** - * Filters out compliance annotations that are not editable from a supplied list - * @param {Array} tags list of compliance annotations for a specific entity e.g dataset - */ -export const getEditableTags = (tags: Array): Array => - tags.filter(({ readonly }: IComplianceFieldAnnotation): boolean => !readonly); - -/** - * Filters out compliance annotations that do not have a value supplied for the annotation attributes identifierField and identifierType - * @param {Array} tags list of compliance annotations for a specific entity e.g dataset - */ -export const removeTagsMissingIdentifierAttributes = ( - tags: Array -): Array => - tags.filter((tag: IComplianceFieldAnnotation): boolean => !!tag.identifierField && !!tag.identifierType); - -/** - * Each dataset is expected to have info related to the compliance aspects, including things such as annotations - * as well as suggested compliance changes. This class holds each of these fields and helps to facilitate the - * information related to that area for the dataset. When this class is initialized, it takes a lot of the - * compliance raw data and maps to our decorated classes to have more information available to our components - */ -export default class DatasetComplianceInfo { - /** - * The original data that initialized this class. Stored here and expected to remain static. Allows us to - * maintain the original data read from the API. The initialization of this class is not connected to the - * API for each individual tag, so this property does not need an async getter - * @type {IDatasetComplianceInfo} - */ - private readonly data: IDatasetComplianceInfo; - - /** - * A dataset is expected to have a number of fields that can be tagged with metadata regarding what kind of - * information that dataset field contains (namely in terms of PII). - * @type {Array} - */ - annotations!: Array; - - /** - * Raw data from the compliance suggestions api call for this particular dataset - * @type {Array} - */ - rawSuggestions!: Array; - - /** - * A dataset is expected to have system suggestions provided for its various fields, which in turn need to have - * some decorated information in order to provide a readable view. - * @type {Array} - */ - readonly suggestions: Array; - - /** - * If the dataset returns not found for compliance, we assume that this dataset does not yet have any compliance - * info and therefore create it from a UI generated factory and mark this as new compliance info - * @type {boolean} - */ - isNewComplianceInfo = false; - - /** - * Readonly property that lets us know based on the received data who was the last person to modify the compliance - * info - * @type {string} - */ - @oneWay('data.modifiedBy') - modifiedBy?: string; - - /** - * Readonly property accessed from the data object that lets us know the unix timestamp of the last time the - * compliance info was modified - * @type {number} - */ - @oneWay('data.modifiedTime') - modifiedTime?: number; - - /** - * Accessed from the class data, returns the Purge Policy fetched from the dataset for this compliance info - * @type {PurgePolicy} - */ - @oneWay('data.complianceType') - complianceType?: PurgePolicy; - - /** - * Accessed from the class data, returns whether or not the compliance info was retrieved from an upstream dataset - * @type {boolean} - */ - @oneWay('data.fromUpstream') - fromUpstream?: boolean; - - /** - * Accessed from the class data, returns whether or not the dataset contains personal information - * @type {boolean | null} - */ - @oneWay('data.containingPersonalData') - containsPersonalData?: boolean | null; - - /** - * Reads the original annotations read from the api layer, but as their classified dataset compliance annotation - * object form - * @type {Array} - */ - @computed('data') - get readOriginalAnnotations(): Array { - const { complianceEntities = [] } = this.data; - return complianceEntities.map( - (annotation: IComplianceFieldAnnotation): DatasetComplianceAnnotation => - new DatasetComplianceAnnotation(annotation) - ); - } - - /** - * Returns where we resolved the compliance info from (which dataset urn) which may match up to the dataset - * entity or come from something upstream - */ - @computed('data.datasetUrn') - get resolvedFrom(): string | undefined { - return this.data.datasetUrn; - } - - /** - * Working copy of the confidentiality classification for this dataset compliance - */ - // Note: Asserting as definitely defined as we set this in createWorkingCopy() called in the constructor - confidentiality!: IDatasetComplianceInfo['confidentiality']; - - /** - * Working copy of the flag for whether or not the underlying dataset for this compliance - * contains any person data - */ - // Note: Asserting as definitely defined as we set this in createWorkingCopy() called in the constructor - containingPersonalData!: IDatasetComplianceInfo['containingPersonalData']; - - /** - * In any scenario where we need to restore all parts of our "working copy" for compliance, this is a useful - * method to call. It will also be used in the constructor to initialize our working copy - */ - createWorkingCopy(): void { - const { complianceEntities = [], confidentiality, containingPersonalData } = this.data; - setProperties(this, { - confidentiality, - containingPersonalData, - annotations: complianceEntities.map( - (annotation: IComplianceFieldAnnotation): DatasetComplianceAnnotation => - new DatasetComplianceAnnotation(annotation) - ) - }); - } - - /** - * When we are about to make a post request, we can use this function to actually read the working annotations - * so that the classified information can be returned as a format expected by the api layer - */ - readWorkingCopy({ withoutNullFields, schema }: IReadWorkingComplianceOptions): IDatasetComplianceInfo { - // Prior to saving the updated annotations, extract only editable annotations i.e. annotations that do no have the readonly flag - // set to true, and omit the readonly attribute from the annotations to be sent to the endpoint - const tags = removeReadonlyAttributeFromTags(getEditableTags(this.getWorkingAnnotations(schema))); - const complianceEntities = withoutNullFields ? removeTagsMissingIdentifierAttributes(tags) : tags; - const { data, confidentiality, containingPersonalData } = this; - - return { - ...data, - complianceEntities, - confidentiality, - containingPersonalData - }; - } - - /** - * Adds an annotation to our working copy. Note that this does not affect the original annotations data. Uses - * replacement instead of mutation to avoid unintended effects - * @param {DatasetComplianceAnnotation | Array} annotationsToBeAdded - the working copy of - * the annotation / annotations to be added - */ - addAnnotation( - annotationsToBeAdded: DatasetComplianceAnnotation | Array - ): Array { - return set(this, 'annotations', this.annotations.concat(annotationsToBeAdded)); - } - - /** - * Removes an annotation from our working copy only. Uses replacement instead of mutation to avoid unintended - * effects. - * @param {(DatasetComplianceAnnotation | Array)} annotations annotations or single annotation to be removed from the compliance policy - */ - removeAnnotation( - annotations: DatasetComplianceAnnotation | Array - ): Array { - // Ensure the annotationsToBeRemoved is manipulated as a list even if a single item may be supplied - const annotationsToBeRemoved = ([] as Array).concat(annotations); - // For identifierType and logicalType are nullable values on IComplianceFieldAnnotation however, non-nullable on - // Com.Linkedin.Dataset.FieldCompliance which is the backing datatype for proposals. Null is added below to account for this - // and accurately compare values - const matchRemovedAnnotationOn = { - identifierField: annotationsToBeRemoved.mapBy('identifierField'), - identifierType: annotationsToBeRemoved.mapBy('identifierType').concat(null), - logicalType: annotationsToBeRemoved.mapBy('logicalType').concat(null) - }; - const updatedAnnotations = this.annotations.filter( - (annotation: DatasetComplianceAnnotation): boolean => - !( - matchRemovedAnnotationOn.identifierField.includes(annotation.identifierField) && - matchRemovedAnnotationOn.identifierType.includes(annotation.identifierType) && - matchRemovedAnnotationOn.logicalType.includes(annotation.logicalType) - ) - ); - - return set(this, 'annotations', updatedAnnotations); - } - - /** - * This allows us to apply the annotations given by the user for a specific field and overwrite all the current - * tags for that specific field. We do so by first making sure all fields to overwrite are valid, and then do a - * "replace" by filtering out any current annotations for the field from our list and adding in the diff. - * @param {string} fieldName - identifies the identifierField we are writing - * @param {Array} fieldDiff - new annotations to add/overwrite for current field - * @returns {boolean} signifying if this apply process was successful - */ - applyAnnotationsByField(fieldName: string, fieldDiff: Array): boolean { - if (!fieldName || !isArray(fieldDiff)) { - return false; - } - - const allFieldDiffsAreValid = fieldDiff.reduce( - (result: boolean, diff: DatasetComplianceAnnotation): boolean => result && diff.isValidAnnotation(), - true - ); - - if (!allFieldDiffsAreValid) { - return false; - } - - const { annotations } = this; - const annotationsForOtherFields = annotations.filter( - (tag: DatasetComplianceAnnotation): boolean => tag.identifierField !== fieldName - ); - - set(this, 'annotations', annotationsForOtherFields.concat(fieldDiff)); - return true; - } - - /** - * Creates a list of "diff" objects, each representing a field in the dataset schema that will describe the - * differences between the original annotations read from the API and the current modified working copy for - * that particular field - */ - getWorkingCopyDiff(): Array { - return analyzeAnnotationsDiff(this.readOriginalAnnotations, this.annotations); - } - - /** - * Modifies the working copy for our confidentiality classification for the dataset - * @param {DatasetClassification} newConfidentiality - new confidentiality classification to modify our working copy - */ - updateWorkingConfidentiality(newConfidentiality: IDatasetComplianceInfo['confidentiality']): void { - set(this, 'confidentiality', newConfidentiality); - } - - /** - * Modifies the working copy for our personal data flag for the dataset - * @param {boolean} newContainingPersonalDataFlag - new personal data flag indication - */ - updateWorkingContainingPersonalData( - newContainingPersonalDataFlag: IDatasetComplianceInfo['containingPersonalData'] - ): void { - set(this, 'containingPersonalData', newContainingPersonalDataFlag); - } - - /** - * Get flattened lists of dataset compliance annotations that have been added, deleted, changed - * add / removed also includes changed annotations (add+delete) - */ - getAnnotationUpdates(): IComplianceAnnotationUpdates { - /** - * Extract reference to the compliance annotation instance - * @param {{ annotation: DatasetComplianceAnnotation }} { annotation } object (IDiffValue), containing a DatasetComplianceAnnotation - */ - const getAnnotation = ({ annotation }: { annotation: DatasetComplianceAnnotation }): DatasetComplianceAnnotation => - annotation; - - return this.getWorkingCopyDiff().reduce( - (flatAddedOrRemovedAnnotations, { newValues, oldValues, mutations }): IComplianceAnnotationUpdates => ({ - added: [...flatAddedOrRemovedAnnotations.added, ...newValues.map(getAnnotation)], - removed: [...flatAddedOrRemovedAnnotations.removed, ...oldValues.map(getAnnotation)], - onlyChanged: [...flatAddedOrRemovedAnnotations.onlyChanged, ...mutations.map(getAnnotation)] - }), - { added: [], removed: [], onlyChanged: [] } - ); - } - - /** - * Calls each annotation's working copy to return a final list of all the annotation working copies but in the - * format expected by our API layer. This can be passed back to the API already massaged to meet the endpoint's - * expectations - */ - getWorkingAnnotations(schema?: DatasetSchema): Array { - const filteredAnnotations = schema ? filterAnnotationsToDatasetSchema(this.annotations, schema) : this.annotations; - return filteredAnnotations.map( - (annotation: DatasetComplianceAnnotation): IComplianceFieldAnnotation => annotation.readWorkingCopy() - ); - } - - /** - * Given a list of objects created from just the editable parts of compliance annotation tags, create a list - * of compliance annotation tag class objects that we can gleam a proper working copy from - * @param workingEditableProps - array of objects created with just the editable props in annotation tags - */ - overrideAnnotationsByEditableProps(workingEditableProps: Array): Array { - return set(this, 'annotations', applyAnnotationsByEditableProperties(workingEditableProps)); - } - - constructor( - complianceInfo: IDatasetComplianceInfo, - suggestions: Array, - isNewComplianceInfo?: boolean - ) { - this.data = complianceInfo; - this.rawSuggestions = suggestions; - this.suggestions = suggestions.map( - (suggestion: IEntityComplianceSuggestion): DatasetComplianceSuggestion => - new DatasetComplianceSuggestion(suggestion, SuggestionSource.system) - ); - this.isNewComplianceInfo = !!isNewComplianceInfo; - - this.createWorkingCopy(); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-suggestion.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-suggestion.ts deleted file mode 100644 index 50d1845c8fc0a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/compliance-suggestion.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { computed } from '@ember/object'; -import { - IEntityComplianceSuggestion, - SuggestionSource -} from '@datahub/metadata-types/constants/entity/dataset/compliance-suggestion'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { readOnly } from '@ember/object/computed'; -import { UserSuggestionInteraction } from '@datahub/data-models/constants/entity/dataset/compliance-suggestions'; - -/** - * A dataset is expected to have system suggestions provided for its various fields, which in turn need to have - * some decorated information in order to provide a readable view. Fortunately, suggestions are provided by the - * data layer and do not update based on user action, so we don't worry too much about working copies in this - * class. - */ -export default class DatasetComplianceSuggestion { - /** - * The original data that initialized this class. Stored here and expected to remain static. Allows us to - * maintain the original data read from the API. The initialization of this class is not connected to the - * API for each individual tag, so this property does not need an async getter - * @type {IEntityComplianceSuggestion} - */ - data: IEntityComplianceSuggestion; - /** - * The actual tag information for the annotation that is being suggested for a particular field - * @type {DatasetComplianceAnnotation} - */ - suggestion: DatasetComplianceAnnotation; - /** - * The source from which the suggestion was given. This is to handle cases in the future where users may be - * able to provide suggestions for review, but for now the default should be "system" - * @type {SuggestionSource | string} - */ - source: SuggestionSource | string; - /** - * If the user has interacted with the suggestion in any way by declaring the suggestion to be accepted or - * rejected, the changes can be captured here - * @type {UserSuggestionInteraction} - */ - interaction = UserSuggestionInteraction.NONE; - /** - * Static read of the uid of the suggestion from the provided data - * @type {string} - */ - @readOnly('data.uid') - uid!: string; - /** - * Computed confidence to put into a percentage format out of 100 instead of 0->1 as the provided data and rounds up to two decimals if necessary - * @type {number} - */ - @computed('data') - get confidence(): number { - return Math.round(this.data.confidenceLevel * 10000) / 100; - } - - /** - * If the user chooses to discard their changes during their session, this method will capture all - * the operations necessary to reset the suggestion to a clean slate. - */ - resetWorkingCopy() { - this.interaction = UserSuggestionInteraction.NONE; - } - - constructor( - suggestionInfo: IEntityComplianceSuggestion, - source: SuggestionSource | string = SuggestionSource.system - ) { - this.data = suggestionInfo; - this.suggestion = new DatasetComplianceAnnotation(suggestionInfo.suggestion); - this.source = source; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/annotation-helpers.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/annotation-helpers.ts deleted file mode 100644 index 7b649c89a20cc..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/annotation-helpers.ts +++ /dev/null @@ -1,110 +0,0 @@ -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { - ComplianceFieldIdValue, - MemberIdLogicalType -} from '@datahub/metadata-types/constants/entity/dataset/compliance-field-types'; -import { - ComplianceAnnotationsEditableProps, - RawComplianceAnnotationsEditableProps -} from '@datahub/data-models/entity/dataset/helpers/validators/compliance/annotations'; -import { setProperties } from '@ember/object'; -import { IComplianceFieldAnnotation } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-annotation'; -import { pick } from 'lodash-es'; -import { IComplianceDataType } from '@datahub/metadata-types/types/entity/dataset/compliance-data-types'; - -/** - * Helper utility function used to determine whether an annotation tag is currently valid. Especially - * will be helpful in cases such as the annotation selection where if the user has created a valid - * (and therefore complete) tag we want to close the selection window instead of making them have to - * press a specific "done" or "save" button - * @param {DatasetComplianceAnnotation} annotationTag - the tag whose context is being used for the - * validity check - * @param {Array} complianceDataTypes - optional, if provided a data source for - * compliance data types then we use this as a more reliable way to determine if the annotation is - * valid or not than our frontend hardcoded logic - */ -export const annotationIsValid = ( - annotationTag: DatasetComplianceAnnotation, - complianceDataTypes?: Array -): boolean => { - const { identifierType, logicalType, isPurgeKey, valuePattern } = annotationTag; - const memberIdTypes = Object.values(ComplianceFieldIdValue); - const typesWithSupportedFieldFormats = (complianceDataTypes || []) - .filter((dataType: IComplianceDataType): boolean => dataType.supportedFieldFormats.length > 0) - .map((dataType: IComplianceDataType): string => dataType.id); - - // identifierType is a required field, so if it doesn't exist nothing else matters - if (!identifierType) { - return false; - } - - const shouldIncludeLogicalType = - (memberIdTypes.includes(identifierType as ComplianceFieldIdValue) && - identifierType !== ComplianceFieldIdValue.None) || - typesWithSupportedFieldFormats.includes(identifierType); - - // If we have a memberId field (excluding None from this check), then we should have a logical type and - // determination of whether the field tag is a purge key. Otherwise, we are not valid - if (shouldIncludeLogicalType) { - if (!logicalType || typeof isPurgeKey !== 'boolean') { - return false; - } - // If we have a custom type declared, then we need to have a regex entered for this - if (logicalType === MemberIdLogicalType.Custom && !valuePattern) { - return false; - } - } - // Truthy assumption based on not failing any of the above tests - return true; -}; - -/** - * Shortcut typing so that we can refer to a subset of DatasetComplianceAnnotation of only editable props - */ -type AnnotationEditablePropsOnly = Pick; - -/** - * Shortcut to typing so that we can refer to a subset of the raw API response for compliance - * IComplianceFieldAnnotation with only its editable props - */ -type RawAnnotationEditablePropsOnly = Pick; - -/** - * Uses the nature of setProperties to apply all the editable props found within the props parameter to - * the annotation passed into this function - * @param annotation - annotation to have props applied to - * @param props - props to be applied to the annotation - */ -const applyEditablePropsToAnnotation = ( - annotation: DatasetComplianceAnnotation, - props: RawAnnotationEditablePropsOnly -): DatasetComplianceAnnotation => { - // What we are doing here is converting the properties that are found in the raw annotations and transforming them - // into the classified format and then restricting that down to only the editable properties to use to override - // the existing annotation with its editable props - const newAnnotationWithProps = new DatasetComplianceAnnotation({ - ...props, - pii: false, - securityClassification: null - }); - const newAnnotationAsEditableProps: AnnotationEditablePropsOnly = pick( - newAnnotationWithProps, - DatasetComplianceAnnotation.modifiableKeysOnClassData() - ); - - setProperties(annotation, newAnnotationAsEditableProps); - return annotation; -}; - -/** - * From a working copy of only editable props, we create new tags and apply these values so that we can - * create a new working copy annotations list out of them - * @param newWorkingCopy - new working copy of only editable props that we want to apply to new tags - */ -export const applyAnnotationsByEditableProperties = ( - newWorkingCopy: Array -): Array => - newWorkingCopy.map( - (item: RawAnnotationEditablePropsOnly): DatasetComplianceAnnotation => - applyEditablePropsToAnnotation(new DatasetComplianceAnnotation(undefined, item.identifierField), item) - ); diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/security-classification.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/security-classification.ts deleted file mode 100644 index 867d11d5de287..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/constants/security-classification.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { IComplianceDataType } from '@datahub/metadata-types/types/entity/dataset/compliance-data-types'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; - -/** - * Retrieves the default security classification for an identifier type, or null if it does not exist - * @param {Array} [complianceDataTypes=[]] the list of compliance data types - * @param {ComplianceFieldIdValue} identifierType the compliance data type id string - * @returns {(IComplianceDataType['defaultSecurityClassification'] | null)} - */ -export const getDefaultSecurityClassification = ( - complianceDataTypes: Array = [], - identifierType: DatasetComplianceAnnotation['identifierType'] -): IComplianceDataType['defaultSecurityClassification'] | null => { - const complianceDataType = complianceDataTypes.findBy('id', identifierType || ''); - - return complianceDataType ? complianceDataType.defaultSecurityClassification : null; -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/export-policy.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/export-policy.ts deleted file mode 100644 index 10e524854263a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/export-policy.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { IDatasetExportPolicy } from '@datahub/metadata-types/types/entity/dataset/compliance/export-policy'; -import { alias } from '@ember/object/computed'; -import { setProperties } from '@ember/object'; -import { omit } from 'lodash-es'; -import { Omit } from 'lodash'; -import { arrayEvery } from '@datahub/utils/array/every'; -import { computed } from '@ember/object'; - -/** - * Gives us a blank default value for the working copy if none is provided by the API layer - */ -const DatasetExportPolicyFactory = (): IDatasetExportPolicy => ({ - containsUserActionGeneratedContent: null, - containsUserDerivedContent: null, - containsUserGeneratedContent: null, - modifiedBy: null, - modifiedTime: null -}); - -/** - * A classified version of the dataset export policy API return. This serves as the data layer - * intermediary between the actual API response and the UI layer, making any transformations - * necessary to simplify the response into a consumable format - */ -export class DatasetExportPolicy { - /** - * Original API data retrieved for this class. Stored here to power our working copy of the - * export policy - * @type {IDatasetExportPolicy} - * @memberof DatasetExportPolicy - */ - readonly data: IDatasetExportPolicy; - - /** - * Whether the dataset contains content generated by user action - * @type {boolean} - * @memberof DatasetExportPolicy - */ - containsUserActionGeneratedContent!: boolean | null; - - /** - * Whether the dataset contains content derived from user information - * @type {boolean} - * @memberof DatasetExportPolicy - */ - containsUserDerivedContent!: boolean | null; - - /** - * Whether the dataset contains user generated content - * @type {boolean} - * @memberof DatasetExportPolicy - */ - containsUserGeneratedContent!: boolean | null; - - /** - * username of who last modified this policy - * @type {string} - * @memberof DatasetExportPolicy - */ - @alias('data.modifiedBy') - modifiedBy!: string; - - /** - * Unix timestamp for last modified date/time - * @type {number} - * @memberof DatasetExportPolicy - */ - @alias('data.modifiedTime') - modifiedTime!: number; - - /** - * Returns whether all the editable items in the export policy are currently not defined (or null) - * @type {boolean} - * @memberof DatasetExportPolicy - */ - @computed('data') - get isEmpty(): boolean { - const { data } = this; - const exportPolicyKeys = Object.keys(omit(data, ['modifiedBy', 'modifiedTime'])) as Array< - keyof IDatasetExportPolicy - >; - - return arrayEvery((key: keyof IDatasetExportPolicy) => data[key] === null)(exportPolicyKeys); - } - - /** - * Creates or resets the working copy for the export policy of a dataset. Using this method, - * we can initially initialize our desired properties from the original data, or revert any - * changes back to that data - */ - createWorkingCopy(): void { - const { - data: { - containsUserActionGeneratedContent = null, - containsUserDerivedContent = null, - containsUserGeneratedContent = null - } - } = this; - - setProperties(this, { - containsUserActionGeneratedContent, - containsUserDerivedContent, - containsUserGeneratedContent - }); - } - - /** - * Creates an API friendly object from our classified working copy. - */ - readWorkingCopy(): Omit { - const { - containsUserActionGeneratedContent = null, - containsUserDerivedContent = null, - containsUserGeneratedContent = null - } = this; - - return { - containsUserActionGeneratedContent, - containsUserDerivedContent, - containsUserGeneratedContent - }; - } - - constructor(exportPolicyData: IDatasetExportPolicy = DatasetExportPolicyFactory()) { - this.data = exportPolicyData; - this.createWorkingCopy(); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/lineage.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/lineage.ts deleted file mode 100644 index 2e3c3541e9df8..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/lineage.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { IDatasetLineage } from '@datahub/metadata-types/types/entity/dataset/lineage'; -import { computed } from '@ember/object'; -import { oneWay } from '@ember/object/computed'; - -/** - * The dataset lineage object is a light wrapper around the dataset lineage API response to provide the - * expected data layer for the upstream or downstream dataset interface - */ -export class DatasetLineage { - /** - * Holds the originally fetched API data for this lineage object. It should be the source of truth and - * untouched by the UI - * @type {IDatasetLineage} - */ - private readonly data: IDatasetLineage; - - /** - * Provides a raw dataset data for the underlying lineage piece, with the addition of a urn property, intended to be - * utilized by our data model service to be able to generically instantiate a dataset entity out of the object - * @note WARNING - do not use this property directly. Because it contains raw API data that can differ between open - * source and an internal implementation, using properties directly from this referenced object can have unintended - * consequences - */ - @computed('data') - get _rawDatasetData(): IDatasetLineage['dataset'] & { urn: string } { - return { ...this.data.dataset, urn: this.urn }; - } - - /** - * Gets the urn of the related dataset entity - */ - @computed('data') - get urn(): string { - return this.data.dataset.uri; - } - - /** - * Reads the actor value from the retrieved data from the lineage object - * @type {string} - */ - @oneWay('data.actor') - actor!: string; - - /** - * Reads the type of lineage value from the retrieved data from the lineage object - * @type {string} - */ - @oneWay('data.type') - type!: string; - - constructor(lineage: IDatasetLineage) { - this.data = lineage; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/ownership.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/ownership.ts deleted file mode 100644 index be70d5159f7b4..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/ownership.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { reads } from '@ember/object/computed'; -import { task } from 'ember-concurrency'; -import { ETask } from '@datahub/utils/types/concurrency'; -import { IOwnerResponse, IOwner } from '@datahub/data-models/types/entity/dataset/ownership'; -import { readDatasetOwnersByUrn } from '@datahub/data-models/api/dataset/ownership'; -import { setProperties, computed } from '@ember/object'; - -/** - * TODO: META-10994 Finish refactor Dataset ownership modeling in DataHub - */ - -/** - * Module util checks if the ownership of a dataset is valid by comparing against a set of criteria - * - The owner must be confirmed by another user, - * - The owner type must be of category DATA_OWNER (DataOwner at mid-tier) - * - The owner must be of idType USER - * - The owner must be active - * @param {IOwner} { confirmedBy, type, idType, isActive } - */ -const isValidConfirmedOwner = ({ confirmedBy, type, idType, isActive }: IOwner): boolean => - Boolean(confirmedBy) && ['DATA_OWNER', 'DataOwner'].includes(type) && idType === 'USER' && isActive; - -/** - * DatasetOwnership models the ownership attributes and behavior for a dataset - * Instantiated with a reference to the DatasetEntity and utilized a builder to reify ownership - * attributes - * @export - * @class DatasetOwnership - */ -export default class DatasetOwnership { - /** - * The minimum required number of valid confirmed owners - * @static - */ - static readonly minRequiredConfirmedOwners = 2; - - /** - * The list of owners associated with the dataset - */ - owners: Array = []; - - /** - * Flag indicates if the dataset is from an upstream source - */ - fromUpstream = false; - - /** - * Dataset urn, should match the urn attribute on the dataset unless, fromUpstream is true, then - * upstreamUrn will the upstream dataset - */ - upstreamUrn = ''; - - /** - * When the dataset's ownership was last modified - */ - lastModified?: number; - - /** - * The entity that last modified the ownership information - */ - actor = ''; - - /** - * References the urn for the associated dataset, definitely assigned since a dataset is required to - * instantiate DatasetOwnership - */ - @reads('entity.urn') - urn!: string; - - /** - * Computed flag in if the ownership information for the dataset meets the requirements - * @readonly - */ - @computed('owners') - get isValid(): boolean { - return this.owners.filter(isValidConfirmedOwner).length >= DatasetOwnership.minRequiredConfirmedOwners; - } - - /** - * Checks if the userName is listed as an owner on the dataset ownership information - * @param {string} userName the userName to match against in the list of owners - */ - isOwner(userName: string): boolean { - return Boolean(this.owners.findBy('userName', userName)); - } - - /** - * Requests the ownership information for the dataset and sets the associated DatasetOwnership attributes - */ - @task(function*(this: DatasetOwnership): IterableIterator> { - const { owners = [], fromUpstream, datasetUrn, lastModified, actor } = ((yield readDatasetOwnersByUrn( - this.urn - )) as unknown) as IOwnerResponse; - - setProperties(this, { owners, fromUpstream, upstreamUrn: datasetUrn, lastModified, actor }); - }) - getDatasetOwnersTask!: ETask; - - /** - * Class builder allows async instantiation / creation operations to be handled post instantiation - */ - async build(): Promise { - await this.getDatasetOwnersTask.perform(); - - return this; - } - - /** - * Creates an instance of DatasetOwnership. To reify properties the build method should be invoked post instantiation - * @param {DatasetEntity} entity the DatasetEntity for which ownership information is requested - */ - constructor(readonly entity: DatasetEntity) {} -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/platforms-list.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/platforms-list.ts deleted file mode 100644 index c076c9608b409..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/platforms-list.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { set } from '@ember/object'; -import { IDataPlatform } from '@datahub/metadata-types/types/entity/dataset/platform'; -import { readDataPlatforms } from '@datahub/data-models/api/dataset/platforms'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; - -/** - * A simple wrapper around the reader for a compliance data types list that helps us provide the read from - * the data layer to the consuming application - */ -export class DatasetPlatformsList { - /** - * The read list for the compliance data types, which are used to determine what options are available - * for annoations of a dataset's fields - * @type {Array} - */ - readonly list?: Array; - - /** - * Caches any search for a platform so that subsequent searches don't require scanning through the - * array list, using the platform code name as the key - * @type {Partial>} - */ - private platformHashedByName: Partial> = {}; - - /** - * Read function to fetch the compliance data types from the API layer - */ - readPlatformsList(): Promise> { - return readDataPlatforms(); - } - - /** - * Gets the object of information related to a platform by its name. This is a function to - * abstract the details of finding the platform detail to the data layer. - * @param {DatasetPlatform} name - the code name for a data platform - */ - readPlatform(name: DatasetPlatform): IDataPlatform | undefined { - const { platformHashedByName, list = [] } = this; - const platformByName = platformHashedByName[name]; - - if (platformByName) { - return platformByName; - } - - const platformFromList = list.find(platform => platform.name === name); - - if (!platformFromList) { - return; - } - - platformHashedByName[name] = platformFromList; - return platformFromList; - } -} - -/** - * Custom factory for the data types list factory, useful as this does not follow the typical creator - * for a base entity. - */ -export const createDatasetPlatformsList = async (): Promise => { - const platformsList = new DatasetPlatformsList(); - const platforms = await platformsList.readPlatformsList(); - - set(platformsList, 'list', platforms); - return platformsList; -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/purge-policy.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/purge-policy.ts deleted file mode 100644 index 87f4ad39502f4..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/purge-policy.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { IDatasetRetentionPolicy } from '@datahub/metadata-types/types/entity/dataset/compliance/retention'; -import { alias } from '@ember/object/computed'; -import { setProperties } from '@ember/object'; -import { PurgePolicy } from '@datahub/metadata-types/constants/entity/dataset/compliance/purge-policy'; - -export class DatasetPurgePolicy { - /** - * Original API data retrieved for this class. Stored here to power our working copy of the - * purge policy - * @type {IDatasetRetentionPolicy} - * @memberof DatasetPurgePolicy - */ - readonly data?: IDatasetRetentionPolicy; - - /** - * optional string with username of modifier - * @type {string} - * @memberof DatasetPurgePolicy - */ - @alias('data.modifiedBy') - modifiedBy?: string; - - /** - * optional timestamp of last modification date - * @type {number} - * @memberof DatasetPurgePolicy - */ - @alias('data.modifiedTime') - modifiedTime?: number; - - /** - * User entered purge notation for a dataset with a purge exempt policy - * @type {string | null} - * @memberof DatasetPurgePolicy - */ - purgeNote!: string | null; - - /** - * Purge Policy for the dataset - * @type {PurgePolicy | ''} - * @memberof DatasetPurgePolicy - */ - purgeType!: PurgePolicy | ''; - - /** - * Creates a working copy for the purge policy from the data that instantiated this class. - */ - createWorkingCopy(): void { - const { data } = this; - const { purgeNote = null, purgeType = '' }: Partial> = - data || {}; - setProperties(this, { purgeNote, purgeType }); - } - - /** - * Creates an API friendly object from our classified working copy. - */ - readWorkingCopy(): Pick { - const { purgeNote, purgeType } = this; - return { purgeNote, purgeType }; - } - - constructor(purgePolicyData?: IDatasetRetentionPolicy) { - this.data = purgePolicyData; - this.createWorkingCopy(); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/schema.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/modules/schema.ts deleted file mode 100644 index 088168a98c86c..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/modules/schema.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { IDatasetSchema, IDatasetSchemaColumn } from '@datahub/metadata-types/types/entity/dataset/schema'; -import { oneWay } from '@ember/object/computed'; - -/** - * Provides a default schema object if the API does not return anything - */ -export const datasetSchemaFactory = (): IDatasetSchema => ({ - schemaless: false, - rawSchema: null, - keySchema: null, - columns: [] -}); - -export default class DatasetSchema { - /** - * The raw data that comes from the API layer for the dataset schema - * @type {IDatasetSchema} - */ - data: IDatasetSchema; - - /** - * A pointer to the schemaless field in the original data. This is here to prevent accidental reading and writing - * of the actual data retrieved from the api layer - * @type {boolean} - */ - @oneWay('data.schemaless') - isSchemaless?: boolean; - - /** - * A pointer to the rawSchema field in the original data. This is here to prevent accidental reading and writing - * of the actual data retrieved from the api layer - * @type {string} - */ - @oneWay('data.rawSchema') - rawSchema?: string; - - /** - * A pointer to the keySchema field in the original data. This is here to prevent accidental reading and writing - * of the actual data retrieved from the api layer - * @type {string} - */ - @oneWay('data.keySchema') - keySchema?: string; - - /** - * A pointer to the columns field in the original data. This is here to prevent accidental reading and writing - * of the actual data retrieved from the api layer, and provide a more descriptive name to the consumer - * @type {Array} - */ - @oneWay('data.columns') - schemaFields?: Array; - - constructor(data: IDatasetSchema = datasetSchemaFactory()) { - this.data = data; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/render-props.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/render-props.ts deleted file mode 100644 index cba5cff3ac610..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/render-props.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { DatasetTab } from '@datahub/data-models/constants/entity/dataset/tabs'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { fields } from '@datahub/data-models/entity/dataset/fields'; - -/** - * Aspects for search datasets - */ -const defaultAspects: Array = [ - 'com.linkedin.common.Health', - 'com.linkedin.common.Likes', - 'com.linkedin.common.EntityTopUsage', - 'com.linkedin.common.Status' - // TODO META-12972: Due to performace reasons, this aspect is disabled until the ticket is resolved - // 'com.linkedin.common.Follow' -]; - -/** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * @readonly - * @static - * @type {IEntityRenderProps} - */ -export const getRenderProps = (): IEntityRenderProps => { - const apiEntityName = 'dataset'; - return { - apiEntityName, - search: { - placeholder: 'Search for datasets...', - attributes: fields, - secondaryActionComponents: [], - customFooterComponents: [ - { - name: 'top-consumers/insight/top-consumers-insight', - options: { - component: 'top-consumers/insight/insight-strip', - isOptional: true - } - }, - { name: 'social/containers/social-metadata' } - ], - isEnabled: true, - defaultAspects - }, - userEntityOwnership: { - attributes: fields, - defaultAspects - }, - browse: { - showHierarchySearch: false - }, - entityPage: { - route: 'datasets.dataset', - tabProperties: [], - defaultTab: DatasetTab.Schema, - attributePlaceholder: '-', - apiRouteName: 'datasets', - pageComponent: { - name: 'datasets/dataset-page' - }, - customHeaderComponents: [ - { - name: 'dynamic-components/entity/field', - options: { className: 'dataset-header__description', fieldName: 'description' } - }, - { name: 'datasets/containers/dataset-owner-list' } - ] - } - }; -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/legacy.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/utils/legacy.ts deleted file mode 100644 index 08e285be3130e..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/legacy.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { IDatasetEntity } from '@datahub/metadata-types/types/entity/dataset/dataset-entity'; -import { FabricType } from '@datahub/metadata-types/constants/common/fabric-type'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { buildDatasetLiUrn } from '@datahub/data-models/entity/dataset/utils/urn'; - -/** - * TODO META-11674 - * - * Converts current dataset definition into the legacy one - */ -export function toLegacy(dataset: Com.Linkedin.Dataset.Dataset, urn?: string): IDatasetEntity { - const ds = { - createdTime: dataset.created.time || 0, - decommissionTime: dataset.deprecation?.decommissionTime || null, - deprecated: dataset.deprecation?.deprecated || null, - deprecationNote: dataset.deprecation?.note || null, - description: dataset.description || '', - fabric: (dataset.origin as FabricType) || FabricType.CORP, - nativeName: dataset.name, - platform: (dataset.platform as DatasetPlatform) || DatasetPlatform.HDFS, - properties: '', - tags: [], - removed: dataset.removed, - nativeType: dataset.platformNativeType || '', - modifiedTime: dataset.lastModified.time || 0, - healthScore: dataset.health?.score || 0 - }; - const uri = urn || buildDatasetLiUrn(ds.platform, ds.nativeName, ds.fabric); - return { - ...ds, - uri - }; -} - -/** - * TODO META-11674 - * - * Converts legacy one dataset definition into the current - */ -export function fromLegacy(dataset: IDatasetEntity): Com.Linkedin.Dataset.Dataset { - return { - // Using -1 as we don't have that information in IDatasetEntity and to make sure it is an invalid id (negative) - id: -1, - name: dataset.nativeName, - description: dataset.description, - removed: dataset.removed, - origin: dataset.fabric, - platform: dataset.platform, - created: { - time: dataset.createdTime, - actor: 'Not Available' - }, - lastModified: { - time: dataset.modifiedTime, - actor: 'Not Available' - }, - properties: {}, - tags: [], - deploymentInfos: [], - health: dataset.healthScore - ? { - score: dataset.healthScore, - validations: [] - } - : undefined, - deprecation: dataset.deprecated - ? { - deprecated: dataset.deprecated, - decommissionTime: dataset.decommissionTime || undefined, - note: dataset.deprecationNote || '' - } - : undefined - }; -} diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/owner.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/utils/owner.ts deleted file mode 100644 index 1ffc7caa5aaf1..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/owner.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { IOwnerResponse } from '@datahub/data-models/types/entity/dataset/ownership'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; - -/** - * Helper method to map legacy ownership type to new ownership type - * @param category The category which the owner belongs to - */ -const transformOwnerCategoryIntoType = ( - category: Com.Linkedin.Dataset.OwnerCategory -): Com.Linkedin.Common.OwnershipType => { - switch (category) { - case 'DATA_OWNER': - return 'DEVELOPER'; - break; - case 'PRODUCER': - case 'CONSUMER': - case 'DELEGATE': - case 'STAKEHOLDER': - return category; - break; - } -}; - -/** - * Helper method that converts an legacy dataset owner response into an array of owners that is more baseEntity friendly. - * @param ownersResponse The response from the api that contains the owner information for a dataset - */ -export const transformOwnersResponseIntoOwners = (ownersResponse: IOwnerResponse): Array => { - const { owners = [] } = ownersResponse; - return owners.map(owner => ({ - owner: PersonEntity.urnFromUsername(owner.userName), - type: transformOwnerCategoryIntoType(owner.type) - })); -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/platform.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/utils/platform.ts deleted file mode 100644 index a545e49ed1c4a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/platform.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Matches a string that is prefixed by [platform and suffixed by ] - * Captures the match in the sole capture group - * @type {RegExp} - */ -const platformRegex = /\[platform=([^\]]+)]/; - -/** - * Checks that a string represents a dataset platform - * @param {string} candidate - * @returns {boolean} - */ -const isDatasetPlatform = (candidate: string): boolean => platformRegex.test(candidate); - -/** - * Checks that a string represents a dataset segment - * @param {string} candidate - * @returns {boolean} - */ -const isDatasetSegment = (candidate: string): boolean => - !isDatasetPlatform(candidate) && ['.', '/'].includes(candidate.slice(-1)); - -/** - * Checks that a string is not a dataset platform or segment - * @param {string} candidate - * @return {boolean} - */ -const isDatasetIdentifier = (candidate: string): boolean => - !!candidate && !isDatasetPlatform(candidate) && !isDatasetSegment(candidate); // not a platform and does not meet segment rules - -/** - * Takes an encoded platform string and strips out the coding metadata - * @param {string} candidateString - * @returns {(string | void)} - */ -const getPlatformFromString = (candidateString: string): string | void => { - const resultArray: Array | null = platformRegex.exec(candidateString); - - if (resultArray) { - const [, platform] = resultArray; - return platform; - } -}; - -export { platformRegex, isDatasetPlatform, isDatasetSegment, getPlatformFromString, isDatasetIdentifier }; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/segments.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/utils/segments.ts deleted file mode 100644 index 0102424df8d95..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/segments.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { IDataPlatform } from '@datahub/metadata-types/types/entity/dataset/platform'; -import { readDataPlatforms } from '@datahub/data-models/api/dataset/platforms'; - -/** - * Will return the dataset delimiter given a platform. For example HDFS uses '/' while the HIVE '.' - * @param category Platform that we want to obtain the delimiter - */ -export const getDelimiter = async (category: string): Promise => { - const dataPlatforms: Array = await readDataPlatforms(); - const currentDataPlatform = dataPlatforms.find(platform => platform.name === category); - const { datasetNameDelimiter = '.' } = currentDataPlatform || {}; - return datasetNameDelimiter; -}; - -/** - * Will return the expected prefix for the browse api given segments and a category - * @param category current browse category - * @param segments current segments without category - */ -export const getPrefix = async (category: string, segments: Array): Promise => { - const filteredSegments = segments.filter(Boolean); - const datasetNameDelimiter = await getDelimiter(category); - const prefix = - filteredSegments.length > 0 - ? `${datasetNameDelimiter === '/' ? '/' : ''}${filteredSegments.join( - datasetNameDelimiter - )}${datasetNameDelimiter}` - : ''; - - return prefix; -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/urn.ts b/datahub-web/@datahub/data-models/addon/entity/dataset/utils/urn.ts deleted file mode 100644 index c02dfa6d42cb8..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/dataset/utils/urn.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { datasetPlatformUrnPattern } from '@datahub/metadata-types/utils/entity/dataset/platform/urn'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { FabricType } from '@datahub/metadata-types/constants/common/fabric-type'; - -/** - * Some datasets have slash in their name as prefix as a map for easy exist check - */ -export const PlatformsWithSlash: Partial> = { - [DatasetPlatform.HDFS]: true, - [DatasetPlatform.SEAS_HDFS]: true, - [DatasetPlatform.SEAS_DEPLOYED]: true -}; - -/** - * All fabrics in an array format compatible with search - */ -export const fabricsArray: Array = Object.keys(FabricType).map((key: keyof typeof FabricType): string => - FabricType[key].toLowerCase() -); - -/** - * Type guard that asserts a string as a dataset fabric - * @param {string} candidate - * @return {boolean} - */ -export const isDatasetFabric = (candidate: string): candidate is FabricType => - Object.values(FabricType).includes(candidate.toUpperCase() as FabricType); - -/** - * Path segment in a urn. common btw WH and LI formats - * @type {RegExp} - */ -export const urnPath = /[\w.$\-\/{}+()\s=\*]+/; -/** - * Matches a url string with a `urn` query. urn query with letters or underscore segment of any length greater - * than 1 followed by colon and 3 forward slashes and a segment containing letters, {, }, _ or /, or none - * The value following the urn key is retained - * @type {RegExp} - */ -export const datasetUrnRegexWH = new RegExp(`([a-z_-]+):\/{3}(${urnPath.source})`, 'i'); - -/** - * Matches a urn string that follows the pattern captures, the comma delimited platform, segment and fabric - * e.g urn:li:dataset:(urn:li:dataPlatform:PLATFORM,SEGMENT,FABRIC) - * @type {RegExp} - */ -export const datasetUrnRegexLI = new RegExp( - `urn:li:dataset:\\(${datasetPlatformUrnPattern},(${urnPath.source})?,(\\w+)\\)` -); - -/** - * Matches urn's that occur in flow urls - * @type {RegExp} - */ -export const specialFlowUrnRegex = /(?:\?urn=)([a-z0-9_\-/{}\s]+)/i; - -/** - * Checks if a string matches the datasetUrnRegexWH - * @param {string} candidateUrn - * @returns {boolean} - */ -export const isWhUrn = (candidateUrn: string): boolean => datasetUrnRegexWH.test(String(candidateUrn)); - -/** - * Checks if a string matches the datasetUrnRegexLI - * @param {string} candidateUrn - * @returns {boolean} - */ -export const isLiUrn = (candidateUrn: string): boolean => datasetUrnRegexLI.test(String(candidateUrn)); - -/** - * Checks that a string matches the expected valuePatternRegex - * @param {string} candidate the supplied pattern string - * @return {boolean} - */ -export const isValidCustomValuePattern = (candidate: string): boolean => !!candidate; - -/** - * Asserts that a provided string matches the urn pattern above - * @param {string} candidateUrn the string to test on - */ -export const isUrn = (candidateUrn: string): boolean => isLiUrn(candidateUrn) || isWhUrn(candidateUrn); - -/** - * Extracted interface into a new object - */ -export interface IDatasetGetUrnPartsResponse { - platform: DatasetPlatform; - prefix: string; - fabric: FabricType; -} - -/** - * Extracts the constituent parts of a datasystem / dataset urn - * @param {string} urn - * @return {({platform: DatasetPlatform | void; prefix: string | void; fabric: Fabric | void})} - */ -export const getDatasetUrnParts = (urn: string): Partial => { - const match = datasetUrnRegexLI.exec(urn); - const urnParts: Partial = { - platform: void 0, - prefix: void 0, - fabric: void 0 - }; - - if (match) { - const [, platform, prefix, urnFabric] = match; - const fabric = String(urnFabric).toUpperCase(); - - return { - ...urnParts, - platform: platform.toLowerCase() as DatasetPlatform, - prefix, - fabric: isDatasetFabric(fabric) ? fabric : void 0 - }; - } - - return urnParts; -}; - -/** - * Converts a path from WH urn format, replace forward slash with periods in non DatasetPlatform.HDFS cases, - * add leading forward slash if platform is DatasetPlatform.HDFS - * @param {DatasetPlatform} platform - * @param {string} path - * @return {string} - */ -export const convertWhDatasetPathToLiPath = (platform: DatasetPlatform, path: string): string => { - if (PlatformsWithSlash[String(platform).toLowerCase() as DatasetPlatform]) { - return path.charAt(0) === '/' ? path : `/${path}`; - } - - return path.replace(/\//g, '.'); -}; - -/** - * Takes a dataset platform, path, and fabric to produce an liUrn - * @param {DatasetPlatform} platform - * @param {string} path - * @param {Fabric} [fabric=Fabric.Prod] - * @return {string} - */ -export const buildDatasetLiUrn = ( - platform: DatasetPlatform, - path = '', - fabric: FabricType = FabricType.PROD -): string => { - const formattedPath = convertWhDatasetPathToLiPath(platform, path); - return `urn:li:dataset:(urn:li:dataPlatform:${platform},${formattedPath},${fabric})`; -}; - -/** - * Converts a WH URN format to a LI URN format - * @param {string} whUrn - * @return {string} - */ -export const convertWhUrnToLiUrn = (whUrn: string): string => { - const [, platform = '', path = ''] = datasetUrnRegexWH.exec(whUrn) || []; - - return buildDatasetLiUrn(platform as DatasetPlatform, path); -}; - -export default isUrn; diff --git a/datahub-web/@datahub/data-models/addon/entity/group/group-entity.ts b/datahub-web/@datahub/data-models/addon/entity/group/group-entity.ts deleted file mode 100644 index e3a1e441afde0..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/group/group-entity.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { BaseEntity, statics, IBaseEntityStatics } from '@datahub/data-models/entity/base-entity'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { ICorpGroupResponse } from '@datahub/metadata-types/types/entity/group/group-entity'; - -/** - * The GroupEntity represents a group of people entities, most often associated with headless - * accounts or group aliases. - */ -@statics>() -export class GroupEntity extends BaseEntity { - /** - * Identifier for the entity - */ - static displayName: 'corp-groups' = 'corp-groups'; - - /** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * Implemented as a getter to ensure that reads are idempotent - * @readonly - * @static - */ - static get renderProps(): IEntityRenderProps { - return { - apiEntityName: 'corpgroup', - search: { - placeholder: '', - attributes: [], - isEnabled: false, - defaultAspects: [] - } - }; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/institutional-memory.ts b/datahub-web/@datahub/data-models/addon/entity/institutional-memory.ts deleted file mode 100644 index a2c24ddb9f9c2..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/institutional-memory.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { DataModelEntityInstance } from '@datahub/data-models/constants/entity'; -import { IInstitutionalMemory } from '@datahub/metadata-types/types/aspects/institutional-memory'; -import { - readInstitutionalMemory as readInstitutionalMemoryApi, - writeInstitutionalMemory as writeInstitutionalMemoryApi -} from '@datahub/data-models/api/common/institutional-memory'; -import { returnDefaultIfNotFound } from '@datahub/utils/api/fetcher'; -import { InstitutionalMemory } from '@datahub/data-models/models/aspects/institutional-memory'; -import { NotImplementedError } from '@datahub/data-models/constants/entity/shared'; -import { set } from '@ember/object'; - -// TODO META-12149 this should be part of an Aspect. This fns can't live under BaseEntity as -// then we would have a circular dependency: -// BaseEntity -> InstitutionalMemory -> PersonEntity -> BaseEntity -/** - * Retrieves a list of wiki documents related to the particular entity instance - * @readonly - */ -export async function readInstitutionalMemory(this: DataModelEntityInstance): Promise> { - const apiEntityName = this.staticInstance.renderProps.apiEntityName; - if (apiEntityName) { - // Handling for expected possibility of receiving a 404 for institutional memory for this dataset, which would - // likely mean nothing has been added yet and we should allow the user to be the first to add something - const { elements: institutionalMemories } = await returnDefaultIfNotFound( - readInstitutionalMemoryApi(this.urn, apiEntityName), - { - elements: [] as Array - } - ); - - const institutionalMemoriesMap = institutionalMemories.map( - (link): InstitutionalMemory => new InstitutionalMemory(link) - ); - set(this, 'institutionalMemories', institutionalMemoriesMap); - return institutionalMemoriesMap; - } else { - throw new Error(NotImplementedError); - } -} - -/** - * Writes a list of wiki documents related to a particular entity instance to the api layer - */ -export async function writeInstitutionalMemory(this: DataModelEntityInstance): Promise { - const apiEntityName = this.staticInstance.renderProps.apiEntityName; - if (apiEntityName) { - const { institutionalMemories } = this; - institutionalMemories && - (await writeInstitutionalMemoryApi( - this.urn, - apiEntityName, - institutionalMemories.map((link): IInstitutionalMemory => link.readWorkingCopy()) - )); - } else { - throw new Error(NotImplementedError); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/list/list-entity.ts b/datahub-web/@datahub/data-models/addon/entity/list/list-entity.ts deleted file mode 100644 index 92a4742488627..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/list/list-entity.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { BaseEntity, statics, IBaseEntityStatics } from '@datahub/data-models/entity/base-entity'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { relationship } from '@datahub/data-models/relationships/decorator'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * A ListEntity is an arbitrary list that a user has created to save a set of other types of - * entities and form a logical grouping for those entities. - * - * IMPORTANT WORDAGE: - * publisher - The publisher of a list is a person with edit permissions for that list, allowing them - * to change the metadata about the list or its contents. The user who created a list is - * automatically the sole publisher of that list. - * - * subscriber - A subscriber is someone who does not have publisher permissions on a list but still - * wishes to add it to their own namespace. A subscriber cannot edit the list, but will still be able - * to reference it from their own user profile page. This list is the same urn as the original list, - * meaning it is considered the same list and any updates by a publisher will be reflected in the - * subscribed list. - */ -@statics>() -export class ListEntity extends BaseEntity<{}> { - /** - * Identifier for the entity - */ - static displayName: 'lists' = 'lists'; - - /** - * Default renderProps for a list entity. We will not be dealing with list entity pages - */ - static get renderProps(): IEntityRenderProps { - return { - apiEntityName: 'N/A', - search: { - placeholder: '', - attributes: [], - isEnabled: false, - defaultAspects: [] - } - }; - } - - /** - * Returns the static displayName identifier attached to the class - */ - get displayName(): 'lists' { - return this.staticInstance.displayName as 'lists'; - } - - /** - * A name of the list given by the user upon creation of this list - */ - name = ''; - - /** - * A short description about the contents or purpose of the list given by the publisher - */ - description?: string; - - /** - * The urn identifiers for the entities that are included in this list - */ - entityUrns: Array = []; - - /** - * The entities that are included in this list expressed as an array of instances of those entities - */ - entities?: Array; - - /** - * The urn identifiers for the people that are "publishers" of this list. Definition for a publisher - * can be found in the class documentation - */ - publisherUrns: Array = []; - - /** - * The publishers of the list expressed as instances of PersonEntity. Definition for a publisher - * can be found in the class documentation - */ - @relationship('people', 'publisherUrns') - publishers!: Array; - - /** - * The subscribers of a list expressed as instances of PersonEntity. Definition of a subscriber - * can be found in the class documentation - * - * Note: This feature is currently on the roadmap but not implemented yet so we're keeping here - * for definition only - */ - subscribers?: Array; -} diff --git a/datahub-web/@datahub/data-models/addon/entity/mock/mock-entity.ts b/datahub-web/@datahub/data-models/addon/entity/mock/mock-entity.ts deleted file mode 100644 index ef5ce08d21ddd..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/mock/mock-entity.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { BaseEntity } from '@datahub/data-models/entity/base-entity'; -import { IBaseEntity } from '@datahub/metadata-types/types/entity/index'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * Mock Entity for testing purposes only. The goal of this class is to - * simplify testing by creating an metadata agnostic entity type that is a concrete implementation of BaseEntity. - */ -export class MockEntity extends BaseEntity { - static displayName: 'mock-entity' = 'mock-entity'; - static kind = 'mock-entity'; - static get renderProps(): IEntityRenderProps { - return { - apiEntityName: 'mock-api', - search: { - placeholder: 'mock-placeholder', - attributes: [ - { - fieldName: 'pikachu', - showInAutoCompletion: false, - showInResultsPreview: false, - showInFacets: false, - displayName: 'Pikachu', - desc: 'A mock field', - example: 'Electrifying' - }, - { - fieldName: 'eevee', - showInAutoCompletion: false, - showInResultsPreview: false, - showInFacets: false, - displayName: 'Eevee', - desc: 'A mock field', - example: 'Evolutionary' - } - ], - defaultAspects: [] - }, - entityPage: { - route: 'entity-type.urn', - tabProperties: [], - defaultTab: 'mock-tab', - apiRouteName: 'mock-api' - } - }; - } - get displayName(): string { - return MockEntity.displayName; - } - - get name(): string { - return 'mock entity'; - } - - constructor(readonly urn: string = 'mock-urn') { - super(urn); - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/person/modules/acl.ts b/datahub-web/@datahub/data-models/addon/entity/person/modules/acl.ts deleted file mode 100644 index 9ccfa21178710..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/person/modules/acl.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { AccessControlAccessType, AclAccessStatus } from '@datahub/data-models/constants/entity/common/acl-access'; - -/** - * The AclAccess class represents a wrapper around an entity for the sake of representing an acl - * access object to that specific entity. This provides the metadata associated over that - */ -export class AclAccess { - /** - * Reference to the underlying entity for which this acl access object represents - */ - entity: T; - - /** - * The environment for which this acl access object is valid. Internally this equates to "fabric" - * but may also be expanded to include various platforms - */ - environment: string; - - /** - * The type of access that this access object is for, i.e. READ, WRITE - */ - accessType: Array; - - /** - * The current status of the access, i.e. ACTIVE or EXPIRED - */ - status: AclAccessStatus; - - /** - * If the ACL access can expire, then we will store it here. Otherwise, this will be null and - * implies that the user has standing access to the underlying entity data - */ - expiration: number | null; - - /** - * The business justification used previously to gain acl access for this entity - * Optional - only defined if owner is accessing own JIT ACLs - */ - businessJustification?: string; - - constructor( - entity: T, - metadata: { - environment: string; - accessType: Array; - status: AclAccessStatus; - expiration: number | null; - businessJustification?: string; - } - ) { - const { environment, accessType, status, expiration = null, businessJustification } = metadata; - this.entity = entity; - - this.environment = environment; - this.accessType = accessType; - this.status = status; - this.expiration = expiration; - this.businessJustification = businessJustification; - } -} diff --git a/datahub-web/@datahub/data-models/addon/entity/person/person-entity.ts b/datahub-web/@datahub/data-models/addon/entity/person/person-entity.ts deleted file mode 100644 index d8970e88b3091..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/person/person-entity.ts +++ /dev/null @@ -1,388 +0,0 @@ -import getActorFromUrn from '@datahub/data-models/utils/get-actor-from-urn'; -import { computed, set } from '@ember/object'; -import { profileLinkBase } from '@datahub/data-models/constants/entity/person/links'; -import { NotImplementedError } from '@datahub/data-models/constants/entity/shared'; -import { - getRenderProps, - IPersonEntitySpecificConfigs, - getPersonEntitySpecificRenderProps -} from '@datahub/data-models/entity/person/render-props'; -import { AclAccess } from '@datahub/data-models/entity/person/modules/acl'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { BaseEntity, statics, IBaseEntityStatics } from '@datahub/data-models/entity/base-entity'; -import { IEntityRenderProps } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; -import { IPersonEntityEditableProperties } from '@datahub/data-models/types/entity/person/props'; -import { ICorpUserInfo } from '@datahub/metadata-types/types/entity/person/person-entity'; -import { readPerson, saveEditablePersonalInfo } from '@datahub/data-models/api/person/entity'; -import { alias, not } from '@ember/object/computed'; -import { relationship } from '@datahub/data-models/relationships/decorator'; -import { ListEntity } from '@datahub/data-models/entity/list/list-entity'; -import { SocialAction } from '@datahub/data-models/constants/entity/person/social-actions'; -import { corpUserUrnBasePrefix } from '@datahub/data-models/config/urn/base-prefix'; - -@statics>() -export class PersonEntity extends BaseEntity { - /** - * The human friendly alias for Dataset entities - */ - static displayName: 'people' = 'people'; - - /** - * Base url for fetching the user profile picture - */ - static aviUrlPrimary: string; - - /** - * Fallback url if the aviUrlPrimary url did not fetch a picture from the requested resource - */ - static aviUrlFallback: string; - - /** - * Static util function that can extract a username from the urn for a person entity using whatever - * custom logic is necessary to accomplish this - * @param urn - person entity identifier - * @deprecated - * Should be removed as part of open source. Definition will be on LiPersonEntity - * TODO: [META-9698] Migrate to using LiPersonEntity - */ - static usernameFromUrn(urn: string): string { - return getActorFromUrn(urn); - } - - /** - * Static util function that can reverse the extraction of a username from urn for a person - * entity and return to a urn (assuming the two are different) - * IMPLEMENTATION NEEDED - This is only an open source interface definition - * @param {string} username - the username to be converted - * @static - */ - static urnFromUsername(username: string): string { - // TODO: [META-11362] Temporarily identity function until we have urn class - return `${corpUserUrnBasePrefix}${username}`; - } - - /** - * Static util function that can provide a profile page link for a particular username - * @param username - username for the person entity. Can be different from urn - * @deprecated - * Should be removed as part of open source. Definition will be on LiPersonEntity - * TODO: [META-9698] Migrate to using LiPersonEntity - */ - static profileLinkFromUsername(username: string): string { - return `${profileLinkBase}${username}`; - } - - /** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * Implemented as a getter to ensure that reads are idempotent - * @readonly - * @static - */ - static get renderProps(): IEntityRenderProps { - return getRenderProps(); - } - - static ownershipEntities: Array<{ entity: DataModelEntity; getter: keyof PersonEntity }> = [ - { entity: DatasetEntity, getter: 'readDatasetOwnership' } - ]; - - /** - * Properties for render props that are only applicable to the person entity. Dictates how UI - * components should be rendered for this entity - */ - static get personEntityRenderProps(): IPersonEntitySpecificConfigs { - return getPersonEntitySpecificRenderProps(); - } - - /** - * Combined render properties for the generic entity render props + all person entity specific - * render properties - */ - static get allRenderProps(): IEntityRenderProps & IPersonEntitySpecificConfigs { - return { ...getRenderProps(), ...getPersonEntitySpecificRenderProps() }; - } - - /** - * Allows access to the static display name of the entity from an instance - */ - get displayName(): 'people' { - return PersonEntity.displayName; - } - - /** - * Manually saved fullname, useful for when we have the name available but don't want to waste a - * full api call on readEntity - */ - fullName = ''; - - /** - * The person's display name - * Try to show the name, fallback to username if not available - */ - @computed('entity.info.fullName', 'fullName', 'username') - get name(): string { - const { entity } = this; - return entity?.info?.fullName || this.fullName || this.username; - } - - set name(value: string) { - set(this, 'fullName', value); - } - - /** - * The person's title at the company - */ - @alias('entity.info.title') - title!: string; - - /** - * Url link to the person's profile picture - */ - get profilePictureUrl(): string { - const fallbackImgUrl = PersonEntity.aviUrlFallback || '/assets/images/default_avatar.png'; - const baseUrl = PersonEntity.aviUrlPrimary; - - return baseUrl ? baseUrl.replace('[username]', (): string => this.username) : fallbackImgUrl; - } - - /** - * identifier for the person that this person reports to - */ - @alias('entity.info.managerUrn') - reportsToUrn?: string; - - /** - * Defines the relationship for the person that this person reports to - */ - @relationship('people', 'reportsToUrn') - manager?: PersonEntity; - - /** - * Actual reference to related entity for this person - */ - @computed('entity') - get reportsTo(): PersonEntity | void { - const { entity, manager } = this; - if (entity && manager) { - const managerEntity = manager; - set(managerEntity, 'name', entity.info.managerName || ''); - return managerEntity; - } - } - - /** - * User's email address - */ - @alias('entity.info.email') - email!: string; - - /** - * A list of skills that this particular person entity has declared to own. - */ - @computed('entity.editableInfo.skills') - get skills(): Array { - const { entity } = this; - return (entity && entity.editableInfo && entity.editableInfo.skills) || []; - } - - /** - * A link to the user's linkedin profile - */ - @computed() - get linkedinProfile(): string | void { - throw new Error(NotImplementedError); - } - - /** - * A link to the user through slack - */ - slackLink?: string; - - /** - * The datasets for which the specified PersonEntity has access to the underlying data - */ - datasetsWithAclAccess?: Array>; - - /** - * List of datasets owned by this particular user entity - */ - datasetOwnership?: Array; - - /** - * Alias for when to show inactive tag - */ - @not('entity.info.active') - inactive!: boolean; - - /** - * User-provided focus area, describing themselves and what they do - */ - @computed('entity.editableInfo.aboutMe') - get focusArea(): string { - const { entity } = this; - return (entity && entity.editableInfo && entity.editableInfo.aboutMe) || ''; - } - - /** - * Tags that in aggregate denote which team and organization to which the user belongs - */ - @computed('entity.editableInfo.teams') - get teamTags(): Array { - const { entity } = this; - return (entity && entity.editableInfo && entity.editableInfo.teams) || []; - } - - /** - * Computes the username for easy access from the urn - * @type {string} - * @deprecated - * Should be removed in favor of adding this to internal version of the class - * TODO: [META-9698] Migrate to using LiPersonEntity - */ - @computed('urn', 'entity') - get username(): string { - const { entity } = this; - return entity ? entity.username : getActorFromUrn(this.urn); - } - - /** - * Computed from the username to grab the profile link for easy access - * @type {string} - */ - @computed('username') - get profileLink(): string { - return PersonEntity.profileLinkFromUsername(this.username); - } - - /** - * Retrieves the basic entity information for the person - */ - get readEntity(): Promise { - return readPerson(this.urn).then( - (person): ICorpUserInfo => { - const personApiView = { - ...person, - urn: this.urn - }; - - return personApiView; - } - ); - } - - /** - * Prevents implementation error by overriding base entity snapshot and returning undefined - */ - get readSnapshot(): Promise { - return Promise.resolve(undefined); - } - - /** - * Function version of get readEntity() and sets the value of personApiView to this instance - * Useful for avoiding exposure of API concerns to the individual package levels - */ - async retrieveAndSetEntityData(): Promise { - const entityData = await this.readEntity; - set(this, 'entity', entityData); - return this; - } - - /** - * Reads the datasets for which this person entity has ownership. - */ - readDatasetOwnership(): Promise> { - throw new Error(NotImplementedError); - } - - /** - * Updates the editable properties for this person entity instance - * @param {IPersonEntityEditableProperties} props - snapshot of the newly updated properties that - * that we want to persist - */ - updateEditableProperties(props: IPersonEntityEditableProperties): Promise { - return saveEditablePersonalInfo(this.urn, { - teams: props.teamTags, - aboutMe: props.focusArea, - skills: props.skills - }); - } - - /** - * The urns of the direct reports of this person, if they have any - * - * Note: Defined as a getter as the expectation is this property will be dependent on some - * other base proeprty on this class - */ - get directReportUrns(): Array { - // Note: The is intentionally left as a blank array, implementation pending - return []; - } - - /** - * This person's direct reports, expressed as other instances of person entity - */ - @relationship('people', 'directReportUrns') - directReports!: Array; - - /** - * The urns of the peers (same team, same level) as the person, if they have any - * - * Note: Defined as a getter as the expectation is this property will be dependent on some - * other base proeprty on this class* - */ - get peersUrns(): Array { - // Note: The is intentionally left as a blank array, implementation pending - return []; - } - - /** - * This person's peers, expressed as other instances of person entity - */ - @relationship('people', 'peersUrns') - peers!: Array; - - /** - * Opts out any PersonEntity from BEING liked, followed, or saved to a list - */ - allowedSocialActions = { - [SocialAction.LIKE]: false, - [SocialAction.FOLLOW]: false, - [SocialAction.SAVE]: false - }; - - /** - * Reference by id to the list of lists that this person has publisher access to - * Note: Refer to IMPORTANT WORDAGE in ListEntity for definition of publisher - */ - publishedListUrns: Array = []; - - /** - * This person's published lists, expressed as the list entity instances - */ - @relationship('lists', 'publishedListUrns') - publishedLists!: Array; - - /** - * Urns for the entities that this person has liked - */ - likedEntityUrns: Array = []; - - /** - * Urns for the entities that this person has followed - */ - followedEntityUrns: Array = []; - - /** - * Placeholder function for the method that will trigger a follow function for an entity - * @param _entityUrn - urn for the entity that we want to follow - */ - followEntity(_entityUrn: string): void {} - - /** - * Placeholder function for the method that will trigger a like function for an entity - * @param _entityUrn - urn for the entity that we want to like - */ - likeEntity(_entityUrn: string): void {} -} diff --git a/datahub-web/@datahub/data-models/addon/entity/person/render-props.ts b/datahub-web/@datahub/data-models/addon/entity/person/render-props.ts deleted file mode 100644 index 9eafa02a59326..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/person/render-props.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { - IEntityRenderProps, - IEntityRenderPropsEntityPage, - ITabProperties -} from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { PersonTab, getPersonTabPropertiesFor } from '@datahub/data-models/constants/entity/person/tabs'; - -/** - * Specific render properties only to the person entity - */ -export interface IPersonEntitySpecificConfigs { - userProfilePage: { - headerProperties: { - showExternalProfileLink?: boolean; - externalProfileLinkText?: string; - isConnectedToLinkedin?: boolean; - isConnectedToSlack?: boolean; - }; - tablistMenuProperties: Record>; - }; -} - -/** - * Class properties common across instances - * Dictates how visual ui components should be rendered - * Implemented as a getter to ensure that reads are idempotent - * - * Making sure entityPage is not marked optional in the types as we know it is defined - */ -export const getRenderProps = (): IEntityRenderProps & { - entityPage: IEntityRenderPropsEntityPage; -} => { - const tabIds = [PersonTab.UserOwnership]; - const aspects: Array = ['com.linkedin.identity.CorpUserInfo']; - - return { - apiEntityName: 'corpuser', - entityPage: { - apiRouteName: 'corpusers', - route: 'user.profile', - tabProperties: getPersonTabPropertiesFor(tabIds), - defaultTab: PersonTab.UserOwnership, - attributePlaceholder: '–' - }, - // Placeholder information - search: { - attributes: [ - { - fieldName: 'reportsTo.entityLink.link', - component: { - name: 'link/optional-value' - }, - showInResultsPreview: true, - showInAutoCompletion: false, - showInFacets: false, - displayName: 'Manager', - desc: '', - example: '' - }, - { - fieldName: 'teamTags', - showInResultsPreview: true, - showInAutoCompletion: false, - showInFacets: false, - displayName: 'Team', - desc: '', - example: '' - }, - { - fieldName: 'skills', - showInResultsPreview: true, - showInAutoCompletion: false, - showInFacets: false, - displayName: 'Ask me about', - desc: '', - example: '' - }, - { - showInAutoCompletion: false, - fieldName: 'inactive', - showInResultsPreview: false, - displayName: 'Inactive', - showInFacets: false, - desc: '', - example: '', - tagComponent: { - name: 'search/custom-search-result-property-component/tag', - options: { - state: 'alert', - text: 'Inactive' - } - } - } - ], - searchResultEntityFields: { - description: 'title', - pictureUrl: 'profilePictureUrl' - }, - showFacets: false, - placeholder: 'Search for People...', - autocompleteNameField: 'fullName', - isEnabled: true, - defaultAspects: aspects - } - }; -}; - -/** - * Properties for render props that are only applicable to the person entity. Dictates how UI - * components should be rendered for this entity - */ -export const getPersonEntitySpecificRenderProps = (): IPersonEntitySpecificConfigs => ({ - userProfilePage: { - headerProperties: { - showExternalProfileLink: false - }, - tablistMenuProperties: {} - } -}); diff --git a/datahub-web/@datahub/data-models/addon/entity/utils/aspects.ts b/datahub-web/@datahub/data-models/addon/entity/utils/aspects.ts deleted file mode 100644 index 8fac1e36ff7b8..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/utils/aspects.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { computed, set } from '@ember/object'; - -// This interface should be augmented by different entities -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface IAvailableAspects {} - -/** - * The class that is going to support aspects should follow this interface - */ -interface IAspectContainer { - aspectsLoaded?: Array; - aspectBag?: IAvailableAspects; - aspectMapKeyToName?: Record; // entityTopUsage => com.linkedin.common.EntityTopUsage - entity?: {}; -} - -/** - * Aspect decorator, to decorate properties with the aspect name. - * It will link to the entity propery name (same as the variable name for now), but - * if the aspect is defined in the aspect bag, it will take preference. - * - * @param aspectName aspect name, for example, com.linkedin.common.Likes - */ -export const aspect = function(aspectName: string) { - return function(...args: [IAspectContainer, string]): void { - const [target, propertyKey] = args; - const { aspectMapKeyToName } = target; - set(target, 'aspectMapKeyToName', { - ...aspectMapKeyToName, - [propertyKey]: aspectName - }); - return computed(`entity.${propertyKey}`, `aspectBag`, function(this: IAspectContainer) { - const { entity, aspectBag } = this; - const value = entity && (entity as Record)[propertyKey]; - const aspectValue = aspectBag && aspectBag[aspectName as keyof IAvailableAspects]; - return aspectValue || value; - })(...args); - }; -}; - -/** - * Will transform the aspect name (ie com.xxxx) to the key (ie likes) - * @param target - * @param key - */ -const getAspectName = (target: IAspectContainer, key: string): string => { - const aspectName = target.aspectMapKeyToName && target.aspectMapKeyToName[key]; - return aspectName || key; // if we dont have the key we assume that you actually passed a name -}; - -/** - * See addAspectLoaded for better contextual understanding. - * - * This will check if the aspect is present or not in the aspect bag - * - * @param target the specific entity which the aspects are loaded - * @param aspect the name of the aspect that we want to check (com.linkedin.common.Likes) - */ -export const hasAspect = (target: IAspectContainer, aspectNameOrKey: string): boolean => { - const aspectsLoaded = target.aspectsLoaded || []; - const aspectName = getAspectName(target, aspectNameOrKey); - return aspectsLoaded.indexOf(aspectName) >= 0; -}; - -/** - * Will add an aspect to the aspectsLoaded list. For example, search will ask the api for specific - * aspects. In that case, search will assume that the aspects are returned and will mark those aspects as loaded. - * - * The intent of this array is to act as a flag. That way, we can differenciate if the aspect is not available (no data) or if the aspect - * was simply not queried. - * - * @param target the specific entity which the aspects are loaded - * @param aspectName the aspect that is loaded - */ -export const addAspectLoaded = (target: IAspectContainer, aspectNameOrKey: string): void => { - const aspectName = getAspectName(target, aspectNameOrKey); - if (!hasAspect(target, aspectName)) { - set(target, 'aspectsLoaded', [...(target.aspectsLoaded || []), aspectName]); - } -}; - -/** - * Will set the aspect into the aspect bag so it is readable by the @aspect decorator - * @param target specific entity that we want to set the aspect - * @param aspectName name of the aspect (com.linkedin.common.Likes) - * @param value value of the aspect - */ -export const setAspect = ( - target: IAspectContainer, - aspectKey: T, - value: IAvailableAspects[T] -): void => { - const aspectName = getAspectName(target, aspectKey); - - target.aspectBag = target.aspectBag || {}; - - addAspectLoaded(target, aspectName); - - set(target, 'aspectBag', { - ...target.aspectBag, - [aspectName]: value - }); -}; diff --git a/datahub-web/@datahub/data-models/addon/entity/utils/entities.ts b/datahub-web/@datahub/data-models/addon/entity/utils/entities.ts deleted file mode 100644 index 13d33ae99f02d..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/utils/entities.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DataModelEntity } from '@datahub/data-models/constants/entity'; -import { capitalize } from '@ember/string'; -import { arrayToString } from '@datahub/utils/array/array-to-string'; - -/** - * Outputs the list of available entities readable by humans, eg: Datasets or UMP Metrics - */ -export const stringListOfEntities = (entities: Array): string => - arrayToString(entities.map((entity: DataModelEntity) => capitalize(entity.displayName))); diff --git a/datahub-web/@datahub/data-models/addon/entity/utils/facets.ts b/datahub-web/@datahub/data-models/addon/entity/utils/facets.ts deleted file mode 100644 index 1fc7f623a454f..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/utils/facets.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { typeOf } from '@ember/utils'; -import { IFacetsSelectionsMap, IFacetSelections } from '@datahub/data-models/types/entity/facets'; -import { ISearchEntityRenderProps } from '@datahub/data-models/types/search/search-entity-render-prop'; -import { KeyNamesWithValueType } from '@datahub/utils/types/base'; - -/** - * Filtering field names that returns array - */ -type FieldNames = KeyNamesWithValueType | undefined>; - -/** - * returns key/value pairs depending on key of field - * @param fields - * @param filterField - */ -const facetFilter = ( - fields: Array, - filterField: FieldNames -): Record> => { - return fields.reduce((facetsApiParams: Record>, field): Record> => { - if (filterField && typeOf(field[filterField]) !== 'undefined') { - return { - ...facetsApiParams, - [field.fieldName]: field[filterField] || [] - }; - } - return facetsApiParams; - }, {}); -}; - -/** - * Will return an key value object with forced facets given a list of fields - */ -export const getFacetForcedValueForEntity = (fields: Array): Record> => - facetFilter(fields, 'forcedFacetValue'); - -/** - * Will return an key value object with deafult facets given a list of fields - */ -export const getFacetDefaultValueForEntity = (fields: Array): Record> => - facetFilter(fields, 'facetDefaultValue'); - -/** - * Transforms an input like this: - * { - * status: ['PUBLISHED'] - * } - * - * into this: - * { - * status: { - * PUBLISHED: true - * } - * } - * - * This is useful to transform default facets into a string - * @param defaults - */ -export const transformDefaultsIntoSelections = (defaults: Record>): IFacetsSelectionsMap => - Object.keys(defaults).reduce((selections: IFacetsSelectionsMap, facetKey: string): IFacetsSelectionsMap => { - const values = defaults[facetKey]; - return { - ...selections, - [facetKey]: values.reduce( - (selection: IFacetSelections, value: string): IFacetSelections => ({ ...selection, [value]: true }), - {} - ) - }; - }, {}); diff --git a/datahub-web/@datahub/data-models/addon/entity/utils/fields.ts b/datahub-web/@datahub/data-models/addon/entity/utils/fields.ts deleted file mode 100644 index 46c389f833866..0000000000000 --- a/datahub-web/@datahub/data-models/addon/entity/utils/fields.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ISearchEntityRenderProps } from '@datahub/data-models/types/search/search-entity-render-prop'; - -/** - * Default sorting fn for ISearchEntityRenderProps - */ -export const sortFields = (fieldA: ISearchEntityRenderProps, fieldB: ISearchEntityRenderProps): number => - fieldA.displayName.toLowerCase() < fieldB.displayName.toLowerCase() ? -1 : 1; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-ownership.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-ownership.ts deleted file mode 100644 index 3c635d1ac1892..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-ownership.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Factory } from 'ember-cli-mirage'; -import faker from 'faker'; -import { IOwnerResponse, IOwner } from '@datahub/data-models/types/entity/dataset/ownership'; -import { corpUserUrnBasePrefix } from '@datahub/data-models/config/urn/base-prefix'; -import { OwnerUrnNamespace } from '@datahub/data-models/constants/entity/dataset/ownership'; - -export default Factory.extend({ - owners(): Array { - const numberOfOwners = faker.random.number({ min: 1, max: 10 }); - return Array.from( - { length: numberOfOwners }, - (): IOwner => ({ - confirmedBy: null, - email: faker.internet.email(), - isActive: faker.random.arrayElement([true, false]), - isGroup: faker.random.arrayElement([true, false]), - name: faker.name.firstName(), - modifiedTime: faker.date.recent().getTime(), - idType: faker.random.arrayElement(['USER', 'GROUP', 'SERVICE']), - namespace: faker.random.arrayElement(Object.values(OwnerUrnNamespace)), - source: faker.random.arrayElement([ - 'AUDIT', - 'DATA_VAULT', - 'DATABASE', - 'FILE_SYSTEM', - 'JIRA', - 'NUAGE', - 'OTHER', - 'REVIEW_BOARD', - 'SOS', - 'SOURCE_CONTROL', - 'USER_INTERFACE' - ]), - type: faker.random.arrayElement(['DATA_OWNER', 'PRODUCER', 'DELEGATE', 'STAKEHOLDER', 'CONSUMER']), - userName: faker.internet.userName(), - sortId: null, - subType: null - }) - ); - }, - fromUpstream(): boolean { - return faker.random.arrayElement([true, false]); - }, - datasetUrn: faker.lorem.slug, - lastModified(): number { - return faker.date.recent().getTime(); - }, - actor(): string { - return `${corpUserUrnBasePrefix}${faker.internet.userName()}`; - } -}); - -// IOwnerResponse augmented with a urn to support Mirage DB request that use the requested urn to find an instance -type OwnerResponseWithUrn = IOwnerResponse & { urn: string }; - -declare module 'ember-cli-mirage/types/registries/schema' { - interface IMirageSchemaRegistry { - datasetOwnerships: OwnerResponseWithUrn; - datasetOwnership?: OwnerResponseWithUrn; - } -} -declare module 'ember-cli-mirage/types/registries/model' { - interface IMirageModelRegistry { - datasetOwnerships: OwnerResponseWithUrn; - datasetOwnership?: OwnerResponseWithUrn; - } -} diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-schema-column.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-schema-column.ts deleted file mode 100644 index 2c7eb9e3371fa..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset-schema-column.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Factory, faker } from 'ember-cli-mirage'; -import { IDatasetSchemaColumn } from '@datahub/metadata-types/types/entity/dataset/schema'; - -export default Factory.extend({ - comment: faker.lorem.sentence, - //faker 3 does not have database - dataType: (faker.database && faker.database.type) || ((i: number): string => `data_type_${i}`), - distributed: faker.random.boolean, - //faker 3 does not have database - fieldName: (faker.database && faker.database.column) || ((i: number): string => `field_name_${i}`), - fullFieldPath: faker.system.filePath, - indexed: faker.random.boolean, - nullable: faker.random.boolean, - partitioned: faker.random.boolean, - treeGridClass: null, - commentCount(): number { - return faker.random.number(1000); - }, - id(): number | null { - return faker.random.arrayElement([faker.random.number(), null]); - }, - parentSortID() { - return faker.random.number(100); - }, - sortID(): number { - return faker.random.number(100); - } -}); - -declare module 'ember-cli-mirage/types/registries/schema' { - interface IMirageSchemaRegistry { - datasetSchemaColumns: IDatasetSchemaColumn; - datasetSchemaColumn?: IDatasetSchemaColumn; - } -} - -declare module 'ember-cli-mirage/types/registries/model' { - interface IMirageModelRegistry { - datasetSchemaColumns: IDatasetSchemaColumn; - datasetSchemaColumn?: IDatasetSchemaColumn; - } -} diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset.ts deleted file mode 100644 index bec68a4b1e358..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/factories/dataset.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Factory, faker } from 'ember-cli-mirage'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; - -// URN is needed for search results -export default Factory.extend({ - id(i: number): number { - return i; - }, - description: faker.lorem.paragraph(1), - platformNativeType: faker.random.arrayElement(['TABLE', 'VIEW', 'DIRECTORY', 'STREAM', 'BUCKET']), - removed: false, - name(i: number): string { - return `dataset-${i}`; - }, - platform: faker.random.arrayElement( - // TODO: [META-11778] This should be no longer necessary once we provide a more elegant solution - // We remove the UMP platform from the random chooser as this can create issues when the - // platform is not expected to be UMP - Object.values(DatasetPlatform).filter((platform): boolean => platform !== DatasetPlatform.UMP) - ), - origin: 'PROD', //defaults to PROD - uri(): string { - return `urn:li:dataset:(urn:li:dataPlatform:${this.platform},${this.name},${this.origin})`; - }, - urn(): string { - return this.uri as string; - }, - deploymentInfos: () => [], - tags: () => [], - created: () => ({ - actor: faker.name.firstName(), - time: faker.date.past().getTime() - }), - lastModified: () => ({ - actor: faker.name.firstName(), - time: faker.date.past().getTime() - }), - health: () => ({ - validations: [], - score: Math.random() - }) -}); - -declare module 'ember-cli-mirage/types/registries/schema' { - interface IMirageSchemaRegistry { - datasets: Com.Linkedin.Dataset.Dataset & { urn: string }; - dataset?: Com.Linkedin.Dataset.Dataset & { urn: string }; - } -} - -declare module 'ember-cli-mirage/types/registries/model' { - interface IMirageModelRegistry { - datasets: Com.Linkedin.Dataset.Dataset & { urn: string }; - dataset?: Com.Linkedin.Dataset.Dataset & { urn: string }; - } -} diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/fixtures/dataset-ownership.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/fixtures/dataset-ownership.ts deleted file mode 100644 index 2eb637f7b3e37..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/fixtures/dataset-ownership.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { IOwner } from '@datahub/data-models/types/entity/dataset/ownership'; -import { OwnerUrnNamespace } from '@datahub/data-models/constants/entity/dataset/ownership'; - -export default [ - { - confirmedBy: 'test', - email: 'confirmed-owner@example.com', - idType: 'USER', - isActive: true, - isGroup: true, - modifiedTime: Date.now(), - name: 'confirmed owner', - userName: 'fakeconfirmedowner', - namespace: OwnerUrnNamespace.corpUser, - source: 'USER_INTERFACE', - subType: null, - type: 'DATA_OWNER' - }, - { - confirmedBy: 'test', - email: 'suggested-owner@example.com', - idType: 'USER', - isActive: true, - isGroup: true, - modifiedTime: Date.now(), - name: 'suggested owner', - userName: 'fakesuggestedowner', - namespace: OwnerUrnNamespace.corpUser, - source: 'NUAGE', - subType: null, - type: 'DATA_OWNER' - } -] as Array; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/mirage-config.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/mirage-config.ts deleted file mode 100644 index a486b27e455c7..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/mirage-config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Server } from 'ember-cli-mirage'; -import { getApiRoot, ApiVersion } from '@datahub/utils/api/shared'; -import { ownershipEndpoint } from '@datahub/data-models/api/dataset/ownership'; -import { getDatasetOwnership } from '@datahub/data-models/mirage-addon/test-helpers/datasets/ownership'; -import { getEntity } from '@datahub/data-models/mirage-addon/test-helpers/get-entity'; -import { getDatasetSchema } from '@datahub/data-models/mirage-addon/test-helpers/datasets/schema'; -/** - * Shareable mirage/config for dependent modules - * @param {Server} server the passed in Mirage server instance in the calling test - */ -export const setup = (server: Server): void => { - server.namespace = getApiRoot(ApiVersion.v2); - - server.get('/:entityType/:identifier', getEntity); - server.get(`datasets/:urn/${ownershipEndpoint}`, getDatasetOwnership); - server.get('/datasets/:urn/schema', getDatasetSchema); -}; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset-ownership.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset-ownership.ts deleted file mode 100644 index 770b50936d3c0..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset-ownership.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Model } from 'ember-cli-mirage'; - -export default Model.extend({}); diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset.ts deleted file mode 100644 index 770b50936d3c0..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/models/dataset.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Model } from 'ember-cli-mirage'; - -export default Model.extend({}); diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/scenarios/dataset-ownership.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/scenarios/dataset-ownership.ts deleted file mode 100644 index 00704b725e2c0..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/scenarios/dataset-ownership.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Server } from 'ember-cli-mirage'; -import { testDatasetOwnershipUrn } from '@datahub/data-models/mirage-addon/test-helpers/datasets/ownership'; -import owners from '@datahub/data-models/mirage-addon/fixtures/dataset-ownership'; - -export default function(server: Server): void { - server.createList('datasetOwnership', 3); - - server.createList('datasetOwnership', 1, { - urn: testDatasetOwnershipUrn, - owners - }); -} diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/datasets.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/datasets.ts deleted file mode 100644 index 4c458933a3031..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/datasets.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Server } from 'ember-cli-mirage'; -import { getDatasetUrnParts } from '@datahub/data-models/entity/dataset/utils/urn'; -/** - * Will create a dataset given a urn in mirage - * @param server - * @param name - */ -export const createDataset = ( - server: Server, - urn: string, - traits: Partial = {} -): void => { - const { platform, prefix, fabric } = getDatasetUrnParts(urn); - server.create('dataset', { ...traits, platform, name: prefix, origin: fabric }); -}; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/ownership.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/ownership.ts deleted file mode 100644 index f0b38657fe5c9..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/ownership.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { HandlerFunction, Schema, Request, MirageRecord } from 'ember-cli-mirage'; -import { IOwnerResponse } from '@datahub/data-models/types/entity/dataset/ownership'; - -export const testDatasetOwnershipUrn = 'urn:li:dataset:(urn:li:dataPlatform:hdfs,kebab-db-name,CORP)'; - -/** - * For the supplied urn, find or populate the DB with a reference to the IOwnerResponse - * @param {Schema} schema the Mirage schema - * @param {Request} { params: { urn } } parameters supplied with the user request - */ -export const getDatasetOwnership: HandlerFunction = ( - schema: Schema, - { params: { urn } }: Request -): MirageRecord => schema.db.datasetOwnerships.firstOrCreate({ urn: String(urn) }); diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/schema.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/schema.ts deleted file mode 100644 index 5b95805fd54f9..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/datasets/schema.ts +++ /dev/null @@ -1,52 +0,0 @@ -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; -import { IDatasetSchemaColumn } from '@datahub/metadata-types/types/entity/dataset/schema'; -import { IDatasetSchema } from '@datahub/metadata-types/types/entity/dataset/schema'; -import { HandlerFunction, Server } from 'ember-cli-mirage'; - -/** - * Allows us to abstract away most of the logic to generate a mock list of schema fields and allows - * us to create these fields easily in a customizable way through the tests and mock application - * @param {Array} fieldNames - field names to generate for the mocked schema fields - */ -export const generateDatasetSchemaFields = ( - fieldNames: Array = [], - server: Server -): Array => { - return fieldNames.map( - (name): IDatasetSchemaColumn => server.create('datasetSchemaColumn', { fieldName: name, fullFieldPath: name }) - ); -}; - -/** - * Allows us to abstract away most of the logic to generate a mock schema class instance and allows - * us to create these fields easily in a customizable way through the tests and mock application - * @param {Array} columns - list of schema field objects to be added to the - * mocked schema - */ -export const generateDatasetSchema = (columns: Array = []): DatasetSchema => { - return new DatasetSchema({ - columns, - schemaless: false, - rawSchema: 'testSchema', - keySchema: 'testSchema' - }); -}; - -// TODO: [META-8403] Needs to be expanded into properly getting schemas for certain dataset test scenarios, -// but this will be sufficient for the current situation of testing basic compliance table flow - -/** - * This handler is used in the mirage route config to handle get requests for a dataset schema. - */ -export const getDatasetSchema: HandlerFunction = function(schema): { schema: IDatasetSchema } { - const columns = this.serialize(schema.db.datasetSchemaColumns); - const dsSchema: IDatasetSchema = { - keySchema: null, - lastModified: 1548806346860, - rawSchema: '', - schemaless: false, - columns: [...columns] - }; - - return { schema: dsSchema }; -}; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/get-entity.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/get-entity.ts deleted file mode 100644 index f6c13a169e8a2..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/get-entity.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { HandlerFunction, Schema, Request } from 'ember-cli-mirage'; -import { pluralize } from 'ember-inflector'; - -interface IGetEntityParams { - entityType: keyof Schema; - identifier: string; -} -export const getEntity: HandlerFunction = function(schema: Schema, request: Request) { - const params: IGetEntityParams | undefined = (request.params as unknown) as IGetEntityParams; - const db = schema[params?.entityType] || schema[pluralize((params?.entityType as string) || '')]; - const results = db.where({ urn: params?.identifier }); - - return this.serialize(results.models[0]); -}; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/setup-sinon-test.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/setup-sinon-test.ts deleted file mode 100644 index 0edbbb2e32910..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/setup-sinon-test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import Sinon from 'sinon'; - -/** - * Local convenience interface for return value from setupSinonTest - * @interface ISinonRequested - */ -interface ISinonRequested { - request?: Sinon.SinonFakeXMLHttpRequest; - requester: Sinon.SinonFakeXMLHttpRequestStatic; -} - -/** - * Convenience function to setup environment for sinon test - * - * @param {SinonTestContext} context a reference to the sinon test case's this - * @returns {ISinonRequested} - */ -export const setupSinonTest = (context: SinonTestContext): ISinonRequested => { - const setupValue: ISinonRequested = { request: undefined, requester: context.sandbox.useFakeXMLHttpRequest() }; - setupValue.requester.onCreate = req => { - setupValue.request = req; - }; - - return setupValue; -}; diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-data-models-service.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-data-models-service.ts deleted file mode 100644 index 708f6027950e4..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-data-models-service.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { TestPersonEntity } from '@datahub/data-models/mirage-addon/test-helpers/test-entities/test-person-entity'; -import { - IDataModelEntity, - DataModelEntity, - DataModelName, - DataModelEntityInstance -} from '@datahub/data-models/constants/entity'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import DataModelsService from '@datahub/data-models/services/data-models'; - -/** - * Maps DataModelEntity to our test entities instead where applicable - */ -interface ITestDataModelEntity extends IDataModelEntity { - [PersonEntity.displayName]: typeof TestPersonEntity; -} - -/** - * Overrides the map of DataModelEntity with our own mapping to test versions of the entities - * (where necessary) - */ -export const TestDataModelEntity: ITestDataModelEntity = { - ...DataModelEntity, - [PersonEntity.displayName]: TestPersonEntity -}; - -/** - * Because the open source data models entities can sometimes be too generic, we will want to be - * able to provide some implementation to the class definitions in order to test certain - * behaviors that rely on those implementations. In order to do so, we create "test entities" that - * extend from the open source versions of the entities that provide these implementations. These - * test entities can also provide an example of how an adopter of DataHub can define their own - * entity implementations. - * - * Since we have these entities, the data models service sometimes needs to be mapped to the test - * entities instead of the open source entities. We create this extended service to apply that map - * instead and can be stubbed in place of the regular service when needed - */ -export default class TestDataModelsService extends DataModelsService { - /** - * Overrides dataModelEntitiesMapping with a mapping to our test entities instead - */ - dataModelEntitiesMap = TestDataModelEntity; - - /** - * Overrides getModel with the map to our test entities instead - */ - getModel(modelKey: K): typeof TestDataModelEntity[K] { - return TestDataModelEntity[modelKey]; - } - - /** - * Overrides createInstance with our typings for testing instances - */ - createInstance( - modelKey: K, - urn: string - ): Promise> { - return super.createInstance(modelKey as DataModelName, urn) as Promise>; - } - - /** - * Overrides open source generic method wih our specific test entity typings - */ - createPartialInstance( - modelName: K, - data: DataModelEntityInstance['entity'] | string - ): InstanceType { - return super.createPartialInstance( - modelName as DataModelName, - data as DataModelEntityInstance['entity'] - ) as InstanceType; - } -} diff --git a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-entities/test-person-entity.ts b/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-entities/test-person-entity.ts deleted file mode 100644 index 54a3f9fcd7c5e..0000000000000 --- a/datahub-web/@datahub/data-models/addon/mirage-addon/test-helpers/test-entities/test-person-entity.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { oneWay } from '@ember/object/computed'; - -/** - * Creates more specific items to test the generic PersonEntity instance when needed. - */ -export class TestPersonEntity extends PersonEntity { - /** - * Allows us to manually set directReportUrns from outside the class by modifying this property - * instead - */ - manualDirectReportUrns: Array = []; - - /** - * Because there's no specific implementation for directReportUrns, which is a computed property, - * we cannot manually set this property from outside the class in the open source PersonEntity - * class. This is an issue as we want to test the @relationship decorator for directReports, - * which relies on this property. Therefore, we override the definition here with a "proper" - * (sort of) implementation in order to run those tests. - */ - @oneWay('manualDirectReportUrns') - directReportUrns!: Array; - - /** - * Same as manualDirectReportUrns, for testing peersUrns relationship - */ - manualPeersUrns: Array = []; - - /** - * Same as directReportsUrns, to test peers relationship - */ - @oneWay('manualPeersUrns') - peersUrns!: Array; -} diff --git a/datahub-web/@datahub/data-models/addon/models/aspects/institutional-memory.ts b/datahub-web/@datahub/data-models/addon/models/aspects/institutional-memory.ts deleted file mode 100644 index 15deebcf9b57d..0000000000000 --- a/datahub-web/@datahub/data-models/addon/models/aspects/institutional-memory.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { IInstitutionalMemory } from '@datahub/metadata-types/types/aspects/institutional-memory'; -import { oneWay } from '@ember/object/computed'; -import { computed } from '@ember/object'; -import { msTimeAsUnix } from '@datahub/utils/helpers/ms-time-as-unix'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; - -export class InstitutionalMemory { - /** - * Holds the original data held by this institutional memory class - */ - _data: IInstitutionalMemory; - - /** - * Returns the link related to this institutional memory object - * @type {string} - */ - @oneWay('_data.url') - url!: string; - - /** - * Returns the description related to this institutional memory object - * @type {string} - */ - @oneWay('_data.description') - description!: string; - - /** - * Returns the timestmap in unix format from the create stamp of this institutional - * memory object, if it exists - * @type {number | undefined} - */ - @computed('_data.createStamp') - get timestamp(): number | undefined { - const { _data } = this; - - if (!_data.createStamp) { - return; - } - - return msTimeAsUnix([_data.createStamp.time]); - } - - /** - * Returns the actor for this institutional memory object, without the actor urn prefix - * (if there is one) - * @type {string | undefined} - */ - @computed('_data.createStamp') - get actor(): PersonEntity | undefined { - const { _data } = this; - - if (!_data.createStamp) { - return; - } - - return new PersonEntity(_data.createStamp.actor); - } - - /** - * Reads the institutional memory working by reconstructing it from the elements - * of the class - */ - readWorkingCopy(): IInstitutionalMemory { - const { url, description, _data } = this; - const workingCopy: IInstitutionalMemory = { url, description }; - - if (_data.createStamp) { - workingCopy.createStamp = { ..._data.createStamp }; - } - - return workingCopy; - } - - constructor(_data: IInstitutionalMemory) { - this._data = _data; - } -} - -export type InstitutionalMemories = Array; diff --git a/datahub-web/@datahub/data-models/addon/relationships/creator.ts b/datahub-web/@datahub/data-models/addon/relationships/creator.ts deleted file mode 100644 index 7dfb5fac99c5a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/relationships/creator.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { DataModelName, IDataModelEntity, DataModelEntityInstance } from '@datahub/data-models/constants/entity'; -import { - IRelationshipDecoratedClassPrototype, - DataModelsRelationshipGetter -} from '@datahub/data-models/types/relationships/decorator-types'; -import { isArray } from '@ember/array'; - -/** - * Because we're dealing with a prototype that we don't want to expose to the typescript interface - * for these class objects, this custom interface is used in place of those - */ -interface IRelationshipDecoratorModifiedEntity { - prototype: IRelationshipDecoratedClassPrototype; -} - -/** - * Shortcut typing for determining whether we have one instance of an entity or an array of instances - */ -type OneOrMany = T extends string ? K : Array; - -/** - * Given an entity type and function to create an instance as a callback, we create a getter - * function that, for a urn or array of urns, returns the instances for those urns - * @param {DataModelName} entityType - the name identifier for the entity type for which we want - * to provide an instance - * @param {Function} instanceCreator - a function that is given to fetch an instance of the entity - * type we have specified - */ -const createRelationshipGetter = ( - entityType: T, - instanceCreator: (entityType: DataModelName, urn: string) => DataModelEntityInstance -): DataModelsRelationshipGetter> => { - const getter = >( - urns: M - ): OneOrMany> | undefined => { - if (typeof urns === 'string') { - return instanceCreator(entityType, urns) as OneOrMany>; - } else if (isArray(urns)) { - return (urns as Array).map( - (urn): DataModelEntityInstance => instanceCreator(entityType, urn) - ) as OneOrMany>; - } - - return; - }; - - return getter; -}; - -/** - * Given an entity class object (i.e. PersonEntity), return the metadata for the relationships - * for that class, given by the use of the @relationship decorator - * @param {IRelationshipDecoratorModifiedEntity} entityClass - the entity class object for a - * specific entity type - */ -const readRelationshipDecoratorMetadata = (entityClass: IRelationshipDecoratorModifiedEntity): Array => - Array.from(entityClass.prototype.__relationships || new Set()); - -/** - * Given a class object that has been modified with the @relationship decorator, and a creator - * function, modifies that class object so that the relationship getters can be attached to the - * class and be accessible by the functions given in the decorator logic - * @param {unknown} entityClass - expected to be a modified DataModelEntity class, typed as unknown - * for the noted reason below - * @param {Function} instanceCreator - callback function that creates an instance of an entity - * type when given the type and a corresponding urn - */ -// Note: We type entityClass as unknown as we've hidden the prototype modifications from typescript -// so that these properties are not accidentally accessed outside of the relationship decorator and -// creator process -export const assignRelationshipGettersToClassObject = ( - entityClass: Function, - instanceCreator: (entityType: DataModelName, urn: string) => DataModelEntityInstance -): void => { - // Even though our parameter lacks proper type safety, we assert the type we are working with - // from here on out for some limited type safety - const klass = entityClass as IRelationshipDecoratorModifiedEntity; - const relatedEntities = readRelationshipDecoratorMetadata(klass); - - relatedEntities.forEach((entityType): void => { - klass.prototype.__relationshipGetters = { - ...(klass.prototype.__relationshipGetters || {}), - [entityType]: createRelationshipGetter(entityType, instanceCreator) - }; - }); -}; diff --git a/datahub-web/@datahub/data-models/addon/relationships/decorator.ts b/datahub-web/@datahub/data-models/addon/relationships/decorator.ts deleted file mode 100644 index 46839882bcb6d..0000000000000 --- a/datahub-web/@datahub/data-models/addon/relationships/decorator.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { computed } from '@ember/object'; -import { DataModelName, DataModelEntityInstance } from '@datahub/data-models/constants/entity'; -import { - IRelationshipDecoratedClassPrototype, - DataModelsRelationshipGetter -} from '@datahub/data-models/types/relationships/decorator-types'; - -/** - * Decorates a property in a similar way to Ember computed property macros to return an entity or - * entity list of the relationship type specified. This incorporates the computed decorator with - * a dependent key so that our decorated property can be recalculated whenever the underlying - * dependent data changes. - * @param {DataModelName} entityType - name of the data model that specifies the entity type - * @param {string} dependentKey - a key that the decorator may depend on for computed property - * - * @example - * Usage example: - * ``` - * class PersonEntity extends BaseEntity<{}> { - * ... - * directReportUrns: Array = ['charmander', 'bulbasaur', 'squirtle']; - * - * @relationship('people', 'directReportUrns') - * directReports!: Array; - * } - * ``` - */ -export const relationship = function(entityType: DataModelName, dependentKey: string): PropertyDecorator { - // Defines a getter function for us to use as our computed function to fetch the data model - // instances - function getEntityInstanceForDependentKey( - this: IRelationshipDecoratedClassPrototype - ): DataModelEntityInstance | Array | undefined { - const getters: Partial>> = - this.__relationshipGetters || {}; - const getterForEntityType = getters[entityType]; - return getterForEntityType ? getterForEntityType(this[dependentKey] as string | Array) : undefined; - } - - // Gives us the MethodDecorator given by the @computed decorator from Ember - const computedFn: MethodDecorator = computed(dependentKey, getEntityInstanceForDependentKey); - - // Note: Underlying Ember implementation for computed macros, which we are taking advantage of, - return function( - target: IRelationshipDecoratedClassPrototype, - propertyKey: string, - ...args: Array - ): void | PropertyDescriptor { - // Ensure we're tracking what this entity has access to - target.__relationships = target.__relationships || new Set(); - target.__relationships.add(entityType); - const descriptor = args[0] as PropertyDescriptor; - - // Returning the computed function actually attaches the "computed-ness" and new getter to the class - return computedFn(target, propertyKey, descriptor); - }; -}; diff --git a/datahub-web/@datahub/data-models/addon/services/data-models.ts b/datahub-web/@datahub/data-models/addon/services/data-models.ts deleted file mode 100644 index feccced95be1a..0000000000000 --- a/datahub-web/@datahub/data-models/addon/services/data-models.ts +++ /dev/null @@ -1,172 +0,0 @@ -import Service from '@ember/service'; -import { - DataModelEntity, - DataModelName, - DataModelEntityInstance, - DataModelEntityApiNameMap -} from '@datahub/data-models/constants/entity'; -import { set } from '@ember/object'; -import { isBaseEntity } from '@datahub/data-models/entity/base-entity'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { assignRelationshipGettersToClassObject } from '@datahub/data-models/relationships/creator'; -import { IDataModelEntity } from '@datahub/data-models/constants/entity'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { addAspectLoaded } from '../entity/utils/aspects'; - -/** - * Encapsulating Guards logic into this class so it is easier to move if data-models grow - */ -export class Guards { - dataModels!: DataModelsService; - - /** - * Contructor for guards class - * @param dataModels dataModels service to identify properly the class type - */ - constructor(dataModels: DataModelsService) { - this.dataModels = dataModels; - } - - /** - * List of unguarded entities - */ - get unGuardedEntitiesDisplayName(): Array { - return [DatasetEntity.displayName, PersonEntity.displayName]; - } - - /** - * Maps the unguarded display name to entity using getModel - */ - get unGuardedEntities(): Array { - return this.unGuardedEntitiesDisplayName.map( - (entityDisplayName): DataModelEntity => this.dataModels.getModel(entityDisplayName) - ); - } - - /** - * Will check if the entity provided is guarded (it should not show) - * @param name name of the entity - */ - isGuardedEntity(name: DataModelName): boolean { - return this.unGuardedEntitiesDisplayName.indexOf(name) < 0; - } -} - -/** - * The data models service is meant to provide access to the models available in data models. The - * reason this exists is to allow for the ability to use said models without a direct import of - * the model types to the consuming addons. This makes it easier to separate our open source and - * internal logic per model and implementation of that model - */ -export default class DataModelsService extends Service { - /** - * Guards for the data-models - */ - guards: Guards = new Guards(this); - - /** - * Returns a given data model class in order to be instantiated by the consumer. - * @example - * usage => - * const datasetModel = DataModelsService.getModel('dataset'); - * const someInstance = new datasetModel('urn', optionalParams); - * - * @param modelKey - key that determines which model we should be returning - */ - getModel(modelKey: K): typeof DataModelEntity[K] { - return DataModelEntity[modelKey]; - } - - /** - * Returns a Entity Data Model class given its api name - */ - getModelByApiName(apiName: string): IDataModelEntity[keyof IDataModelEntity] | void { - return DataModelEntityApiNameMap[apiName]; - } - - /** - * Creates a partial instance given the "entity" part of the model. This is useful for bulk - * loads like Search or Lists or if we want to rely on the data models service to create an - * entity instance for us given an entity type and urn - * @param modelKey Model name of the entity - * @param data 'Entity' data part - */ - createPartialInstance( - modelKey: K, - data: DataModelEntityInstance['entity'] | string, - aspectsLoaded?: Array - ): InstanceType { - const EntityClass = this.getModel(modelKey); - let instance: InstanceType; - - if (typeof data === 'string') { - instance = new EntityClass(data) as InstanceType; - } else { - const urn = isBaseEntity(data) ? data.urn : ''; - instance = new EntityClass(urn) as InstanceType; - set(instance, 'entity', data as typeof instance['entity']); - } - - aspectsLoaded?.forEach(aspect => addAspectLoaded(instance, aspect)); - - return instance; - } - - /** - * Will create an instance by fetching the necessary data for it. - * @param modelKey Model name of the entity - * @param urn id of the entity - */ - async createInstance( - modelKey: K, - urn: string - ): Promise> { - const EntityClass = this.getModel(modelKey); - const entity = new EntityClass(urn) as InstanceType; - // Post instantiation, request the underlying Entity instance and Snapshot - // and set the related instance attributes with references to the value - set(entity, 'entity', await entity.readEntity); - set(entity, 'snapshot', await entity.readSnapshot); - - await entity.onAfterCreate(); - - return entity; - } - - /** - * Stores the data model entities mapping on the service so that it can be accessed within the - * class and within any child classes without a direct import - */ - dataModelEntitiesMap = DataModelEntity; - - /** - * Sets up the relationships mapping on all of our data model entity classes based on the meta - * information given by the @relationship decorator - */ - _setupRelationships(): void { - const { dataModelEntitiesMap } = this; - const dataModelEntities = Object.values(dataModelEntitiesMap); - dataModelEntities.forEach((entity): void => { - assignRelationshipGettersToClassObject(entity, this.createPartialInstance.bind(this)); - }); - } - - /** - * Inits the services. - * NOTE: This needs to be an 'init' fn as we need to invoke this after default values of dataModelEntitiesMap are set - * for more info, see this link: https://github.com/ember-decorators/ember-decorators/issues/329#issuecomment-443771927 - */ - init(): void { - super.init(); - this._setupRelationships(); - } -} - -// DO NOT DELETE: this is how TypeScript knows how to look up your services. -declare module '@ember/service' { - // This is a core ember thing - //eslint-disable-next-line @typescript-eslint/interface-name-prefix - interface Registry { - 'data-models': DataModelsService; - } -} diff --git a/datahub-web/@datahub/data-models/addon/utils/entity-route-name-resolver.ts b/datahub-web/@datahub/data-models/addon/utils/entity-route-name-resolver.ts deleted file mode 100644 index fc371c8132a94..0000000000000 --- a/datahub-web/@datahub/data-models/addon/utils/entity-route-name-resolver.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { resolveDynamicRouteName } from '@datahub/utils/routes/routing'; -import { MaybeRouteInfoWithAttributes } from '@datahub/utils/types/vendor/routerjs'; -import Transition from '@ember/routing/-private/transition'; -import { DataModelEntity, DataModelName } from '@datahub/data-models/constants/entity'; - -/** - * Indexes the route names we care about to functions that resolve the placeholder value - * defaults to the route.name, if a resolved value cannot be determined - * @type Record string) | undefined> - */ -export const mapOfRouteNamesToResolver: Record string) | void> = { - 'browse.entity': (route: MaybeRouteInfoWithAttributes): string => - route.attributes ? `browse.${route.attributes.entity}` : route.name, - 'browse.entity.index': (route: MaybeRouteInfoWithAttributes): string => - route.attributes ? `browse.${route.attributes.entity}` : route.name, - 'entity-type.urn.tab': (route: MaybeRouteInfoWithAttributes): string => - route.attributes ? `${route.attributes.entityClass.displayName}.${route.attributes.tabSelected}` : route.name -}; - -/** - * Guard checks that a route name is an entity route by testing if the routeName begins with the entity name - * @param {string} routeName the name of the route to check against - * @returns {boolean} - */ -const routeNameIsEntityRoute = (routeName: string, entitiesAvailable: Array): boolean => - entitiesAvailable.some((entityName: DataModelEntity['displayName']): boolean => routeName.startsWith(entityName)); - -/** - * Check if the route info instance has a name that is considered an entity route - * @returns {boolean} - */ -export const isRouteEntityPageRoute = ( - routeBeingTransitionedTo: Transition['to' | 'from'], - entitiesAvailable: Array -): boolean => { - const routeName = resolveDynamicRouteName(mapOfRouteNamesToResolver, routeBeingTransitionedTo); - return Boolean(routeName && routeNameIsEntityRoute(routeName, entitiesAvailable)); -}; diff --git a/datahub-web/@datahub/data-models/addon/utils/get-actor-from-urn.ts b/datahub-web/@datahub/data-models/addon/utils/get-actor-from-urn.ts deleted file mode 100644 index 874da818d02e5..0000000000000 --- a/datahub-web/@datahub/data-models/addon/utils/get-actor-from-urn.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { corpUserUrnBasePrefix, actorUrnBasePrefix } from '@datahub/data-models/config/urn/base-prefix'; - -/** - * Returns an actor (username) from a user's urn. - * @param urn - expected to be a urn for a user - */ -export default (urn: string): string => urn.replace(corpUserUrnBasePrefix, '').replace(actorUrnBasePrefix, ''); diff --git a/datahub-web/@datahub/data-models/addon/utils/get-group-from-urn.ts b/datahub-web/@datahub/data-models/addon/utils/get-group-from-urn.ts deleted file mode 100644 index bc3380782adaa..0000000000000 --- a/datahub-web/@datahub/data-models/addon/utils/get-group-from-urn.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { gridGroupUrnBasePrefix } from '@datahub/data-models/config/urn/base-prefix'; - -/** - * Returns the grid group name from its urn. - * @param urn - expected to be a urn for a grid group - */ -export const getGridGroupFromUrn = (urn: string): string => urn.replace(gridGroupUrnBasePrefix, ''); diff --git a/datahub-web/@datahub/data-models/addon/utils/ownership.ts b/datahub-web/@datahub/data-models/addon/utils/ownership.ts deleted file mode 100644 index 71c0c5dfb650b..0000000000000 --- a/datahub-web/@datahub/data-models/addon/utils/ownership.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DataModelEntity } from '@datahub/data-models/constants/entity/index'; - -/** - * Given a data model entity, returns whether that entity is valid for ownership - * @param {DataModelEntity} entity - data model entity class we want to test - */ -export const isOwnableEntity = (entity: DataModelEntity): boolean => Boolean(entity.renderProps?.userEntityOwnership); diff --git a/datahub-web/@datahub/data-models/app/.gitkeep b/datahub-web/@datahub/data-models/app/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/app/components/get-entity-by-urn.js b/datahub-web/@datahub/data-models/app/components/get-entity-by-urn.js deleted file mode 100644 index 4b8af75a75931..0000000000000 --- a/datahub-web/@datahub/data-models/app/components/get-entity-by-urn.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/components/get-entity-by-urn'; diff --git a/datahub-web/@datahub/data-models/app/mirage-factories/dataset-ownership.js b/datahub-web/@datahub/data-models/app/mirage-factories/dataset-ownership.js deleted file mode 100644 index 2df3737817628..0000000000000 --- a/datahub-web/@datahub/data-models/app/mirage-factories/dataset-ownership.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/mirage-factories/dataset-ownership'; diff --git a/datahub-web/@datahub/data-models/app/mirage-models/dataset-ownership.js b/datahub-web/@datahub/data-models/app/mirage-models/dataset-ownership.js deleted file mode 100644 index e56a7b4c37c58..0000000000000 --- a/datahub-web/@datahub/data-models/app/mirage-models/dataset-ownership.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/mirage-models/dataset-ownership'; diff --git a/datahub-web/@datahub/data-models/app/services/data-models.js b/datahub-web/@datahub/data-models/app/services/data-models.js deleted file mode 100644 index e15332d119427..0000000000000 --- a/datahub-web/@datahub/data-models/app/services/data-models.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/services/data-models'; diff --git a/datahub-web/@datahub/data-models/app/utils/get-actor-from-urn.js b/datahub-web/@datahub/data-models/app/utils/get-actor-from-urn.js deleted file mode 100644 index 553bdc46fecd4..0000000000000 --- a/datahub-web/@datahub/data-models/app/utils/get-actor-from-urn.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/utils/get-actor-from-urn'; diff --git a/datahub-web/@datahub/data-models/app/utils/get-group-from-urn.js b/datahub-web/@datahub/data-models/app/utils/get-group-from-urn.js deleted file mode 100644 index f574656bef7f0..0000000000000 --- a/datahub-web/@datahub/data-models/app/utils/get-group-from-urn.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@datahub/data-models/utils/get-group-from-urn'; diff --git a/datahub-web/@datahub/data-models/config/ember-try.js b/datahub-web/@datahub/data-models/config/ember-try.js deleted file mode 100644 index b0624c93b2bb4..0000000000000 --- a/datahub-web/@datahub/data-models/config/ember-try.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict'; - -const getChannelURL = require('ember-source-channel-url'); - -module.exports = function() { - return Promise.all([getChannelURL('release'), getChannelURL('beta'), getChannelURL('canary')]).then(urls => { - return { - useYarn: true, - scenarios: [ - { - name: 'ember-lts-2.16', - env: { - EMBER_OPTIONAL_FEATURES: JSON.stringify({ - 'jquery-integration': true - }) - }, - npm: { - devDependencies: { - '@ember/jquery': '^0.5.1', - 'ember-source': '~2.16.0' - } - } - }, - { - name: 'ember-lts-2.18', - env: { - EMBER_OPTIONAL_FEATURES: JSON.stringify({ - 'jquery-integration': true - }) - }, - npm: { - devDependencies: { - '@ember/jquery': '^0.5.1', - 'ember-source': '~2.18.0' - } - } - }, - { - name: 'ember-release', - npm: { - devDependencies: { - 'ember-source': urls[0] - } - } - }, - { - name: 'ember-beta', - npm: { - devDependencies: { - 'ember-source': urls[1] - } - } - }, - { - name: 'ember-canary', - npm: { - devDependencies: { - 'ember-source': urls[2] - } - } - }, - { - name: 'ember-default', - npm: { - devDependencies: {} - } - }, - { - name: 'ember-default-with-jquery', - env: { - EMBER_OPTIONAL_FEATURES: JSON.stringify({ - 'jquery-integration': true - }) - }, - npm: { - devDependencies: { - '@ember/jquery': '^0.5.1' - } - } - } - ] - }; - }); -}; diff --git a/datahub-web/@datahub/data-models/config/environment.js b/datahub-web/@datahub/data-models/config/environment.js deleted file mode 100644 index 9707ea62a7422..0000000000000 --- a/datahub-web/@datahub/data-models/config/environment.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function(/* environment, appConfig */) { - return {}; -}; diff --git a/datahub-web/@datahub/data-models/ember-cli-build.js b/datahub-web/@datahub/data-models/ember-cli-build.js deleted file mode 100644 index d9648581d66f8..0000000000000 --- a/datahub-web/@datahub/data-models/ember-cli-build.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); - -module.exports = function(defaults) { - const app = new EmberAddon(defaults, { - // Add options here - }); - - /* - This build file specifies the options for the dummy test app of this - addon, located in `/tests/dummy` - This build file does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's build file - */ - - return app.toTree(); -}; diff --git a/datahub-web/@datahub/data-models/index.js b/datahub-web/@datahub/data-models/index.js deleted file mode 100644 index c307b737dcddc..0000000000000 --- a/datahub-web/@datahub/data-models/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = { - name: require('./package').name, - isDevelopingAddon: () => true, - ...require('../../configs/import-mirage-tree-from-addon') -}; diff --git a/datahub-web/@datahub/data-models/package.json b/datahub-web/@datahub/data-models/package.json deleted file mode 100644 index ac9222db6996b..0000000000000 --- a/datahub-web/@datahub/data-models/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "@datahub/data-models", - "version": "0.0.0", - "description": "@datahub/data-models is a library for classes defining properties and access methods to perform CRUD operations on data APIs including data entities e.g. metrics, users, features, etcetera", - "keywords": [ - "ember-addon", - "data model", - "data hub", - "entity definition" - ], - "repository": "", - "license": "MIT", - "author": "", - "directories": { - "doc": "doc", - "test": "tests" - }, - "scripts": { - "build": "ember build --environment=production", - "start": "ember serve", - "test": "ember test", - "test:all": "ember try:each", - "prepublishOnly": "ember ts:precompile", - "postpublish": "ember ts:clean" - }, - "dependencies": { - "@datahub/metadata-types": "0.0.0", - "@glimmer/component": "^1.0.2", - "@glimmer/tracking": "^1.0.2", - "ember-auto-import": "^1.5.3", - "ember-cli-babel": "^7.17.2", - "ember-cli-htmlbars": "^4.2.2", - "ember-cli-typescript": "^3.1.3", - "faker": "^4.1.0" - }, - "devDependencies": { - "@babel/core": "^7.8.4", - "@ember/optional-features": "^1.3.0", - "@types/ember": "^3.1.1", - "@types/ember-qunit": "^3.4.7", - "@types/ember-resolver": "^5.0.7", - "@types/ember-test-helpers": "^1.0.5", - "@types/ember-testing-helpers": "^0.0.3", - "@types/ember__test-helpers": "^0.7.9", - "@types/qunit": "^2.9.0", - "@types/rsvp": "^4.0.3", - "@types/sinon": "^7.0.3", - "babel-eslint": "^10.0.3", - "broccoli-asset-rev": "^3.0.0", - "ember-cli": "~3.22.0", - "ember-cli-dependency-checker": "^3.2.0", - "ember-cli-eyeglass": "^6.4.3", - "ember-cli-inject-live-reload": "^2.0.2", - "ember-cli-mirage": "^0.4.15", - "ember-cli-sri": "^2.1.1", - "ember-cli-typescript-blueprints": "^3.0.0", - "ember-cli-uglify": "^3.0.0", - "ember-decorators": "^6.0.0", - "ember-export-application-global": "^2.0.1", - "ember-load-initializers": "^2.1.1", - "ember-maybe-import-regenerator": "^0.1.6", - "ember-qunit": "^4.6.0", - "ember-resolver": "^7.0.0", - "ember-sinon": "^3.1.0", - "ember-sinon-qunit": "^3.4.0", - "ember-source": "~3.16.3", - "ember-source-channel-url": "^2.0.1", - "ember-try": "^1.4.0", - "loader.js": "^4.7.0", - "qunit-dom": "^0.9.1", - "typescript": "^3.9.3" - }, - "engines": { - "node": "10.* || >= 12" - }, - "ember": { - "edition": "octane" - }, - "ember-addon": { - "configPath": "tests/dummy/config" - } -} diff --git a/datahub-web/@datahub/data-models/testem.js b/datahub-web/@datahub/data-models/testem.js deleted file mode 100644 index 3c17a8b75ddaf..0000000000000 --- a/datahub-web/@datahub/data-models/testem.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../configs/testem-base'); diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/app.js b/datahub-web/@datahub/data-models/tests/dummy/app/app.js deleted file mode 100644 index d8e2088b6b0e5..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/app/app.js +++ /dev/null @@ -1,12 +0,0 @@ -import Application from '@ember/application'; -import Resolver from 'ember-resolver'; -import loadInitializers from 'ember-load-initializers'; -import config from './config/environment'; - -export default class App extends Application { - modulePrefix = config.modulePrefix; - podModulePrefix = config.podModulePrefix; - Resolver = Resolver; -} - -loadInitializers(App, config.modulePrefix); diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/components/.gitkeep b/datahub-web/@datahub/data-models/tests/dummy/app/components/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/config/environment.d.ts b/datahub-web/@datahub/data-models/tests/dummy/app/config/environment.d.ts deleted file mode 100644 index b5a45a3d93efd..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/app/config/environment.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Type declarations for - * import config from './config/environment' - * - * For now these need to be managed by the developer - * since different ember addons can materialize new entries. - */ -declare const config: { - environment: 'development' | 'test' | 'production'; - modulePrefix: string; - podModulePrefix: string; - locationType: string; - rootURL: string; - APP: { - // Alternate value for notifications service toast delay, used in test runs - notificationsTimeout?: number; - }; -}; - -export default config; diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/controllers/.gitkeep b/datahub-web/@datahub/data-models/tests/dummy/app/controllers/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/helpers/.gitkeep b/datahub-web/@datahub/data-models/tests/dummy/app/helpers/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/index.html b/datahub-web/@datahub/data-models/tests/dummy/app/index.html deleted file mode 100644 index 61400b20f562d..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/app/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Dummy - - - - {{content-for "head"}} - - - - - {{content-for "head-footer"}} - - - {{content-for "body"}} - - - - - {{content-for "body-footer"}} - - diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/models/.gitkeep b/datahub-web/@datahub/data-models/tests/dummy/app/models/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/router.js b/datahub-web/@datahub/data-models/tests/dummy/app/router.js deleted file mode 100644 index 3c68e32dd992d..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/app/router.js +++ /dev/null @@ -1,9 +0,0 @@ -import EmberRouter from '@ember/routing/router'; -import config from './config/environment'; - -export default class Router extends EmberRouter { - location = config.locationType; - rootURL = config.rootURL; -} - -Router.map(function() {}); diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/routes/.gitkeep b/datahub-web/@datahub/data-models/tests/dummy/app/routes/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/styles/app.css b/datahub-web/@datahub/data-models/tests/dummy/app/styles/app.css deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/dummy/app/templates/application.hbs b/datahub-web/@datahub/data-models/tests/dummy/app/templates/application.hbs deleted file mode 100644 index 5230580f821a0..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/app/templates/application.hbs +++ /dev/null @@ -1,3 +0,0 @@ -

Welcome to Ember

- -{{outlet}} \ No newline at end of file diff --git a/datahub-web/@datahub/data-models/tests/dummy/config/environment.js b/datahub-web/@datahub/data-models/tests/dummy/config/environment.js deleted file mode 100644 index 599a59f74e004..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/config/environment.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -module.exports = function(environment) { - const ENV = { - modulePrefix: 'dummy', - environment, - rootURL: '/', - locationType: 'auto', - EmberENV: { - FEATURES: { - // Here you can enable experimental features on an ember canary build - // e.g. 'with-controller': true - }, - EXTEND_PROTOTYPES: { - // Prevent Ember Data from overriding Date.parse. - Date: false - } - }, - - APP: { - // Here you can pass flags/options to your application instance - // when it is created - } - }; - - if (environment === 'development') { - // ENV.APP.LOG_RESOLVER = true; - // ENV.APP.LOG_ACTIVE_GENERATION = true; - // ENV.APP.LOG_TRANSITIONS = true; - // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; - // ENV.APP.LOG_VIEW_LOOKUPS = true; - } - - if (environment === 'test') { - // Testem prefers this... - ENV.locationType = 'none'; - - // keep test console output quieter - ENV.APP.LOG_ACTIVE_GENERATION = false; - ENV.APP.LOG_VIEW_LOOKUPS = false; - ENV.RAISE_ON_DEPRECATION = false; - ENV.LOG_STACKTRACE_ON_DEPRECATION = false; - - ENV.APP.rootElement = '#ember-testing'; - ENV.APP.autoboot = false; - } - - if (environment === 'production') { - // here you can enable a production-specific feature - } - - return ENV; -}; diff --git a/datahub-web/@datahub/data-models/tests/dummy/config/optional-features.json b/datahub-web/@datahub/data-models/tests/dummy/config/optional-features.json deleted file mode 100644 index b26286e2ecdf3..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/config/optional-features.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "application-template-wrapper": false, - "default-async-observers": true, - "jquery-integration": false, - "template-only-glimmer-components": true -} diff --git a/datahub-web/@datahub/data-models/tests/dummy/config/targets.js b/datahub-web/@datahub/data-models/tests/dummy/config/targets.js deleted file mode 100644 index 846c7180bb4a9..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/config/targets.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -const browsers = ['last 1 Chrome versions', 'last 1 Firefox versions', 'last 1 Safari versions']; - -const isCI = !!process.env.CI; -const isProduction = process.env.EMBER_ENV === 'production'; - -if (isCI || isProduction) { - browsers.push('ie 11'); -} - -module.exports = { - browsers -}; diff --git a/datahub-web/@datahub/data-models/tests/dummy/mirage/config.ts b/datahub-web/@datahub/data-models/tests/dummy/mirage/config.ts deleted file mode 100644 index 2cce7d8a315bd..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/mirage/config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Server } from 'ember-cli-mirage'; -import { setup } from '@datahub/data-models/mirage-addon/mirage-config'; - -/** - * Default handler for Mirage config - * @export - * @param {Server} this the Mirage server instance - */ -export default function(this: Server): void { - setup(this); -} diff --git a/datahub-web/@datahub/data-models/tests/dummy/mirage/scenarios/default.ts b/datahub-web/@datahub/data-models/tests/dummy/mirage/scenarios/default.ts deleted file mode 100644 index 53a0b41e2de83..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/mirage/scenarios/default.ts +++ /dev/null @@ -1 +0,0 @@ -export default function(): void {} diff --git a/datahub-web/@datahub/data-models/tests/dummy/mirage/serializers/application.ts b/datahub-web/@datahub/data-models/tests/dummy/mirage/serializers/application.ts deleted file mode 100644 index c95616feae69e..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/mirage/serializers/application.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Serializer } from 'ember-cli-mirage'; - -export default class extends Serializer { - // Removes the default root key - root = false; - - // Since api's are not side-loaded, allow embed. Also, this is required when root is false - embed = true; -} diff --git a/datahub-web/@datahub/data-models/tests/dummy/public/robots.txt b/datahub-web/@datahub/data-models/tests/dummy/public/robots.txt deleted file mode 100644 index f5916452e5ff6..0000000000000 --- a/datahub-web/@datahub/data-models/tests/dummy/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# http://www.robotstxt.org -User-agent: * -Disallow: diff --git a/datahub-web/@datahub/data-models/tests/helpers/.gitkeep b/datahub-web/@datahub/data-models/tests/helpers/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/index.html b/datahub-web/@datahub/data-models/tests/index.html deleted file mode 100644 index 5209b85232123..0000000000000 --- a/datahub-web/@datahub/data-models/tests/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - Dummy Tests - - - - {{content-for "head"}} - {{content-for "test-head"}} - - - - - - {{content-for "head-footer"}} - {{content-for "test-head-footer"}} - - - {{content-for "body"}} - {{content-for "test-body"}} - - - - - - - - {{content-for "body-footer"}} - {{content-for "test-body-footer"}} - - diff --git a/datahub-web/@datahub/data-models/tests/integration/.gitkeep b/datahub-web/@datahub/data-models/tests/integration/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/integration/components/get-entity-by-urn-test.ts b/datahub-web/@datahub/data-models/tests/integration/components/get-entity-by-urn-test.ts deleted file mode 100644 index dee56ab27d85e..0000000000000 --- a/datahub-web/@datahub/data-models/tests/integration/components/get-entity-by-urn-test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { module, test } from 'qunit'; -import { setupRenderingTest } from 'ember-qunit'; -import { render } from '@ember/test-helpers'; -import hbs from 'htmlbars-inline-precompile'; - -module('Integration | Component | get-entity-by-urn', function(hooks) { - setupRenderingTest(hooks); - - test('it returns the correct type of entity', async function(assert) { - this.set('urn', 'urn:li:dataset:(urn:li:dataPlatform:hdfs,pikachu,PROD)'); - await render(hbs` - - {{dataset.displayName}} - - `); - - assert.dom('#assert-test-1').hasText('datasets', 'Correctly yielded dataset entity'); - - this.set('urn', 'urn:li:corpuser:pikachu'); - await render(hbs` - - {{person.displayName}} - - `); - - assert.dom('#assert-test-2').hasText('people', 'Correctly yielded person entity'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/integration/entity/utils/aspects-test.ts b/datahub-web/@datahub/data-models/tests/integration/entity/utils/aspects-test.ts deleted file mode 100644 index b141e9fe3b44c..0000000000000 --- a/datahub-web/@datahub/data-models/tests/integration/entity/utils/aspects-test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { module, test } from 'qunit'; -import { setupRenderingTest } from 'ember-qunit'; -import { render, settled } from '@ember/test-helpers'; -import hbs from 'htmlbars-inline-precompile'; -import { MockEntity } from '@datahub/data-models/entity/mock/mock-entity'; -import { aspect, hasAspect, setAspect } from '@datahub/data-models/entity/utils/aspects'; - -declare module '@datahub/data-models/entity/utils/aspects' { - export interface IAvailableAspects { - ['aspect1']?: string; - } -} - -module('Integration | Aspects | aspects', function(hooks) { - setupRenderingTest(hooks); - - test('Tests a real use case of an aspect lifecycle', async function(assert) { - class AspectedMockEntity extends MockEntity { - entity: { - urn: string; - removed: boolean; - aspect1: string; - } = { - urn: 'urn:li:dataset:(urn:li:dataPlatform:hdfs,pikachu,PROD)', - removed: false, - aspect1: 'valueaspect1' - }; - @aspect('someaspectname') - aspect1!: string; - } - const mockEntity = new AspectedMockEntity(); - - this.set('entity', mockEntity); - await render(hbs`{{this.entity.aspect1}}`); - - assert.dom().hasText('valueaspect1', 'Correctly reads aspect from entity'); - - setAspect(mockEntity, 'aspect1', 'somethingelse'); - await settled(); - - assert.dom().hasText('somethingelse', 'Correctly reads aspect from entity'); - - assert.ok(hasAspect(mockEntity, 'aspect1'), 'it should have the aspect'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/test-helper.js b/datahub-web/@datahub/data-models/tests/test-helper.js deleted file mode 100644 index e19b9e4ed4808..0000000000000 --- a/datahub-web/@datahub/data-models/tests/test-helper.js +++ /dev/null @@ -1,9 +0,0 @@ -import Application from '../app'; -import config from '../config/environment'; -import { setApplication } from '@ember/test-helpers'; -import { start } from 'ember-qunit'; -import 'qunit-dom'; - -setApplication(Application.create(config.APP)); - -start(); diff --git a/datahub-web/@datahub/data-models/tests/unit/.gitkeep b/datahub-web/@datahub/data-models/tests/unit/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/data-models/tests/unit/services/data-models-test.ts b/datahub-web/@datahub/data-models/tests/unit/services/data-models-test.ts deleted file mode 100644 index a6e7edf0fd666..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/services/data-models-test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { setProperties, set } from '@ember/object'; -import { ICorpUserInfo } from '@datahub/metadata-types/types/entity/person/person-entity'; -import TestDataModelsService from '@datahub/data-models/mirage-addon/test-helpers/test-data-models-service'; -import { TestPersonEntity } from '@datahub/data-models/mirage-addon/test-helpers/test-entities/test-person-entity'; - -module('Unit | Service | data-models', function(hooks): void { - setupTest(hooks); - - test('it exists', function(assert): void { - const service = this.owner.lookup('service:data-models'); - assert.ok(service); - }); - - test('it returns the correct entity', function(assert): void { - const service: DataModelsService = this.owner.lookup('service:data-models'); - const datasetEntity = service.getModel(DatasetEntity.displayName); - - assert.equal(datasetEntity.kind, DatasetEntity.kind); - }); - - test('it creates relationships as expected', function(assert): void { - this.owner.register('service:data-models', TestDataModelsService); - const service: DataModelsService = this.owner.lookup('service:data-models'); - const mockPerson = service.createPartialInstance('people', 'pikachu') as TestPersonEntity; - - assert.ok(mockPerson instanceof PersonEntity, 'Created the instance as expected'); - assert.ok(mockPerson instanceof TestPersonEntity); - setProperties(mockPerson, { - manualDirectReportUrns: ['charmander', 'bulbasaur', 'squirtle'], - manualPeersUrns: ['eevee'] - }); - assert.equal(mockPerson.directReports.length, 3, 'Created 3 instances for direct reports'); - assert.ok(mockPerson.directReports[0] instanceof PersonEntity, 'Created the correct kind of relationship instance'); - assert.equal( - mockPerson.directReports[1].urn, - 'bulbasaur', - 'Properly created a person entity of with the right urn' - ); - assert.equal(mockPerson.peers.length, 1, 'Multiple relationships are displayed correctly'); - assert.equal( - mockPerson.peers[0].urn, - 'eevee', - 'The correct object is created when dealing with multiple relationships' - ); - - const mockPersonEntity = { - info: { - managerUrn: 'aketchum', - managerName: 'Ash Ketchum' - } - } as ICorpUserInfo; - set(mockPerson, 'entity', mockPersonEntity); - - assert.ok(mockPerson.reportsTo instanceof PersonEntity, 'Works with a relationship to a singer urn'); - - assert.equal( - (mockPerson.reportsTo as PersonEntity).name, - 'Ash Ketchum', - 'Created the expected single entity relationship' - ); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/dataset-entity-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/dataset-entity-test.ts deleted file mode 100644 index e2d1c3a58955f..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/dataset-entity-test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import sinonTest from 'ember-sinon-qunit/test-support/test'; -import Sinon from 'sinon'; -import { BaseEntity } from '@datahub/data-models/entity/base-entity'; -import DatasetFactory from '@datahub/data-models/mirage-addon/factories/dataset'; - -module('Unit | Utility | entity/dataset/dataset-entity', function(hooks): void { - setupTest(hooks); - - test('DatasetEntity class', function(assert): void { - const entity = new DatasetEntity('squirtle_urn'); - assert.ok(entity instanceof BaseEntity, 'Expects entity to be an instance of the BaseEntity'); - assert.equal(entity.displayName, 'datasets', 'expected entity display name to be Datasets'); - assert.equal(entity.kind, 'DatasetEntity', 'expected entity kind to be DatasetEntity'); - assert.equal(entity.urn, 'squirtle_urn', 'expected entity urn to match supplied value squirtle_urn'); - }); - - sinonTest('DatasetEntity readEntity', async function(this: SinonTestContext, assert): Promise { - assert.expect(1); - const factory = new DatasetFactory(); - const testUrn = 'urn:li:dataset:(urn:li:dataPlatform:platform1,somedir.domedata,PROD)'; - const testEntity = { ...factory.build(1), uri: testUrn }; - const requester = this.sandbox.useFakeXMLHttpRequest(); - let request: Sinon.SinonFakeXMLHttpRequest | undefined; - - requester.onCreate = (req): void => { - request = req; - }; - - const entityRequest = new DatasetEntity(testUrn).readEntity; - request && request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify(testEntity)); - const entity = await entityRequest; - - assert.equal(entity?.uri, testUrn, 'expected entity urn to match requested urn'); - requester.restore(); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/helpers/validators/schema-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/helpers/validators/schema-test.ts deleted file mode 100644 index 3444864d8b217..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/helpers/validators/schema-test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { filterAnnotationsToDatasetSchema } from '@datahub/data-models/entity/dataset/helpers/validators/compliance/schema'; -import { - generateDatasetSchema, - generateDatasetSchemaFields -} from '@datahub/data-models/mirage-addon/test-helpers/datasets/schema'; -import setupMirage from 'ember-cli-mirage/test-support/setup-mirage'; -import { MirageTestContext } from '@datahub/utils/types/vendor/ember-cli-mirage/mirage-tests'; - -module('Unit | Utility | entity/dataset/helpers/validators/schema', function(hooks): void { - setupTest(hooks); - setupMirage(hooks); - - test('filterAnnotationsToDatasetSchema', function(this: MirageTestContext, assert): void { - const annotations: Array = []; - let schema = new DatasetSchema(); - - const resultA = filterAnnotationsToDatasetSchema(annotations, schema); - assert.ok(resultA, 'Blank case works without issues'); - - schema = generateDatasetSchema(generateDatasetSchemaFields(['pokemon["name"]', 'type["string"]'], this.server)); - - annotations.push( - ...[ - new DatasetComplianceAnnotation(undefined, 'pokemon["name"]'), - new DatasetComplianceAnnotation(undefined, 'type["string"]'), - new DatasetComplianceAnnotation(undefined, 'pokemon["name"]') - ] - ); - - const resultB = filterAnnotationsToDatasetSchema(annotations, schema); - assert.equal(resultB.length, 3, 'Base case: annotations are not filtered when they match schema fields'); - - annotations.push( - ...[ - new DatasetComplianceAnnotation(undefined, 'type["string"]'), - new DatasetComplianceAnnotation(undefined, 'pokemon["string"]') - ] - ); - - const resultC = filterAnnotationsToDatasetSchema(annotations, schema); - assert.equal(resultC.length, 4, 'Filters out the annotation that doesnt match schema'); - - schema = generateDatasetSchema(generateDatasetSchemaFields(['pokemon["string"]', 'type["string"]'], this.server)); - - const resultD = filterAnnotationsToDatasetSchema(annotations, schema); - assert.equal(resultD.length, 3, 'Filters out annotations that do not match schema, after schema change'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-annotation-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-annotation-test.ts deleted file mode 100644 index 661dbe721a666..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-annotation-test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { ComplianceFieldIdValue } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-types'; -import { set } from '@ember/object'; - -module('Unit | Utility | entity/dataset/modules/compliance-annotation', function(hooks): void { - setupTest(hooks); - - test('DatasetComplianceAnnotation class', function(assert): void { - const complianceAnnotationA = new DatasetComplianceAnnotation(); - assert.equal(complianceAnnotationA.identifierField, '', 'Class works with blank base case'); - - const complianceAnnotationB = new DatasetComplianceAnnotation(undefined, 'detective pikachu'); - assert.equal( - complianceAnnotationB.identifierField, - 'detective pikachu', - 'Class can assign field name without being given a tag object' - ); - assert.equal(complianceAnnotationB.identifierType, null, 'Correctly assigns base values when not given tag object'); - - const complianceAnnotationC = new DatasetComplianceAnnotation({ - identifierField: 'pikachu_tag', - identifierType: ComplianceFieldIdValue.MemberId, - logicalType: null, - nonOwner: false, - pii: true, - readonly: false, - securityClassification: null, - valuePattern: '' - }); - - assert.equal( - complianceAnnotationC.identifierType, - ComplianceFieldIdValue.MemberId, - 'Correctly assigns identifier type in initialization' - ); - - set(complianceAnnotationC, 'identifierType', ComplianceFieldIdValue.GroupId); - assert.ok( - complianceAnnotationC.readWorkingCopy().identifierType !== ComplianceFieldIdValue.MemberId, - 'Tests readWorkingCopy and value has changed when set anew' - ); - assert.ok( - complianceAnnotationC.readWorkingCopy().identifierType === ComplianceFieldIdValue.GroupId, - 'Setting a new identifier type persists' - ); - - complianceAnnotationC.resetWorkingCopy(); - assert.ok( - complianceAnnotationC.readWorkingCopy().identifierType === ComplianceFieldIdValue.MemberId, - 'Reset working copy works as expected' - ); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-info-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-info-test.ts deleted file mode 100644 index e0717f6d5cf77..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/compliance-info-test.ts +++ /dev/null @@ -1,217 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { IDatasetComplianceInfo } from '@datahub/metadata-types/types/entity/dataset/compliance/info'; -import DatasetComplianceInfo, { - removeReadonlyAttributeFromTags, - getEditableTags, - removeTagsMissingIdentifierAttributes -} from '@datahub/data-models/entity/dataset/modules/compliance-info'; -import { isArray } from '@ember/array'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { IComplianceFieldAnnotation } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-annotation'; -import { - ComplianceFieldIdValue, - Classification -} from '@datahub/metadata-types/constants/entity/dataset/compliance-field-types'; -import DatasetSchema from '@datahub/data-models/entity/dataset/modules/schema'; - -module('Unit | Utility | entity/dataset/modules/compliance-info', function(hooks): void { - setupTest(hooks); - - const rawComplianceInfo: IDatasetComplianceInfo = { - complianceEntities: [], - compliancePurgeNote: null, - complianceType: '', - confidentiality: null, - containingPersonalData: null, - datasetClassification: null, - datasetId: null, - datasetUrn: 'pikachu_dataset_urn', - modifiedBy: 'catran', - modifiedTime: 1552443949, - fromUpstream: false - }; - - const complianceEntities: Array = [ - { - identifierField: 'testFieldA', - identifierType: ComplianceFieldIdValue.None, - logicalType: null, - nonOwner: true, - pii: false, - readonly: true, - securityClassification: null - }, - { - identifierField: 'testFieldB', - identifierType: ComplianceFieldIdValue.None, - logicalType: null, - nonOwner: true, - pii: false, - readonly: false, - securityClassification: null - } - ]; - - test('DatasetComplianceInfo class', function(assert): void { - const complianceInfo = new DatasetComplianceInfo(rawComplianceInfo, []); - - assert.ok( - isArray(complianceInfo.annotations), - 'Creates a proper list for annotations from complianceEntities property' - ); - assert.equal(complianceInfo.annotations.length, 0, 'Sanity check: Compliance annotations are currently empty'); - - complianceInfo.addAnnotation(new DatasetComplianceAnnotation()); - assert.equal(complianceInfo.annotations.length, 1, 'Adds a compliance annotation'); - - complianceInfo.removeAnnotation(new DatasetComplianceAnnotation()); - assert.equal(complianceInfo.annotations.length, 0, 'Removes annotation with function'); - - complianceInfo.addAnnotation([new DatasetComplianceAnnotation(), new DatasetComplianceAnnotation()]); - assert.equal(complianceInfo.annotations.length, 2, 'Expected 2 annotations to be added to compliance'); - - complianceInfo.removeAnnotation([new DatasetComplianceAnnotation(), new DatasetComplianceAnnotation()]); - assert.equal(complianceInfo.annotations.length, 0, 'Expected 2 annotations to be removed to compliance'); - - const complianceAnnotation: IComplianceFieldAnnotation = { - identifierField: 'eevee', - identifierType: ComplianceFieldIdValue.MemberId, - nonOwner: true, - pii: false, - readonly: false, - securityClassification: null - }; - - complianceInfo.addAnnotation(new DatasetComplianceAnnotation(complianceAnnotation)); - const workingAnnotations = complianceInfo.getWorkingAnnotations(); - const readWorkingCopy = workingAnnotations[0]; - - assert.equal( - readWorkingCopy.identifierField, - complianceAnnotation.identifierField, - 'Working copy works as expected' - ); - assert.equal(readWorkingCopy.identifierType, complianceAnnotation.identifierType, 'Working copy sanity check'); - }); - - test('Getting list of added or removed annotations', function(assert): void { - const complianceInfo = new DatasetComplianceInfo(rawComplianceInfo, []); - const [testA, testB] = complianceEntities; - const annotationsToBeAdded = [new DatasetComplianceAnnotation(testA), new DatasetComplianceAnnotation(testB)]; - complianceInfo.addAnnotation(annotationsToBeAdded); - assert.equal(complianceInfo.annotations.length, 2, 'Expected 2 annotations to be added to compliance'); - const { added, removed } = complianceInfo.getAnnotationUpdates(); - - assert.equal(removed.length, 0, 'Expected no annotations to be removed'); - assert.equal(added.length, complianceInfo.annotations.length, 'Expected the number of added annotations to match'); - - assert.ok( - annotationsToBeAdded.includes(added[0]), - 'Expected added annotations to include item from annotationsToBeAdded' - ); - - complianceInfo.removeAnnotation(annotationsToBeAdded[0]); - const updatedAddedAnnotations = complianceInfo.getAnnotationUpdates().added; - - assert.equal( - updatedAddedAnnotations.length, - 1, - 'Expected the list for annotations to be added to not contain the removed item' - ); - }); - - test('compliance info utility function: removeReadonlyAttributeFromTags', function(assert): void { - const tagsWithoutReadonlyAttribute = removeReadonlyAttributeFromTags(complianceEntities); - - assert.equal( - tagsWithoutReadonlyAttribute.filter((tag: Omit): boolean => - tag.hasOwnProperty('readonly') - ).length, - 0, - 'Expected no tags to have a readonly attribute' - ); - }); - - test('compliance info utility function: getEditableTags', function(assert): void { - const editableTags = getEditableTags(complianceEntities); - - assert.equal(editableTags.length, 1, 'Expected only one editable tag'); - assert.equal( - editableTags[0].identifierField, - 'testFieldB', - 'Expected editable tag identifierField to be "testFieldB"' - ); - }); - - test('compliance info utility function: removeTagsMissingIdentifierAttributes', function(assert): void { - const tagsWithOneMissingAnIdentifierAttribute = complianceEntities.map( - (entity: IComplianceFieldAnnotation): IComplianceFieldAnnotation => - entity.identifierField === 'testFieldB' ? { ...entity, identifierType: undefined } : entity - ); - - const tagsWithoutIdentifierAttributes = removeTagsMissingIdentifierAttributes( - tagsWithOneMissingAnIdentifierAttribute - ); - - assert.equal( - tagsWithoutIdentifierAttributes.length, - 1, - 'Expected only tags to be in the list tagsWithoutIdentifierAttributes' - ); - assert.equal( - tagsWithoutIdentifierAttributes[0].identifierField, - 'testFieldA', - 'Expected tag with identifierField testFieldA to be a tag with complete identifier attributes i.e. identifierField & identifierType' - ); - }); - - test('reading the compliance-info working copy with readonly annotations', function(assert): void { - const rawComplianceInfoWithReadonlyAnnotations = { ...rawComplianceInfo, complianceEntities }; - const complianceInfo = new DatasetComplianceInfo(rawComplianceInfoWithReadonlyAnnotations, []); - // Since we aren't testing for behavior when schemaFields are specified, - // instantiation here omits adding the columns field so schemaFields will be unavailable and - // the annotations will be returned without the process of filtering to the dataset schema - const emptySchema = new DatasetSchema({ schemaless: false, rawSchema: null, keySchema: null }); - - const { complianceEntities: annotations } = complianceInfo.readWorkingCopy({ - withoutNullFields: true, - schema: emptySchema - }); - - assert.equal(annotations.length, 1, 'Expected the compliance info working copy to have only one field annotation'); - - const [{ readonly, identifierField }] = annotations; - - assert.equal(readonly, undefined, "Expected the annotation's readonly field to not exist on the result"); - assert.equal(identifierField, 'testFieldB', 'Expected testFieldB to be the compliance info workingCopy result'); - }); - - test('working copy for compliance info properties', function(assert): void { - const complianceInfo = new DatasetComplianceInfo(rawComplianceInfo, []); - - assert.equal(complianceInfo.confidentiality, null, 'Confidentiality is derived from raw info as expected'); - assert.equal( - complianceInfo.containingPersonalData, - null, - 'Personal data flag is derived from raw info as expected' - ); - - complianceInfo.updateWorkingConfidentiality(Classification.Public); - complianceInfo.updateWorkingContainingPersonalData(false); - assert.equal(complianceInfo.confidentiality, Classification.Public, 'Update function works as expected'); - assert.equal( - complianceInfo.containingPersonalData, - false, - 'Update function updates personal info flag as expected' - ); - - complianceInfo.createWorkingCopy(); - assert.equal(complianceInfo.confidentiality, null, 'After reset, confidentiality returns to derived value'); - assert.equal( - complianceInfo.containingPersonalData, - null, - 'After reset, personal data flag returns to derived value' - ); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/constants/annotation-helpers-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/constants/annotation-helpers-test.ts deleted file mode 100644 index 70e5a54d31d62..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/constants/annotation-helpers-test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; -import { setProperties } from '@ember/object'; -import { - annotationIsValid, - applyAnnotationsByEditableProperties -} from '@datahub/data-models/entity/dataset/modules/constants/annotation-helpers'; -import { - ComplianceFieldIdValue, - MemberIdLogicalType -} from '@datahub/metadata-types/constants/entity/dataset/compliance-field-types'; - -module('Unit | Utility | entity/dataset/modules/constants/annotation-helpers', function(hooks): void { - setupTest(hooks); - - test('Dataset compliance annotation helpers test: annotationIsValid', function(assert): void { - const annotationTag = new DatasetComplianceAnnotation(); - assert.notOk(annotationIsValid(annotationTag), 'Returns false for an empty identifier field'); - - setProperties(annotationTag, { identifierType: ComplianceFieldIdValue.None }); - assert.ok(annotationIsValid(annotationTag), 'A none tag should be considered valid without a logical type'); - - setProperties(annotationTag, { - identifierType: ComplianceFieldIdValue.GroupId, - logicalType: MemberIdLogicalType.Numeric, - isPurgeKey: false - }); - assert.ok(annotationIsValid(annotationTag), 'A member id tag should have a logical type and purge key notation'); - - setProperties(annotationTag, { logicalType: undefined, isPurgeKey: undefined }); - assert.notOk( - annotationIsValid(annotationTag), - 'A member id tag should have a logical type and is not considered valid if missing' - ); - - setProperties(annotationTag, { - logicalType: MemberIdLogicalType.Urn, - isPurgeKey: false - }); - assert.ok(annotationIsValid(annotationTag), 'A false purgeKey is not the same as an undefined purgeKey'); - - setProperties(annotationTag, { logicalType: MemberIdLogicalType.Custom }); - assert.notOk(annotationIsValid(annotationTag), 'A custom logical type should have a value pattern'); - - setProperties(annotationTag, { valuePattern: 'totally regex pattern' }); - assert.ok(annotationIsValid(annotationTag), 'A custom logical type with an existing value pattern will pass'); - }); - - test('Dataset compliance annotation helpers test: applyAnnotationsByEditableProperties', function(assert): void { - const propTags = [ - { - identifierField: 'pikachu', - identifierType: ComplianceFieldIdValue.MemberId, - logicalType: MemberIdLogicalType.Numeric, - isPurgeKey: false, - valuePattern: undefined, - isReadOnly: false - }, - { - identifierField: 'eevee', - identifierType: ComplianceFieldIdValue.None, - logicalType: undefined, - isPurgeKey: false, - valuePattern: undefined, - isReadOnly: false - } - ]; - - const result = applyAnnotationsByEditableProperties(propTags); - - assert.equal(result.length, 2, 'Function returns expected number of elements'); - result.forEach( - item => assert.ok(item instanceof DatasetComplianceAnnotation), - 'Function returns expected instances of tag' - ); - - const secondResult = result[1]; - const secondPropTag = propTags[1]; - - assert.equal(secondResult.identifierType, secondPropTag.identifierType, 'Values applied properly'); - assert.equal(secondResult.valuePattern, secondPropTag.valuePattern, 'Sanity check, values appleid prpoerly'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/ownership-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/ownership-test.ts deleted file mode 100644 index c21e43127b63e..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/dataset/modules/ownership-test.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { set } from '@ember/object'; -import setupMirage from 'ember-cli-mirage/test-support/setup-mirage'; -import { MirageTestContext } from '@datahub/utils/types/vendor/ember-cli-mirage/mirage-tests'; -import DatasetOwnership from '@datahub/data-models/entity/dataset/modules/ownership'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { testDatasetOwnershipUrn } from '@datahub/data-models/mirage-addon/test-helpers/datasets/ownership'; -import ownershipScenario from '@datahub/data-models/mirage-addon/scenarios/dataset-ownership'; -import ownersForTestUrn from '@datahub/data-models/mirage-addon/fixtures/dataset-ownership'; -import { IOwner } from '@datahub/data-models/types/entity/dataset/ownership'; -import { fromLegacy } from '@datahub/data-models/entity/dataset/utils/legacy'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { FabricType } from '@datahub/metadata-types/constants/common/fabric-type'; - -module('Unit | Utility | entity/dataset/modules/ownership', function(hooks): void { - setupTest(hooks); - setupMirage(hooks); - - const datasetEntity = new DatasetEntity( - testDatasetOwnershipUrn, - fromLegacy({ - fabric: FabricType.CORP, - platform: DatasetPlatform.HDFS, - createdTime: Date.now(), - modifiedTime: Date.now(), - description: '', - nativeName: '', - nativeType: '', - uri: '', - tags: [], - removed: false, - decommissionTime: null, - deprecated: null, - deprecationNote: null, - properties: null, - healthScore: Math.random() - }) - ); - - test('DatasetOwnership instantiation', function(assert): void { - const datasetOwnership = new DatasetOwnership(datasetEntity); - - assert.equal( - datasetOwnership.entity, - datasetEntity, - 'Expected DatasetOwnership to reference the Dataset on the entity class field' - ); - assert.equal( - datasetOwnership.urn, - testDatasetOwnershipUrn, - 'Expected DatasetOwnership to reference the Dataset urn property' - ); - }); - - test('DatasetOwnership behavior post build', async function(this: MirageTestContext, assert): Promise { - ownershipScenario(this.server); - - const datasetOwnership = new DatasetOwnership(datasetEntity); - const builtDatasetOwnership = await datasetOwnership.build(); - const [firstOwner] = ownersForTestUrn; - const { userName } = firstOwner; - - assert.equal( - builtDatasetOwnership, - datasetOwnership, - 'Expected DatasetOwnership#build() invocation, to resolve with the same instance' - ); - - assert.equal( - builtDatasetOwnership.owners.length, - ownersForTestUrn.length, - 'Expected number of owners in DatasetOwnership to match fixture length' - ); - - assert.ok(builtDatasetOwnership.isOwner(userName), `Expected DatasetOwnership to confirm ${userName} as an owner`); - - assert.ok(builtDatasetOwnership.isValid, 'Expected DatasetOwnership to be valid for fixture owners'); - - set(builtDatasetOwnership, 'owners', []); - assert.notOk(builtDatasetOwnership.isValid, 'Expected DatasetOwnership to be invalid when no owner exists'); - - const invalidNumberOfOwners = Array.from( - { length: DatasetOwnership.minRequiredConfirmedOwners - 1 }, - (): IOwner => firstOwner - ); - - set(builtDatasetOwnership, 'owners', invalidNumberOfOwners); - assert.notOk( - builtDatasetOwnership.isValid, - `Expected DatasetOwnership to be invalid when the number of owners is less than the required: ${DatasetOwnership.minRequiredConfirmedOwners}` - ); - - set(builtDatasetOwnership, 'owners', [{ ...firstOwner, confirmedBy: null }, firstOwner]); - assert.notOk( - builtDatasetOwnership.isValid, - 'Expected DatasetOwnership to be invalid when the number of confirmed owners is less than the required' - ); - set(builtDatasetOwnership, 'owners', [{ ...firstOwner, isActive: false }, firstOwner]); - assert.notOk( - builtDatasetOwnership.isValid, - 'Expected DatasetOwnership to be invalid when the number of active owners is less than the required' - ); - set(builtDatasetOwnership, 'owners', [{ ...firstOwner, idType: 'GROUP' }, firstOwner]); - assert.notOk( - builtDatasetOwnership.isValid, - 'Expected DatasetOwnership to be invalid when the number of owners with USER idType is less than the required' - ); - set(builtDatasetOwnership, 'owners', [{ ...firstOwner, type: 'STAKEHOLDER' }, firstOwner]); - assert.notOk( - builtDatasetOwnership.isValid, - 'Expected DatasetOwnership to be invalid when the number of owners with DATA_OWNER type is less than the required' - ); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/entity/mock/mock-entity-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/entity/mock/mock-entity-test.ts deleted file mode 100644 index a4431f5db94b9..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/entity/mock/mock-entity-test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MockEntity } from '@datahub/data-models/entity/mock/mock-entity'; -import { module, test } from 'qunit'; -import { IEntityLinkAttrs } from '@datahub/data-models/types/entity/shared'; - -module('Unit | Utility | entity/mock/mock-entity', function(): void { - test('entityTabLink', function(assert): void { - const expectedTab = 'tabName'; - const expectedUrn = 'mock-urn'; - const tabLinkParams = new MockEntity('mock-urn').entityTabLink(expectedTab) as IEntityLinkAttrs; - - assert.ok(tabLinkParams, 'Expected tabLinkParams to be generated when supplied with required attributes'); - - const [, urn, tabName] = tabLinkParams.link.model as Array; - - assert.equal(expectedTab, tabName, 'Expected the supplied tab name to be in the model array'); - assert.equal(expectedUrn, urn, 'Expected the supplied urn to be in the model array'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/get-actor-from-urn-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/get-actor-from-urn-test.ts deleted file mode 100644 index 51e8a7047d00a..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/get-actor-from-urn-test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import getActorFromUrn from '@datahub/data-models/utils/get-actor-from-urn'; -import { module, test } from 'qunit'; - -module('Unit | Utility | get-actor-from-urn', function() { - test('it works as intended', function(assert): void { - const sampleUrn = 'urn:li:corpuser:pikachu'; - let result = getActorFromUrn(sampleUrn); - assert.ok(result === 'pikachu', 'Response as expected'); - - const sampleBadUrn = 'somethingsomethingdarkside'; - result = getActorFromUrn(sampleBadUrn); - assert.ok(result === sampleBadUrn, 'No change as expected if given bad urn'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tests/unit/utils/get-group-from-urn-test.ts b/datahub-web/@datahub/data-models/tests/unit/utils/get-group-from-urn-test.ts deleted file mode 100644 index ffc2659318139..0000000000000 --- a/datahub-web/@datahub/data-models/tests/unit/utils/get-group-from-urn-test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getGridGroupFromUrn } from '@datahub/data-models/utils/get-group-from-urn'; -import { module, test } from 'qunit'; - -module('Unit | Utility | get-group-from-urn', function() { - test('it works as intended', function(assert): void { - const sampleUrn = 'urn:li:gridGroup:pikachu'; - let result = getGridGroupFromUrn(sampleUrn); - assert.ok(result === 'pikachu', 'Response as expected'); - - const sampleBadUrn = 'somethingsomethingdarkside'; - result = getGridGroupFromUrn(sampleBadUrn); - assert.ok(result === sampleBadUrn, 'No change as expected if given bad urn'); - }); -}); diff --git a/datahub-web/@datahub/data-models/tsconfig.json b/datahub-web/@datahub/data-models/tsconfig.json deleted file mode 100644 index 9fe84a478a580..0000000000000 --- a/datahub-web/@datahub/data-models/tsconfig.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "extends": "../../configs/tsconfig-base", - "compilerOptions": { - "baseUrl": ".", - "rootDir": "../../", - "paths": { - "dummy/mirage/*": ["tests/dummy/mirage/*"], - "dummy/tests/*": ["tests/*"], - "dummy/*": ["tests/dummy/app/*", "app/*"], - "@datahub/data-models": ["addon"], - "@datahub/data-models/*": ["addon/*"], - "@datahub/data-models/test-support": ["addon-test-support"], - "@datahub/data-models/test-support/*": ["addon-test-support/*"], - "fetch": ["node_modules/ember-fetch"], - "@datahub/utils": ["../../@datahub/utils/addon"], - "@datahub/utils/*": ["../../@datahub/utils/addon/*"], - "@datahub/metadata-types": ["../../@datahub/metadata-types/addon"], - "@datahub/metadata-types/*": ["../../@datahub/metadata-types/addon/*"], - "@nacho-ui/core": ["../../@nacho-ui/core/addon"], - "@nacho-ui/core/*": ["../../@nacho-ui/core/addon/*"], - "*": ["types/*"] - } - }, - "include": [ - "app/**/*", - "addon/**/*", - "tests/**/*", - "types/**/*", - "test-support/**/*", - "addon-test-support/**/*", - "../../@datahub/metadata-types/addon/**/*", - "../../@datahub/metadata-types/types/**/*", - "../../@datahub/utils/addon/**/*", - "../../@datahub/utils/types/**/*", - "../../@nacho-ui/core/**/*" - ] -} diff --git a/datahub-web/@datahub/data-models/types/dummy/index.d.ts b/datahub-web/@datahub/data-models/types/dummy/index.d.ts deleted file mode 100644 index bfa534e702782..0000000000000 --- a/datahub-web/@datahub/data-models/types/dummy/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'dummy/app'; diff --git a/datahub-web/@datahub/data-models/types/entity/browse.d.ts b/datahub-web/@datahub/data-models/types/entity/browse.d.ts deleted file mode 100644 index bd4576051c1c9..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/browse.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Browse api will return a list of metrics that will have - * this structure. - * Additional filters can be used for browse. Any field in the entity document could be used. - * This will be used as a filter to narrow down browse results. E.g.: status=PUBLISHED for features - * see: https://docs.google.com/document/d/1KbX97Sk8vQgaE1ksYvXyUc7Mf2PAgg311JBwZi-hgH8 - */ -export type IBrowseParams = { - type: string; - path?: string; - start?: number; - count?: number; -} & T; - -/** - * - */ -export interface IBrowseResponse { - elements: Array<{ urn: string; name: string }>; - start: number; - count: number; - total: number; - metadata: { - totalNumEntities: number; - path: string; - groups: Array<{ name: string; count: number }>; - }; -} - -/** - * Path for bowse paths - */ -export interface IBrowsePathParams { - type: string; - urn: string; -} diff --git a/datahub-web/@datahub/data-models/types/entity/dataset/index.d.ts b/datahub-web/@datahub/data-models/types/entity/dataset/index.d.ts deleted file mode 100644 index 62236c478df57..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/dataset/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { IEntityComplianceSuggestion } from '@datahub/metadata-types/constants/entity/dataset/compliance-suggestion'; -import DatasetComplianceAnnotation from '@datahub/data-models/entity/dataset/modules/compliance-annotation'; - -/** - * Describes the options for the dataset - * @interface IReadDatasetsOptionBag - */ -export interface IReadDatasetsOptionBag { - platform: DatasetPlatform | string; - prefix: string; - start?: number; -} - -export interface IDatasetComplianceSuggestionInfo { - lastModified: number; - suggestedDatasetClassification: {}; - suggestedFieldClassification: Array; - urn: string; -} - -/** - * A map of DatasetComplianceAnnotation instances that are being added or removed from a dataset's compliance policy - * Used to get a flat list of annotation instances, i.e. each separate annotation without field groupings - * @export - * @interface IComplianceAnnotationUpdates - */ -export interface IComplianceAnnotationUpdates { - // Lists the annotations that are being added to the compliance policy - added: Array; - // Lists the annotations that are being removed from the compliance policy - removed: Array; - // Lists the annotations that are mutations of previously saved annotations, - // currently includes annotations found in added "and" removed since those prior lists are not pruned of intersections and technically, - // a change is a removal and an addition - onlyChanged: Array; -} diff --git a/datahub-web/@datahub/data-models/types/entity/dataset/ownership.d.ts b/datahub-web/@datahub/data-models/types/entity/dataset/ownership.d.ts deleted file mode 100644 index afb8389c51250..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/dataset/ownership.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { OwnerUrnNamespace } from '@datahub/data-models/constants/entity/dataset/ownership'; - -/** - * Describes the interface for a mid-tier Dataset Owner - */ -export interface IOwner { - // Flag indicating that this owner has been confirmed by another user from the UI, - // value of this flag is the confirming user's username - confirmedBy: null | string; - // Email address associated with this owner - email: null | string; - // Flag indicating that the owner is currently active / inactive within the domain, e.g. organization - isActive: boolean; - // Flag indicating that the owner is a group - isGroup: boolean; - // Human name for the owner - name: string; - // Time when this owner was last modified for this dataset, this is provided as a number by the mid-tier, however - // locally mutated to be a date due to a legacy implementation - modifiedTime?: number | Date; - // Principal type for the owner - idType: Com.Linkedin.Avro2pegasus.Events.Datavault.PrincipalType; - // Owner prefix for the urn, indicating the type of owner - namespace: OwnerUrnNamespace; - // Provenance for the ownership information - source: Com.Linkedin.Dataset.OwnershipProvider; - // The type of ownership the user has in relation to the dataset - type: Com.Linkedin.Dataset.OwnerCategory; // or? datahub-web/packages/data-portal/app/utils/api/datasets/owners.ts/OwnerType - // username for the owner - userName: string; - // Unused attribute - sortId: null | number; - // unused attribute - subType: null; -} - -/** - * Describes the expected shape of the response from dataset owners endpoint - * when requesting ownership information - */ -export interface IOwnerResponse { - // List of dataset owners confirming to the mid-tier IOwner interface - owners?: Array; - // Flag indicates if the dataset is from an upstream source - fromUpstream: boolean; - // urn for the dataset, however if the fromUpstream flag is truthy, then this will be the upstream dataset's urn - datasetUrn: string; - // date the ownership information was last modified - lastModified: number; - // entity that performed the modification - actor: string; -} diff --git a/datahub-web/@datahub/data-models/types/entity/facets.d.ts b/datahub-web/@datahub/data-models/types/entity/facets.d.ts deleted file mode 100644 index 40b45a1e4ebe4..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/facets.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; - -/** - * Options inside a facet - * @interface ISearchFacetOption - */ -export interface ISearchFacetOption { - value: string; - label: string; - count: number; -} - -/** - * Interface of a facet - */ -export interface ISearchFacet { - // the business side logical name of the facet - name: string; - // the visually represented name of the facet - displayName: string; - // Array of key value pairs that contain the actual search facet and it's value - values: Array; - // Optional component that takes care of all header based display logic like : header text , additional helpers , other UI modifiers like checkboxes or edit options - headerComponent?: IDynamicComponent; -} - -/** - * Dynamic facet selections - */ -export interface IFacetSelections { - [key: string]: boolean; -} - -/** - * Dynamic facets: - * { - * source: { - * hdfs: true, - * hive: true - * } - * } - */ -export interface IFacetsSelectionsMap { - [key: string]: IFacetSelections; -} - -/** - * Compressed version of selection to put it in a url - * { - * source: ['hdfs', 'hive] - * } - */ -export interface IFacetsSelectionsArray { - [key: string]: Array; -} - -/** - * Dynamic counts facet option - */ -export interface IFacetCounts { - [key: string]: number; -} - -/** - * Dynamic counts facet similar to selections - */ -export interface IFacetsCounts { - [key: string]: IFacetCounts; -} diff --git a/datahub-web/@datahub/data-models/types/entity/person/props.ts b/datahub-web/@datahub/data-models/types/entity/person/props.ts deleted file mode 100644 index 244405e0575c1..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/person/props.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; - -/** - * Interface representing an object that contains the properties and typings associated with them - * for items in the Person Entity that we deem to be editable - */ -export interface IPersonEntityEditableProperties { - // User-provided focus area, describing themselves and what they do - focusArea: PersonEntity['focusArea']; - // A list of skills that this particular person entity has declared to own. - skills: PersonEntity['skills']; - // Tags that in aggregate denote which team and organization to which the user belongs - teamTags: PersonEntity['teamTags']; -} diff --git a/datahub-web/@datahub/data-models/types/entity/rendering/entity-render-props.d.ts b/datahub-web/@datahub/data-models/types/entity/rendering/entity-render-props.d.ts deleted file mode 100644 index 3bf3ae3117952..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/rendering/entity-render-props.d.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { AppRoute } from '@datahub/data-models/types/entity/shared'; -import { - ISearchEntityRenderProps, - IEntityRenderPropsSearch, - IEntityRenderCommonPropsSearch -} from '@datahub/data-models/types/search/search-entity-render-prop'; -import { DataModelEntityInstance } from '@datahub/data-models/constants/entity'; -import { IEntityPageMainComponent, PageComponent } from '@datahub/data-models/types/entity/rendering/page-components'; -import { BaseEntity } from '@datahub/data-models/entity/base-entity'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; - -/** - * Tab properties for entity profile pages - * @export - * @interface ITabProperties - */ -export interface ITabProperties { - // A unique identifier for the tab so that we can tell what tab navigation piece is connected to - // what content piece inside ivy tabs - id: string; - // The rendered label title for the tab, will show up in the tab navigation menu - title: string; - // The component that is rendered in the content section for the tab, in charge of taking in top - // level data and supplying the proper view - // TODO META-10757: As we move forward with generic entity page, this component needs to accept options - // new pages won't support string as contentComponent. - contentComponent: string | PageComponent | IDynamicComponent; - // Will only insert the tab element and run its render logic if the tab is currently selected. - // The tradeoff is more time to load between tab changes but less heavy initial load times - lazyRender?: boolean; - // Whenever the tablist menu is more complex than a simple label, we need can choose to specify - // a component to handle the more sophisticated logic (example use case would be rendering - // subtabs or expansion/collapsing of menus) - tablistMenuComponent?: string; -} - -/** - * Defines the interface of objects expected to be passed to a nacho table instance - * For example, they are used to describe the interface properties extracted from a snapshot - * @export - * @interface IAttributeValue - */ -export interface IAttributeValue { - // The attribute key or display label - attribute: string; - // String representation of the attributes value - value?: string; -} - -/** - * Render descriptions for search results - */ -export interface IEntityRenderPropsEntityPage = never> { - // Route for the entity page - route: AppRoute; - // The URL path segment to the entity's api endpoint - apiRouteName: string; - // Lists the tab properties for the tabs on this Entity. A fn is also accepted to dynamically return tabs. - tabProperties: Array | ((entity: E) => Array); - // Specifies the default tab from the list of tabIds if a specific tab is not provided on navigation - defaultTab: ITabProperties['id'] | ((entityUrn: string) => ITabProperties['id']); - // Placeholder rendered when attribute are missing for entity metadata - attributePlaceholder?: string; - // References the main component used for the entity page. It will receive entity type, urn and tab as parameters - pageComponent?: IEntityPageMainComponent | IDynamicComponent; - // List of components to be dynamically inserted into the entity page header at runtime - customHeaderComponents?: Array; -} - -/** - * Browse definitions of an entity - */ -export interface IEntityRenderPropsBrowse { - // Flag indicating if the `SearchWithinHierarchy` component should be rendered on the browse page - // This performs an advanced search query with the category fields populated in the query string - showHierarchySearch: boolean; - // List of field metadata that browse may use. For example, it can send specific params to API to - // get a custom browse experience. - attributes?: Array; -} - -/** - * `Lists` property definitions - */ -export interface IEntityRenderPropsList { - searchResultConfig: IEntityRenderCommonPropsSearch; -} - -/** - * Defines a set of properties that guide the rendering of ui elements and features in the host application - * @interface IEntityRenderProps - */ -export interface IEntityRenderProps { - // References to the Entity in RestliUtils - // file://../../../datahub-dao/src/main/java/com/linkedin/datahub/util/RestliUtils.java - apiEntityName: string; - search: IEntityRenderPropsSearch; - userEntityOwnership?: IEntityRenderCommonPropsSearch; - browse?: IEntityRenderPropsBrowse; - // Some entities need to show custom visuals on top of browse, these entities - // can add those custom components here - browseHeaderComponents?: Array; - // Specifies properties for rendering the 'profile' page of an entity, aka Entity page - // if there is not an entity page, this should be undefined - entityPage?: IEntityRenderPropsEntityPage; - // Specifies attributes for displaying Entity properties in a list component - list?: IEntityRenderPropsList; -} diff --git a/datahub-web/@datahub/data-models/types/entity/rendering/page-components.d.ts b/datahub-web/@datahub/data-models/types/entity/rendering/page-components.d.ts deleted file mode 100644 index 7768f65bf0337..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/rendering/page-components.d.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { INachoTableConfigs } from '@nacho-ui/core/types/nacho-table'; -import { KeyNamesWithValueType } from '@datahub/utils/types/base'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; -import { IStandardDynamicProperty } from '@datahub/data-models/types/entity/rendering/properties-panel'; -import { INachoDropdownOption } from '@nacho-ui/core/types/nacho-dropdown'; - -// TODO https://jira01.corp.linkedin.com:8443/browse/META-10764: Investigate how to solve the 'wrapper' components scalability issue in generic entity page and search -/** - * Property to show in the entity page header - * Value will be fetched from the entity using the propery `name` - */ -export interface IEntityPageHeaderProperty extends IStandardDynamicProperty { - // Dynamic component that this property can use to be rendered as a tag - tagComponent?: IDynamicComponent; -} - -/** - * Entity Page Header configuration params for an entity - */ -export interface IEntityPageHeader { - // Properties to show in the entity page header - properties: Array; - // Page components at CTA level that will show up in the header - actionComponents?: Array; - // Additional custom components - customComponents?: Array; -} - -/** - * Will render an empty state with a message - */ -export interface IEmptyStateComponent { - // name of the component - name: 'empty-state'; - options: { - // Message to show as a header in the empty state - heading: string; - }; -} - -/** - * Generic component to render the entity page - */ -export interface IEntityPageMainComponent extends IDynamicComponent { - // name of the component - name: 'entity-page/entity-page-main'; - options: { - // header options for the page - header: IEntityPageHeader; - }; -} - -/** - * Content panel that will wrap a component with title, maybe a subheader, and some other common display info - */ -export interface IContentPanelComponent extends IDynamicComponent { - // name of the component - name: 'entity-page/entity-page-content/content-panel'; - options: { - // Id for the element - domId?: string; - // Title to render - title: string; - // Component inside - contentComponent: PageComponent | IDynamicComponent; - }; -} - -/** - * File Viewer Component input content - */ -export interface IFileViewerItem { - /** - * type of the content: - * to add new ones, check modes available here: - * https://github.com/ajaxorg/ace-builds/tree/master/src-noconflict - * - * then add in the options (index.js) for ember ace: - * ace: { - * modes: [...], - * workers: [...], - * exts: [...] - * } - * - * then add that mode as type - */ - type: 'json' | 'graphqlschema' | 'text'; - - // content of the file - content: string; -} - -/** - * Component that will use ember-ace to display the content of a file - */ -export interface IFileViewerComponent extends IDynamicComponent { - // name of the component - name: 'entity-page/entity-page-content/file-viewer'; - options: { - // properties name that has IFileViewerItem as type - propertyName: KeyNamesWithValueType; - // message to display when no file is available - emptyStateMessage: string; - }; -} - -/** - * Nacho table wrapper for generic entity page - */ -export interface INachoTableComponent extends IDynamicComponent { - // name of the component - name: 'entity-page/entity-page-content/nacho-table'; - options: { - // optional css class name for this component - className?: string; - // properties names to retrieve the array of values to show - propertyName?: KeyNamesWithValueType | undefined> | KeyNamesWithValueType>; - // message to show when no data is available - emptyStateMessage: string; - // table configuration - tableConfigs: INachoTableConfigs; - }; -} - -/** - * Simple aggregation component that will show all contained components - */ -export interface ILinearLayoutComponent extends IDynamicComponent { - // name of the component - name: 'entity-page/layouts/linear-layout'; - options: { - // List of components to render - components: Array>; - }; -} - -/** - * This component will switch the entity passed down to components to another one - * using a property of the original entity. This way we can reuse components meant for entity1, - * on entity2 if there is a relation - */ -export interface IEntitySwitch extends IDynamicComponent { - name: 'entity-page/entity-page-content/entity-switch'; - options: { - // property name to fetch the new entity from E - propertyName: keyof E; - // Child component to render - component: IDynamicComponent; - }; -} - -/** - * This component will create an entity given an entity... wait what? The problem is that - * sometimes entity intances are not completely instatiated (with all props). This class will act as - * a simple container calling DataModels and instanciating a complete instance. - */ -export interface IHydrateEntity extends IDynamicComponent { - name: 'entity-page/entity-page-content/hydrate-entity'; - options: { - // Child component to render - component: IDynamicComponent; - }; -} - -/** - * See IContentPanelWithToggle - * - * For each option in the toggle, the component to be rendered inside is needed - * plus an optional toolbar component in case the content component needs a toolbar. - * - * The comunication between content and toolbar is done through a shared object called 'state'. - */ -export interface IContentPanelWithToggleItem { - // component to be rendered in the content section of the panel - contentComponent: IDynamicComponent; - // toolbar to be rendered next to the toggle - toolbarComponent?: IDynamicComponent; -} - -/** - * Content panel that will have a toggle to switch between content - */ -export interface IContentPanelWithToggle extends IDynamicComponent { - // name of the component - name: 'entity-page/entity-page-content/content-panel-with-toggle'; - options: { - // title of content - title: string; - // optional description for the content - description?: string; - // toggle options available - dropDownItems: Array>; - }; -} - -/** - * Map between the value of a property in an entity and a dynamic component - */ -export type Discriminator = Partial, IDynamicComponent>>; - -/** - * Component to create variants of a page using the value of a property - */ -export interface IEntityDiscriminator extends IDynamicComponent { - name: 'entity-page/entity-page-content/entity-discriminator'; - options: { - // Map with platform and desired page params - discriminator: Discriminator; - // If no suitable platform is found, default page will be used - default: IDynamicComponent; - // Property name where to fetch the value to discriminate - propertyName: keyof T; - }; -} - -/** - * All Page Components available - * - * @template E entity or object where page components can read properties - */ -export type PageComponent = - | IFileViewerComponent - | ILinearLayoutComponent - | INachoTableComponent - | IContentPanelComponent - | IEmptyStateComponent - | IContentPanelWithToggle - | IEntityDiscriminator - | IEntitySwitch - | IHydrateEntity - | IDynamicComponent; diff --git a/datahub-web/@datahub/data-models/types/entity/rendering/properties-panel.d.ts b/datahub-web/@datahub/data-models/types/entity/rendering/properties-panel.d.ts deleted file mode 100644 index 22c65c62528f1..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/rendering/properties-panel.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; - -/** - * Properties Panel accepted options - */ -export interface IPropertiesPanelArgsOptions { - // List of properties to display - properties: Array>; - // Number of column to display the properties - columnNumber: number; - // Whether this component it is embeded or it should show its own borders and margins - standalone: boolean; -} - -/** - * Properties panel label accepted options - */ -export interface IPropertyPanelLabelComponentOptions { - // Display name of the property to show in the UI - displayName: string; - // Optional text providing additional information about the property rendered as a tooltip - tooltipText?: string; -} - -/** - * The property panel label component properties for dynamic rendering - */ -export interface IPropertyPanelLabelComponent { - // Name of the component to render - name: string; - // The options permissible for a panel label component - options?: IPropertyPanelLabelComponentOptions; -} - -/** - * Standarized dynamic property across Datahub - */ -export interface IStandardDynamicProperty { - // Name of the property to retreive the value - name: ValidPropertiesName; - // Display name of the property to show in the UI - displayName?: string; - // Dynamic component used to render the label for this property - labelComponent?: IPropertyPanelLabelComponent; - // Dynamic component that this property can use to be rendered - component?: IDynamicComponent; -} diff --git a/datahub-web/@datahub/data-models/types/entity/search.d.ts b/datahub-web/@datahub/data-models/types/entity/search.d.ts deleted file mode 100644 index 1de0f1603c830..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/search.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { IFacetsCounts } from '@datahub/data-models/types/entity/facets'; -import { ArrayElement } from '@datahub/utils/types/array'; - -/** - * standard search results that can be consumed by the ui - */ -export interface IDataModelEntitySearchResult { - // Search result returned elements - data: Array; - // Starting index of the list of search results - start: number; - // Number of returned results - count: number; - // Items to be rendered per page of dataset result - itemsPerPage: number; - // The current page of the search results with datasets - page: number; - // The total number of pages that can be rendered for this result, should match Math.ceil(count / itemsPerPage) - totalPages: number; - // Aggregation results for the search, broken down by facet properties and values to aggregation value - facets: IFacetsCounts; -} - -/** - * Aliases the Array item found in the search results data attribute - * @type SearchResultDataItem - */ -export type SearchResultDataItem = ArrayElement['data']>; - -/** - * Defines the interface for a SearchResult metadata object - * @export - * @interface ISearchResultMetadata - */ -export interface ISearchResultMetadata { - // Position in search result - resultPosition: number; -} - -/** - * Defines the interface for an object containing a data attribute with SearchResultDataItem and metadata properties - * @export - * @interface ISearchDataWithMetadata - */ -export interface ISearchDataWithMetadata { - data: T; - meta: ISearchResultMetadata; -} diff --git a/datahub-web/@datahub/data-models/types/entity/shared.d.ts b/datahub-web/@datahub/data-models/types/entity/shared.d.ts deleted file mode 100644 index d64faec3af291..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/shared.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { BaseEntity } from '@datahub/data-models/entity/base-entity'; -import { IBaseEntity } from '@datahub/metadata-types/types/entity'; -import { IDynamicLinkNode } from '@datahub/utils/types/vendor/dynamic-link'; -import { DataModelName } from '@datahub/data-models/constants/entity'; - -/** - * String literal of available entity routes - */ -export type AppRoute = - | 'browse.entity' - | 'features.feature' - | 'datasets.dataset' - | 'user.profile' - | 'dataconcepts.dataconcept' - | 'jobs.job' - | EntityPageRoute; - -/** - * Specifies the top level Ember route representing navigation to an instance of entity page - */ -export type EntityPageRoute = 'entity-type.urn'; - -/** - * Properties that enable a dynamic link to the entity or category - * @template T {T = undefined} by default, queryParams for EntityLinkNode are not specified, however, otherwise an associated type must be provided - */ -export type EntityLinkNode = IDynamicLinkNode, AppRoute, T>; - -/** - * Search Link type alias - */ -export type SearchLinkNode = IDynamicLinkNode< - Array, - 'search', - { entity: DataModelName; keyword: string; page?: number } ->; - -/** - * Envelopes the link: EntityLinkNode with metadata on how the link should be displayed - * @export - * @interface IEntityLinkAttrs - * @template T {T = undefined} by default, queryParams for IEntityLinkAttrs are not specified, however, otherwise an associated type must be provided - */ -export interface IEntityLinkAttrs { - // Link properties that enable a dynamic link tho the entity or category - link: EntityLinkNode; - // Display name for the concrete entity class - entity: BaseEntity['displayName']; -} - -/** - * For groups we have a count in the link - */ -export interface IEntityLinkAttrsWithCount extends IEntityLinkAttrs { - count: number; -} - -/** - * Browse Path represents a path/category when browsing. It can contains groups - * and entities. - */ -export interface IBrowsePath { - // The title for this path (usually last part of the path) - title: string; - // segments of the path (path separated into an array of string) - segments: Array; - // count of total entities under this path (nested) - totalNumEntities?: number; - // number of entities only in current path - entitiesPaginationCount: number; - // link to groups/folders - groups: Array; - // link to entities - entities: Array; -} diff --git a/datahub-web/@datahub/data-models/types/entity/validators.d.ts b/datahub-web/@datahub/data-models/types/entity/validators.d.ts deleted file mode 100644 index 704411727b106..0000000000000 --- a/datahub-web/@datahub/data-models/types/entity/validators.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Defines the interface for an IDL that specifies the data types for properties on - * a compliance metadata object - * @interface IMetadataType - */ -export interface IMetadataType { - // the expected type or types for the property with @name - '@type': string | Array; - // the name of the property that should be on the metadata object - '@name': string; - // optional list of properties that are expected on the metadata object - '@props'?: Array; - // optional list of expected string values for an enum type (not implemented) - '@symbols'?: Array; -} diff --git a/datahub-web/@datahub/data-models/types/global.d.ts b/datahub-web/@datahub/data-models/types/global.d.ts deleted file mode 100644 index 8c9e41e6407bd..0000000000000 --- a/datahub-web/@datahub/data-models/types/global.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Types for compiled templates -declare module '@datahub/data-models/templates/*' { - import { TemplateFactory } from 'htmlbars-inline-precompile'; - const tmpl: TemplateFactory; - export default tmpl; -} diff --git a/datahub-web/@datahub/data-models/types/relationships/decorator-types.d.ts b/datahub-web/@datahub/data-models/types/relationships/decorator-types.d.ts deleted file mode 100644 index eb97407c17a01..0000000000000 --- a/datahub-web/@datahub/data-models/types/relationships/decorator-types.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { DataModelEntityInstance, DataModelName } from '@datahub/data-models/constants/entity'; - -/** - * Expresses the form of a getter function for a data model entity when given a urn and entity type - */ -export type DataModelsRelationshipGetter = >( - urns: T -) => (T extends string ? K : Array) | undefined; - -/** - * Creates a custom object to provide the interface for the Objects we are actually working with. - * Since we are messing with decorators and prototypes under the hood, typescript won't actually - * know such a property exists on the object interface - */ -export interface IRelationshipDecoratedClassPrototype { - __relationshipGetters: Partial>>; - __relationships: Set; - [key: string]: unknown; -} diff --git a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component.d.ts b/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component.d.ts deleted file mode 100644 index 1b9a42af65ad0..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ICustomSearchResultPropertyComponentTag } from '@datahub/data-models/types/search/custom-search-result-property-component/tag'; -import { ICustomSearchResultPropertyComponentLink } from '@datahub/data-models/types/search/custom-search-result-property-component/link'; -import { ICustomSearchResultPropertyComponentDate } from '@datahub/data-models/types/search/custom-search-result-property-component/date'; -import { ICustomSearchResultPropertyComponentIcon } from '@datahub/data-models/types/search/custom-search-result-property-component/icon'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; - -// TODO https://jira01.corp.linkedin.com:8443/browse/META-10764: Investigate how to solve the 'wrapper' components scalability issue in generic entity page and search - -/** - * This interface should live in search addon, but search addon depends on data-models and - * we don't want to create a circular dependency. Storing this interface at data-models for now. - * - * Search can have custom components to be render on fields, tags or secondary actions. - * - * Unifying interface to invoke these components - */ - -/** - * Known components are the ones that are generic and reusable for all kind of purposes - */ -type KnownComponents = - | ICustomSearchResultPropertyComponentTag - | ICustomSearchResultPropertyComponentLink - | ICustomSearchResultPropertyComponentDate - | ICustomSearchResultPropertyComponentIcon; - -/** - * Making explicit this distintion to make it easier to add new KnownComponents - */ -export type ICustomSearchResultPropertyComponent = KnownComponents | IDynamicComponent; diff --git a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/date.d.ts b/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/date.d.ts deleted file mode 100644 index 0673304be5380..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/date.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Interface for component that renders a formatted date - */ -export interface ICustomSearchResultPropertyComponentDate { - name: 'search/custom-search-result-property-component/date'; - options: { - // moment format - format: string; - // multiplies value by 1000 - inSeconds?: boolean; - }; -} diff --git a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/icon.d.ts b/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/icon.d.ts deleted file mode 100644 index 707afdfb8209e..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/icon.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Interface for component that renders an icon - */ -export interface ICustomSearchResultPropertyComponentIcon { - name: 'search/custom-search-result-property-component/icon'; - options: { - // Name of the icon - iconName: string; - // Meaning of the icon readable by humans - hoverText: string; - }; -} diff --git a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/link.d.ts b/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/link.d.ts deleted file mode 100644 index 47eefa56a5160..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/link.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Interface for component that renders an external link - */ -export interface ICustomSearchResultPropertyComponentLink { - name: 'search/custom-search-result-property-component/link'; - options: { - /** - * property from entity that will return a ILink - */ - linkProperty: string; - - /** - * Text for the button - */ - text: string; - }; -} diff --git a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/tag.d.ts b/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/tag.d.ts deleted file mode 100644 index fab2c828f0829..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/custom-search-result-property-component/tag.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Interface for component that renders a tag - */ -export interface ICustomSearchResultPropertyComponentTag { - name: 'search/custom-search-result-property-component/tag'; - options: { - // should be type PillState but it is not exposed in nacho-ui - state: string; - // should use titleize helper to format the text - titleize?: boolean; - // if text is used, then value should be a boolean - text?: string; - }; -} diff --git a/datahub-web/@datahub/data-models/types/search/search-entity-render-prop.d.ts b/datahub-web/@datahub/data-models/types/search/search-entity-render-prop.d.ts deleted file mode 100644 index c78483cb6c242..0000000000000 --- a/datahub-web/@datahub/data-models/types/search/search-entity-render-prop.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { ICustomSearchResultPropertyComponent } from '@datahub/data-models/types/search/custom-search-result-property-component'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; - -export interface IEntityRenderCommonPropsSearch { - // Lists a set of render properties that indicate how search attributes for an entity are rendered in the ui - attributes: Array; - // Should show facets in search, by default is true - showFacets?: boolean; - // Lists the optional search result item secondary action component string references, - // actions are rendered in the order they are presented, this may evolve to include options for rendering such as properties e.t.c - secondaryActionComponents?: Array; - // Lists the optional search result item footer component string references - // Footer components are rendered in the order they are presented, this may evolve to include options for rendering - customFooterComponents?: Array; - searchResultEntityFields?: { - // Field that returns the name of the entity, by default is 'name' - name?: string; - // Field that returns the description of the entity, by default is 'description' - description?: string; - // Field that returns the entity picture of the entity, it won't be shown by default - pictureUrl?: string; - }; - // Whether or not this entity is searchable through conventional means in the application. One - // can still have search props but have isEnabled set to false if the entity relies on search but - // is not necessary available in the global search functionality for the app - // Note: Though this parameter is optional, items that rely on listing entities that are searchable - // will default this to false - isEnabled?: boolean; - defaultAspects: Array; -} -/** - * This interface should live in search addon, but search addon depends on data-models and - * we don't want to create a circular dependency. Storing this interface at data-models for now. - * - * Property defintion in the context of search result - */ -export interface IEntityRenderPropsSearch extends IEntityRenderCommonPropsSearch { - // Placeholder text describing call to action for search input - placeholder: string; - // By default autocomplete field is `name`, but some entities maybe need some other field - autocompleteNameField?: string; -} - -/** - * This interface should live in search addon, but search addon depends on data-models and - * we don't want to create a circular dependency. Storing this interface at data-models for now. - * - * Defines attributes that determine how search related visual elements are rendered - * @export - * @interface ISearchEntityRenderProps - */ -export interface ISearchEntityRenderProps { - // The name of the search entity attribute that these render properties apply to e.g. dataorigin - fieldName: string; - // Alias of the field to use for the data model entity property to avoid name collisions - fieldNameAlias?: string; - // Flag indicating that this search entity attribute should be available or hidden from search auto complete - showInAutoCompletion: boolean; - // Flag indicating that this search entity attribute should be available or hidden from results preview - showInResultsPreview: boolean; - // Flag indicating that this search entity attribute should be shown as a search facet property - showInFacets: boolean; - // Component to use for tag, if none, it won't render tag - tagComponent?: ICustomSearchResultPropertyComponent; - // An alternative string representation of the fieldName attribute that's more human-friendly e.g. Data Origin - displayName: string; - // A description of the search attribute - desc: string; - // An example of the search pattern for the field - example: string; - // forced selection for facets, this should be send to the api regardless the user selection - forcedFacetValue?: Array; - // Default may be selected on initial search - facetDefaultValue?: Array; - // browse may require to filter by some facets on some cases - browseFiltersValue?: Array; - // minimum query length to fetch suggestions for backend - minAutocompleteFetchLength?: number; - // Optional text that is shown over hovering of the element, to provide more meaning and context - hoverText?: string; - // Component that can serve different purposes when default rendering options are not enough - // attributes is an optional object used to provide additional rendering information about the component - component?: ICustomSearchResultPropertyComponent; - // Optional dynamic component(s) that are supplied as a way to flexibly control what and how components work - // An implementation of this interface would contain custom `DynamicComponent` names and custom options on a per component basis - headerComponent?: IDynamicComponent; -} diff --git a/datahub-web/@datahub/data-models/types/vendor/custom-ember.d.ts b/datahub-web/@datahub/data-models/types/vendor/custom-ember.d.ts deleted file mode 100644 index 68e2156459d79..0000000000000 --- a/datahub-web/@datahub/data-models/types/vendor/custom-ember.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import ArrayPrototypeExtensions from '@ember/array/types/prototype-extensions'; - -// opt-in to allow types for Ember Array Prototype extensions -declare global { - // eslint-disable-next-line @typescript-eslint/no-empty-interface, @typescript-eslint/interface-name-prefix - interface Array extends ArrayPrototypeExtensions {} -} diff --git a/datahub-web/@datahub/data-models/vendor/.gitkeep b/datahub-web/@datahub/data-models/vendor/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/entities/.editorconfig b/datahub-web/@datahub/entities/.editorconfig deleted file mode 100644 index 219985c2289f7..0000000000000 --- a/datahub-web/@datahub/entities/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 2 - -[*.hbs] -insert_final_newline = false - -[*.{diff,md}] -trim_trailing_whitespace = false diff --git a/datahub-web/@datahub/entities/.ember-cli b/datahub-web/@datahub/entities/.ember-cli deleted file mode 100644 index ee64cfed2a890..0000000000000 --- a/datahub-web/@datahub/entities/.ember-cli +++ /dev/null @@ -1,9 +0,0 @@ -{ - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false -} diff --git a/datahub-web/@datahub/entities/.gitignore b/datahub-web/@datahub/entities/.gitignore deleted file mode 100644 index c40a1b2aba3ef..0000000000000 --- a/datahub-web/@datahub/entities/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ - -# misc -/.env* -/.pnp* -/.sass-cache -/connect.lock -/coverage/ -/libpeerconnection.log -/npm-debug.log* -/testem.log -/yarn-error.log - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try diff --git a/datahub-web/@datahub/entities/.npmignore b/datahub-web/@datahub/entities/.npmignore deleted file mode 100644 index bd09adff92e08..0000000000000 --- a/datahub-web/@datahub/entities/.npmignore +++ /dev/null @@ -1,32 +0,0 @@ -# compiled output -/dist/ -/tmp/ - -# dependencies -/bower_components/ - -# misc -/.bowerrc -/.editorconfig -/.ember-cli -/.env* -/.eslintignore -/.eslintrc.js -/.git/ -/.gitignore -/.template-lintrc.js -/.travis.yml -/.watchmanconfig -/bower.json -/config/ember-try.js -/CONTRIBUTING.md -/ember-cli-build.js -/testem.js -/tests/ -/yarn.lock -.gitkeep - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try diff --git a/datahub-web/@datahub/entities/.travis.yml b/datahub-web/@datahub/entities/.travis.yml deleted file mode 100644 index d10bed4d288bc..0000000000000 --- a/datahub-web/@datahub/entities/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -language: node_js -node_js: - # we recommend testing addons with the same minimum supported node version as Ember CLI - # so that your addon works for all apps - - '10' - -sudo: false -dist: trusty - -addons: - chrome: stable - -cache: - yarn: true - -env: - global: - # See https://git.io/vdao3 for details. - - JOBS=1 - -branches: - only: - - master - # npm version tags - - /^v\d+\.\d+\.\d+/ - -jobs: - fail_fast: true - allow_failures: - - env: EMBER_TRY_SCENARIO=ember-canary - - include: - # runs linting and tests with current locked deps - - - stage: 'Tests' - name: 'Tests' - install: - - yarn install --non-interactive - script: - - yarn lint:hbs - - yarn lint:js - - yarn test - - - name: 'Floating Dependencies' - script: - - yarn test - - # we recommend new addons test the current and previous LTS - # as well as latest stable release (bonus points to beta/canary) - - stage: 'Additional Tests' - env: EMBER_TRY_SCENARIO=ember-lts-2.18 - - env: EMBER_TRY_SCENARIO=ember-lts-3.4 - - env: EMBER_TRY_SCENARIO=ember-release - - env: EMBER_TRY_SCENARIO=ember-beta - - env: EMBER_TRY_SCENARIO=ember-canary - - env: EMBER_TRY_SCENARIO=ember-default-with-jquery - -before_install: - - curl -o- -L https://yarnpkg.com/install.sh | bash - - export PATH=$HOME/.yarn/bin:$PATH - -install: - - yarn install --no-lockfile --non-interactive - -script: - - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/datahub-web/@datahub/entities/.watchmanconfig b/datahub-web/@datahub/entities/.watchmanconfig deleted file mode 100644 index e7834e3e4f39c..0000000000000 --- a/datahub-web/@datahub/entities/.watchmanconfig +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignore_dirs": ["tmp", "dist"] -} diff --git a/datahub-web/@datahub/entities/LICENSE.md b/datahub-web/@datahub/entities/LICENSE.md deleted file mode 100644 index 0d02ed0266734..0000000000000 --- a/datahub-web/@datahub/entities/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2020 LinkedIn - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/datahub-web/@datahub/entities/README.md b/datahub-web/@datahub/entities/README.md deleted file mode 100644 index f60309cb48778..0000000000000 --- a/datahub-web/@datahub/entities/README.md +++ /dev/null @@ -1,25 +0,0 @@ -@datahub/entities -============================================================================== - -This package holds entity specific components and modules. - -## Creating an entity module - -Modules for entities should be namespaced according to the entity in the format: - -``` -// -``` - -where `module-type` is the name of the module we are working with (for example, `component` -or `util`), `pluralized-entity-name` is the identifier for the entity in plural form (for example, -`datasets` or `metrics`) and `entity-module-path` is the specific organization we want for the -module. - -With the above criteria, when we create an upstream datasets component for datasets with respect to -relationships, the command we might run might be: - -``` -// Creates the module components/datasets/relationships/upstream-datasets.ts -ember g component datasets/relationships/upstream-datasets -``` diff --git a/datahub-web/@datahub/entities/addon/.gitkeep b/datahub-web/@datahub/entities/addon/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-main.ts b/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-main.ts deleted file mode 100644 index 676048770369b..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-main.ts +++ /dev/null @@ -1,289 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/datasets/containers/dataset-main'; -import { computed, action } from '@ember/object'; -import { or } from '@ember/object/computed'; -import { set } from '@ember/object'; -import { setProperties } from '@ember/object'; -import { next } from '@ember/runloop'; -import { inject as service } from '@ember/service'; -import RouterService from '@ember/routing/router-service'; -import { layout, classNames } from '@ember-decorators/component'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { containerDataSource } from '@datahub/utils/api/data-source'; -import { task } from 'ember-concurrency'; -import { ETaskPromise } from '@datahub/utils/types/concurrency'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { isNotFoundApiError } from '@datahub/utils/api/shared'; -import Search from '@datahub/shared/services/search'; -import { ISearchEntityRenderProps } from '@datahub/data-models/types/search/search-entity-render-prop'; -import { IAppConfig, IConfigurator } from '@datahub/shared/types/configurator/configurator'; -import { DatasetTab } from '@datahub/data-models/constants/entity/dataset/tabs'; -import { CommonTabProperties } from '@datahub/data-models/constants/entity/shared/tabs'; -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { TabProperties } from '@datahub/data-models/constants/entity/dataset/tab-properties/all'; - -/** - * Defines the error properties when there is an error in the container - */ -interface IContainerError { - isNotFoundApiError: boolean; - error: Error; -} - -/** - * This file is a replacement of the DatasetController. Still there is too much - * going on here. It would be nice in the future to extract some parts out. - */ -@classNames('dataset-main') -@layout(template) -@containerDataSource('containerDataTask', ['urn']) -export default class DatasetMainContainer extends Component { - /** - * Inject the router as there are some transitions that we need to do - */ - @service - router!: RouterService; - - /** - * Data Models service to load entities - */ - @service('data-models') - dataModels!: DataModelsService; - - /** - * Search service to set entity type when visiting dataset page - */ - @service('search') - search!: Search; - - /** - * URN for the current dataset view - */ - urn!: string; - - /** - * Enum of tab properties - */ - tabIds = DatasetTab; - - /** - * The currently selected tab in view - */ - tabSelected!: DatasetTab; - - /** - * Configurator service if available - */ - @service - configurator?: IConfigurator; - - /** - * References the collection of help links with references to external pages of help information - */ - wikiLinks: IAppConfig['wikiLinks'] = this.configurator?.getConfig('wikiLinks') || {}; - - /** - * References a collection of properties for avatar properties - */ - avatarEntityProps?: IAppConfig['userEntityProps'] = this.configurator?.getConfig('userEntityProps'); - - /** - * Jit ACL configs - */ - jitAclConfig = this.configurator?.getConfig('jitAcl'); - - /** - * Flag indicating the dataset policy is derived from an upstream source - */ - isPolicyFromUpstream = false; - - /** - * Flag indicating if the viewer is internal - */ - get isInternal(): boolean { - return Boolean(this.configurator?.getConfig('isInternal')); - } - - /** - * Flag indicating whether or not we are in the staging environment, which is useful for determining whether - * or not to display some features in testing - */ - get isStaging(): boolean { - return Boolean(this.configurator?.getConfig('isStagingBanner')); - } - - /** - * Whether or not we have met the dataset ownership count requirements - */ - datasetOwnersRequiredNotMet?: boolean; - - /** - * Flag indicating that the dataset ownership requires user attention - * @type {ComputedProperty} - */ - @or('datasetOwnersRequiredNotMet') - ownershipRequiresUserAction!: boolean; - - /** - * Stores the entity definition for a dataset to be passed into the template - */ - fields: Array = DatasetEntity.renderProps.search.attributes; - - /** - * This value will only be read by non-UMP dataset header, and powers whether - * the tag will show that we have PII in the dataset or not - */ - datasetContainsPersonalData?: boolean; - - /** - * Reference to the DatasetEntity - */ - entity?: DatasetEntity; - - /** - * Reference to the entity class for use by downstream components, for example, to access the Entity's render props - */ - get entityClass(): typeof DatasetEntity { - return this.dataModels.getModel(DatasetEntity.displayName); - } - - /** - * Indicate if the container is in a error state and what error ocurred - */ - error?: IContainerError; - - /** - * List of tasks to perform on instantiation of this container - */ - @(task(function*(this: DatasetMainContainer): IterableIterator> { - this.resetState(); - - try { - yield this.reifyEntityTask.perform(); - - yield this.getPiiStatusTask.perform(); - } catch (e) { - set(this, 'error', { - isNotFoundApiError: isNotFoundApiError(e), - error: e - }); - } - }).restartable()) - containerDataTask!: ETaskPromise; - - /** - * Materializes the DatasetEntity instance - */ - @(task(function*(this: DatasetMainContainer): IterableIterator> { - const { dataModels, urn } = this; - - //TODO: META-8267 Container notifications decorator - if (urn) { - const entity: DatasetEntity | undefined = yield dataModels.createInstance(DatasetEntity.displayName, urn); - set(this, 'entity', entity); - } - }).restartable()) - reifyEntityTask!: ETaskPromise; - - /** - * Gets the PII status for any non UMP dataset - */ - @(task(function*(this: DatasetMainContainer): IterableIterator> { - const { entity } = this; - if (entity) { - const piiStatus = yield entity.readPiiStatus(); - set(this, 'datasetContainsPersonalData', piiStatus); - } - }).restartable()) - getPiiStatusTask!: ETaskPromise; - - /** - * Resets the state of the container as it may be reused for different datasets - */ - resetState(): void { - setProperties(this, { - error: undefined, - datasetOwnersRequiredNotMet: undefined, - datasetContainsPersonalData: undefined, - entity: undefined, - isPolicyFromUpstream: false - }); - } - - /** - * This will return the paths for an entity. We should be able to consume entity.readPath - * direcly but since datasets are not migrated we need to flag guard it. - * - */ - @computed('entity') - get paths(): Promise> { - const { entity } = this; - if (!entity) { - return Promise.resolve([]); - } - - return entity.readPath; - } - /** - * Array of tabs that are available for this entity. Is a computed property as there is a possibility the dataset - * entity is initially undefined and will be applied following first render - */ - @computed('entity') - get datasetTabs(): Array { - const { entity } = this; - if (!entity) { - return []; - } - const tabs: Array = [ - DatasetTab.Schema, - DatasetTab.Properties, - DatasetTab.Status, - DatasetTab.Ownership, - DatasetTab.Relationships - ]; - - return [...TabProperties.filter((tab): boolean => tabs.includes(tab.id)), ...CommonTabProperties]; - } - - /** - * Map to say which tab we should highlight with a notification badge - */ - @computed('requiresUserAction', 'ownershipRequiresUserAction') - get notificationsMap(): { [key in DatasetTab]?: boolean } { - return { - [DatasetTab.Ownership]: this.ownershipRequiresUserAction - }; - } - - /** - * Handler to capture changes in dataset PII status - */ - @action - onNotifyPiiStatus(containingPersonalData: boolean): void { - set(this, 'datasetContainsPersonalData', containingPersonalData); - } - - /** - * Handles user generated tab selection action by transitioning to specified route - * @param {Tabs} tabSelected the currently selected tab - */ - @action - tabSelectionChanged(tabSelected: DatasetTab): void { - // if the tab selection is not same as current, transition - if (this.tabSelected !== tabSelected) { - const router = this.router; - router.transitionTo(router.currentRouteName, this.urn, tabSelected); - } - } - - /** - * Triggered when the ownership information changes, will alert the user on the tab with a red dot if - * the current state of the dataset doesn't match the rules set out for the dataset ownership - * @param ownersNotConfirmed - Whether or not the owners for the dataset meet the requirements - */ - @action - setOwnershipRuleChange(ownersNotConfirmed: boolean): void { - next(this, (): boolean | undefined => set(this, 'datasetOwnersRequiredNotMet', ownersNotConfirmed)); - } -} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-schema.ts b/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-schema.ts deleted file mode 100644 index 66dd4fb0dfe56..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/containers/dataset-schema.ts +++ /dev/null @@ -1,65 +0,0 @@ -import Component from '@ember/component'; -import { setProperties } from '@ember/object'; -import { task } from 'ember-concurrency'; -import { IDatasetColumnWithHtmlComments } from '@datahub/entities/types/datasets/columns'; -import { augmentObjectsWithHtmlComments } from '@datahub/entities/utils/api/columns'; -import { readDatasetSchemaByUrn } from '@datahub/entities/utils/api/schema'; -import { containerDataSource } from '@datahub/utils/api/data-source'; -import { ETaskPromise } from '@datahub/utils/types/concurrency'; -import { IDatasetSchemaColumn, IDatasetSchema } from '@datahub/metadata-types/types/entity/dataset/schema'; -import { layout } from '@ember-decorators/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/datasets/containers/dataset-schema'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; - -@layout(template) -@containerDataSource('getDatasetSchemaTask', ['entity']) -export default class DatasetSchemaContainer extends Component { - /** - * The urn identifier for the dataset - * @type {string} - */ - entity!: DatasetEntity; - - /** - * json string for the dataset schema properties - * @type {string} - */ - json?: string; - - /** - * Stores the last modified date on the dataset schema as an utc time string - * @type {string} - */ - lastModifiedString = ''; - - /** - * List of schema properties for the dataset - * @type {IDatasetColumnWithHtmlComments | IDatasetColumn} - */ - schemas?: Array; - - /** - * If there is schema or not - */ - isEmpty = false; - - /** - * Reads the schema for the dataset - */ - @task(function*(this: DatasetSchemaContainer): IterableIterator> { - const { columns = [], rawSchema: json, lastModified } = ((yield readDatasetSchemaByUrn( - this.entity.urn - )) as unknown) as IDatasetSchema; - - const lastModifiedString = lastModified ? new Date(lastModified).toLocaleString() : ''; - - const schemas = augmentObjectsWithHtmlComments(columns); - // Specifically tests for null or undefined here as an empty string for json does not necessarily imply a lack of - // schema - const isEmpty = json === null || json === undefined; - - setProperties(this, { schemas, json: json || '{}', lastModifiedString, isEmpty }); - }) - getDatasetSchemaTask!: ETaskPromise; -} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/core/containers/dataset-groups.ts b/datahub-web/@datahub/entities/addon/components/datasets/core/containers/dataset-groups.ts deleted file mode 100644 index 1051b3db7e5c0..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/core/containers/dataset-groups.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { IDatasetGroupsAPIResponse, IDatasetGroupAPIResponse } from '@datahub/entities/types/groups'; -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../../templates/components/datasets/core/containers/dataset-groups'; -import { layout, classNames } from '@ember-decorators/component'; -import { ETaskPromise } from '@datahub/utils/types/concurrency'; -import { task } from 'ember-concurrency'; -import { containerDataSource } from '@datahub/utils/api/data-source'; -import { set, computed } from '@ember/object'; -import { readDatasetGroups } from '@datahub/data-models/api/dataset/groups'; -import { datasetGroupNameRegexPattern } from '@datahub/data-models/constants/entity/dataset/groups'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component.d'; - -const baseTableClass = 'dataset-groups-table'; -const tableTitle = 'Groups'; - -/** - * The type of each DatasetGroup created solely from the `groupsResponse` so that we can display it as per our liking in the UI - */ -interface IDatasetGroupMap { - // Name of the dataset group. Ex: OauthDatasets - name: string; - // The namespace that precedes the name and provides more context. Ex : com.abc.apidatasets - namespace: string; -} - -@layout(template) -@classNames('dataset-groups__container') -@containerDataSource('getContainerDataTask', ['urn']) -export default class DatasetGroupsContainer extends Component { - /** - * Styling class used in the template - */ - baseTableClass = baseTableClass; - - /** - * Title of the table that holds the groups' info - */ - tableTitle = tableTitle; - - /** - * The urn is a passed in element that is used by this container to know the context of the entity we are - * displaying as an entity is identified by this unique urn key - */ - urn = ''; - - /** - * Response data for the dataset groups API call - */ - groupsResponse: IDatasetGroupsAPIResponse = []; - - /** - * Method responsible for return the a Dynamic Component that can be used as a header for the groups table - */ - get dynamicHeaderComponent(): IDynamicComponent { - return { - name: 'dynamic-components/header', - options: { - className: `${baseTableClass}__dynamic-header`, - title: - 'A group is a subset of related datasets. Each group has a namespace and a description associated with it', - contentComponents: [ - { - name: 'dynamic-components/composed/user-assistance/help-tooltip-with-link', - options: { - className: `${baseTableClass}__tooltip`, - text: - 'Standardized identifier used for GDPR purposes to identify and group a static collection of datasets. Makes purging and onboarding of subsets to dashboards easier' - } - } - ] - } - }; - } - - /** - * Local state representative of the groups that the dataset belongs to. - * Groups is formed by extracting a list of names from the `groupsResponse` property - * - * We construct the `DatasetGroupMap` for each group available by calling the `formatDatasetGroupNames` helper function, - * and make a list called `groupList` - * - */ - @computed('groupsResponse') - get groups(): Array { - return this.groupsResponse.reduce( - (groupList: Array, currentGroup: IDatasetGroupAPIResponse): Array => { - const groupNameMatches = datasetGroupNameRegexPattern.exec(currentGroup.urn); - if (groupNameMatches) { - return [...groupList, this.formatDatasetGroupNames(groupNameMatches)]; - } - return groupList; - }, - [] - ); - } - - /** - * Helper method to parse the input into a usable object. - * We construct both `namespace` and `name` as part of this object - * - * @param groupNameMatches The incoming param containing the groupNames - */ - formatDatasetGroupNames(groupNameMatches: Array): IDatasetGroupMap { - const groupNames = groupNameMatches[1].split(','); - return { - namespace: groupNames[0], - name: groupNames[1] - }; - } - - /** - * Text displayed at the template level when there are no groups associated with the dataset - */ - emptyStateDisplayText = 'There are no groups that this dataset belongs to'; - - /** - * A boolean flag to indicate if there are groups or not - */ - @computed('groups') - get isEmpty(): boolean { - return !this.groups.length; - } - - /** - * Async task that reads the dataset groups from `readDatasetGroups`, - * then extracts the datasetName from it ( if any ) - - * Also responsible for setting the value for `groupsResponse` - */ - @(task(function*(this: DatasetGroupsContainer): IterableIterator> { - const { urn } = this; - const emptyGroups: IDatasetGroupsAPIResponse = []; - - if (urn) { - const groupsResponse = yield readDatasetGroups(urn); - set(this, 'groupsResponse', groupsResponse || emptyGroups); - } - }).restartable()) - getContainerDataTask!: ETaskPromise; -} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.hbs b/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.hbs deleted file mode 100644 index 57f0274ecb1d4..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.hbs +++ /dev/null @@ -1,13 +0,0 @@ -{{component - this.component.name - options=this.component.options - entityClass=@entityClass - urn=@urn - tabSelected=@tabSelected - userName=@userName - - requestJitUrns=@requestJitUrns - addRequestJitUrn=@addRequestJitUrn - removeRequestJitUrn=@removeRequestJitUrn - resetRequestJitUrns=@resetRequestJitUrns -}} \ No newline at end of file diff --git a/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.ts b/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.ts deleted file mode 100644 index d9a932c580bc5..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/core/page/platform-discriminator.ts +++ /dev/null @@ -1,54 +0,0 @@ -import Component from '@glimmer/component'; -import { IEntityRenderPropsEntityPage } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { IDynamicComponent } from '@datahub/shared/types/dynamic-component'; -import { getDatasetUrnParts } from '@datahub/data-models/entity/dataset/utils/urn'; - -/** - * Page Component type extracted from render props - */ -type EntityPageComponent = Exclude; - -/** - * Platform type extracted from dataset - */ -type Platform = Exclude; - -/** - * Map between platform and entity page wanted for that specific platform - */ -export type Discriminator = Partial>; - -/** - * Arguments for this component - */ -export interface IDatasetsCorePagePlatformDiscriminatorArgs { - options: { - // Map with platform and desired page params - discriminator: Discriminator; - // If no suitable platform is found, default page will be used - default: EntityPageComponent; - }; - // urn of dataset to extract platform - urn: string; -} - -/** - * This component will allow to map dataset platform with custom page for that platform. - */ -export default class DatasetsCorePagePlatformDiscriminator extends Component< - IDatasetsCorePagePlatformDiscriminatorArgs -> { - get component(): IDynamicComponent { - const { urn, options } = this.args; - const { discriminator, default: defaultPage } = options; - const parts = getDatasetUrnParts(urn); - const discriminatedPage = parts.platform && discriminator[parts.platform]; - - if (discriminatedPage) { - return discriminatedPage; - } - - return defaultPage; - } -} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.hbs b/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.hbs deleted file mode 100644 index 98f1ef803c5c9..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.hbs +++ /dev/null @@ -1,100 +0,0 @@ -{{#if @schemas.length}} -
-
-
- -
-
- Last modified: {{@lastModified}} -
-
-
- - {{#if this.isShowingTable}} - - - - Column - - - Data Type - - - Default Comments - - - - {{#each @schemas as |schema|}} - - -
- {{schema.fieldName}} - {{#if schema.nullable}} - - N - - - {{/if}} - {{#if schema.indexed}} - - I - - - {{/if}} - {{#if schema.partitioned}} - - P - - - {{/if}} - {{#if schema.distributed}} - - D - - - {{/if}} -
- -
- - {{schema.dataType}} - - -
-

- {{schema.commentHtml}} -

-
-
-
- {{/each}} -
-
- {{else}} - - {{/if}} -{{else}} - -{{/if}} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.ts b/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.ts deleted file mode 100644 index f8d4760694e2b..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/dataset-schema.ts +++ /dev/null @@ -1,94 +0,0 @@ -import Component from '@glimmer/component'; -import { computed, set, setProperties, action } from '@ember/object'; -import { IDatasetColumnWithHtmlComments } from '@datahub/entities/types/datasets/columns'; -import { IDatasetSchemaColumn } from '@datahub/metadata-types/types/entity/dataset/schema'; - -/** - * Presentational component for rendering a JSON Schema, either with a Table or a JSON representation - * @export - * @class DatasetSchema - * @extends {Component} - */ -export default class DatasetSchema extends Component<{ - /** - * Externally supplied JSON value for the related Dataset's schema. This is defaulted to an empty JSON object - */ - json: string; - /** - * List of columns in the Dataset and additional attributes, used to back the table representation of the Dataset's schema - */ - schemas: Array; - - /** - * Schema last modified - */ - lastModified: Date; -}> { - /** - * Flag indicating that the schema should be rendered with a tabular representation - * This currently is driven by the schemas attribute - */ - isShowingTable = true; - - /** - * Flag indicating that the component was able to successfully parse the value found in this.json as a JSON string - */ - isValidJson = false; - - /** - * This will reference the prettified JSON input from this.JSON. - * By default, it points to the same value - */ - possibleJsonOutput = this.args.json; - - /** - * Toggle the render mode for ember-ace editor between JSON and text depending on the last task - * @readonly - */ - @computed('isValidJson') - get aceMode(): string { - const acePath = 'ace/mode/'; - // Treat content as text unless we are successfully able to parse as JSON - // the task is always run when the user toggles the view type - const jsonOrPlainText = this.isValidJson ? 'json' : 'text'; - return `${acePath}${jsonOrPlainText}`; - } - - /** - * Format the JSON string as a human friendly string - */ - prettifyJson(_r: boolean = this.isShowingTable): string { - return JSON.stringify(JSON.parse(this.args.json), null, '\t'); - } - - /** - * Handle user toggling between JSON and tabular view of schema. - * If requested view is JSON, then argument to shouldShowTable is false - * An error will be thrown by the task if an invalid JSON string is provided - * @param {boolean} [shouldShowTable=this.isShowingTable] Flag indicating the user toggled view, - * if no value is passed in e.g. when attrs are updated, we retain the currently set flag state - */ - - @action - onToggleSchemaViewTypeTask(shouldShowTable: DatasetSchema['isShowingTable'] = this.isShowingTable): void { - let output = this.args.json; - - // Attempt to parse JSON - try { - if (!shouldShowTable) { - output = this.prettifyJson(); - set(this, 'isValidJson', true); - } - } catch (e) { - // Only handle errors related to parsing JSON - if (!(e.message as string).startsWith('Unexpected token')) { - throw e; - } - - set(this, 'isValidJson', false); - } finally { - // Always toggle state even if the JSON is invalid , source value (this.json) will be rendered as plain text - setProperties(this, { possibleJsonOutput: output, isShowingTable: shouldShowTable }); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/components/datasets/relationships/dataset-relationship-table.ts b/datahub-web/@datahub/entities/addon/components/datasets/relationships/dataset-relationship-table.ts deleted file mode 100644 index 743daa47c91a2..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/datasets/relationships/dataset-relationship-table.ts +++ /dev/null @@ -1,141 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore -import template from '../../../templates/components/datasets/relationships/dataset-relationship-table'; -import { layout } from '@ember-decorators/component'; -import { action, computed } from '@ember/object'; -import { IDatasetLineage, DatasetLineageList } from '@datahub/metadata-types/types/entity/dataset/lineage'; -import { set } from '@ember/object'; -import { arrayMap, arrayPipe, arrayReduce } from '@datahub/utils/array/index'; -import { - allRelationshipType, - dedupeType, - takeNLineageItems, - filterLineageByType -} from '@datahub/entities/utils/lineage'; -import { AppRoute } from '@datahub/data-models/types/entity/shared'; -import { INachoDropdownOption } from '@nacho-ui/core/types/nacho-dropdown'; - -/** - * Shortcut typing to reference dropdown options for relationship types - */ -type RelationshipType = INachoDropdownOption; - -@layout(template) -export default class DatasetRelationshipTable extends Component { - /** - * The default number of element relationships to render initially - * @type {number} - * @memberof DatasetRelationshipTable - */ - truncatedLength = 10; - - /** - * List of dataset relationships - * @type {IDatasetLineage} - * @memberof DatasetRelationshipTable - */ - relationships: DatasetLineageList = []; - - /** - * References the currently selected relationship type, used to filter out relationships - * of non matching type - * @type {RelationshipType} - * @memberof DatasetRelationshipTable - */ - selectedRelationshipType: RelationshipType = allRelationshipType; - - /** - * Flag indicating if all relationships for the selected relationship type should be shown - * @type {boolean} - * @memberof DatasetRelationshipTable - */ - showAllRelationships = false; - - @computed('selectedRelationshipType', 'relationships.[]') - get filteredRelationshipsByType(): DatasetLineageList { - return filterLineageByType(this.selectedRelationshipType.value)(this.relationships); - } - - /** - * Determines if a supplied urn string is an actor that can be linked to within the DataHub app or externally - * @private - * @param {string} actorUrn the urn for the actor in the dataset relationship - */ - protected linkableActor(_actorUrn?: string): { route: AppRoute | null; actorType?: string } { - return { route: null }; - } - - /** - * Computes the list of relationships to be rendered based on the currently set props - * for filter values e.g. relationshipType and show all flag - * @type {Relationships} - * @memberof DatasetRelationshipTable - */ - @computed('showAllRelationships', 'filteredRelationshipsByType') - get filteredRelationships(): DatasetLineageList & Array> { - const { filteredRelationshipsByType, showAllRelationships, truncatedLength: n } = this; - - return takeNLineageItems( - showAllRelationships, - n - )(filteredRelationshipsByType).map(({ actor, ...lineage }): IDatasetLineage & - ReturnType => ({ - actor, - ...lineage, - ...this.linkableActor(actor) - })); - } - - /** - * Computed flag indicating if the currently rendered list of relationships has more - * elements than the current truncation length value - * @type {boolean} - * @memberof DatasetRelationshipTable - */ - @computed('showAllRelationships', 'relationships.length', 'truncatedLength', 'filteredRelationshipsByType.length') - get hasMore(): boolean { - const { - selectedRelationshipType, - relationships: { length: totalLength }, - filteredRelationshipsByType: { length: filteredLength }, - truncatedLength - } = this; - const hasFilter = selectedRelationshipType !== allRelationshipType; - - return hasFilter ? filteredLength > truncatedLength : totalLength > truncatedLength; - } - - /** - * Computes a unique list of relationship types found the list of relationship - * @type {Array} - * @memberof DatasetRelationshipTable - */ - @computed('relationships.[]') - get relationshipTypes(): Array { - const typeOption = ({ type }: IDatasetLineage): RelationshipType => ({ - label: type, - value: type - }); - const createTypeOptionAndDedupe = arrayPipe(arrayMap(typeOption), arrayReduce(dedupeType, [])); - - return [allRelationshipType, ...createTypeOptionAndDedupe(this.relationships)]; - } - - /** - * Handles the relationship type selection change - * @param {RelationshipType} type - * @memberof DatasetRelationshipTable - */ - @action - onTypeSelect(type: RelationshipType): void { - set(this, 'selectedRelationshipType', type); - } - - /** - * Toggles the flag to show all available relationships - */ - @action - onToggleShowMore(): void { - this.toggleProperty('showAllRelationships'); - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/containers/entity-header.ts b/datahub-web/@datahub/entities/addon/components/user/containers/entity-header.ts deleted file mode 100644 index 5062b247dc52c..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/containers/entity-header.ts +++ /dev/null @@ -1,53 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/containers/entity-header'; -import { layout } from '@ember-decorators/component'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { task } from 'ember-concurrency'; -import { ETaskPromise } from '@datahub/utils/types/concurrency'; -import { containerDataSource } from '@datahub/utils/api/data-source'; -import { IPersonEntityEditableProperties } from '@datahub/data-models/types/entity/person/props'; - -/** - * The UserContainersEntityHeader component is used to connect our PersonEntity and get all the - * data necessary to populate an entity header, as well as provide an interface to post back an - * update to said header - */ -@layout(template) -@containerDataSource('getContainerDataTask', ['entity']) -export default class UserContainersEntityHeader extends Component { - /** - * Underlying person entity that provides context for this container component - */ - entity?: PersonEntity; - - /** - * Calls the person entity model to get the data necessary to populate the entity header - * component on the person entity profile page - */ - @(task(function*(this: UserContainersEntityHeader): IterableIterator> { - const { entity } = this; - - if (entity) { - // Placeholder for entity api function tasks - } - }).restartable()) - getContainerDataTask!: ETaskPromise; - - /** - * If a person is able to edit their profile, then this function will make the actual post - * request to do so - */ - @(task(function*( - this: UserContainersEntityHeader, - value: IPersonEntityEditableProperties - ): IterableIterator> { - const { entity } = this; - - if (entity && entity.updateEditableProperties) { - yield entity.updateEditableProperties(value); - yield entity.retrieveAndSetEntityData(); - } - }).drop()) - updateEditableProfileTask!: ETaskPromise; -} diff --git a/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/entity-ownership.ts b/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/entity-ownership.ts deleted file mode 100644 index 8c64ea4d10328..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/entity-ownership.ts +++ /dev/null @@ -1,61 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../../templates/components/user/containers/tab-content/entity-ownership'; -import { layout } from '@ember-decorators/component'; -import { computed } from '@ember/object'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; -import { IEntityRenderCommonPropsSearch } from '@datahub/data-models/types/search/search-entity-render-prop'; -import { entityFromTabId } from '@datahub/entities/utils/tabownership'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { inject as service } from '@ember/service'; - -/** - * The UserContainersTabContentEntityOwnership component is used do display the tab content for the - * ownership tab itself. Taking in the selected tab as a parameter, we can reason the entity for - * which to show ownership relationship with the person entity context - */ -@layout(template) -export default class UserContainersTabContentEntityOwnership extends Component { - /** - * Injection of data modeling service to get the current implementation of the user's person - * entity. - */ - @service('data-models') - dataModels!: DataModelsService; - - /** - * Given parameters from the profile page content parent component. With the selected tab, we can - * reason about the entity for which to display ownership relationship information to our person - * entity context - */ - params?: { selectedTab: string }; - - /** - * Given the selected tab from the parameters, map to the entity for which to display ownership - * relationship information - */ - @computed('params.selectedTab') - get ownedEntity(): DataModelEntity | void { - const { params, dataModels } = this; - - if (params && params.selectedTab) { - const entity = entityFromTabId(params.selectedTab, dataModels); - return entity; - } - } - - /** - * Given the selected ownedEntity, we can figure out the search result field properties - * configured for that entity in order to show the correct results. This is because we are - * currently leveraging search to show ownership relationships. - */ - @computed('ownedEntity') - get searchConfig(): IEntityRenderCommonPropsSearch | void { - const { ownedEntity } = this; - - if (ownedEntity) { - const { userEntityOwnership, search } = ownedEntity.renderProps; - return userEntityOwnership || search; - } - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/social-action-list.ts b/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/social-action-list.ts deleted file mode 100644 index 4c8a243397602..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/containers/tab-content/social-action-list.ts +++ /dev/null @@ -1,112 +0,0 @@ -import Component from '@glimmer/component'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { IEntityRenderCommonPropsSearch } from '@datahub/data-models/types/search/search-entity-render-prop'; -import { SocialAction } from '@datahub/data-models/constants/entity/person/social-actions'; -import { PersonTab } from '@datahub/data-models/constants/entity/person/tabs'; -import { tracked } from '@glimmer/tracking'; -import { action } from '@ember/object'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; - -interface IUserSocialActionListTabContentArgs { - /** - * Entity that represents the context of who we are showing this tab for - */ - entity?: PersonEntity; - /** - * Given parameters from the profile page content parent component. With the selected tab, we can - * reason about the type of list for which to display social action information to our person - * entity context - */ - params?: { selectedTab: string }; -} - -/** - * This component is used in the "Liked Entities" and "Followed Entities" tab on the user entity - * page. Its purpose is to utilize the necessary information on "actionable entities", which are - * entities that can be targets of the social action this component is currently being used for, - * and make a call to get all of the entities that have been targets of that social action by the - * current context user entity. - */ -export default class UserSocialActionListTabContent extends Component { - /** - * Current page handling for search part of the social action list - */ - // TODO: [META-11283] Add current page to query params for this and all ownership entities on - // entity page - @tracked - currentPage = 1; - - /** - * Depending on the social action for which we are using this component, the keyword we need to - * filter for that action will be different - */ - actionTypeToFilterKeywordMap: Partial> = { - [SocialAction.LIKE]: 'likedBy', - [SocialAction.FOLLOW]: 'followedBy' - }; - - /** - * Current social action for this container, decided by the map of tab to social action - */ - get currentSocialAction(): SocialAction { - const { params } = this.args; - const mapSelectedTabToSocialAction = { - [`${PersonTab.UserSocialActionList}-like`]: SocialAction.LIKE, - [`${PersonTab.UserSocialActionList}-follow`]: SocialAction.FOLLOW - }; - - return params?.selectedTab ? mapSelectedTabToSocialAction[params.selectedTab] : SocialAction.LIKE; - } - - /** - * The keyword that determines the filter token for the keyword in order to actually retrieve the - * list of entities that match the social action performed by the specified user - */ - get filterByKeyword(): string { - const { currentSocialAction, actionTypeToFilterKeywordMap } = this; - return (actionTypeToFilterKeywordMap[currentSocialAction] || - actionTypeToFilterKeywordMap[SocialAction.LIKE]) as string; - } - - /** - * The currently actionable entities for social actions that we can search through to find the - * entities that a person has performed the social action on - */ - get socialActionableEntities(): Array { - // TODO: [meta-11281] Add all applicable entities - // Since datasets is the only likeable/followable entity right now, we don't worry about - // having to figure out all the things that are likable/followable yet - return [DatasetEntity]; - } - - /** - * Since we currently only have one actionable entity, we aren't worried about passing the - * entirety of socialActionableEntities to search config. This is a convenience to only worry - * about datasets as an entity - * TODO: [META-11281] Add all entities - */ - get currentActionableEntity(): DataModelEntity { - return this.socialActionableEntities[0]; - } - - /** - * The search config should vary by whichever social actionable entity is used to perform the - * actual search piece - */ - get searchConfig(): IEntityRenderCommonPropsSearch | void { - // TODO: [META-11281] Add other entities - // Right now only datasets are likeable/followable so we do no worry about constructing the - // configs for other social actionable entities - return DatasetEntity.renderProps.search; - } - - /** - * Switches to a new page per our dependency on the search for our entity list - * @param newPage - new page number to change to - */ - @action - onUpdatePage(newPage: number): void { - this.currentPage = newPage; - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/containers/tablist/entity-ownership.ts b/datahub-web/@datahub/entities/addon/components/user/containers/tablist/entity-ownership.ts deleted file mode 100644 index 0e6643d623fe4..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/containers/tablist/entity-ownership.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../../templates/components/user/containers/tablist/entity-ownership'; -import { layout } from '@ember-decorators/component'; -import { alias } from '@ember/object/computed'; -import { ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; - -/** - * This is the tablist menu component that we use to show the tablist items for the user entity - * ownership tab. Since the tab is more complex than simple text, we use a component to specially - * render the additional structure and functionality for the ownership segment - */ -@layout(template) -export default class UserContainersTablistEntityOwnership extends Component { - /** - * The list of properties that define the behavior of the tabs in this navigation tablist menu - * component - */ - tablistMenuProperties: Array = []; - - /** - * From the given tablist menu, we simply redirect it to the expected property for our rendered - * list of tab properties - */ - @alias('tablistMenuProperties') - displayedMenuProperties!: Array; -} diff --git a/datahub-web/@datahub/entities/addon/components/user/containers/user-main.ts b/datahub-web/@datahub/entities/addon/components/user/containers/user-main.ts deleted file mode 100644 index cea441bb559b7..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/containers/user-main.ts +++ /dev/null @@ -1,210 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/containers/user-main'; -import { layout, tagName } from '@ember-decorators/component'; -import { task } from 'ember-concurrency'; -import { inject as service } from '@ember/service'; -import { ETaskPromise } from '@datahub/utils/types/concurrency'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { IPersonEntitySpecificConfigs } from '@datahub/data-models/entity/person/render-props'; -import { IEntityRenderProps, ITabProperties } from '@datahub/data-models/types/entity/rendering/entity-render-props'; -import { set, computed, action } from '@ember/object'; -import { containerDataSource } from '@datahub/utils/api/data-source'; -import CurrentUser from '@datahub/shared/services/current-user'; -import RouterService from '@ember/routing/router-service'; -import { PersonTab, getPersonTabPropertiesFor } from '@datahub/data-models/constants/entity/person/tabs'; -import { generateTabId } from '@datahub/entities/utils/tabownership'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; -import { capitalize } from '@ember/string'; -import { humanize } from 'ember-cli-string-helpers/helpers/humanize'; -import { IConfigurator } from '@datahub/shared/types/configurator/configurator'; -import { SocialAction } from '@datahub/data-models/constants/entity/person/social-actions'; -import { pastTense } from '@datahub/utils/helpers/past-tense'; -import { pendingSocialActions } from '@datahub/shared/constants/social/pending-actions'; -import { isOwnableEntity } from '@datahub/data-models/utils/ownership'; - -@layout(template) -@tagName('') -@containerDataSource('getContainerDataTask', ['personUrn']) -export default class UserMainContainer extends Component { - /** - * Injection of the configurator service to read relevant user and social action configs - */ - @service - configurator!: IConfigurator; - - /** - * Injection of data modeling service to get the current implementation of the user's person - * entity. - */ - @service('data-models') - dataModels!: DataModelsService; - - /** - * Injects the current user service to help us inform the rest of our children whether or not the - * person whose context fills this component is the same as the current user logged into our - * application - */ - @service('current-user') - currentUser!: CurrentUser; - - /** - * Inject the router as there are some transitions that we need to do - */ - @service - router!: RouterService; - - /** - * A given user id or urn from the route's query params - */ - personUrn?: string; - - /** - * The currently active tab under the user main profile page - */ - tabSelected?: string; - - /** - * Assigned by the data fetching task, is the context of the person entity given to all contained - * components - */ - entity?: PersonEntity; - - /** - * Rendering properties to tell our contained components how to determine what to show and other - * configurable behaviors - */ - renderProps?: IPersonEntitySpecificConfigs & IEntityRenderProps; - - /** - * Calls the person entity model to get the data necessary to populate the entity header - * component on the person entity profile page - */ - @(task(function*(this: UserMainContainer): IterableIterator> { - const { renderProps, personUrn, dataModels } = this; - - const PersonEntityClass = dataModels.getModel(PersonEntity.displayName); - - if (personUrn) { - const entity = yield dataModels.createInstance(PersonEntity.displayName, personUrn); - set(this, 'entity', entity); - } - - if (!renderProps) { - set(this, 'renderProps', this.userProfileTabs(PersonEntityClass.allRenderProps)); - } - }).restartable()) - getContainerDataTask!: ETaskPromise; - - /** - * Generate the user profile tabs that are available for this entity - * @param allRenderProps - */ - userProfileTabs(allRenderProps: typeof PersonEntity['allRenderProps']): typeof PersonEntity['allRenderProps'] { - return this.appendSocialTabs(this.appendOwnershipTab(allRenderProps)); - } - - /** - * Will append the dynamically generated ownership tabs to the the renderProps - * @param allRenderProps render props for person - */ - appendOwnershipTab(allRenderProps: typeof PersonEntity['allRenderProps']): typeof PersonEntity['allRenderProps'] { - const { dataModels } = this; - const unGuardedEntities = dataModels.guards.unGuardedEntities; - const ownershipEntities = unGuardedEntities.filter(isOwnableEntity).map( - (entity: DataModelEntity): ITabProperties => ({ - id: generateTabId(entity), - title: capitalize(humanize([entity.displayName])), - contentComponent: 'user/containers/tab-content/entity-ownership', - lazyRender: true - }) - ); - - return { - ...allRenderProps, - userProfilePage: { - ...allRenderProps.userProfilePage, - tablistMenuProperties: { - ...allRenderProps.userProfilePage.tablistMenuProperties, - [PersonTab.UserOwnership]: [...ownershipEntities] - } - } - }; - } - - /** - * Will dynamically append the number of social action list tabs to the render props based on the - * available social actions (i.e. total number of actions minus those that are currently flag - * guarded in our configs) - * @param allRenderProps render props for person - */ - appendSocialTabs(allRenderProps: typeof PersonEntity['allRenderProps']): typeof PersonEntity['allRenderProps'] { - const { configurator } = this; - const showSocialActions = configurator.getConfig('showSocialActions', { useDefault: true, default: false }); - const showPendingSocialActions = configurator.getConfig('showPendingSocialActions', { - useDefault: true, - default: false - }); - - if (!showSocialActions) { - return allRenderProps; - } - - const socialActions = [SocialAction.LIKE]; - - const unguardedSocialActions = showPendingSocialActions - ? [...socialActions, ...pendingSocialActions] - : [...socialActions]; - - const socialActionTabs = unguardedSocialActions.map(action => { - const [baseTabProperties] = getPersonTabPropertiesFor([PersonTab.UserSocialActionList]); - return { - ...baseTabProperties, - id: `${baseTabProperties.id}-${action}`, - title: `${capitalize(pastTense([action]))} Entities` - }; - }); - - return { - ...allRenderProps, - userProfilePage: { - ...allRenderProps.userProfilePage, - tablistMenuProperties: { - ...allRenderProps.userProfilePage.tablistMenuProperties, - [PersonTab.UserLists]: [ - ...(allRenderProps.userProfilePage.tablistMenuProperties[PersonTab.UserLists] || []), - ...socialActionTabs - ] - } - } - }; - } - - /** - * Flags whether the currently logged in user is the same as the person whose entity is the - * context given to this container - */ - @computed('entity', 'currentUser.entity') - get isCurrentUser(): boolean { - const { currentUser, entity } = this; - const loggedInUser = currentUser.entity || null; - const contextUser = (entity && entity.username) || ''; - - return !!loggedInUser && loggedInUser.username === contextUser; - } - - /** - * Handles user generated tab selection action by transitioning to specified route - * @param {Tabs} tabSelected - the newly selected tab - */ - @action - tabSelectionChanged(tabSelected: string): void { - // if the tab selection is not same as current, transition - if (this.tabSelected !== tabSelected) { - const { router, personUrn } = this; - - router.transitionTo(router.currentRouteName, personUrn || '', tabSelected); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/profile/entity-header.ts b/datahub-web/@datahub/entities/addon/components/user/profile/entity-header.ts deleted file mode 100644 index 27215e7705628..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/profile/entity-header.ts +++ /dev/null @@ -1,115 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/profile/entity-header'; -import { layout, classNames } from '@ember-decorators/component'; -import { action, set, computed } from '@ember/object'; -import { filter } from '@ember/object/computed'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; - -export const baseHeaderClass = 'user-entity-header'; -export const baseInfoEditorClass = 'user-info-editor'; - -/** - * Refers to the number of tags show on the skills or teams preview for a user profile - * If the number of skills or teams is over the limit, they can be viewed in the view all modal - */ -const TAGS_SHOWN_LIMIT = 5; - -/** - * Filters a list of tags, keeping the first tags up to @TAGS_SHOWN_LIMIT to use as a preview of the list - * @param {string} _tag - * @param {number} index - */ -const tagsShownLimitFilter = function(_tag: string, index: number): boolean { - return index < TAGS_SHOWN_LIMIT; -}; - -/** - * The purpose of the UserProfileEntityHeader component is to display the details of a person's - * entity page as well as be the component that facilitates the edit of such profile page - */ -@layout(template) -@classNames(`${baseHeaderClass}__container`) -export default class UserProfileEntityHeader extends Component { - /** - * Adding as property on the component for easy access witin the template - */ - baseHeaderClass: string = baseHeaderClass; - - /** - * Adding as property on the component for easy access witin the template - */ - baseInfoEditorClass: string = baseInfoEditorClass; - - /** - * The person entity that gives context to this entity-header - */ - entity?: PersonEntity; - - /** - * A preview of the list of skills to be displayed initially without selecting view all - */ - @filter('entity.skills', tagsShownLimitFilter) - skillsPreview?: Array; - - /** - * A preview of the list of teams to be displayed initially without selecting view all - */ - @filter('entity.teamTags', tagsShownLimitFilter) - teamsPreview?: Array; - - /** - * Renders a view all button that shows all skills in a modal if there are more skills than @TAGS_SHOWN_LIMIT - */ - @computed('entity.skills') - get renderViewAllSkillsButton(): boolean { - return this.entity && this.entity.skills.length > TAGS_SHOWN_LIMIT ? true : false; - } - - /** - * Renders a view all button that shows all teams in a modal if there are more teams than @TAGS_SHOWN_LIMIT - */ - @computed('entity.teamTags') - get renderViewAllTeamsButton(): boolean { - return this.entity && this.entity.teamTags.length > TAGS_SHOWN_LIMIT ? true : false; - } - - /** - * Flag used to show view all modal for skills - */ - isViewingAllSkills = false; - - /** - * Flag used to show view all modal for teams - */ - isViewingAllTeams = false; - - /** - * Whether or not the user is in editing profile mode - */ - isEditingProfile = false; - - /** - * Function triggered by user action to close the view all modal for skills - */ - @action - onCloseViewAllSkillsModal(): void { - set(this, 'isViewingAllSkills', false); - } - - /** - * Function triggered by user action to close the view all modal for teams - */ - @action - onCloseViewAllTeamsModal(): void { - set(this, 'isViewingAllTeams', false); - } - - /** - * Function triggered by user action in some way to close the profile info editor - */ - @action - onCloseEditorModal(): void { - set(this, 'isEditingProfile', false); - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/profile/info-editor.ts b/datahub-web/@datahub/entities/addon/components/user/profile/info-editor.ts deleted file mode 100644 index 4b63cb7ff1249..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/profile/info-editor.ts +++ /dev/null @@ -1,198 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/profile/info-editor'; -import { layout, classNames } from '@ember-decorators/component'; -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { computed, set, action, setProperties } from '@ember/object'; -import { baseInfoEditorClass } from '@datahub/entities/components/user/profile/entity-header'; -import { noop } from 'lodash-es'; -import { IPersonEntityEditableProperties } from '@datahub/data-models/types/entity/person/props'; -import { alias } from '@ember/object/computed'; - -/** - * The maximum character limit for the summary about me - */ -const MAX_CHAR_SUMMARY = 200; - -/** - * The maximum character limit for skill and team tag inputs - */ -const MAX_CHAR_TAG_INPUT = 48; - -/** - * The InfoEditor class is meant to allow the user to edit the editable properties of their own - * PersonEntity - */ -@layout(template) -@classNames(baseInfoEditorClass) -export default class UserProfileInfoEditor extends Component { - /** - * Attaching to component for convenient access in the template - */ - baseInfoEditorClass: string = baseInfoEditorClass; - - /** - * Attaching to component for convenient access in the template - */ - maxCharSummary: number = MAX_CHAR_SUMMARY; - - /** - * Attaching to component for convenient access in the template - */ - maxCharTagInput: number = MAX_CHAR_TAG_INPUT; - - /** - * The person entity that gives context to this editor context - */ - entity?: PersonEntity; - - /** - * The hash of editable working properties for this editor component - */ - editedProps: IPersonEntityEditableProperties = this.defaultPersonEditableProperties; - - /** - * Whether or not we are in an await - saving state - */ - isSaving = false; - - /** - * External action used to trigger a parent component that the user has desired to close the - * editor window - */ - onCloseEditor: () => void = noop; - - /** - * External action used to inform the data layer that the edited PersonEntity properties should - * be persisted - */ - onSave: (savedInfo: IPersonEntityEditableProperties) => Promise = ( - _savedInfo: IPersonEntityEditableProperties - ): Promise => Promise.resolve(); - - /** - * Gives the default editable props, helpful for resetting the blank editable props after a - * save or cancel function - */ - get defaultPersonEditableProperties(): IPersonEntityEditableProperties { - return { - focusArea: '', - skills: [], - teamTags: [] - }; - } - - /** - * The current character count of the summary text while editing user profile - * Displayed for user awareness to stay under @MAX_CHAR_SUMMARY limit - */ - @alias('editedProps.focusArea.length') - summaryCharCount!: number; - - /** - * Computes from either the original entity or the current edited values the working value of the - * PersonEntity focus area - */ - @computed('editedProps.focusArea') - get focusArea(): PersonEntity['focusArea'] { - return this.editedProps.focusArea; - } - - set focusArea(value: string) { - set(this, 'editedProps', { ...this.editedProps, focusArea: value || '' }); - } - - /** - * Computes, from either the original entity or the current edited values, the working value of - * the PesronEntity skills - */ - @computed('editedProps.skills') - get skills(): PersonEntity['skills'] { - return this.editedProps.skills; - } - - set skills(value: Array) { - set(this, 'editedProps', { ...this.editedProps, skills: value || [] }); - } - - /** - * Computes, from either the original entity or the current edited values, the working value of - * the PersonEntity team tags - */ - @computed('editedProps.teamTags') - get teamTags(): PersonEntity['teamTags'] { - return this.editedProps.teamTags; - } - - set teamTags(value: Array) { - set(this, 'editedProps', { ...this.editedProps, teamTags: value || [] }); - } - - /** - * Takes advantage of the hook to populate initial data for our form from the entity, if we have - * proper access to one. - * - * Note: This behavior was previously a computed property, however, we only want the values to be - * computed from the entity once. If the person decides to change the values, they should be - * independent from the entity at that point. A computed property had the unintended effect of - * accidentally subsequently returning the entity values again and overriding the form - */ - didInsertElement(): void { - if (this.entity) { - const { focusArea, teamTags, skills } = this.entity; - set(this, 'editedProps', { - focusArea, - teamTags, - skills - }); - } - } - - /** - * Triggers the save process for the editor, awaiting the result of the save and then closing/ - * reseting the working information - */ - @action - async onSaveEditor(): Promise { - const { focusArea, skills, teamTags } = this; - set(this, 'isSaving', true); - await this.onSave({ focusArea, skills, teamTags }); - this.onResetEditor(); - } - - /** - * Closes the editor and resets the working values to default - */ - @action - onResetEditor(): void { - setProperties(this, { - editedProps: this.defaultPersonEditableProperties, - isSaving: false - }); - this.onCloseEditor(); - } - - /** - * Removes a tag from one of the lists of tags that we are working with in the editor - * @param {string} key - the key of the list from which the tag is to be removed - * @param {number} valueIndex - the value to remove from that list identified by index - */ - @action - removeTag(key: 'skills' | 'teamTags', valueIndex: number): void { - set( - this, - key, - this[key].filter((_tag, idx): boolean => idx !== valueIndex) - ); - } - - /** - * Adds a tag to one of the lists of tags that we are working with in the editor - * @param {string} key - the key of the list to which the tag is to be added - * @param {string} value - the value to add to the list - */ - @action - addTag(key: 'skills' | 'teamTags', value: string): void { - set(this, key, this[key].concat(value)); - } -} diff --git a/datahub-web/@datahub/entities/addon/components/user/profile/page-content.ts b/datahub-web/@datahub/entities/addon/components/user/profile/page-content.ts deleted file mode 100644 index 1f8e000b3eb11..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/profile/page-content.ts +++ /dev/null @@ -1,33 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/profile/page-content'; -import { layout, classNames } from '@ember-decorators/component'; -import { noop } from 'lodash-es'; - -export const baseProfileContentClass = 'user-profile-content'; - -/** - * The UserProfilePageContent component is used to contain the actual content under the header in - * the user profile page, it contains the logic to determnine the tab navigation structure as well - * as the content contained within each tab - */ -@layout(template) -@classNames(baseProfileContentClass) -export default class UserProfilePageContent extends Component { - /** - * Attaching to component for convenient access in the template - */ - baseProfileContentClass: string = baseProfileContentClass; - - /** - * The currently selected tab, identified by some sort of string key - */ - tabSelected?: string; - - /** - * External action expected to be passed in, should be passed along to the ivy-tabs component to - * change the selected tab to something else. Since we have routable tabs, this action is - * expected to be propogated to a higher container level to handle those details - */ - changeTabSelection: (newTab: string) => void = noop; -} diff --git a/datahub-web/@datahub/entities/addon/components/user/profile/page-content/renderer.ts b/datahub-web/@datahub/entities/addon/components/user/profile/page-content/renderer.ts deleted file mode 100644 index aa415fb166055..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/profile/page-content/renderer.ts +++ /dev/null @@ -1,32 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../../templates/components/user/profile/page-content/renderer'; -import { layout, tagName } from '@ember-decorators/component'; - -/** - * The purpose of the page content renderer is to allow us to create reusable blocks of code for - * our tabs, since our tabs now can behave as navigation or be a "header" for multiple "subtab" - * categories - * - * When we are dealing with a tablist, we expect to yield an array of tab items. However, we can - * also use the renderer for a single tab - * @example - * ```html - * - * {{#each tabs.tablist as |aTab|}} - * ... - * {{/each}} - * - * ``` - * - * @example - * ```html - * - * ... Do something with {{tab.tab}} - * - * ``` - */ -// TODO: [META-10011] Generalize this component for future tab structure stuff -@layout(template) -@tagName('') -export default class UserProfilePageContentRenderer extends Component {} diff --git a/datahub-web/@datahub/entities/addon/components/user/profile/view-all.ts b/datahub-web/@datahub/entities/addon/components/user/profile/view-all.ts deleted file mode 100644 index c7cd76871a4df..0000000000000 --- a/datahub-web/@datahub/entities/addon/components/user/profile/view-all.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Component from '@ember/component'; -// @ts-ignore: Ignore import of compiled template -import template from '../../../templates/components/user/profile/view-all'; -import { layout } from '@ember-decorators/component'; -import { noop } from 'lodash-es'; -import { baseHeaderClass } from '@datahub/entities/components/user/profile/entity-header'; - -@layout(template) -export default class UserProfileViewAll extends Component { - /** - * Attaching to component for convenient access in the template - */ - baseHeaderClass: string = baseHeaderClass; - - /** - * Title attribute passed in to be displayed in the header - */ - title = ''; - - /** - * Tags is a list of skills or a list of teams passed in to be displayed in the content - */ - tags: Array = []; - - /** - * External action used to trigger a parent component that the user has desired to close the - * editor window - */ - onCloseViewAll: () => void = noop; -} diff --git a/datahub-web/@datahub/entities/addon/controllers/user/profile/tab.ts b/datahub-web/@datahub/entities/addon/controllers/user/profile/tab.ts deleted file mode 100644 index 62d30bb46dd19..0000000000000 --- a/datahub-web/@datahub/entities/addon/controllers/user/profile/tab.ts +++ /dev/null @@ -1,35 +0,0 @@ -import Controller from '@ember/controller'; -import { tracked } from '@glimmer/tracking'; - -/** - * The UserProfileTabController is meant to handle the query parameters common to the tab routes - * for the user profile page content items. - */ -export default class UserProfileTabController extends Controller { - /** - * Declares the query parameters for the associated route to this controller - */ - queryParams = ['page']; - - /** - * Keeps `@track` of the current pagination item in the route, used by any parameter that - * requires pagination - */ - @tracked - page = 1; - - /** - * Resets the query parameter data in the controller so that state does not leak between route - * transitions - */ - resetData(): void { - this.page = 1; - } -} - -declare module '@ember/controller' { - // eslint-disable-next-line @typescript-eslint/interface-name-prefix - interface Registry { - 'user/profile/tab': UserProfileTabController; - } -} diff --git a/datahub-web/@datahub/entities/addon/entities-routes.ts b/datahub-web/@datahub/entities/addon/entities-routes.ts deleted file mode 100644 index 2e0853ca0a72b..0000000000000 --- a/datahub-web/@datahub/entities/addon/entities-routes.ts +++ /dev/null @@ -1,22 +0,0 @@ -import RouterDSL from '@ember/routing/-private/router-dsl'; - -export const entitiesRoutes = (router: RouterDSL): void => { - router.route('user', function(): void { - this.route('profile', { path: '/:user_id' }, function(): void { - this.route('tab', { path: '/:tab_selected' }); - }); - }); - router.route('datasets', function(): void { - this.route( - 'dataset', - { - path: '/:dataset_urn' - }, - function(): void { - this.route('tab', { - path: '/:tab_selected' - }); - } - ); - }); -}; diff --git a/datahub-web/@datahub/entities/addon/helpers/compliance/is-none.ts b/datahub-web/@datahub/entities/addon/helpers/compliance/is-none.ts deleted file mode 100644 index f442ac6006f8e..0000000000000 --- a/datahub-web/@datahub/entities/addon/helpers/compliance/is-none.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { helper } from '@ember/component/helper'; -import { ComplianceFieldIdValue } from '@datahub/metadata-types/constants/entity/dataset/compliance-field-types'; - -/** - * Returns whether a passed in value is a none annotation tag - * @param value - passed in value - */ -export function complianceIsNone([value]: [unknown]): boolean { - return value === ComplianceFieldIdValue.None; -} - -export default helper(complianceIsNone); diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/.gitkeep b/datahub-web/@datahub/entities/addon/mirage-addon/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/datasets-config.ts b/datahub-web/@datahub/entities/addon/mirage-addon/datasets-config.ts deleted file mode 100644 index dd75eb3e10bfc..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/datasets-config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { getDataPlatforms } from '@datahub/entities/mirage-addon/helpers/platforms'; -import { getDatasetOwnership } from '@datahub/entities/mirage-addon/helpers/ownership'; -import { Server } from 'ember-cli-mirage'; -import { IMirageServer } from '@datahub/utils/types/vendor/ember-cli-mirage-deprecated'; - -// TODO: [META-11940] Looks like mirage server types are incompatible but is outside the scope of this -// migration. Should return to clean up -export function datasetsMirageConfig(server: Server | IMirageServer): void { - server = server as IMirageServer; - server.namespace = '/api/v2'; - - // Temporary solution as we don't need real upstreams at the moment, we just don't wnat mirage to throw - // any errors - server.get('/datasets/:urn/upstreams', () => []); - - server.get('/list/platforms', getDataPlatforms); - - server.get(`datasets/:urn/owners`, getDatasetOwnership); -} diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/factories/platform.ts b/datahub-web/@datahub/entities/addon/mirage-addon/factories/platform.ts deleted file mode 100644 index 960a3c9942a89..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/factories/platform.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Factory, faker } from 'ember-cli-mirage'; -import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform'; -import { PurgePolicy } from '@datahub/metadata-types/constants/entity/dataset/compliance/purge-policy'; - -const platforms = Object.values(DatasetPlatform); - -/** - * Some datasets have slash in their name as prefix as a map for easy exist check - */ -const PlatformsWithSlash: Partial> = { - [DatasetPlatform.HDFS]: true, - [DatasetPlatform.SEAS_HDFS]: true, - [DatasetPlatform.SEAS_DEPLOYED]: true -}; - -export default Factory.extend({ - name(id: number): DatasetPlatform { - return platforms[id]; - }, - - type: faker.lorem.words(1), - - supportedPurgePolicies: Object.values(PurgePolicy), - - datasetNameDelimiter(): string { - return PlatformsWithSlash[this.name as DatasetPlatform] ? '/' : '.'; - } -}); diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/helpers/ownership.ts b/datahub-web/@datahub/entities/addon/mirage-addon/helpers/ownership.ts deleted file mode 100644 index 8e9d2988a5685..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/helpers/ownership.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IOwnerResponse } from '@datahub/data-models/types/entity/dataset/ownership'; -import owners from '@datahub/data-models/mirage-addon/fixtures/dataset-ownership'; - -export const getDatasetOwnership = (): IOwnerResponse => ({ - owners, - fromUpstream: false, - datasetUrn: '', - lastModified: 0, - actor: '' -}); diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/helpers/platforms.ts b/datahub-web/@datahub/entities/addon/mirage-addon/helpers/platforms.ts deleted file mode 100644 index 34ef8ff97a389..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/helpers/platforms.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { IFunctionRouteHandler } from '@datahub/utils/types/vendor/ember-cli-mirage-deprecated'; -import { IMirageDatasetCoreSchema } from '@datahub/entities/types/vendor/mirage-for-datasets'; -import { IDataPlatform } from '@datahub/metadata-types/types/entity/dataset/platform'; - -/** - * This handler is used by the mirage route config to handle the get request for dataset compliance data types - */ -export const getDataPlatforms = function( - this: IFunctionRouteHandler, - schema: IMirageDatasetCoreSchema -): { platforms: Array } { - return { platforms: this.serialize(schema.db.platforms) }; -}; diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/models/compliance-data-types.ts b/datahub-web/@datahub/entities/addon/mirage-addon/models/compliance-data-types.ts deleted file mode 100644 index 770b50936d3c0..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/models/compliance-data-types.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Model } from 'ember-cli-mirage'; - -export default Model.extend({}); diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/models/dataset-schema-column.ts b/datahub-web/@datahub/entities/addon/mirage-addon/models/dataset-schema-column.ts deleted file mode 100644 index 770b50936d3c0..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/models/dataset-schema-column.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Model } from 'ember-cli-mirage'; - -export default Model.extend({}); diff --git a/datahub-web/@datahub/entities/addon/mirage-addon/scenarios/default.ts b/datahub-web/@datahub/entities/addon/mirage-addon/scenarios/default.ts deleted file mode 100644 index f59dfb3872337..0000000000000 --- a/datahub-web/@datahub/entities/addon/mirage-addon/scenarios/default.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { IMirageServer } from '@datahub/utils/types/vendor/ember-cli-mirage-deprecated'; -import { Server } from 'ember-cli-mirage'; -import { generateDatasetSchemaFields } from '@datahub/data-models/mirage-addon/test-helpers/datasets/schema'; - -export const fieldNames = [ - 'CONTACT_ID[type = long]', - 'DATA_XML_VERSION[type = long]', - 'DATA[type = string]', - 'DELETED_TS[type = long]', - 'GG_MODI_TS[type = long]', - 'GG_STATUS[type = string]', - 'IS_NOTE_MANUALLY_MOD[type = string]', - 'lumos_dropdate', - 'MODIFIED_DATE' -]; - -// TODO: [META-11940] Looks like mirage server types are incompatible but is outside the scope of this -// migration. Should return to clean up -export default function(server: Server | IMirageServer): void { - server = server as IMirageServer; - server.loadFixtures('compliance-data-types'); - - server.createList('datasetComplianceAnnotationTag', 9); - server.createList('datasetComplianceAnnotationTag', 10, 'asSuggestion'); - - generateDatasetSchemaFields(fieldNames, (server as unknown) as Server); - - server.createList('datasetPurgePolicy', 1); - server.createList('dataset', 1); - server.createList('datasetComplianceInfo', 1); - server.createList('datasetExportPolicy', 1); - server.createList('platform', 20); -} diff --git a/datahub-web/@datahub/entities/addon/mocks/data-access.ts b/datahub-web/@datahub/entities/addon/mocks/data-access.ts deleted file mode 100644 index 52ddcb324d6d3..0000000000000 --- a/datahub-web/@datahub/entities/addon/mocks/data-access.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FakeDatasetEntity } from '@datahub/entities/mocks/models/dataset-entity'; -import { AclAccess } from '@datahub/data-models/entity/person/modules/acl'; -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; -import { set } from '@ember/object'; -import { AccessControlAccessType, AclAccessStatus } from '@datahub/data-models/constants/entity/common/acl-access'; - -// TODO: [META-9851] Temporary home for this function for integrated dev/demo, should be moved to test/dummy folder -/** - * Creates a mock data access entity so that we can use it in our dummy app for testing - */ -export const generateMockDataAccessForDatasets = (): Array> => { - const datasetEntityA = new FakeDatasetEntity('pikachu'); - const datasetEntityB = new FakeDatasetEntity('eevee'); - - set(datasetEntityA, 'name', 'pikachu'); - set(datasetEntityB, 'name', 'eevee'); - - return [ - new AclAccess(datasetEntityA, { - environment: 'HOLDEM/WAR', - accessType: [AccessControlAccessType.Read], - status: AclAccessStatus.EXPIRED, - expiration: 1552953600000, - businessJustification: 'Need jit acl access to catch em all' - }), - new AclAccess(datasetEntityB, { - environment: 'CORP', - accessType: [AccessControlAccessType.Read, AccessControlAccessType.Write], - status: AclAccessStatus.ACTIVE, - expiration: 1618790400000, - businessJustification: 'Need jit acl access to catch em all' - }) - ]; -}; diff --git a/datahub-web/@datahub/entities/addon/mocks/models/dataset-entity.ts b/datahub-web/@datahub/entities/addon/mocks/models/dataset-entity.ts deleted file mode 100644 index 3d51a86322314..0000000000000 --- a/datahub-web/@datahub/entities/addon/mocks/models/dataset-entity.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity'; - -// TODO: [META-9851] Temporary home for this function for integrated dev/demo, should be moved to test/dummy folder -/** - * Models a DatasetEntity-like class that we can mess with for mock data purposes in the dummy app. - * This way, we don't need a full implementation for a mock entity in order to view it in our dummy - * environment - */ -export class FakeDatasetEntity extends DatasetEntity { - savedName = ''; - - /** - * Creates a blank name field for the object that we can fill in for mock data - */ - get name(): string { - return this.savedName; - } - - set name(name: string) { - this.savedName = name; - } -} diff --git a/datahub-web/@datahub/entities/addon/mocks/person-entity.ts b/datahub-web/@datahub/entities/addon/mocks/person-entity.ts deleted file mode 100644 index 2f48521cc59a2..0000000000000 --- a/datahub-web/@datahub/entities/addon/mocks/person-entity.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { PersonEntity } from '@datahub/data-models/entity/person/person-entity'; -import { IPersonEntityEditableProperties } from '@datahub/data-models/types/entity/person/props'; -import { setProperties } from '@ember/object'; - -// TODO: [META-9851] Temporary home for this function for integrated dev/demo, should be moved to test/dummy folder eventually -/** - * Allows us for demo purposes or testing purposes to provide mock data directly on a class - * instance for a person entity. - * @param {PersonEntity} entity - the entity instance we want to decorate - * @param {typeof PersonEntity} personEntity - the class object itself. Optional. Passed in if we - * want to utilize the implementation of the class not defined in the open sourced version - */ -export function populateMockPersonEntity( - entity: PersonEntity, - PersonEntityClass: typeof PersonEntity = PersonEntity -): PersonEntity { - const managerEntity = Object.assign( - {}, - new PersonEntity(PersonEntityClass.urnFromUsername ? PersonEntityClass.urnFromUsername('pikachu') : 'pikachu'), - { - name: 'Pikachu', - profilePictureUrl: 'https://pokemonletsgo.pokemon.com/assets/img/common/char-pikachu.png' - } - ); - - const newEntity = Object.assign({}, entity, { - name: 'Ash Ketchum', - title: 'Pokemon master in training', - profilePictureUrl: 'https://i.imgur.com/vjLcuFJ.jpg', - email: 'ashketchumfrompallet@gmail.com', - linkedinProfile: 'https://www.linkedin.com/in/ash-ketchum-b212502a/', - slackLink: 'aketchum', - skills: ['training', 'catching', 'battling'], - teamTags: ['Kanto', 'Nintendo', 'Game Freak', 'Bike Thief'], - focusArea: 'Trying to catch all these Pokemon in the world. Also being the very best like no one ever was.', - reportsTo: managerEntity, - updateEditableProperties: async function(value: IPersonEntityEditableProperties): Promise { - await setProperties(newEntity, value); - } - }); - - return newEntity; -} diff --git a/datahub-web/@datahub/entities/addon/placeholder/metadata-acquisition.ts b/datahub-web/@datahub/entities/addon/placeholder/metadata-acquisition.ts deleted file mode 100644 index a3372d06a000d..0000000000000 --- a/datahub-web/@datahub/entities/addon/placeholder/metadata-acquisition.ts +++ /dev/null @@ -1,36 +0,0 @@ -// TODO: [META-8255] These are placeholder utils that exist here until we find them a home in the proper location. - -/** - * Constant value for an empty regex source string - * @type {string} - */ -const emptyRegexSource = '(?:)'; - -/** - * Checks that the pattern parameter is a valid RegExp string and optionally checks with a customChecker as well - * @param {string} pattern the string to validate - * @param {(pattern: string) => boolean} [customChecker] an optional function to check the pattern against - * @return {boolean} - * @throws SyntaxError - */ -export const validateRegExp = ( - pattern: string | null | undefined, - customChecker?: (pattern: any) => boolean -): { isValid: boolean; regExp: RegExp } => { - const regExp = new RegExp(pattern!); - const { source } = regExp; - const isValid = !!pattern && source !== emptyRegexSource; - - if (isValid && customChecker && customChecker(pattern)) { - return { isValid, regExp }; - } - - return { isValid, regExp }; -}; - -/** - * Checks that a string matches the expected valuePatternRegex - * @param {string} candidate the supplied pattern string - * @return {boolean} - */ -export const isValidCustomValuePattern = (candidate: string): boolean => !!candidate; diff --git a/datahub-web/@datahub/entities/addon/routes/user.ts b/datahub-web/@datahub/entities/addon/routes/user.ts deleted file mode 100644 index 035bb07fa0f2e..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user.ts +++ /dev/null @@ -1,4 +0,0 @@ -import Route from '@ember/routing/route'; -import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; - -export default class User extends Route.extend(AuthenticatedRouteMixin) {} diff --git a/datahub-web/@datahub/entities/addon/routes/user/entity.ts b/datahub-web/@datahub/entities/addon/routes/user/entity.ts deleted file mode 100644 index 3ef82ebc49037..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user/entity.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Route from '@ember/routing/route'; -import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; -import { DataModelEntity } from '@datahub/data-models/constants/entity'; - -/** - * Describes the params and return of the model of the route - */ -export interface IUserEntityRouteModel { - // The alias of the data model entity type - entity: DataModelEntity['displayName']; -} - -/** - * User menu for Entities. This is the parent route - * for pages like Features I Own or Entity I Follow - */ -export default class UserEntity extends Route.extend(AuthenticatedRouteMixin) { - model(params: IUserEntityRouteModel): IUserEntityRouteModel { - return { ...params }; - } -} diff --git a/datahub-web/@datahub/entities/addon/routes/user/entity/own.ts b/datahub-web/@datahub/entities/addon/routes/user/entity/own.ts deleted file mode 100644 index ff72fd15e9a8a..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user/entity/own.ts +++ /dev/null @@ -1,67 +0,0 @@ -import Route from '@ember/routing/route'; -import { refreshModelForQueryParams } from '@datahub/utils/routes/refresh-model-for-query-params'; -import { IUserEntityRouteModel } from '@datahub/entities/routes/user/entity'; -import { inject } from '@ember/service'; -import CurrentUser from '@datahub/shared/services/current-user'; -import DataModelsService from '@datahub/data-models/services/data-models'; -import { IEntityRenderCommonPropsSearch } from '@datahub/data-models/types/search/search-entity-render-prop'; - -/** - * Query params required to maintain search state in the url - */ -interface IUserEntityOwnQueryParams { - page?: string; - facets?: string; -} - -/** - * Model for the route. It will contain the fields that are needed for - * the search result, facets and page for query params search state and userName for - * ownership query - */ -interface IUserEntityOwnModel extends IUserEntityRouteModel { - userName: string; - page: number; - facets?: string; - searchConfig: IEntityRenderCommonPropsSearch; - hasBrowse: boolean; -} - -/** - * Entity I Own page. It will show similar search result page with the entities I own - */ -export default class UserEntityOwn extends Route { - queryParams = refreshModelForQueryParams(['page', 'facets']); - - /** - * @type {CurrentUser} - */ - @inject('current-user') - sessionUser!: CurrentUser; - - @inject('data-models') - dataModels!: DataModelsService; - - /** - * Will expose entity from parent route, search query parameters (facets, page) so - * search container can use it, current user name to fill ownership query and fields to use. - * - * it will try to use `userEntityOwnership` if found, falling back to `search` fields. - */ - model({ page, facets }: IUserEntityOwnQueryParams): IUserEntityOwnModel { - const { dataModels } = this; - const { entity } = this.modelFor('user.entity') as IUserEntityRouteModel; - const { renderProps } = dataModels.getModel(entity); - const { userEntityOwnership, search } = renderProps; - const { entity: currentUserEntity } = this.sessionUser; - - return { - entity, - userName: currentUserEntity?.username || '', - page: Number(page || 1), - facets, - searchConfig: userEntityOwnership || search, - hasBrowse: Boolean(renderProps.browse) - }; - } -} diff --git a/datahub-web/@datahub/entities/addon/routes/user/profile.ts b/datahub-web/@datahub/entities/addon/routes/user/profile.ts deleted file mode 100644 index 8bb40515920ba..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user/profile.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Route from '@ember/routing/route'; -import { inject as service } from '@ember/service'; -import CurrentUser from '@datahub/shared/services/current-user'; - -/** - * Used to define the expected parameters for our route's model hook - */ -export interface IUserProfileRouteParams { - // The username given for the route, begins the process of setting the context for us - user_id: string; -} - -/** - * Used to define the return value for our route's model hook - */ -export interface IUserProfileRouteModel { - // Given from the query param, will share the user's identifier to the route - personUrn: string; - // Temporary placeholder for configs that will be used to pouplate the tabs within the user - // profile page - pageConfigs: {}; -} - -/** - * Note: After looking at multiple approaches, to a /user/me route, modifying this route to manually - * check for a 'me' dynamic segment seems to be the best appraoch. It allows us to also check the dynamic - * segment against a Urn class in the future. Alternatively, we could have made an actual separate - * /user/me route. - * - * However, an issue that this ran into was that we could not further link to /user/me/ as - * this caused the ember router to complain about additional dynamic segments. This means we would - * have had to redefine the entire route structure for the user profile page under user/me which seems - * to add more complexity than it solves. - */ -export default class UserProfile extends Route { - /** - * Injects the current user service to get the logged in user's information if we need to pass - * along information for the the logged in user to the route model - */ - @service - currentUser!: CurrentUser; - - model({ user_id: identifier }: IUserProfileRouteParams): IUserProfileRouteModel { - // If using the generic "me" identifier, then we route to the current user's profile page. This - // helps us create a static path for the logged in user's profile page and makes elements on it - // generically linkable - const personUrn = identifier === 'me' ? (this.currentUser.entity?.urn as string) : identifier; - - return { personUrn, pageConfigs: {} }; - } -} diff --git a/datahub-web/@datahub/entities/addon/routes/user/profile/index.ts b/datahub-web/@datahub/entities/addon/routes/user/profile/index.ts deleted file mode 100644 index b40c0c54e2134..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user/profile/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import Route from '@ember/routing/route'; -import { inject as service } from '@ember/service'; -import DataModelsService from '@datahub/data-models/services/data-models'; - -export default class UserProfileIndexRoute extends Route { - /** - * Injection of data models service so that we can generically get the correct person entity - * model class - */ - @service('data-models') - dataModels!: DataModelsService; - - /** - * If we land on the index page (i.e. no tab given) for the person entity profile page, then we - * can simply transition to the default tab - */ - model(): void { - const PersonEntityClass = this.dataModels.getModel('people'); - const personEntityPageRenderProps = PersonEntityClass.renderProps.entityPage; - if (personEntityPageRenderProps) { - this.transitionTo('user.profile.tab', personEntityPageRenderProps.defaultTab); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/routes/user/profile/tab.ts b/datahub-web/@datahub/entities/addon/routes/user/profile/tab.ts deleted file mode 100644 index cb16f2480e1dc..0000000000000 --- a/datahub-web/@datahub/entities/addon/routes/user/profile/tab.ts +++ /dev/null @@ -1,67 +0,0 @@ -import Route from '@ember/routing/route'; -import { IUserProfileRouteModel } from '@datahub/entities/routes/user/profile'; -import { refreshModelForQueryParams } from '@datahub/utils/routes/refresh-model-for-query-params'; -import Transition from '@ember/routing/-private/transition'; -import UserProfileTabController from '@datahub/entities/controllers/user/profile/tab'; - -/** - * Describes the params received by this route - */ -interface IUserProfileTabRouteParams { - // The tab_selected dynamic segment allows us to make each tab associated with a route, allowing - // a user to reach a specific tab through the url - // eslint-disable-next-line @typescript-eslint/camelcase - tab_selected: string; - // The current page number for tabs that deal with pagination - page: number; -} - -/** - * The expected return interface for the model - */ -export interface IUserProfileTabModel extends IUserProfileRouteModel { - // The tab_selected dynamic segment allows us to make each tab associated with a route, allowing - // a user to reach a specific tab through the url - tabSelected: string; - // Object that captures the relevant query params for the various profile page tabs - queryParams: { page: number }; -} - -export default class UserProfileTab extends Route { - /** - * Settings for query parameters for this route. - */ - queryParams = refreshModelForQueryParams(['page']); - - /** - * In addition to the basic profile information, this utilizes a dynamic segment to retrieve the - * currently selected tab for the user profile page navigation - * @param {string} tabSelected - the identifier for the currently selected tab - * @param {number} page - page number for the current pagination item in the tab - */ - // eslint-disable-next-line @typescript-eslint/camelcase - model({ tab_selected: tabSelected, page }: IUserProfileTabRouteParams): IUserProfileTabModel { - const userProfileModel = this.modelFor('user.profile') as IUserProfileRouteModel; - - if (!userProfileModel || !userProfileModel.personUrn) { - throw new Error('A person urn must be provided from the user.profile route'); - } - - return { - ...userProfileModel, - tabSelected, - queryParams: { page } - }; - } - - /** - * Will cleanup controller, so there are no variables leaking. - */ - resetController(controller: UserProfileTabController, isExiting: boolean, transition: Transition): void { - super.resetController(controller, isExiting, transition); - - if (isExiting) { - controller.resetData(); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/services/datasets-core.ts b/datahub-web/@datahub/entities/addon/services/datasets-core.ts deleted file mode 100644 index 9aa8018b5884d..0000000000000 --- a/datahub-web/@datahub/entities/addon/services/datasets-core.ts +++ /dev/null @@ -1,70 +0,0 @@ -import Service from '@ember/service'; -import { - ComplianceDataTypesList, - createComplianceDataTypesList -} from '@datahub/data-models/entity/dataset/modules/compliance-data-types-list'; -import { set } from '@ember/object'; -import { - DatasetPlatformsList, - createDatasetPlatformsList -} from '@datahub/data-models/entity/dataset/modules/platforms-list'; - -/** - * The DatasetsCore service connects us to a more shared data layer between datasets, such as compliance - * data types or platforms API that may need to be called repeatedly between various dataset related components - * and instances of those components. As such, we use this service to read such static information once - * and cache its value here. - */ -export default class DatasetsCoreService extends Service { - /** - * Cached version of compliance data types class. Makes sure we only need to instantiate one instance - * of this from one single API call - * @type {ComplianceDataTypesList} - */ - readonly complianceDataTypes?: ComplianceDataTypesList; - - readonly dataPlatforms?: DatasetPlatformsList; - - /** - * If we already have compliance data types available, then return it. Otherwise, await a new instance of - * the ComplianceDataTypes list - */ - async getComplianceDataTypes(): Promise { - const { complianceDataTypes } = this; - - if (complianceDataTypes) { - return complianceDataTypes; - } - - const dataTypes = await createComplianceDataTypesList(); - if (dataTypes) { - set(this, 'complianceDataTypes', dataTypes); - } - return dataTypes; - } - - /** - * If we already have data platforms available, then return it. Otherwise, await a new instance of the - * DatasetPlatforms list - */ - async getDataPlatforms(): Promise { - const { dataPlatforms } = this; - - if (dataPlatforms) { - return dataPlatforms; - } - - const platformsList = await createDatasetPlatformsList(); - if (platformsList) { - set(this, 'dataPlatforms', platformsList); - } - return platformsList; - } -} - -declare module '@ember/service' { - // eslint-disable-next-line @typescript-eslint/interface-name-prefix - interface Registry { - 'datasets-core': DatasetsCoreService; - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/_all.scss deleted file mode 100644 index b98d786febc9f..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/_all.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import 'abstracts/all'; -@import 'tabs/all'; -@import 'tables/all'; -@import 'interactivity/all'; -@import 'lineage/all'; -@import 'placeholder-nacho-tooltip'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/_placeholder-nacho-tooltip.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/_placeholder-nacho-tooltip.scss deleted file mode 100644 index 4d3c929e6f59f..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/_placeholder-nacho-tooltip.scss +++ /dev/null @@ -1,64 +0,0 @@ -// TODO: [META-8295] This is a placeholder that should be migrated and imported from a nacho component, currently -// lives in data-portal package and not shareable -.nacho-tooltip { - @mixin tooltip-transition() { - transition-duration: 167ms; - transition-timing-function: cubic-bezier(0.4, 0, 1, 1); - transition-delay: 0s; - } - - cursor: pointer; - position: relative; - min-width: item-spacing(1) / 2; - min-height: item-spacing(1) / 2; - - &::before, - &::after { - @include tooltip-transition; - white-space: normal; - pointer-events: none; - visibility: hidden; - opacity: 0; - font-style: normal; - } - - &::before { - position: absolute; - bottom: 150%; - left: 50%; - margin-bottom: item-spacing(1); - margin-left: -(item-spacing(7)); - padding: item-spacing(2); - width: item-spacing(7) * 2; - border-radius: item-spacing(1); - background-color: get-color(black, 0.9); - color: white; - content: attr(data-title); - text-align: center; - line-height: 1.2; - font-size: item-spacing(3); - } - - &::after { - position: absolute; - bottom: 150%; - left: 50%; - margin-left: -(item-spacing(1)); - width: 0; - border-top: item-spacing(1) solid get-color(black, 0.9); - border-right: item-spacing(1) solid transparent; - border-left: item-spacing(1) solid transparent; - content: ' '; - font-size: 0; - line-height: 0; - } - - &:hover { - &::before, - &::after { - @include tooltip-transition; - visibility: visible; - opacity: 1; - } - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_all.scss deleted file mode 100644 index 0a2919b198e80..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'mixins'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_mixins.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_mixins.scss deleted file mode 100644 index 33151a1d616ad..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/abstracts/_mixins.scss +++ /dev/null @@ -1,7 +0,0 @@ -@mixin datasets-core-loading-container() { - padding: item-spacing(2 4); - display: flex; - justify-content: center; - width: $max-container-width - item-spacing(4); - box-sizing: border-box; -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_action-bar.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_action-bar.scss deleted file mode 100644 index 33d230a3687a6..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_action-bar.scss +++ /dev/null @@ -1,67 +0,0 @@ -// Styles the basic interaction bar component that can appear when the user performs actions on a screen and -// need to take an additional action that affects those on screen actions such as save/confirm/cancel/navigate -.interaction-bar { - position: fixed; - bottom: 0; - left: 0; - right: 0; - border-width: 1px 0 0; - background-color: #f8f8f8; - z-index: z(dropdown) - 1; - width: 100%; - box-sizing: border-box; - - &__content { - max-height: 50px; - padding: item-spacing(1); - white-space: nowrap; - vertical-align: top; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0 auto; - width: $max-container-width; - - &__error-messages { - display: inline-flex; - align-items: center; - color: get-color(red5); - margin-left: item-spacing(2); - padding-right: item-spacing(2); - } - } - - &__actionable-content { - display: flex; - flex-direction: row-reverse; - margin-left: auto; - } - - &__info-content { - display: flex; - align-items: center; - } - - &__expand-btn { - background: transparent; - border: none; - font-weight: fw(normal, 7); - color: get-color(blue5); - cursor: pointer; - margin-left: item-spacing(2); - } - - &__item + &__item { - margin-right: 10px; - } - - &__expanded-content { - margin: 0 auto; - width: $max-container-width; - } - - &__item:disabled { - cursor: not-allowed; - opacity: 0.25; - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_all.scss deleted file mode 100644 index ef066fe5ba575..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/interactivity/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'action-bar'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_all.scss deleted file mode 100644 index 2cbbabcaacb80..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'upstream-dataset'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_upstream-dataset.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_upstream-dataset.scss deleted file mode 100644 index 550be7f7893b0..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/lineage/_upstream-dataset.scss +++ /dev/null @@ -1,47 +0,0 @@ -.upstream-dataset { - @include nacho-container; - padding: item-spacing(2 5); - display: flex; - align-items: center; - - &__compliance-status { - &__complete { - color: get-color(green5); - } - - &__incomplete { - color: get-color(orange5); - } - } - - &__upstream-link { - margin-left: item-spacing(3); - } - - &__upstream-link-chevron { - margin-left: auto; - } -} - -.downstream-purge-policy-header { - display: flex; - align-items: center; - margin: item-spacing(6 0 0); -} - -.downstream-purge-policy { - &__no-policy { - @include nacho-container; - } - - &__edit { - margin-left: auto; - display: flex; - align-items: center; - - &--label { - margin-right: item-spacing(4); - font-weight: fw(normal, 3); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/_all.scss deleted file mode 100644 index 15770ee59f4bc..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'dataset-groups/all'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_all.scss deleted file mode 100644 index 22d61f72f462f..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'dataset-groups-table'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_dataset-groups-table.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_dataset-groups-table.scss deleted file mode 100644 index 2d2917c89f24f..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/tables/dataset-groups/_dataset-groups-table.scss +++ /dev/null @@ -1,38 +0,0 @@ -.dataset-groups-table { - border: none; - &#{&} td, - &#{&} th, - thead { - padding: item-spacing(5 4); - font-weight: fw(normal, 6); - border: none; - } - - &#{&} &--wrap { - white-space: normal; - } - - &__header { - font-size: 20px; - font-weight: fw(normal, 6); - margin: item-spacing(5 0 5 0); - } - - &__label { - color: rgba(0, 0, 0, 0.6); - line-height: line-height; - margin-bottom: 0px; - } - - &__title { - font-weight: fw(normal, 6); - font-size: fs(x-large); - line-height: 28px; - } -} - -.dataset-groups-column { - &--wide { - width: 15%; - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_all.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_all.scss deleted file mode 100644 index 53a113aa0da7b..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'dataset-compliance'; diff --git a/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_dataset-compliance.scss b/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_dataset-compliance.scss deleted file mode 100644 index 74ce8ec9a5f80..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/datasets-core/tabs/_dataset-compliance.scss +++ /dev/null @@ -1,18 +0,0 @@ -.dataset-compliance { - &__loading-container { - padding-top: item-spacing(8); - } - - &__tab-header { - display: flex; - justify-content: flex-end; - padding: item-spacing(4 5); - background-color: get-color(slate7, 0.1); - align-items: center; - } - - &__tab-switch-label { - margin-left: item-spacing(3); - margin-top: item-spacing(1); - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/index.scss b/datahub-web/@datahub/entities/addon/styles/index.scss deleted file mode 100644 index f936e7d045fb4..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/index.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import 'user/all'; -@import 'datasets-core/all'; diff --git a/datahub-web/@datahub/entities/addon/styles/user/_all.scss b/datahub-web/@datahub/entities/addon/styles/user/_all.scss deleted file mode 100644 index 19074ae213ccf..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/_all.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'profile/all'; diff --git a/datahub-web/@datahub/entities/addon/styles/user/profile/_all.scss b/datahub-web/@datahub/entities/addon/styles/user/profile/_all.scss deleted file mode 100644 index a6565e000e992..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/profile/_all.scss +++ /dev/null @@ -1,4 +0,0 @@ -@import 'header'; -@import 'content'; -@import 'info-editor'; -@import 'view-all'; diff --git a/datahub-web/@datahub/entities/addon/styles/user/profile/_content.scss b/datahub-web/@datahub/entities/addon/styles/user/profile/_content.scss deleted file mode 100644 index 501ec550112b9..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/profile/_content.scss +++ /dev/null @@ -1,110 +0,0 @@ -.user-profile-content { - $application-navbar-static-height: item-spacing(8) !default; - $banner-alerts-height: 52px !default; - $tablist-width: 210px; - - margin-top: item-spacing(6); - - .user-profile-tabs { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - margin: 0 auto; - - &__tab-header { - padding: item-spacing(2 4); - font-weight: fw(normal, 6); - } - - &__tabslist { - top: $application-navbar-static-height; - - &--with-banner-offset { - top: $banner-alerts-height + $application-navbar-static-height; - } - - &.ivy-tabs-tablist { - height: fit-content; - - &[role='tablist'] { - box-sizing: border-box; - border: none; - display: flex; - flex-direction: column; - align-items: flex-start; - min-width: $tablist-width; - position: sticky; - background-color: get-color(white); - margin: item-spacing(2 0); - border-radius: 2px; - box-shadow: 0 0 0 1px get-color(black, 0.1), 0 2px 3px 0 get-color(black, 0.2); - - .user-profile-tabs { - &__tab-container { - width: 100%; - display: flex; - flex-direction: column; - border-bottom: 1px solid get-color(black, 0.15); - - &:last-child { - border-bottom: none; - } - } - - &__tab { - &.ivy-tabs-tab { - &[role='tab'] { - $set-padding: item-spacing(5); - - margin-left: item-spacing(0); - padding: item-spacing(3) $set-padding; - width: 100%; - font-weight: fw(normal, 4); - - &:first-child { - padding-left: $set-padding; - } - - &[aria-selected='true'] { - color: get-color(black, 0.6); - background-color: get-color(slate3, 0.25); - font-weight: fw(normal, 6); - - &:before { - background-color: transparent; - } - } - } - } - } - } - } - } - } - } -} - -.user-profile-content-body { - .nacho-button { - margin-bottom: item-spacing(2); - } - - .entity-list { - margin-top: item-spacing(2); - } - - padding: 0 0 0 item-spacing(4) + 2; - - &__entity-list { - margin-top: item-spacing(2); - } - - /// Overrides all instances of below classes to fit into our tab content structure - .container { - width: 100%; - } - - .wh-main-content { - margin-top: item-spacing(2); - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/user/profile/_header.scss b/datahub-web/@datahub/entities/addon/styles/user/profile/_header.scss deleted file mode 100644 index 2b0f9b7b8977b..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/profile/_header.scss +++ /dev/null @@ -1,167 +0,0 @@ -.user-entity-header { - display: flex; - padding: item-spacing(6 4 4); - - &__container { - background-color: white; - border-bottom: 1px solid get-color(black, 0.15); - } - - &__img-section { - width: 128px; - box-sizing: border-box; - padding-right: item-spacing(3); - } - - &__detail-section { - padding-left: item-spacing(5); - width: 100%; - } - - &__profile-img { - $profile-img-dimensions: 104px; - height: $profile-img-dimensions; - width: $profile-img-dimensions; - } - - &__external-link { - border: 1px solid get-color(blue6); - color: get-color(blue6); - padding: item-spacing(2); - line-height: 20px; - font-size: 16px; - font-weight: fw(normal, 6); - - &:hover { - border: 1px solid get-color(black); - } - } - - &__user-profile { - display: flex; - width: 100%; - justify-content: space-between; - } - - &__inactive-label { - margin: item-spacing(2 0 0 3); - padding: item-spacing(0 2); - } - - &__name { - &-container { - display: flex; - } - - margin: item-spacing(2 0 0); - font-weight: fw(normal, 6); - height: item-spacing(5) + 3; - } - - &__job-title { - margin: item-spacing(2 0 5); - width: 100%; - } - - &__user-details { - display: flex; - width: 100%; - flex-wrap: wrap; - } - - &__focus-area { - width: 50%; - margin-bottom: item-spacing(5); - - &-title { - font-weight: fw(normal, 6); - } - - &-icon { - margin-left: item-spacing(2); - cursor: pointer; - } - - &-content { - width: 450px; - text-align: justify; - word-break: break-word; - } - - &-skills { - margin-bottom: item-spacing(2); - display: flex; - flex-wrap: wrap; - } - } - - &__org { - width: 50%; - margin-bottom: item-spacing(5); - display: flex; - } - - &__manager { - width: 50%; - padding-left: item-spacing(4); - - &-name { - font-weight: fw(normal, 6); - } - - &-img { - margin-right: item-spacing(2); - } - } - - &__team { - width: 50%; - - &-name { - font-weight: fw(normal, 6); - } - - &-tags { - display: flex; - flex-wrap: wrap; - } - } - - &__tag { - padding: item-spacing(0 2); - margin: item-spacing(0 2 2 0); - cursor: default; - } - - &__connections { - display: flex; - width: 100%; - padding-top: item-spacing(4); - border-top: 1px solid get-color(black, 0.15); - } - - &__connection { - font-size: fs(small); - margin-right: item-spacing(5); - color: $text-color; - cursor: pointer; - - &-icon:hover, - &:hover { - color: get-color(blue6); - } - - &-link { - color: $text-color; - &:hover { - color: get-color(blue6); - } - } - - &-icon { - color: get-color(blue6); - margin-right: item-spacing(1); - transform: scale(1.25); - } - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/user/profile/_info-editor.scss b/datahub-web/@datahub/entities/addon/styles/user/profile/_info-editor.scss deleted file mode 100644 index 32f4f3dd41e7e..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/profile/_info-editor.scss +++ /dev/null @@ -1,57 +0,0 @@ -.user-info-editor { - $user-info-editor-width: item-spacing(9) * 10; - $user-info-editor-item-width: item-spacing(9) * 7; - padding: item-spacing(2 4); - - &__header { - display: flex; - justify-content: space-between; - } - - &__modal { - width: $user-info-editor-width; - - .nacho-pill-input__action { - margin-left: item-spacing(3); - } - } - - &__title { - margin: 0; - } - - &__label, - &__title { - font-weight: fw(normal, 6); - } - - &__item { - display: flex; - flex-direction: column; - margin-bottom: item-spacing(4); - width: $user-info-editor-item-width; - } - - &__tag-input { - border: 1px solid get-color(black, 0.75); - padding: item-spacing(2 3 1 1); - display: flex; - flex-wrap: wrap; - } - - &__text-input { - padding: item-spacing(1 3 3 3); - border: 1px solid get-color(black, 0.75); - - &-count { - margin: 0; - text-align: right; - color: get-color(gray4); - } - } - - &__pill { - margin-left: item-spacing(2); - margin-bottom: item-spacing(2); - } -} diff --git a/datahub-web/@datahub/entities/addon/styles/user/profile/_view-all.scss b/datahub-web/@datahub/entities/addon/styles/user/profile/_view-all.scss deleted file mode 100644 index f86d21770f4fe..0000000000000 --- a/datahub-web/@datahub/entities/addon/styles/user/profile/_view-all.scss +++ /dev/null @@ -1,45 +0,0 @@ -.view-all { - $view-all-width: 744px; - $view-all-header-height: 48px; - $view-all-content-height: 380px; - padding: item-spacing(2 4); - - &__header { - display: flex; - justify-content: space-between; - padding: item-spacing(0 5); - height: $view-all-header-height; - } - - &__content { - padding: item-spacing(5); - height: $view-all-content-height; - overflow-y: auto; - } - - &__modal { - width: $view-all-width; - } - - &__title { - font-size: 20px; - font-weight: fw(normal, 6); - margin: auto 0; - } - - &__close { - border: none; - background: transparent; - } - - &__button { - padding: item-spacing(0 2); - margin: item-spacing(0 2 2 0); - } - - &__tag { - padding: item-spacing(0 2); - margin: item-spacing(0 2 3 0); - cursor: default; - } -} diff --git a/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-main.hbs b/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-main.hbs deleted file mode 100644 index f7da0d3160cc9..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-main.hbs +++ /dev/null @@ -1,24 +0,0 @@ -{{yield - (hash - error=error - entity=entity - urn=urn - tabSelected=tabSelected - entityClass=this.entityClass - jitAclConfig=this.jitAclConfig - wikiLinks=wikiLinks - avatarEntityProps=avatarEntityProps - isPolicyFromUpstream=isPolicyFromUpstream - isInternal=isInternal - datasetContainsPersonalData=datasetContainsPersonalData - datasetOwnersRequiredNotMet=datasetOwnersRequiredNotMet - requiresUserAction=requiresUserAction - datasetTabs=datasetTabs - notifications=notificationsMap - fields=fields - paths=this.paths - onNotifyPiiStatus=(action onNotifyPiiStatus) - tabSelectionChanged=(action tabSelectionChanged) - setOwnershipRuleChange=(action setOwnershipRuleChange) - ) -}} diff --git a/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-schema.hbs b/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-schema.hbs deleted file mode 100644 index 7a59f5cd45ec1..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/datasets/containers/dataset-schema.hbs +++ /dev/null @@ -1,16 +0,0 @@ - - {{#if this.isEmpty}} - - {{else}} - - {{/if}} - diff --git a/datahub-web/@datahub/entities/addon/templates/components/datasets/core/containers/dataset-groups.hbs b/datahub-web/@datahub/entities/addon/templates/components/datasets/core/containers/dataset-groups.hbs deleted file mode 100644 index 61e27eb003b78..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/datasets/core/containers/dataset-groups.hbs +++ /dev/null @@ -1,56 +0,0 @@ - - {{#if this.isEmpty}} - - -
-

- {{this.tableTitle}} -

-

- {{component this.dynamicHeaderComponent.name options=this.dynamicHeaderComponent.options }} -

-
-
- - - - {{this.emptyStateDisplayText}} - - - -
- {{else}} - - -

- Dataset Groups -

-
- - - Namespace - - - Group Name - - - - {{#each this.groups as |group|}} - - - {{group.namespace}} - - - {{group.name}} - - - {{/each}} - -
- {{/if}} -
diff --git a/datahub-web/@datahub/entities/addon/templates/components/datasets/relationships/dataset-relationship-table.hbs b/datahub-web/@datahub/entities/addon/templates/components/datasets/relationships/dataset-relationship-table.hbs deleted file mode 100644 index 72f4991106134..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/datasets/relationships/dataset-relationship-table.hbs +++ /dev/null @@ -1,74 +0,0 @@ - - - Dataset - - - - {{dd.content}} - - - - Platform - Actor - Last Modified - - - - {{#each relationTable.fields as |lineage|}} - - - - {{lineage.dataset.nativeName}} - - - - {{capitalize lineage.type}} - - - {{titleize lineage.dataset.platform}} - - - {{#with lineage.route as |actorRoute|}} - - {{lineage.actorType}} - - {{else}} - {{lineage.actor}} - {{/with}} - - - {{moment-calendar lineage.dataset.modifiedTime sameElse="MMM Do YYYY, h:mm a"}} - - - {{/each}} - - - {{#if hasMore}} - - - - - - {{/if}} - diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/containers/entity-header.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/containers/entity-header.hbs deleted file mode 100644 index 09cef6d1c9a57..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/containers/entity-header.hbs +++ /dev/null @@ -1,8 +0,0 @@ - - {{yield - (hash - entity=entity - updateProfileTask=this.updateEditableProfileTask - ) - }} - \ No newline at end of file diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/containers/tab-content/entity-ownership.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/containers/tab-content/entity-ownership.hbs deleted file mode 100644 index ca3522f5143b1..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/containers/tab-content/entity-ownership.hbs +++ /dev/null @@ -1,16 +0,0 @@ -
- {{!-- Because this tab can be active while no search config is available, this ensures that - a search config must exist before trying to use the search component--}} - {{#if this.searchConfig}} - - {{/if}} -
diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/containers/tablist/entity-ownership.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/containers/tablist/entity-ownership.hbs deleted file mode 100644 index a7eb010e8f832..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/containers/tablist/entity-ownership.hbs +++ /dev/null @@ -1,4 +0,0 @@ - -{{yield (hash tabs=this.displayedMenuProperties)}} diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/containers/user-main.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/containers/user-main.hbs deleted file mode 100644 index ff5b01bcb43be..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/containers/user-main.hbs +++ /dev/null @@ -1,11 +0,0 @@ - - {{yield - (hash - entity=this.entity - renderProps=this.renderProps - isCurrentUser=this.isCurrentUser - defaultTab=this.renderProps.entityPage.defaultTab - changeTabSelection=(action this.tabSelectionChanged) - ) - }} - \ No newline at end of file diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/profile/entity-header.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/profile/entity-header.hbs deleted file mode 100644 index f979cfa243f4a..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/profile/entity-header.hbs +++ /dev/null @@ -1,200 +0,0 @@ -
-
- -
- -
- - -
- {{@entity.title}} -
- -
-
-
-
ASK ME ABOUT
-
- {{#each this.skillsPreview as |skill|}} - - {{/each}} - {{#if this.renderViewAllSkillsButton}} - - {{/if}} -
- {{@entity.focusArea}} -
-
- -
-
-
TEAM
-
- {{#each this.teamsPreview as |teamTag|}} - - {{/each}} - {{#if this.renderViewAllTeamsButton}} - - {{/if}} -
-
- -
- {{#if @entity.reportsTo}} -
MANAGER
- {{#let @entity.reportsTo as |manager|}} - - - - - {{manager.name}} - - - {{/let}} - {{/if}} -
-
-
-
- - - {{@entity.email}} - -
- - {{#if @headerProperties.isConnectedToLinkedin}} - - {{/if}} - - {{#if @headerProperties.showExternalProfileLink}} - - - - {{/if}} - - {{#if @headerProperties.isConnectedToSlack}} -
- - Slack -
- {{/if}} -
-
-
-
- -{{#if this.isEditingProfile}} - -{{/if}} - -{{#if this.isViewingAllSkills}} - -{{/if}} - -{{#if this.isViewingAllTeams}} - -{{/if}} diff --git a/datahub-web/@datahub/entities/addon/templates/components/user/profile/info-editor.hbs b/datahub-web/@datahub/entities/addon/templates/components/user/profile/info-editor.hbs deleted file mode 100644 index 8ef862a840c65..0000000000000 --- a/datahub-web/@datahub/entities/addon/templates/components/user/profile/info-editor.hbs +++ /dev/null @@ -1,84 +0,0 @@ - -
-

- Edit Profile -

-
- -
- -
-

Summary about me

-