acryl-datahub-cloud 0.3.13.2rc4__py3-none-any.whl → 0.3.14rc0__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-cloud might be problematic. Click here for more details.

Files changed (33) hide show
  1. acryl_datahub_cloud/_codegen_config.json +1 -1
  2. acryl_datahub_cloud/datahub_usage_reporting/usage_feature_reporter.py +443 -34
  3. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/identity/__init__.py +6 -0
  4. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/metadata/search/features/__init__.py +2 -0
  5. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/platform/event/v1/__init__.py +4 -0
  6. acryl_datahub_cloud/metadata/schema.avsc +445 -107
  7. acryl_datahub_cloud/metadata/schema_classes.py +420 -19
  8. acryl_datahub_cloud/metadata/schemas/ActionRequestInfo.avsc +95 -0
  9. acryl_datahub_cloud/metadata/schemas/AssertionAnalyticsRunEvent.avsc +0 -21
  10. acryl_datahub_cloud/metadata/schemas/ChartInfo.avsc +2 -1
  11. acryl_datahub_cloud/metadata/schemas/CorpUserInvitationStatus.avsc +106 -0
  12. acryl_datahub_cloud/metadata/schemas/CorpUserKey.avsc +2 -0
  13. acryl_datahub_cloud/metadata/schemas/CorpUserUsageFeatures.avsc +93 -0
  14. acryl_datahub_cloud/metadata/schemas/DataHubPageModuleProperties.avsc +13 -2
  15. acryl_datahub_cloud/metadata/schemas/DatasetUsageStatistics.avsc +8 -0
  16. acryl_datahub_cloud/metadata/schemas/InferredMetadata.avsc +69 -0
  17. acryl_datahub_cloud/metadata/schemas/InviteToken.avsc +26 -0
  18. acryl_datahub_cloud/metadata/schemas/LogicalParent.avsc +104 -100
  19. acryl_datahub_cloud/metadata/schemas/MetadataChangeEvent.avsc +98 -45
  20. acryl_datahub_cloud/metadata/schemas/NotificationRequest.avsc +71 -0
  21. acryl_datahub_cloud/metadata/schemas/Ownership.avsc +69 -0
  22. acryl_datahub_cloud/metadata/schemas/RelationshipChangeEvent.avsc +215 -0
  23. acryl_datahub_cloud/metadata/schemas/SchemaFieldKey.avsc +2 -0
  24. acryl_datahub_cloud/metadata/schemas/StructuredProperties.avsc +69 -0
  25. acryl_datahub_cloud/metadata/schemas/StructuredPropertyDefinition.avsc +3 -0
  26. acryl_datahub_cloud/sdk/assertions_client.py +21 -7
  27. acryl_datahub_cloud/sdk/resolver_client.py +4 -1
  28. acryl_datahub_cloud/sdk/subscription_client.py +8 -3
  29. {acryl_datahub_cloud-0.3.13.2rc4.dist-info → acryl_datahub_cloud-0.3.14rc0.dist-info}/METADATA +48 -48
  30. {acryl_datahub_cloud-0.3.13.2rc4.dist-info → acryl_datahub_cloud-0.3.14rc0.dist-info}/RECORD +33 -30
  31. {acryl_datahub_cloud-0.3.13.2rc4.dist-info → acryl_datahub_cloud-0.3.14rc0.dist-info}/WHEEL +0 -0
  32. {acryl_datahub_cloud-0.3.13.2rc4.dist-info → acryl_datahub_cloud-0.3.14rc0.dist-info}/entry_points.txt +0 -0
  33. {acryl_datahub_cloud-0.3.13.2rc4.dist-info → acryl_datahub_cloud-0.3.14rc0.dist-info}/top_level.txt +0 -0
@@ -435,6 +435,75 @@
435
435
  "name": "source",
436
436
  "default": null,
437
437
  "doc": "Source information for the ownership"
