acryl-datahub 1.1.0.5rc3__py3-none-any.whl → 1.1.0.5rc5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of acryl-datahub might be problematic. Click here for more details.

Files changed (52) hide show
  1. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/METADATA +2575 -2575
  2. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/RECORD +52 -45
  3. datahub/_version.py +1 -1
  4. datahub/cli/check_cli.py +21 -4
  5. datahub/ingestion/api/decorators.py +14 -3
  6. datahub/ingestion/api/report.py +123 -2
  7. datahub/ingestion/api/source.py +45 -44
  8. datahub/ingestion/autogenerated/lineage_helper.py +193 -0
  9. datahub/ingestion/graph/client.py +71 -28
  10. datahub/ingestion/run/pipeline.py +6 -0
  11. datahub/ingestion/source/aws/glue.py +1 -1
  12. datahub/ingestion/source/bigquery_v2/bigquery_queries.py +1 -0
  13. datahub/ingestion/source/bigquery_v2/profiler.py +4 -2
  14. datahub/ingestion/source/bigquery_v2/queries.py +4 -4
  15. datahub/ingestion/source/common/subtypes.py +43 -0
  16. datahub/ingestion/source/dbt/dbt_common.py +1 -1
  17. datahub/ingestion/source/fivetran/fivetran.py +34 -26
  18. datahub/ingestion/source/hex/api.py +26 -1
  19. datahub/ingestion/source/kafka_connect/sink_connectors.py +156 -47
  20. datahub/ingestion/source/mock_data/datahub_mock_data.py +11 -15
  21. datahub/ingestion/source/salesforce.py +6 -3
  22. datahub/ingestion/source/slack/slack.py +2 -1
  23. datahub/ingestion/source/snowflake/snowflake_queries.py +1 -0
  24. datahub/ingestion/source/sql/athena.py +15 -3
  25. datahub/ingestion/source/sql/mssql/source.py +9 -0
  26. datahub/ingestion/source/sql/sql_common.py +3 -0
  27. datahub/ingestion/source/sql/sql_generic_profiler.py +2 -1
  28. datahub/ingestion/source/sql/teradata.py +4 -1
  29. datahub/ingestion/source/sql/vertica.py +9 -1
  30. datahub/ingestion/source/tableau/tableau.py +6 -1
  31. datahub/ingestion/source/unity/source.py +36 -20
  32. datahub/ingestion/transformer/add_dataset_ownership.py +18 -2
  33. datahub/metadata/_internal_schema_classes.py +601 -0
  34. datahub/metadata/_urns/urn_defs.py +112 -0
  35. datahub/metadata/com/linkedin/pegasus2avro/identity/__init__.py +2 -0
  36. datahub/metadata/com/linkedin/pegasus2avro/metadata/key/__init__.py +4 -0
  37. datahub/metadata/com/linkedin/pegasus2avro/module/__init__.py +27 -0
  38. datahub/metadata/com/linkedin/pegasus2avro/settings/global/__init__.py +2 -0
  39. datahub/metadata/com/linkedin/pegasus2avro/template/__init__.py +25 -0
  40. datahub/metadata/schema.avsc +383 -0
  41. datahub/metadata/schemas/CorpUserSettings.avsc +25 -0
  42. datahub/metadata/schemas/DataHubPageModuleKey.avsc +21 -0
  43. datahub/metadata/schemas/DataHubPageModuleProperties.avsc +202 -0
  44. datahub/metadata/schemas/DataHubPageTemplateKey.avsc +21 -0
  45. datahub/metadata/schemas/DataHubPageTemplateProperties.avsc +175 -0
  46. datahub/metadata/schemas/GlobalSettingsInfo.avsc +25 -0
  47. datahub/sdk/datajob.py +39 -15
  48. datahub/specific/dataproduct.py +4 -0
  49. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/WHEEL +0 -0
  50. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/entry_points.txt +0 -0
  51. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/licenses/LICENSE +0 -0
  52. {acryl_datahub-1.1.0.5rc3.dist-info → acryl_datahub-1.1.0.5rc5.dist-info}/top_level.txt +0 -0
@@ -1395,6 +1395,62 @@ class GlossaryTermUrn(_SpecificUrn):
1395
1395
  def name(self) -> str:
