mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-31 18:59:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			153 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| 
 | |
| package meta;
 | |
| 
 | |
| import "google/protobuf/descriptor.proto";
 | |
| 
 | |
| /*
 | |
|    This is assigned to metadata fields. It describes how the metadata field should be represented
 | |
|    in DataHub. This enum must be used in the `meta` package. Multiple can be used for the same
 | |
|    metadata annotation. This allows a single piece of information to be captured in DataHub
 | |
|    as a property, tag and/or term.
 | |
| 
 | |
|    Tags can be strings, enums, or booleans
 | |
|    Terms can be strings or enums
 | |
|    Properties should be strings
 | |
| 
 | |
| */
 | |
| enum DataHubMetadataType {
 | |
|     PROPERTY    = 0; // Datahub Custom Property
 | |
|     TAG         = 1; // Datahub Tag
 | |
|     TAG_LIST    = 2; //    comma delimited string
 | |
|     TERM        = 3; // Datahub Term
 | |
|     OWNER       = 4; // Datahub Owner
 | |
|     DOMAIN      = 5; // Datahub Domain
 | |
|     DEPRECATION = 6; // Datahub Deprecation
 | |
| }
 | |
| 
 | |
| // Assuming Glossary Term defined from bootstrap example
 | |
| enum Classification {
 | |
|     HighlyConfidential = 0;
 | |
|     Confidential = 1;
 | |
|     Sensitive = 2;
 | |
| }
 | |
| 
 | |
| message datahubField {
 | |
|       extend google.protobuf.FieldOptions {
 | |
|           // Required: Mark option field with how to export to DataHub in one or more places.
 | |
|           repeated DataHubMetadataType type = 5000;
 | |
| 
 | |
|           // Set true if the field is a primary key. This works for any boolean with `primary_key` in it.
 | |
|           bool is_primary_key = 5010;
 | |
|       }
 | |
| }
 | |
| 
 | |
| message securityField {
 | |
|     extend google.protobuf.FieldOptions {
 | |
| 
 | |
|         // Extract classification field option as a Term, either works
 | |
|         string classification = 5100 [(datahubField.type) = TERM];
 | |
|         Classification classification_enum = 5101 [(datahubField.type) = TERM];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message field {
 | |
|     extend google.protobuf.FieldOptions {
 | |
| 
 | |
|         string tags = 5150 [(datahubField.type) = TAG_LIST];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message ownership {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         repeated string team = 5200 [(datahubField.type) = OWNER, (datahubField.type) = PROPERTY];
 | |
|         string data_steward = 5201 [(datahubField.type) = OWNER];
 | |
|         string domain = 5202 [(datahubField.type) = DOMAIN, (datahubField.type) = PROPERTY];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message security {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         // Place the classification term at the Message/Dataset level, either string or enum is supported
 | |
|         string classification = 5300 [(datahubField.type) = TERM, (datahubField.type) = PROPERTY];
 | |
|         Classification classification_enum = 5301 [(datahubField.type) = TERM, (datahubField.type) = PROPERTY];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message kafka {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         repeated string topics = 5400 [(datahubField.type) = PROPERTY];
 | |
|     }
 | |
| }
 | |
| 
 | |
| enum Frequency {
 | |
|     REALTIME = 0;
 | |
|     DAILY = 1;
 | |
|     WEEKLY = 2;
 | |
|     MONTHLY = 3;
 | |
|     YEARLY = 4;
 | |
| }
 | |
| 
 | |
| message lifecycle {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         bool archived = 5500 [(datahubField.type) = TAG, (datahubField.type) = PROPERTY];
 | |
|         Frequency frequency = 5510 [(datahubField.type) = TAG, (datahubField.type) = PROPERTY];
 | |
|         string ttl = 5520 [(datahubField.type) = TAG];
 | |
| 
 | |
|         repeated string deprecation_note = 5530 [(datahubField.type) = DEPRECATION];
 | |
|         uint64 deprecation_time          = 5531 [(datahubField.type) = DEPRECATION];
 | |
|     }
 | |
| }
 | |
| 
 | |
| enum MessageType {
 | |
|     ENTITY = 0;
 | |
|     EVENT = 1;
 | |
|     IMPRESSION = 2;
 | |
| }
 | |
| 
 | |
| message message {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         string tags = 5600 [(datahubField.type) = TAG_LIST];
 | |
|         MessageType type = 5610 [(datahubField.type) = TAG, (datahubField.type) = PROPERTY];
 | |
| 
 | |
|         repeated string deprecation_note = 5620 [(datahubField.type) = DEPRECATION, (datahubField.type) = PROPERTY];
 | |
|         uint64 deprecation_time          = 5621 [(datahubField.type) = DEPRECATION, (datahubField.type) = PROPERTY];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message props {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         string prop1      = 5701 [(datahubField.type) = PROPERTY];
 | |
|         bool prop2        = 5702 [(datahubField.type) = PROPERTY];
 | |
|         MessageType prop3 = 5703 [(datahubField.type) = PROPERTY];
 | |
| 
 | |
|         repeated string prop4      = 5704 [(datahubField.type) = PROPERTY];
 | |
|         repeated MessageType prop6 = 5706 [(datahubField.type) = PROPERTY];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message tags {
 | |
|     extend google.protobuf.MessageOptions {
 | |
| 
 | |
|         string tag_str      = 5801 [(datahubField.type) = TAG];
 | |
|         bool tag_bool        = 5802 [(datahubField.type) = TAG];
 | |
|         MessageType tag_enum = 5803 [(datahubField.type) = TAG];
 | |
| 
 | |
|         string tag_list      = 5804 [(datahubField.type) = TAG_LIST];
 | |
|     }
 | |
| }
 | |
| 
 | |
| message fieldTags { extend google.protobuf.FieldOptions {
 | |
|     string tag_str                      = 5801 [(datahubField.type) = TAG];
 | |
|     bool tag_bool                     = 5802 [(datahubField.type) = TAG];
 | |
|     MessageType tag_enum = 5803 [(datahubField.type) = TAG];
 | |
| 
 | |
|     string tag_list                      = 5804 [(datahubField.type) = TAG_LIST];
 | |
| }}
 | 