438
+ },
439
+ {
440
+ "Searchable": {
441
+ "/actor": {
442
+ "fieldName": "ownerAttributionActors",
443
+ "fieldType": "URN",
444
+ "queryByDefault": false
445
+ },
446
+ "/source": {
447
+ "fieldName": "ownerAttributionSources",
448
+ "fieldType": "URN",
449
+ "queryByDefault": false
450
+ },
451
+ "/time": {
452
+ "fieldName": "ownerAttributionDates",
453
+ "fieldType": "DATETIME",
454
+ "queryByDefault": false
455
+ }
456
+ },
457
+ "type": [
458
+ "null",
459
+ {
460
+ "type": "record",
461
+ "name": "MetadataAttribution",
462
+ "namespace": "com.linkedin.pegasus2avro.common",
463
+ "fields": [
464
+ {
465
+ "type": "long",
466
+ "name": "time",
467
+ "doc": "When this metadata was updated."
468
+ },
469
+ {
470
+ "java": {
471
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
472
+ },
473
+ "type": "string",
474
+ "name": "actor",
475
+ "doc": "The entity (e.g. a member URN) responsible for applying the assocated metadata. This can\neither be a user (in case of UI edits) or the datahub system for automation.",
476
+ "Urn": "Urn"
477
+ },
478
+ {
479
+ "java": {
480
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
481
+ },
482
+ "type": [
483
+ "null",
484
+ "string"
485
+ ],
486
+ "name": "source",
487
+ "default": null,
488
+ "doc": "The DataHub source responsible for applying the associated metadata. This will only be filled out\nwhen a DataHub source is responsible. This includes the specific metadata test urn, the automation urn.",
489
+ "Urn": "Urn"
490
+ },
491
+ {
492
+ "type": {
493
+ "type": "map",
494
+ "values": "string"
495
+ },
496
+ "name": "sourceDetail",
497
+ "default": {},
498
+ "doc": "The details associated with why this metadata was applied. For example, this could include\nthe actual regex rule, sql statement, ingestion pipeline ID, etc.\nAlso can include flags like 'propagated'=true or 'inferred'=true."
499
+ }
500
+ ],
501
+ "doc": "Information about who, why, and how this metadata was applied"
502
+ }
503
+ ],
504
+ "name": "attribution",
505
+ "default": null,
506
+ "doc": "Information about who, why, and how this metadata was applied"
438
507
  }
439
508
  ],
440
509
  "doc": "Ownership information"
@@ -556,6 +625,32 @@
556
625
  "name": "lastModified",
557
626
  "default": null,
558
627
  "doc": "Audit stamp containing who last modified this relationship edge and when"
628
+ },
629
+ {
630
+ "Searchable": {
631
+ "/actor": {
632
+ "fieldName": "structuredPropertyAttributionActors",
633
+ "fieldType": "URN",
634
+ "queryByDefault": false
635
+ },
636
+ "/source": {
637
+ "fieldName": "structuredPropertyAttributionSources",
638
+ "fieldType": "URN",
639
+ "queryByDefault": false
640
+ },
641
+ "/time": {
642
+ "fieldName": "structuredPropertyAttributionDates",
643
+ "fieldType": "DATETIME",
644
+ "queryByDefault": false
645
+ }
646
+ },
647
+ "type": [
648
+ "null",
649
+ "com.linkedin.pegasus2avro.common.MetadataAttribution"
650
+ ],
651
+ "name": "attribution",
652
+ "default": null,
653
+ "doc": "Information about who, why, and how this metadata was applied"
559
654
  }
560
655
  ]
561
656
  }
@@ -167,27 +167,6 @@
167
167
  "doc": "Data Platform for parent",
168
168
  "Urn": "Urn"
169
169
  },