1396
1396
  return self._entity_ids[0]
1397
1397
 
1398
+ if TYPE_CHECKING:
1399
+ from datahub.metadata.schema_classes import DataHubPageTemplateKeyClass
1400
+
1401
+ class DataHubPageTemplateUrn(_SpecificUrn):
1402
+ ENTITY_TYPE: ClassVar[Literal["dataHubPageTemplate"]] = "dataHubPageTemplate"
1403
+ _URN_PARTS: ClassVar[int] = 1
1404
+
1405
+ def __init__(self, id: Union["DataHubPageTemplateUrn", str], *, _allow_coercion: bool = True) -> None:
1406
+ if _allow_coercion:
1407
+ # Field coercion logic (if any is required).
1408
+ if isinstance(id, str):
1409
+ if id.startswith('urn:li:'):
1410
+ try:
1411
+ id = DataHubPageTemplateUrn.from_string(id)
1412
+ except InvalidUrnError:
1413
+ raise InvalidUrnError(f'Expecting a DataHubPageTemplateUrn but got {id}')
1414
+ else:
1415
+ id = UrnEncoder.encode_string(id)
1416
+
1417
+ # Validation logic.
1418
+ if not id:
1419
+ raise InvalidUrnError("DataHubPageTemplateUrn id cannot be empty")
1420
+ if isinstance(id, DataHubPageTemplateUrn):
1421
+ id = id.id
1422
+ elif isinstance(id, Urn):
1423
+ raise InvalidUrnError(f'Expecting a DataHubPageTemplateUrn but got {id}')
1424
+ if UrnEncoder.contains_reserved_char(id):
1425
+ raise InvalidUrnError(f'DataHubPageTemplateUrn id contains reserved characters')
1426
+
1427
+ super().__init__(self.ENTITY_TYPE, [id])
1428
+
1429
+ @classmethod
1430
+ def _parse_ids(cls, entity_ids: List[str]) -> "DataHubPageTemplateUrn":
1431
+ if len(entity_ids) != cls._URN_PARTS:
1432
+ raise InvalidUrnError(f"DataHubPageTemplateUrn should have {cls._URN_PARTS} parts, got {len(entity_ids)}: {entity_ids}")
1433
+ return cls(id=entity_ids[0], _allow_coercion=False)
1434
+
1435
+ @classmethod
1436
+ def underlying_key_aspect_type(cls) -> Type["DataHubPageTemplateKeyClass"]:
1437
+ from datahub.metadata.schema_classes import DataHubPageTemplateKeyClass
1438
+
1439
+ return DataHubPageTemplateKeyClass
1440
+
1441
+ def to_key_aspect(self) -> "DataHubPageTemplateKeyClass":
1442
+ from datahub.metadata.schema_classes import DataHubPageTemplateKeyClass
1443
+
1444
+ return DataHubPageTemplateKeyClass(id=self.id)
1445
+
1446
+ @classmethod
1447
+ def from_key_aspect(cls, key_aspect: "DataHubPageTemplateKeyClass") -> "DataHubPageTemplateUrn":
1448
+ return cls(id=key_aspect.id)
1449
+
1450
+ @property
1451
+ def id(self) -> str:
1452
+ return self._entity_ids[0]
1453
+
1398
1454
  if TYPE_CHECKING:
1399
1455
  from datahub.metadata.schema_classes import CorpGroupKeyClass
1400
1456
 
@@ -1919,6 +1975,62 @@ class TagUrn(_SpecificUrn):
1919
1975
  def name(self) -> str:
1920
1976
  return self._entity_ids[0]
1921
1977
 
