mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-25 16:05:11 +00:00
85 lines
2.9 KiB
Protocol Buffer
85 lines
2.9 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
|
|
TERM = 2; // Datahub Term
|
|
}
|
|
|
|
/*
|
|
Example below: The following is not required for annotation processing. This is an example
|
|
of creating an annotation using an enum.
|
|
*/
|
|
|
|
enum MetaEnumExample {
|
|
UNKNOWN = 0;
|
|
ENTITY = 1;
|
|
EVENT = 2;
|
|
}
|
|
|
|
// Assuming Glossary Term defined from bootstrap example
|
|
enum Classification {
|
|
HighlyConfidential = 0;
|
|
Confidential = 1;
|
|
Sensitive = 2;
|
|
}
|
|
|
|
message fld {
|
|
extend google.protobuf.FieldOptions {
|
|
// Required: Mark option field with how to export to DataHub in one or more places.
|
|
repeated meta.DataHubMetadataType type = 6000;
|
|
|
|
/*
|
|
Examples below: The following is not required for annotation processing.
|
|
*/
|
|
|
|
// Set true if the field is a primary key. This works for any boolean with `primary_key` in it.
|
|
bool is_primary_key = 6010;
|
|
|
|
// Extract classification field option as a Term, either works
|
|
string classification = 6001 [(meta.fld.type) = TERM];
|
|
meta.Classification classification_enum = 6002 [(meta.fld.type) = TERM];
|
|
|
|
// Expose this option as a tag on the field.
|
|
string product_type = 70004 [(meta.fld.type) = TAG];
|
|
bool product_type_bool = 70005 [(meta.fld.type) = TAG];
|
|
meta.MetaEnumExample product_type_enum = 70006 [(meta.fld.type) = TAG];
|
|
}
|
|
}
|
|
|
|
message msg {
|
|
extend google.protobuf.MessageOptions {
|
|
/*
|
|
Examples below: The following is not required for annotation processing.
|
|
*/
|
|
|
|
// Place the classification term at the Message/Dataset level, either string or enum is supported
|
|
string classification = 4000 [(meta.fld.type) = TERM, (meta.fld.type) = PROPERTY];
|
|
meta.Classification classification_enum = 4001 [(meta.fld.type) = TERM, (meta.fld.type) = PROPERTY];
|
|
|
|
// Attach these Message/Dataset options as a tag and property.
|
|
string product = 5001 [(meta.fld.type) = TAG, (meta.fld.type) = PROPERTY];
|
|
string project = 5002 [(meta.fld.type) = TAG, (meta.fld.type) = PROPERTY];
|
|
string team = 5003 [(meta.fld.type) = TAG, (meta.fld.type) = PROPERTY];
|
|
|
|
string domain = 60003 [(meta.fld.type) = TAG, (meta.fld.type) = PROPERTY];
|
|
meta.MetaEnumExample type = 60004 [(meta.fld.type) = TAG, (meta.fld.type) = PROPERTY];
|
|
bool bool_feature = 60005 [(meta.fld.type) = TAG];
|
|
string alert_channel = 60007 [(meta.fld.type) = PROPERTY];
|
|
}
|
|
} |