170
- {
171
- "Searchable": {
172
- "/*": {
173
- "addToFilters": true,
174
- "fieldType": "URN",
175
- "hasValuesFieldName": "hasAsserteeContainer"
176
- }
177
- },
178
- "TimeseriesField": {},
179
- "java": {
180
- "class": "com.linkedin.pegasus2avro.common.urn.Urn"
181
- },
182
- "type": [
183
- "null",
184
- "string"
185
- ],
186
- "name": "asserteeContainer",
187
- "default": null,
188
- "doc": "The Container attached to the entity's parent Asset",
189
- "Urn": "Urn"
190
- },
191
170
  {
192
171
  "Searchable": {
193
172
  "addToFilters": true,
@@ -188,7 +188,8 @@
188
188
  "createdActor": "inputEdges/*/created/actor",
189
189
  "createdOn": "inputEdges/*/created/time",
190
190
  "entityTypes": [
191
- "dataset"
191
+ "dataset",
192
+ "chart"
192
193
  ],
193
194
  "isLineage": true,
194
195
  "name": "Consumes",
@@ -0,0 +1,106 @@
1
+ {
2
+ "type": "record",
3
+ "Aspect": {
4
+ "name": "corpUserInvitationStatus"
5
+ },
6
+ "name": "CorpUserInvitationStatus",
7
+ "namespace": "com.linkedin.pegasus2avro.identity",
8
+ "fields": [
9
+ {
10
+ "Searchable": {
11
+ "fieldType": "URN",
12
+ "hasValuesFieldName": "hasRole",
13
+ "queryByDefault": false
14
+ },
15
+ "java": {
16
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
17
+ },
18
+ "type": [
19
+ "null",
20
+ "string"
21
+ ],
22
+ "name": "role",
23
+ "default": null,
24
+ "doc": "Role will only work in non-sso environments today.",
25
+ "Urn": "Urn"
26
+ },
27
+ {
28
+ "type": {
29
+ "type": "record",
30
+ "name": "AuditStamp",
31
+ "namespace": "com.linkedin.pegasus2avro.common",
32
+ "fields": [
33
+ {
34
+ "type": "long",
35
+ "name": "time",
36
+ "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
37
+ },
38
+ {
39
+ "java": {
40
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
41
+ },
42
+ "type": "string",
43
+ "name": "actor",
44
+ "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
45
+ "Urn": "Urn"
46
+ },
47
+ {
48
+ "java": {
49
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
50
+ },
51
+ "type": [
52
+ "null",
53
+ "string"
54
+ ],
55
+ "name": "impersonator",
56
+ "default": null,
57
+ "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
58
+ "Urn": "Urn"
59
+ },
60
+ {
61
+ "type": [
62
+ "null",
63
+ "string"
64
+ ],
65
+ "name": "message",
66
+ "default": null,
67
+ "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
68
+ }
69
+ ],
70
+ "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
71
+ },
72
+ "name": "created",
73
+ "doc": "Created Audit"
74
+ },
75
+ {
76
+ "Searchable": {
77
+ "fieldName": "invitationStatus",
78
+ "fieldType": "KEYWORD",
79
+ "queryByDefault": false
80
+ },
81
+ "type": {
82
+ "type": "enum",
83
+ "name": "InvitationStatus",
84
+ "namespace": "com.linkedin.pegasus2avro.identity",
85
+ "symbols": [
86
+ "SENT",
87
+ "ACCEPTED",
88
+ "REVOKED",
89
+ "SUGGESTION_DISMISSED"
90
+ ]
91
+ },
92
+ "name": "status",
93
+ "doc": "The status of the invitation"
94
+ },
95
+ {
96
+ "type": "com.linkedin.pegasus2avro.common.AuditStamp",
97
+ "name": "lastUpdated",
98
+ "doc": "Last Status Change Audit"
99
+ },
100
+ {
101
+ "type": "string",
102
+ "name": "invitationToken",
103
+ "doc": "Unique token for the invitation URL - hashed via SecretService "
104
+ }
105
+ ]
106
+ }
@@ -21,6 +21,8 @@
21
21
  "testResults",
22
22
  "subTypes",
23
23
  "slackUserInfo",
24
+ "corpUserUsageFeatures",
25
+ "corpUserInvitationStatus",
24
26
  "share",
25
27
  "formNotifications"
26
28
  ],
@@ -0,0 +1,93 @@
1
+ {
2
+ "type": "record",
3
+ "Aspect": {
4
+ "name": "corpUserUsageFeatures"
5
+ },
6
+ "name": "CorpUserUsageFeatures",
7
+ "namespace": "com.linkedin.pegasus2avro.metadata.search.features",
8
+ "fields": [
9
+ {
10
+ "Searchable": {
11
+ "fieldName": "userUsageTotalPast30DaysFeature",
12
+ "fieldType": "COUNT"
13
+ },
14
+ "type": [
15
+ "null",
16
+ "long"
17
+ ],
18
+ "name": "userUsageTotalPast30Days",
19
+ "default": null,
20
+ "doc": "Total number of usage in the last 30 days"
21
+ },
22
+ {
23
+ "Searchable": {
24
+ "/*": {
25
+ "fieldName": "platformUsageTotal",
26
+ "fieldType": "OBJECT",
27
+ "queryByDefault": false
28
+ }
29
+ },
30
+ "type": [
31
+ "null",
32
+ {
33
+ "type": "map",
34
+ "values": "double"
35
+ }
36
+ ],
37
+ "name": "userPlatformUsageTotalsPast30Days",
38
+ "default": null,
39
+ "doc": "usage broken down by platform so we can differentiate between top users of snowflake vs redshift\nkey is supposed to be platform urn"
40
+ },
41
+ {
42
+ "Searchable": {
43
+ "/*": {
44
+ "fieldName": "platformUsagePercentage",
45
+ "fieldType": "OBJECT",
46
+ "queryByDefault": false
47
+ }
48
+ },
49
+ "type": [
50
+ "null",
51
+ {
52
+ "type": "map",
53
+ "values": "double"
54
+ }
55
+ ],
56
+ "name": "userPlatformUsagePercentilePast30Days",
57
+ "default": null,
58
+ "doc": "usage broken down by platform so we can differentiate between top users of snowflake vs redshift"
59
+ },
60
+ {
61
+ "Searchable": {
62
+ "fieldName": "userUsagePercentilePast30DaysFeature",
63
+ "fieldType": "DOUBLE"
64
+ },
65
+ "type": [
66
+ "null",
67
+ "double"
68
+ ],
69
+ "name": "userUsagePercentilePast30Days",
70
+ "default": null,
71
+ "doc": "Platform usage total percentile for ranking users across all platforms"
72
+ },
73
+ {
74
+ "Searchable": {
75
+ "/*": {
76
+ "fieldName": "topDatasetsByUsage",
77
+ "fieldType": "OBJECT",
78
+ "queryByDefault": false
79
+ }
80
+ },
81
+ "type": [
82
+ "null",
83
+ {
84
+ "type": "map",
85
+ "values": "double"
86
+ }
87
+ ],
88
+ "name": "userTopDatasetsByUsage",
89
+ "default": null,
90
+ "doc": "Gather what are the top datasets per user so we can create a welcome module\nWith links to the users top datasets with lineage (top 25)\nMap keys are dataset URN strings"
91
+ }
92
+ ]
93
+ }
@@ -24,7 +24,8 @@
24
24
  "LINK": "Link type module",
25
25
  "OWNED_ASSETS": "Module displaying assets owned by a user",
26
26
  "RICH_TEXT": "Module containing rich text to be rendered",
27
- "SUBSCRIBED_ASSETS": "Module displaying assets subscribed to by a given user"
27
+ "SUBSCRIBED_ASSETS": "Module displaying assets subscribed to by a given user",
28
+ "WORKFLOWS": "Module displaying workflows that can be started"
28
29
  },