1978
+ if TYPE_CHECKING:
1979
+ from datahub.metadata.schema_classes import DataHubPageModuleKeyClass
1980
+
1981
+ class DataHubPageModuleUrn(_SpecificUrn):
1982
+ ENTITY_TYPE: ClassVar[Literal["dataHubPageModule"]] = "dataHubPageModule"
1983
+ _URN_PARTS: ClassVar[int] = 1
1984
+
1985
+ def __init__(self, id: Union["DataHubPageModuleUrn", str], *, _allow_coercion: bool = True) -> None:
1986
+ if _allow_coercion:
1987
+ # Field coercion logic (if any is required).
1988
+ if isinstance(id, str):
1989
+ if id.startswith('urn:li:'):
1990
+ try:
1991
+ id = DataHubPageModuleUrn.from_string(id)
1992
+ except InvalidUrnError:
1993
+ raise InvalidUrnError(f'Expecting a DataHubPageModuleUrn but got {id}')
1994
+ else:
1995
+ id = UrnEncoder.encode_string(id)
1996
+
1997
+ # Validation logic.
1998
+ if not id:
1999
+ raise InvalidUrnError("DataHubPageModuleUrn id cannot be empty")
2000
+ if isinstance(id, DataHubPageModuleUrn):
2001
+ id = id.id
2002
+ elif isinstance(id, Urn):
2003
+ raise InvalidUrnError(f'Expecting a DataHubPageModuleUrn but got {id}')
2004
+ if UrnEncoder.contains_reserved_char(id):
2005
+ raise InvalidUrnError(f'DataHubPageModuleUrn id contains reserved characters')
2006
+
2007
+ super().__init__(self.ENTITY_TYPE, [id])
2008
+
2009
+ @classmethod
2010
+ def _parse_ids(cls, entity_ids: List[str]) -> "DataHubPageModuleUrn":
2011
+ if len(entity_ids) != cls._URN_PARTS:
2012
+ raise InvalidUrnError(f"DataHubPageModuleUrn should have {cls._URN_PARTS} parts, got {len(entity_ids)}: {entity_ids}")
2013
+ return cls(id=entity_ids[0], _allow_coercion=False)
2014
+
2015
+ @classmethod
2016
+ def underlying_key_aspect_type(cls) -> Type["DataHubPageModuleKeyClass"]:
2017
+ from datahub.metadata.schema_classes import DataHubPageModuleKeyClass
2018
+
2019
+ return DataHubPageModuleKeyClass
2020
+
2021
+ def to_key_aspect(self) -> "DataHubPageModuleKeyClass":
2022
+ from datahub.metadata.schema_classes import DataHubPageModuleKeyClass
2023
+
2024
+ return DataHubPageModuleKeyClass(id=self.id)
2025
+
2026
+ @classmethod
2027
+ def from_key_aspect(cls, key_aspect: "DataHubPageModuleKeyClass") -> "DataHubPageModuleUrn":
2028
+ return cls(id=key_aspect.id)
2029
+
2030
+ @property
2031
+ def id(self) -> str:
2032
+ return self._entity_ids[0]
2033
+
1922
2034
  if TYPE_CHECKING:
1923
2035
  from datahub.metadata.schema_classes import DataHubRoleKeyClass
1924
2036
 
@@ -12,6 +12,7 @@ from .....schema_classes import CorpGroupInfoClass
12
12
  from .....schema_classes import CorpUserAppearanceSettingsClass
13
13
  from .....schema_classes import CorpUserCredentialsClass
14
14
  from .....schema_classes import CorpUserEditableInfoClass
15
+ from .....schema_classes import CorpUserHomePageSettingsClass
15
16
  from .....schema_classes import CorpUserInfoClass
16
17
  from .....schema_classes import CorpUserSettingsClass
17
18
  from .....schema_classes import CorpUserStatusClass
@@ -27,6 +28,7 @@ CorpGroupInfo = CorpGroupInfoClass
27
28
  CorpUserAppearanceSettings = CorpUserAppearanceSettingsClass
28
29
  CorpUserCredentials = CorpUserCredentialsClass
29
30
  CorpUserEditableInfo = CorpUserEditableInfoClass
31
+ CorpUserHomePageSettings = CorpUserHomePageSettingsClass
30
32
  CorpUserInfo = CorpUserInfoClass
31
33
  CorpUserSettings = CorpUserSettingsClass
32
34
  CorpUserStatus = CorpUserStatusClass
@@ -20,6 +20,8 @@ from ......schema_classes import DataHubActionKeyClass
20
20
  from ......schema_classes import DataHubConnectionKeyClass
21
21
  from ......schema_classes import DataHubIngestionSourceKeyClass
22
22
  from ......schema_classes import DataHubOpenAPISchemaKeyClass
