Skip to content

Commit 4117086

Browse files
committed
update
1 parent ee210b6 commit 4117086

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,18 @@ The fixed structure must be technology-agnostic. The first fields of teh fixed s
4545
* `Maturity: [Option[String]]` this is an enum to let the consumer understand if it is a tactical solution or not. It is really useful during migration from Data Warehouse or Data Lake. Allowed values are: `[Tactical|Strategic]`.
4646
* `Billing: [Option[Yaml]]` this is a free form key-value area where is possible to put information useful for resource tagging and billing.
4747
* `Tags: [Array[Yaml]]` Tag labels at DP level ( please refer to [OpenMetadata documentation](https://docs.open-metadata.org/v1.0.0/main-concepts/metadata-standard/schemas/type/taglabel)).
48+
* `BusinessConcepts: [Array[Yaml]]` Link with Business Concepts coming from the Business Ontology/Glossary at DP level ( please refer to [OpenMetadata documentation](https://docs.open-metadata.org/v1.0.0/main-concepts/metadata-standard/schemas/type/taglabel)). Source field must be "Glossary" and the href must link to the Uri of the external glossary or ontology
49+
* `SecurityInfo: [Yaml]` Security attributes provide guidance to understand who can access this Data Product and which authorizations are needed
50+
* `Confidentiality: [Option[String]]`
51+
* `Visibility: [Option[String]]`
52+
* `GDPR: [Option[String]]`
53+
* `BusinessInfo: [Yaml]`
54+
* `ValueProposition: [Option[String]]`: Describe the valu eproposition of the data product from a business standpoint
55+
* `StakeholderRoles: Array[String]`: List of stakeholders involved, interested and supporting this data product
56+
* `PricingType: [Option[String]]`: It could be Subscription or Pay as You Consume
57+
* `PricingInfo: [Yaml]`: Free structure field to describe the pricing structure of the data product
58+
* `StrategicInitiatives: Array[String]` Provides the linking between the Data Product and the strategic initiatives of the company, for example is possible to link Company OKR
59+
* `TargetConsumption: [Array[String]]` Define which are the ideal consumption cases for this data product. It could be analytics, reporting, online application, etc.
4860
* `Specific: [Yaml]` this is a custom section where we can put all the information strictly related to a specific execution environment. It can also refer to an additional file. At this level we also embed all the information to provision the general infrastructure (resource groups, networking, etc.) needed for a specific Data Product. For example if a company decides to create a ResourceGroup for each data product and have a subscription reference for each domain and environment, it will be specified at this level. Also, it is recommended to put general security here, Azure Policy or IAM policies, VPC/Vnet, Subnet. This will be filled merging data defined at common level with values defined specifically for the selected environment.
4961

5062
The **unique identifier** of a Data Product is the concatenation of Domain, Name and Version. So we will refer to the `DP_UK` as a URN which ends in the following way: `$DPDomain:$DPName:$DPMajorVersion`.

data-product-specification.cue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import "strings"
3939
description?: string | null
4040
fullyQualifiedName?: string | null
4141
tags?: [... #OM_Tag]
42+
businessTerms?: [... #OM_Tag]
4243
constraint?: #OM_Constraint | null
4344
ordinalPosition?: number | null
4445
if dataType =~ "(?i)^(JSON)$" {
@@ -193,6 +194,22 @@ informationSLA?: string | null
193194
status?: string & =~"(?i)^(draft|published|retired)$" | null
194195
maturity?: string & =~"(?i)^(tactical|strategic)$" | null
195196
billing?: {...} | null
197+
businessInfo: {
198+
valueProposition: string | null
199+
strategicInitiatives: [... string] | null
200+
stakeholderRoles: [... string] | null
201+
pricingType: string & =~"(?i)^(PayPerUse|Subscription)$" | null
202+
pricingInfo: {...} | null
203+
...
204+
}
205+
securityInfo: {
206+
confidentiality: string & =~"(?i)^(Public|Internal|Confidential|Restricted|Secret)$"| null
207+
visibility: string & =~"(?i)^(Global|Department)$" | null
208+
GDPR: string & =~"(?i)^(Yes|No)$" | null
209+
...
210+
}
211+
targetConsumption: [... string] | null
196212
tags: [... #OM_Tag]
213+
businessConcepts: [... #OM_Tag]
197214
specific: {...}
198215
components: [#Component, ...#Component]

example.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,26 @@ informationSLA: 2WD
1717
status: DRAFT
1818
maturity: Strategic
1919
billing: {}
20+
businessInfo:
21+
valueProposition: Unlock some capability for the organization
22+
okr: increase the margin
23+
pricingType: Subscription
24+
stakeholderRoles:
25+
- CMO
26+
securityInfo:
27+
visibility: Department
28+
confidentiality: Confidential
29+
gdpr: Yes
30+
targetConsumption:
31+
- Analytics
32+
- Reporting
33+
- OnlineApplication
2034
tags: []
35+
businessConcepts:
36+
- tagFQN: Margin
37+
source: Glossary
38+
labelType: Manual
39+
state: Confirmed
2140
specific: {}
2241
components:
2342
- id: urn:dmb:cmp:my_domain:my_data_product:1:my_raw_s3_port
@@ -129,6 +148,11 @@ components:
129148
source: Tag
130149
labelType: Manual
131150
state: Confirmed
151+
businessTerms:
152+
- tagFQN: BusinessAddress
153+
source: Glossary
154+
labelType: Manual
155+
state: Confirmed
132156
- name: first_hire_date
133157
dataType: date
134158
description: the date of his/her first hire in mybank. No matter is a temporary or permanent contract

0 commit comments

Comments
 (0)