29
30
  "name": "DataHubPageModuleType",
30
31
  "namespace": "com.linkedin.pegasus2avro.module",
@@ -35,7 +36,8 @@
35
36
  "HIERARCHY",
36
37
  "OWNED_ASSETS",
37
38
  "DOMAINS",
38
- "SUBSCRIBED_ASSETS"
39
+ "SUBSCRIBED_ASSETS",
40
+ "WORKFLOWS"
39
41
  ],
40
42
  "doc": "Enum containing the types of page modules that there are"
41
43
  },
@@ -150,6 +152,15 @@
150
152
  "name": "assetUrns",
151
153
  "Urn": "Urn",
152
154
  "urn_is_array": true
155
+ },
156
+ {
157
+ "type": [
158
+ "null",
159
+ "string"
160
+ ],
161
+ "name": "dynamicFilterJson",
162
+ "default": null,
163
+ "doc": "Optional dynamic filters\n\nThe stringified json representing the logical predicate built in the UI to select assets.\nThis predicate is turned into orFilters to send through graphql since graphql doesn't support\narbitrary nesting. This string is used to restore the UI for this logical predicate."
153
164
  }
154
165
  ],
155
166
  "doc": "The params required if the module is type ASSET_COLLECTION"
@@ -130,6 +130,10 @@
130
130
  "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
131
131
  },