23
+ from ......schema_classes import DataHubPageModuleKeyClass
24
+ from ......schema_classes import DataHubPageTemplateKeyClass
23
25
  from ......schema_classes import DataHubPersonaKeyClass
24
26
  from ......schema_classes import DataHubPolicyKeyClass
25
27
  from ......schema_classes import DataHubRetentionKeyClass
@@ -74,6 +76,8 @@ DataHubActionKey = DataHubActionKeyClass
74
76
  DataHubConnectionKey = DataHubConnectionKeyClass
75
77
  DataHubIngestionSourceKey = DataHubIngestionSourceKeyClass
76
78
  DataHubOpenAPISchemaKey = DataHubOpenAPISchemaKeyClass
79
+ DataHubPageModuleKey = DataHubPageModuleKeyClass
80
+ DataHubPageTemplateKey = DataHubPageTemplateKeyClass
77
81
  DataHubPersonaKey = DataHubPersonaKeyClass
78
82
  DataHubPolicyKey = DataHubPolicyKeyClass
79
83
  DataHubRetentionKey = DataHubRetentionKeyClass
@@ -0,0 +1,27 @@
1
+ # mypy: ignore-errors
2
+ # flake8: noqa
3
+
4
+ # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
5
+ # Do not modify manually!
6
+
7
+ # pylint: skip-file
8
+ # fmt: off
9
+ # isort: skip_file
10
+ from .....schema_classes import DataHubPageModuleParamsClass
11
+ from .....schema_classes import DataHubPageModulePropertiesClass
12
+ from .....schema_classes import DataHubPageModuleTypeClass
13
+ from .....schema_classes import DataHubPageModuleVisibilityClass
14
+ from .....schema_classes import LinkModuleParamsClass
15
+ from .....schema_classes import PageModuleScopeClass
16
+ from .....schema_classes import RichTextModuleParamsClass
17
+
18
+
19
+ DataHubPageModuleParams = DataHubPageModuleParamsClass
20
+ DataHubPageModuleProperties = DataHubPageModulePropertiesClass
21
+ DataHubPageModuleType = DataHubPageModuleTypeClass
22
+ DataHubPageModuleVisibility = DataHubPageModuleVisibilityClass
23
+ LinkModuleParams = LinkModuleParamsClass
24
+ PageModuleScope = PageModuleScopeClass
25
+ RichTextModuleParams = RichTextModuleParamsClass
26
+
27
+ # fmt: on
@@ -8,6 +8,7 @@
8
8
  # fmt: off
9
9
  # isort: skip_file
10
10
  from ......schema_classes import DocPropagationFeatureSettingsClass
11
+ from ......schema_classes import GlobalHomePageSettingsClass
11
12
  from ......schema_classes import GlobalSettingsInfoClass
12
13
  from ......schema_classes import GlobalViewsSettingsClass
13
14
  from ......schema_classes import OidcSettingsClass
@@ -15,6 +16,7 @@ from ......schema_classes import SsoSettingsClass
15
16
 
16
17
 
17
18
  DocPropagationFeatureSettings = DocPropagationFeatureSettingsClass
19
+ GlobalHomePageSettings = GlobalHomePageSettingsClass
18
20
  GlobalSettingsInfo = GlobalSettingsInfoClass
19
21
  GlobalViewsSettings = GlobalViewsSettingsClass
20
22
  OidcSettings = OidcSettingsClass
@@ -0,0 +1,25 @@
1
+ # mypy: ignore-errors
2
+ # flake8: noqa
3
+
4
+ # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
5
+ # Do not modify manually!
6
+
7
+ # pylint: skip-file
8
+ # fmt: off
9
+ # isort: skip_file
10
+ from .....schema_classes import DataHubPageTemplatePropertiesClass
11
+ from .....schema_classes import DataHubPageTemplateRowClass
12
+ from .....schema_classes import DataHubPageTemplateSurfaceClass
13
+ from .....schema_classes import DataHubPageTemplateVisibilityClass
14
+ from .....schema_classes import PageTemplateScopeClass
15
+ from .....schema_classes import PageTemplateSurfaceTypeClass
16
+
17
+
18
+ DataHubPageTemplateProperties = DataHubPageTemplatePropertiesClass
19
+ DataHubPageTemplateRow = DataHubPageTemplateRowClass
20
+ DataHubPageTemplateSurface = DataHubPageTemplateSurfaceClass
21
+ DataHubPageTemplateVisibility = DataHubPageTemplateVisibilityClass
22
+ PageTemplateScope = PageTemplateScopeClass
23
+ PageTemplateSurfaceType = PageTemplateSurfaceTypeClass
24
+
25
+ # fmt: on
@@ -737,6 +737,31 @@
737
737
  "name": "notificationSettings",
738
738
  "default": null,
739
739
  "doc": "Notification settings for a user"
740
+ },
741
+ {
742
+ "type": [
743
+ "null",
744
+ {
745
+ "type": "record",
746
+ "name": "CorpUserHomePageSettings",
747
+ "namespace": "com.linkedin.pegasus2avro.identity",
748
+ "fields": [
749
+ {
750
+ "java": {
751
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
752
+ },
753
+ "Urn": "Urn",
754
+ "type": "string",
755
+ "name": "pageTemplate",
756
+ "doc": "The page template that will be rendered in the UI by default for this user"
757
+ }
758
+ ],
759
+ "doc": "Settings related to the home page for a user"
760
+ }
761
+ ],
762
+ "name": "homePage",
763
+ "default": null,
764
+ "doc": "Settings related to the home page for a user"
740
765
  }
741
766
  ],
742
767
  "doc": "Settings that a user can customize through the datahub ui"
@@ -3259,6 +3284,165 @@
3259
3284
  }
3260
3285
  ]
3261
3286
  },
3287
+ {
3288
+ "type": "record",
3289
+ "Aspect": {
3290
+ "name": "dataHubPageModuleProperties"
3291
+ },
3292
+ "name": "DataHubPageModuleProperties",
3293
+ "namespace": "com.linkedin.pegasus2avro.module",
3294
+ "fields": [
3295
+ {
3296
+ "type": "string",
3297
+ "name": "name",
3298
+ "doc": "The display name of this module"
3299
+ },
3300
+ {
3301
+ "Searchable": {
3302
+ "fieldType": "KEYWORD"
3303
+ },
3304
+ "type": {
3305
+ "type": "enum",
3306
+ "symbolDocs": {
3307
+ "ASSET_COLLECTION": "A module with a collection of assets",
3308
+ "DOMAINS": "Module displaying the top domains",
3309
+ "HIERARCHY": "A module displaying a hierarchy to navigate",
3310
+ "LINK": "Link type module",
3311
+ "OWNED_ASSETS": "Module displaying assets owned by a user",
3312
+ "RICH_TEXT": "Module containing rich text to be rendered",
3313
+ "SUBSCRIBED_ASSETS": "Module displaying assets subscribed to by a given user"
3314
+ },
3315
+ "name": "DataHubPageModuleType",
3316
+ "namespace": "com.linkedin.pegasus2avro.module",
3317
+ "symbols": [
3318
+ "LINK",
3319
+ "RICH_TEXT",
3320
+ "ASSET_COLLECTION",
3321
+ "HIERARCHY",
3322
+ "OWNED_ASSETS",
3323
+ "SUBSCRIBED_ASSETS",
3324
+ "DOMAINS"
3325
+ ],
3326
+ "doc": "Enum containing the types of page modules that there are"
3327
+ },
3328
+ "name": "type",
3329
+ "doc": "The type of this module - the purpose it serves"
3330
+ },
3331
+ {
3332
+ "type": {
3333
+ "type": "record",
3334
+ "name": "DataHubPageModuleVisibility",
3335
+ "namespace": "com.linkedin.pegasus2avro.module",
3336
+ "fields": [
3337
+ {
3338
+ "Searchable": {
3339
+ "fieldType": "KEYWORD"
3340
+ },
3341
+ "type": {
3342
+ "type": "enum",
3343
+ "symbolDocs": {
3344
+ "GLOBAL": "This module is discoverable and can be used by any user on the platform",
3345
+ "PERSONAL": "This module is used for individual use only"
3346
+ },
3347
+ "name": "PageModuleScope",
3348
+ "namespace": "com.linkedin.pegasus2avro.module",
3349
+ "symbols": [
3350
+ "PERSONAL",
3351
+ "GLOBAL"
3352
+ ]
3353
+ },
3354
+ "name": "scope",
3355
+ "doc": "Audit stamp for when and by whom this module was created"
3356
+ }
3357
+ ],
3358
+ "doc": "Info about the visibility of this module"
3359
+ },
3360
+ "name": "visibility",
3361
+ "doc": "Info about the visibility of this module"
3362
+ },
3363
+ {
3364
+ "type": {
3365
+ "type": "record",
3366
+ "name": "DataHubPageModuleParams",
3367
+ "namespace": "com.linkedin.pegasus2avro.module",
3368
+ "fields": [
3369
+ {
3370
+ "type": [
3371
+ "null",
3372
+ {
3373
+ "type": "record",
3374
+ "name": "LinkModuleParams",
3375
+ "namespace": "com.linkedin.pegasus2avro.module",
3376
+ "fields": [
3377
+ {
3378
+ "java": {
3379
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
3380
+ },
3381
+ "Urn": "Urn",
3382
+ "type": "string",
3383
+ "name": "linkUrn"
3384
+ }
3385
+ ]
3386
+ }
3387
+ ],
3388
+ "name": "linkParams",
3389
+ "default": null,
3390
+ "doc": "The params required if the module is type LINK"
3391
+ },
3392
+ {
3393
+ "type": [
3394
+ "null",
3395
+ {
3396
+ "type": "record",
3397
+ "name": "RichTextModuleParams",
3398
+ "namespace": "com.linkedin.pegasus2avro.module",
3399
+ "fields": [
3400
+ {
3401
+ "type": "string",
3402
+ "name": "content"
3403
+ }
3404
+ ]
3405
+ }
3406
+ ],
3407
+ "name": "richTextParams",
3408
+ "default": null,
3409
+ "doc": "The params required if the module is type RICH_TEXT"
3410
+ }
3411
+ ],
3412
+ "doc": "The specific parameters stored for a module"
3413
+ },
3414
+ "name": "params",
3415
+ "doc": "The specific parameters stored for this module"
3416
+ },
3417
+ {
3418
+ "Searchable": {
3419
+ "/actor": {
3420
+ "fieldName": "createdBy",
3421
+ "fieldType": "URN"
3422
+ },
3423
+ "/time": {
3424
+ "fieldName": "createdAt",
3425
+ "fieldType": "DATETIME"
3426
+ }
3427
+ },
3428
+ "type": "com.linkedin.pegasus2avro.common.AuditStamp",
3429
+ "name": "created",
3430
+ "doc": "Audit stamp for when and by whom this template was created"
3431
+ },
3432
+ {
3433
+ "Searchable": {
3434
+ "/time": {
3435
+ "fieldName": "lastModifiedAt",
3436
+ "fieldType": "DATETIME"
3437
+ }
3438
+ },
3439
+ "type": "com.linkedin.pegasus2avro.common.AuditStamp",
3440
+ "name": "lastModified",
3441
+ "doc": "Audit stamp for when and by whom this template was last updated"
3442
+ }
3443
+ ],
3444
+ "doc": "The main properties of a DataHub page module"
3445
+ },
3262
3446
  {
3263
3447
  "type": "record",
3264
3448
  "Aspect": {
@@ -11465,6 +11649,138 @@
11465
11649
  ],
11466
11650
  "doc": "Information about a DataHub Post."
11467
11651
  },