132
132
  {
133
+ "Searchable": {
134
+ "fieldType": "COUNT",
135
+ "hasValuesFieldName": "hasUniqueUserCount"
136
+ },
133
137
  "TimeseriesField": {},
134
138
  "type": [
135
139
  "null",
@@ -140,6 +144,10 @@
140
144
  "doc": "Unique user count"
141
145
  },
142
146
  {
147
+ "Searchable": {
148
+ "fieldType": "COUNT",
149
+ "hasValuesFieldName": "hasTotalSqlQueriesCount"
150
+ },
143
151
  "TimeseriesField": {},
144
152
  "type": [
145
153
  "null",
@@ -371,6 +371,75 @@
371
371
  "name": "source",
372
372
  "default": null,
373
373
  "doc": "Source information for the ownership"
374
+ },
375
+ {
376
+ "Searchable": {
377
+ "/actor": {
378
+ "fieldName": "ownerAttributionActors",
379
+ "fieldType": "URN",
380
+ "queryByDefault": false
381
+ },
382
+ "/source": {
383
+ "fieldName": "ownerAttributionSources",
384
+ "fieldType": "URN",
385
+ "queryByDefault": false
386
+ },
387
+ "/time": {
388
+ "fieldName": "ownerAttributionDates",
389
+ "fieldType": "DATETIME",
390
+ "queryByDefault": false
391
+ }
392
+ },
393
+ "type": [
394
+ "null",
395
+ {
396
+ "type": "record",
397
+ "name": "MetadataAttribution",
398
+ "namespace": "com.linkedin.pegasus2avro.common",
399
+ "fields": [
400
+ {
401
+ "type": "long",
402
+ "name": "time",
403
+ "doc": "When this metadata was updated."
404
+ },
405
+ {
406
+ "java": {
407
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
408
+ },
409
+ "type": "string",
410
+ "name": "actor",
411
+ "doc": "The entity (e.g. a member URN) responsible for applying the assocated metadata. This can\neither be a user (in case of UI edits) or the datahub system for automation.",
412
+ "Urn": "Urn"
413
+ },
414
+ {
415
+ "java": {
416
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
417
+ },
418
+ "type": [
419
+ "null",
420
+ "string"
421
+ ],
422
+ "name": "source",
423
+ "default": null,
424
+ "doc": "The DataHub source responsible for applying the associated metadata. This will only be filled out\nwhen a DataHub source is responsible. This includes the specific metadata test urn, the automation urn.",
425
+ "Urn": "Urn"
426
+ },
427
+ {
428
+ "type": {
429
+ "type": "map",
430
+ "values": "string"
431
+ },
432
+ "name": "sourceDetail",
433
+ "default": {},
434
+ "doc": "The details associated with why this metadata was applied. For example, this could include\nthe actual regex rule, sql statement, ingestion pipeline ID, etc.\nAlso can include flags like 'propagated'=true or 'inferred'=true."
435
+ }
436
+ ],
437
+ "doc": "Information about who, why, and how this metadata was applied"
438
+ }
439
+ ],
440
+ "name": "attribution",
441
+ "default": null,
442
+ "doc": "Information about who, why, and how this metadata was applied"
374
443
  }
375
444
  ],
376
445
  "doc": "Ownership information"
@@ -28,6 +28,32 @@
28
28
  "default": null,
29
29
  "doc": "The role that this invite token may be associated with",
30
30
  "Urn": "Urn"
31
+ },
32
+ {
33
+ "Searchable": {
34
+ "fieldName": "tokenType",
35
+ "fieldType": "KEYWORD"
36
+ },
37
+ "type": [
38
+ {
39
+ "type": "enum",
40
+ "symbolDocs": {
41
+ "INDIVIDUAL": "Individual token generated for bulk invitations. Single-use, consumed on signup.",
42
+ "SHARED": "Shared token that admin can copy and share manually. Reusable until admin regenerates."
43
+ },
44
+ "name": "TokenType",
45
+ "namespace": "com.linkedin.pegasus2avro.identity",
46
+ "symbols": [
47
+ "SHARED",
48
+ "INDIVIDUAL"
49
+ ],
50
+ "doc": "Token types for different invitation workflows"
51
+ },
52
+ "null"
53
+ ],
54
+ "name": "tokenType",
55
+ "default": "SHARED",
56
+ "doc": "The type of invite token - shared (admin managed) or individual (single-use)"
31
57
  }
32
58
  ],
33
59
  "doc": "Aspect used to store invite tokens."