11652
+ {
11653
+ "type": "record",
11654
+ "Aspect": {
11655
+ "name": "dataHubPageTemplateProperties"
11656
+ },
11657
+ "name": "DataHubPageTemplateProperties",
11658
+ "namespace": "com.linkedin.pegasus2avro.template",
11659
+ "fields": [
11660
+ {
11661
+ "Relationship": {
11662
+ "/*/modules/*": {
11663
+ "entityTypes": [
11664
+ "dataHubPageModule"
11665
+ ],
11666
+ "name": "ContainedIn"
11667
+ }
11668
+ },
11669
+ "type": {
11670
+ "type": "array",
11671
+ "items": {
11672
+ "type": "record",
11673
+ "name": "DataHubPageTemplateRow",
11674
+ "namespace": "com.linkedin.pegasus2avro.template",
11675
+ "fields": [
11676
+ {
11677
+ "Urn": "Urn",
11678
+ "urn_is_array": true,
11679
+ "type": {
11680
+ "type": "array",
11681
+ "items": "string"
11682
+ },
11683
+ "name": "modules",
11684
+ "doc": "The modules that exist in this template row"
11685
+ }
11686
+ ],
11687
+ "doc": "A row of modules contained in a template"
11688
+ }
11689
+ },
11690
+ "name": "rows",
11691
+ "doc": "The rows of modules contained in this template"
11692
+ },
11693
+ {
11694
+ "type": {
11695
+ "type": "record",
11696
+ "name": "DataHubPageTemplateSurface",
11697
+ "namespace": "com.linkedin.pegasus2avro.template",
11698
+ "fields": [
11699
+ {
11700
+ "Searchable": {
11701
+ "fieldType": "KEYWORD"
11702
+ },
11703
+ "type": {
11704
+ "type": "enum",
11705
+ "symbolDocs": {
11706
+ "HOME_PAGE": "This template applies to what to display on the home page for users."
11707
+ },
11708
+ "name": "PageTemplateSurfaceType",
11709
+ "namespace": "com.linkedin.pegasus2avro.template",
11710
+ "symbols": [
11711
+ "HOME_PAGE"
11712
+ ]
11713
+ },
11714
+ "name": "surfaceType",
11715
+ "doc": "Where exactly is this template being used"
11716
+ }
11717
+ ],
11718
+ "doc": "Info about the surface area of the product that this template is deployed in"
11719
+ },
11720
+ "name": "surface",
11721
+ "doc": "Info about the surface area of the product that this template is deployed in"
11722
+ },
11723
+ {
11724
+ "type": {
11725
+ "type": "record",
11726
+ "name": "DataHubPageTemplateVisibility",
11727
+ "namespace": "com.linkedin.pegasus2avro.template",
11728
+ "fields": [
11729
+ {
11730
+ "Searchable": {
11731
+ "fieldType": "KEYWORD"
11732
+ },
11733
+ "type": {
11734
+ "type": "enum",
11735
+ "symbolDocs": {
11736
+ "GLOBAL": "This template is used across users",
11737
+ "PERSONAL": "This template is used for individual use only"
11738
+ },
11739
+ "name": "PageTemplateScope",
11740
+ "namespace": "com.linkedin.pegasus2avro.template",
11741
+ "symbols": [
11742
+ "PERSONAL",
11743
+ "GLOBAL"
11744
+ ]
11745
+ },
11746
+ "name": "scope",
11747
+ "doc": "The scope of this template and who can use/see it"
11748
+ }
11749
+ ],
11750
+ "doc": "Info about the visibility of this template"
11751
+ },
11752
+ "name": "visibility",
11753
+ "doc": "Info about the visibility of this template"
11754
+ },
11755
+ {
11756
+ "Searchable": {
11757
+ "/actor": {
11758
+ "fieldName": "createdBy",
11759
+ "fieldType": "URN"
11760
+ },
11761
+ "/time": {
11762
+ "fieldName": "createdAt",
11763
+ "fieldType": "DATETIME"
11764
+ }
11765
+ },
11766
+ "type": "com.linkedin.pegasus2avro.common.AuditStamp",
11767
+ "name": "created",
11768
+ "doc": "Audit stamp for when and by whom this template was created"
11769
+ },
11770
+ {
11771
+ "Searchable": {
11772
+ "/time": {
11773
+ "fieldName": "lastModifiedAt",
11774
+ "fieldType": "DATETIME"
11775
+ }
11776
+ },
11777
+ "type": "com.linkedin.pegasus2avro.common.AuditStamp",
11778
+ "name": "lastModified",
11779
+ "doc": "Audit stamp for when and by whom this template was last updated"
11780
+ }
11781
+ ],
11782
+ "doc": "The main properties of a DataHub page template"
11783
+ },
11468
11784
  {
11469
11785
  "type": "record",
11470
11786
  "Aspect": {
@@ -12251,6 +12567,27 @@
12251
12567
  ],
12252
12568
  "doc": "Key for a GlossaryTerm"
12253
12569
  },
12570
+ {
12571
+ "type": "record",
12572
+ "Aspect": {
12573
+ "name": "dataHubPageTemplateKey",
12574
+ "keyForEntity": "dataHubPageTemplate",
12575
+ "entityCategory": "core",
12576
+ "entityAspects": [
12577
+ "dataHubPageTemplateProperties"
12578
+ ]
12579
+ },
12580
+ "name": "DataHubPageTemplateKey",
12581
+ "namespace": "com.linkedin.pegasus2avro.metadata.key",
12582
+ "fields": [
12583
+ {
12584
+ "type": "string",
12585
+ "name": "id",
12586
+ "doc": "Unique id for the template."
12587
+ }
12588
+ ],
12589
+ "doc": "Key for a DataHubPageTemplate"
12590
+ },
12254
12591
  {
12255
12592
  "type": "record",
12256
12593
  "Aspect": {
@@ -12571,6 +12908,27 @@
12571
12908
  ],
12572
12909
  "doc": "Key for a Tag"
12573
12910
  },
12911
+ {
12912
+ "type": "record",
12913
+ "Aspect": {
12914
+ "name": "dataHubPageModuleKey",
12915
+ "keyForEntity": "dataHubPageModule",
12916
+ "entityCategory": "core",
12917
+ "entityAspects": [
12918
+ "dataHubPageModuleProperties"
12919
+ ]
12920
+ },
12921
+ "name": "DataHubPageModuleKey",
12922
+ "namespace": "com.linkedin.pegasus2avro.metadata.key",
12923
+ "fields": [
12924
+ {
12925
+ "type": "string",
12926
+ "name": "id",
12927
+ "doc": "Unique id for the module."
12928
+ }
12929
+ ],
12930
+ "doc": "Key for a DataHubPageModule"
12931
+ },
12574
12932
  {
12575
12933
  "type": "record",
12576
12934
  "Aspect": {
@@ -18148,6 +18506,31 @@
18148
18506
  "columnPropagationEnabled": true
18149
18507
  },
18150
18508
  "doc": "Settings related to the documentation propagation feature"
18509
+ },
18510
+ {
18511
+ "type": [
18512
+ "null",
18513
+ {
18514
+ "type": "record",
18515
+ "name": "GlobalHomePageSettings",
18516
+ "namespace": "com.linkedin.pegasus2avro.settings.global",
18517
+ "fields": [
18518
+ {
18519
+ "java": {
18520
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
18521
+ },
18522
+ "Urn": "Urn",
18523
+ "type": "string",
18524
+ "name": "defaultTemplate",
18525
+ "doc": "The urn that will be rendered in the UI by default for all users"
18526
+ }
18527
+ ],
18528
+ "doc": "Global settings related to the home page for an instance"
18529
+ }
18530
+ ],
18531
+ "name": "homePage",
18532
+ "default": null,
18533
+ "doc": "Global settings related to the home page for an instance"
18151
18534
  }
18152
18535
  ],
18153
18536
  "doc": "DataHub Global platform settings. Careful - these should not be modified by the outside world!"
@@ -159,6 +159,31 @@
159
159
  "name": "notificationSettings",
160
160
  "default": null,
161
161
  "doc": "Notification settings for a user"
162
+ },
163
+ {
164
+ "type": [
165
+ "null",
166
+ {
167
+ "type": "record",
168
+ "name": "CorpUserHomePageSettings",
169
+ "namespace": "com.linkedin.pegasus2avro.identity",
170
+ "fields": [
171
+ {
172
+ "java": {
173
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
174
+ },
175
+ "type": "string",
176
+ "name": "pageTemplate",
177
+ "doc": "The page template that will be rendered in the UI by default for this user",
178
+ "Urn": "Urn"
179
+ }
180
+ ],
181
+ "doc": "Settings related to the home page for a user"
182
+ }
183
+ ],
184
+ "name": "homePage",
185
+ "default": null,
186
+ "doc": "Settings related to the home page for a user"
162
187
  }
163
188
  ],
164
189
  "doc": "Settings that a user can customize through the datahub ui"