diff --git a/.project b/.project new file mode 100644 index 00000000..cf127aba --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ + + + proton + Project proton created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + + + 1625977453235 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..abac91ec --- /dev/null +++ b/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/odpf/entities/common/event.proto b/odpf/entities/common/event.proto new file mode 100644 index 00000000..b2bf5371 --- /dev/null +++ b/odpf/entities/common/event.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package odpf.entities.common; + +option java_package = "io.odpf.entities.common"; +option java_outer_classname = "Event"; +option go_package = "github.com/odpf/proton/entities/common"; + +import "google/protobuf/timestamp.proto"; + +// Event represents an event in the system. +// Event is majorly used to represent the state of the system in the form of events. +// It can be used in any schema which intend to produce events to message bus. +message Event { + // Required. The timestamp of the event. + // For example "2018-01-01T00:00:00Z". + google.protobuf.Timestamp timestamp = 1; + // Optional. The activity that created the event. + // For example "create", "update". + string action = 2; + // Optional. The description of the event. + // For example "user is created from signup form". + string description = 3; + +} diff --git a/odpf/entities/common/resource.proto b/odpf/entities/common/resource.proto new file mode 100644 index 00000000..bb84055f --- /dev/null +++ b/odpf/entities/common/resource.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package odpf.entities.common; + +option java_package = "io.odpf.entities.common"; +option java_outer_classname = "Resource"; +option go_package = "github.com/odpf/proton/entities/common"; + + +// Resource is a generic resource that represents a file or other resource. +// It can be a data asset, job, user or group. +message Resource { + // Required. The unique identifier of the resource. + // For example. "user:jdoe" or "group:accounting". + string urn = 1; + // Required. The name of the resource. + // For example. "John Doe" or "Accounting". + string name = 2; + // Required. The source of the resource. + // For example. "github" or "bigquery". + string source = 3; + // Required. The type of the resource. + // For example. "user" or "group". + string type = 4; +} diff --git a/odpf/entities/common/timestamp.proto b/odpf/entities/common/timestamp.proto new file mode 100644 index 00000000..1679891c --- /dev/null +++ b/odpf/entities/common/timestamp.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package odpf.entities.common; + +option java_package = "io.odpf.entities.common"; +option java_outer_classname = "Timestamp"; +option go_package = "github.com/odpf/proton/entities/common"; + +import "google/protobuf/timestamp.proto"; + +// Timestamp represents created and modified timestamps. +message Timestamp { + // Created is the timestamp when the object was created. + google.protobuf.Timestamp created_at = 1; + // Updated is the timestamp when the object was last modified. + google.protobuf.Timestamp updated_at = 2; +} diff --git a/odpf/entities/facets/columns.proto b/odpf/entities/facets/columns.proto new file mode 100644 index 00000000..e9c397d4 --- /dev/null +++ b/odpf/entities/facets/columns.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +package odpf.entities.facets; + +option java_package = "io.odpf.entities.facets"; +option java_outer_classname = "Columns"; +option go_package = "github.com/odpf/proton/entities/facets"; + + +// Columns represents a list of columns. +// It is facet used to specify the schema of a table or a file. +message Columns { + // The list of columns. + repeated Column columns = 1; +} + +// Column represents a column in a table or a file. +message Column { + // Required. The name of the column. + // For example, "customer_id". + string name = 1; + // Optional. The description of the column. + // For example, "The unique id of the customer" + string description = 2; + // Required. The data type of the column. + // For example, "INT64". + string data_type = 3; + // Optional. The format of the column. + // For example, "true". + bool is_nullable = 4; + // Optional. The length of the column. + // For example, "10". + int64 length = 5; +} diff --git a/odpf/entities/facets/lineage.proto b/odpf/entities/facets/lineage.proto new file mode 100644 index 00000000..d41f1c40 --- /dev/null +++ b/odpf/entities/facets/lineage.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package odpf.entities.facets; + +option java_package = "io.odpf.entities.facets"; +option java_outer_classname = "Lineage"; +option go_package = "github.com/odpf/proton/entities/facets"; + +import "odpf/entities/common/resource.proto"; + +// Linage reprsents the relationship of resource to other resources. +// Relation is way of describing the relationship between two resources. +message Lineage { + // The resource that is the source of the relationship. + // For example, a resource that is the parent of another resource. + repeated odpf.entity.common.Resource upstreams = 1; + // The resource that is the destination of the relationship. + // For example, a resource that is the child of another resource. + repeated odpf.entity.common.Resource downstreams = 2; +} diff --git a/odpf/entities/facets/ownership.proto b/odpf/entities/facets/ownership.proto new file mode 100644 index 00000000..f54031c2 --- /dev/null +++ b/odpf/entities/facets/ownership.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +package odpf.entities.facets; + +option java_package = "io.odpf.entities.facets"; +option java_outer_classname = "Ownership"; +option go_package = "github.com/odpf/proton/entities/facets"; + +import "odpf/entities/common/resource.proto"; + +// Ownership is a facet that describes the ownership of a resource. +message Ownership { + // Requird: The list of owners of the resource. + // For an example check the owner schema. + repeated Owner owners = 7; +} + +// Owner is a facet that describes the owner of a resource. +message Owner { + // Required: The name of the owner. + // For example: "user:johndoe". + string urn = 1; + // Optional: The name of the owner. + // For example: "John Doe". + string name = 2; + // Optional: The role of the owner. + // For example: "admin", "steward". + string role = 3; +} \ No newline at end of file diff --git a/odpf/entities/facets/properties.proto b/odpf/entities/facets/properties.proto new file mode 100644 index 00000000..d3fb09c9 --- /dev/null +++ b/odpf/entities/facets/properties.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +package odpf.entities.facets; + +option java_package = "io.odpf.entities.facets"; +option java_outer_classname = "Properties"; +option go_package = "github.com/odpf/proton/entities/facets"; + +import "odpf/entities/common/resource.proto"; + +message Properties { + + // Optional: List of tags the user has. + repeated string tags = 1; + + //Optional. List of labels the user has. + map labels = 2; + + // Optional: List of properties the user has. + map fields = 3; + +} \ No newline at end of file diff --git a/odpf/entities/facets/schema.proto b/odpf/entities/facets/schema.proto new file mode 100644 index 00000000..dcea24a6 --- /dev/null +++ b/odpf/entities/facets/schema.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package odpf.entities.facets; + +option java_package = "io.odpf.entities.facets"; +option java_outer_classname = "Schema"; +option go_package = "github.com/odpf/proton/entities/facets"; + + +message TopicSchema { + string schema_url = 1; + string format = 2; +} diff --git a/odpf/entities/resources/dashboard.proto b/odpf/entities/resources/dashboard.proto new file mode 100644 index 00000000..8f2d4fe7 --- /dev/null +++ b/odpf/entities/resources/dashboard.proto @@ -0,0 +1,95 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "Dashboard"; +option go_package = "github.com/odpf/proton/entities/resources"; + +import "odpf/entities/facets/schema.proto"; +import "odpf/entities/facets/ownership.proto"; +import "odpf/entities/facets/lineage.proto"; +import "odpf/entities/facets/properties.proto"; + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + + +message Dashboard { + // Required. The unique identifier for the dashboard. + // For example, "dashboard-1". + string urn = 1; + // Optional. The name of the dashboard. + // For example, "Dashboard 1". + string name = 2; + // Required. The source of the dashboard. + // For example, "metabase". + string source = 3; + // Optional. The description of the dashboard. + // For example, "This dashboard was created by the Metabase team." + string description = 4; + // Required. The url of the dashboard. + // For example, "https://metabase.com/dashboard/dashboard-1". + string url = 5; + // Optional. The list of the charts in the dashboard. + // For an example, check the schema of the chart. + Chart charts = 21; + // Optional. The ownership of the topic. + // For an example check out ownership. + odpf.entities.facets.Ownership ownership = 31; + odpf.entities.facets.Properties properties = 32; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 33; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} + +message Chart { + // Required. The URN of the chart. + // For example, chart:1. + string urn = 1; + // Required. The name of the chart. + // For example, "My Chart". + string name = 2; + // Optional. The type of the chart. + // For example, "line". + string type = 3; + // Optional. The source of the chart. + // For example, "metabase". + string source = 4; + // Optional. The description of the chart. + // For example, "This is a chart for my dashboard." + string description = 5; + // Optional. The url of the chart. + // For example, "http://metabase.com/charts/mychart". + string url = 6; + // Optional. The raw query of the chart. + // For example, "SELECT * FROM my_table". + string raw_query = 7; + // Optional. The dashboard ur of the chart. + // For example, "dashboard:1". + string dashboard_urn = 8; + // Optional. The source of the dashboard of the chart. + // For example, "metabase". + string dashboard_source = 9; + // Optional. The ownership of the topic. + // For an example check out ownership. + odpf.entities.facets.Ownership ownership = 31; + // Optional. The lineage of the topic. + // For an example check out lineage schema. + odpf.entities.facets.Lineage lineage = 32; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.entities.facets.Properties properties = 33; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 34; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} diff --git a/odpf/entities/resources/group.proto b/odpf/entities/resources/group.proto new file mode 100644 index 00000000..1e600506 --- /dev/null +++ b/odpf/entities/resources/group.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "Group"; +option go_package = "github.com/odpf/proton/entities/resources"; + + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + +import "odpf/entities/facets/properties.proto"; + +// Group represents a group of users and resources. +message Group { + // Required. The unique identifier for the group. + // For example, "group:example". + string urn = 1; + // Optional. The name of the group. + // For example, "Example Group". + string name = 2; + // Optional. The email of the group. + // For example, "xyz@xyz.com" + string email = 3; + // Optional. Source of the group. + // For example, "example.com". + string source = 4; + // Required. The members of the group. + // For example look at schema of the member. + repeated Member members = 21; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.entities.facets.Properties properties = 31; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 32; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} + +// Member represents a user. +message Member { + // Required. The unique identifier for the user. + // For example, "user:example". + string urn = 1; + // Optional. The role of the user. + // For example, "owner". + string role = 2; +} \ No newline at end of file diff --git a/odpf/entities/resources/job.proto b/odpf/entities/resources/job.proto new file mode 100644 index 00000000..56efb598 --- /dev/null +++ b/odpf/entities/resources/job.proto @@ -0,0 +1,51 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "Job"; +option go_package = "github.com/odpf/proton/entities/resources"; + +import "odpf/entities/facets/columns.proto"; +import "odpf/entities/facets/ownership.proto"; +import "odpf/entities/facets/lineage.proto"; +import "odpf/entities/facets/properties.proto"; + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + +// Job is a resource that represents a job. +message Job { + // Required. The unique identifier of the job. + // For example, "job_1". + string urn = 1; + // Optional. The name of the job. + // For example, "Job 1". + string name = 2; + // Optional. The source of the job. + // For example, "airflow". + string source = 3; + // Optional. The type of the job. + // For example, "firehose", "stream". + string type = 4; + // Optional. The description of the job. + // For example, "This job is used to process data from a stream." + string description = 5; + // Optional. The ownership of the topic. + // For an example check out ownership. + odpf.meta.facets.Ownership ownership = 31; + // Optional. The lineage of the topic. + // For an example check out lineage schema. + odpf.meta.facets.Lineage lineage = 32; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.meta.facets.Properties properties = 33; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 34; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} \ No newline at end of file diff --git a/odpf/entities/resources/table.proto b/odpf/entities/resources/table.proto new file mode 100644 index 00000000..82d725c6 --- /dev/null +++ b/odpf/entities/resources/table.proto @@ -0,0 +1,66 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "Table"; +option go_package = "github.com/odpf/proton/entities/resources"; + +import "odpf/entities/facets/columns.proto"; +import "odpf/entities/facets/ownership.proto"; +import "odpf/entities/facets/lineage.proto"; +import "odpf/entities/facets/properties.proto"; + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + +// Table is a table in a database. +// It can be a file, a table, a view, a materialized view, a temporary table, or a virtual table. +message Table { + // Required. The URN of the table. + // For example, "my-database.my-schema.my-table". + string urn = 1; + // Required. The name of the table. + // For example, "my-table". + string name = 2; + // Optional. The source of the table. + // For example, "bigquery". + string source = 3; + // Optional. The description of the table. + // For example, "My User table". + string description = 4; + // Optional. The metrics about the table. + // For example check the profile schem. + TableProfile profile = 21; + // Optional. The columns of the table. + // For example, "id, name, age". + odpf.meta.facets.Columns schema = 22; + // Optional. The ownership of the topic. + // For an example check out ownership. + odpf.meta.facets.Ownership ownership = 31; + // Optional. The lineage of the topic. + // For an example check out lineage schema. + odpf.meta.facets.Lineage lineage = 32; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.meta.facets.Properties properties = 33; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 34; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} + +// TableProfile is the metrics about the table. +message TableProfile { + // Optional. The number of rows in the table. + // For example, "100". + int64 total_rows = 1; + // Optional. The number of rows in the table that are not deleted. + // For example, "event_timestamp". + string partition_key = 2; + string partition_value = 3; +} diff --git a/odpf/entities/resources/topic.proto b/odpf/entities/resources/topic.proto new file mode 100644 index 00000000..8049bf2e --- /dev/null +++ b/odpf/entities/resources/topic.proto @@ -0,0 +1,64 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "Topic"; +option go_package = "github.com/odpf/proton/entities/resources"; + +import "odpf/entities/facets/schema.proto"; +import "odpf/entities/facets/ownership.proto"; +import "odpf/entities/facets/lineage.proto"; +import "odpf/entities/facets/properties.proto"; + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + +// Topic is resource that represents a logical group of messages. +message Topic { + // Required. The URN of the topic. + // For example, "urn:odpf:topic:my-topic". + string urn = 1; + // Required. The name of the topic. + // For example, "My Topic". + string name = 2; + // Optional. The source of the topic. + // For example, "kafka", "pubsub". + string source = 3; + // Optional. The description of the topic. + // For example, "This is a topic for my application." + string description = 4; + // Optional. The metrics of the topic. + // For an example check out topic profile schema. + TopicProfile profile = 21; + // Optional. The schama of the topic. + // For an example check out topic schema. + odpf.entities.facets.TopicSchema schema = 31; + // Optional. The ownership of the topic. + // For an example check out ownership. + odpf.entities.facets.Ownership ownership = 32; + // Optional. The lineage of the topic. + // For an example check out lineage schema. + odpf.entities.facets.Lineage lineage = 33; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.entities.facets.Properties properties = 34; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 35; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} + +// TopicProfile is the profile of the topic. +message TopicProfile { + // Optional. The thrroughput of the topic. + // For example: "1m/minute". + string throughput = 1; + // Optional. The number of partitions in the topic. + // For example: 12. + int64 number_of_partitions = 2; +} diff --git a/odpf/entities/resources/user.proto b/odpf/entities/resources/user.proto new file mode 100644 index 00000000..c46949ad --- /dev/null +++ b/odpf/entities/resources/user.proto @@ -0,0 +1,93 @@ +syntax = "proto3"; + +package odpf.entities.resources; + +option java_package = "io.odpf.entities.resources"; +option java_outer_classname = "User"; +option go_package = "github.com/odpf/proton/entities/resources"; + + +import "odpf/entities/common/timestamp.proto"; +import "odpf/entities/common/event.proto"; + +import "odpf/entities/facets/properties.proto"; + +// User is a person who uses or operates something. +// It can be a user of the system, or a user of a device. +// User is a resource that represents a user. +message User { + // Required. The unique identifier of the user + // For example "user:jdoe" + string urn = 1; + // Optional. The source of the user account. + // For example "github" + string source = 2; + // Required. The emai address of the user. + // For example "job.deo@gmail.com" + string email = 3; + // Required. The username of the user. + // For example "johndoe" + string username = 4; + // Optional. The first name of the user. + // For example "john" + string first_name = 5; + // Optional. The last name of the user. + // For example "doe" + string last_name = 6; + // Optional. The full name of the user. + // For example "john mayer doe" + string full_name = 7; + // Optional. The display name of the user. + // For example "John M. Doe" + string display_name = 8; + // Optional. The job title of the user, + // For example "data engineer" + string title = 9; + // Required. The status of the user. + // For example "true" + bool is_active = 10; + // Optional. The email of the manger of the user. + // For example "rambo.ryan@gmail.com" + string manager_email = 11; + // Optional. List of the user social media accounts. + // For an example check out the profile schema. + repeated Profile profiles = 21; + // Optional. List of the groups user belongs to. + // A user can be part of multiple groups and have a different role in every group. + // For an example check out the membership schema. + repeated Membership memberships = 22; + // Optional. List of the user's custom properties. + // Properties facet can be used to set custom properties, tags and labels for a user. + // Properties are defined in the properties schema. + odpf.entities.facets.Properties properties = 31; + // Optional. The timestamp of the user's creation. + // Timstamp facet can be used to set the creation and updation timestamp of a user. + // Timestamps are defined in the timestamp schema. + odpf.entities.common.Timestamp timestamps = 32; + // Optional. The timestamp of the generated event. + // Event schemas is defined in the common event schema. + odpf.entities.common.Event event = 100; +} + +// Membership is a relationship between a user and a group. +message Membership { + // Required. The unique identifier of the group. + // For example "group:mygroup" + string group_urn = 1; + // Required. The role user has in the group. + // For example "owner" + repeated string role = 2; +} + +// Profile is a social media account of the user. +message Profile { + // Required. The unique identifier of the profile. + // For example "profile:jdoe" + string id = 1; + // Required. The type of the profile. + // For example "github" + string platform = 2; + // Required. The url of the profile. + // For example "http://github.com/jdoe" + string url = 3; +} diff --git a/odpf/meta/Chart.proto b/odpf/meta/Chart.proto deleted file mode 100644 index 27c4d2c4..00000000 --- a/odpf/meta/Chart.proto +++ /dev/null @@ -1,36 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Chart"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/Ownership.proto"; -import "odpf/meta/facets/Lineage.proto"; -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message ChartKey { - string urn = 1; -} - -message Chart { - string urn = 1; - string name = 2; - string type = 3; - string source = 4; - string description = 5; - string url = 6; - string raw_query = 7; - string dashboard_urn = 8; - string dashboard_source = 9; - odpf.meta.facets.Ownership ownership = 21; - odpf.meta.facets.Lineage lineage = 22; - odpf.meta.facets.Tags tags = 23; - odpf.meta.facets.Custom custom = 24; - odpf.meta.common.Timestamp timestamps = 25; - odpf.meta.common.Event event = 100; -} diff --git a/odpf/meta/Dashboard.proto b/odpf/meta/Dashboard.proto deleted file mode 100644 index a6dc539e..00000000 --- a/odpf/meta/Dashboard.proto +++ /dev/null @@ -1,32 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Dashboard"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/Chart.proto"; -import "odpf/meta/facets/Ownership.proto"; -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message DashboardKey { - string urn = 1; -} - -message Dashboard { - string urn = 1; - string name = 2; - string source = 3; - string description = 4; - string url = 5; - repeated odpf.meta.Chart charts = 6; - odpf.meta.facets.Ownership ownership = 21; - odpf.meta.facets.Tags tags = 22; - odpf.meta.facets.Custom custom = 23; - odpf.meta.common.Timestamp timestamps = 24; - odpf.meta.common.Event event = 100; -} diff --git a/odpf/meta/Group.proto b/odpf/meta/Group.proto deleted file mode 100644 index 4dd24ba1..00000000 --- a/odpf/meta/Group.proto +++ /dev/null @@ -1,33 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Group"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message GroupKey { - string urn = 1; -} - -message Group { - string urn = 1; - string name = 2; - string email = 3; - string source = 4; - repeated Member members = 5; - odpf.meta.facets.Tags tags = 21; - odpf.meta.facets.Custom custom = 22; - odpf.meta.common.Timestamp timestamps = 23; - odpf.meta.common.Event event = 100; -} - -message Member { - string urn = 1; - string role = 2; -} \ No newline at end of file diff --git a/odpf/meta/Job.proto b/odpf/meta/Job.proto deleted file mode 100644 index 137f2081..00000000 --- a/odpf/meta/Job.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Job"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/Lineage.proto"; -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message JobKey { - string urn = 1; -} - -message Job { - string urn = 1; - string name = 2; - string source = 3; - string type = 4; - string description = 5; - repeated odpf.meta.facets.Lineage lineage = 6; - odpf.meta.facets.Tags tags = 21; - odpf.meta.facets.Custom custom = 22; - odpf.meta.common.Timestamp timestamps = 23; - odpf.meta.common.Event event = 100; -} diff --git a/odpf/meta/Table.proto b/odpf/meta/Table.proto deleted file mode 100644 index 2418b51a..00000000 --- a/odpf/meta/Table.proto +++ /dev/null @@ -1,40 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Table"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/Columns.proto"; -import "odpf/meta/facets/Ownership.proto"; -import "odpf/meta/facets/Lineage.proto"; -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message TableKey { - string urn = 1; -} - -message Table { - string urn = 1; - string name = 2; - string source = 3; - string description = 4; - TableProfile profile = 5; - odpf.meta.facets.Columns schema = 6; - odpf.meta.facets.Ownership ownership = 7; - odpf.meta.facets.Lineage lineage = 8; - odpf.meta.facets.Tags tags = 21; - odpf.meta.facets.Custom custom = 22; - odpf.meta.common.Timestamp timestamps = 23; - odpf.meta.common.Event event = 100; -} - -message TableProfile { - int64 total_rows = 1; - string partition_key = 2; - string partition_value = 3; -} diff --git a/odpf/meta/Topic.proto b/odpf/meta/Topic.proto deleted file mode 100644 index 97a892c4..00000000 --- a/odpf/meta/Topic.proto +++ /dev/null @@ -1,39 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "Topic"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/TopicSchema.proto"; -import "odpf/meta/facets/Ownership.proto"; -import "odpf/meta/facets/Lineage.proto"; -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message TopicKey { - string urn = 1; -} - -message Topic { - string urn = 1; - string name = 2; - string source = 3; - string description = 4; - TopicProfile profile = 5; - odpf.meta.facets.TopicSchema schema = 6; - odpf.meta.facets.Ownership ownership = 7; - odpf.meta.facets.Lineage lineage = 8; - odpf.meta.facets.Tags tags = 21; - odpf.meta.facets.Custom custom = 22; - odpf.meta.common.Timestamp timestamps = 23; - odpf.meta.common.Event event = 100; -} - -message TopicProfile { - int64 throughput = 1; - int64 number_of_partitions = 2; -} diff --git a/odpf/meta/User.proto b/odpf/meta/User.proto deleted file mode 100644 index e8d20e0b..00000000 --- a/odpf/meta/User.proto +++ /dev/null @@ -1,48 +0,0 @@ -syntax = "proto3"; - -package odpf.meta; - -option java_package = "io.odpf.proton.meta"; -option java_outer_classname = "User"; -option go_package = "github.com/odpf/proton/meta"; - -import "odpf/meta/facets/Tags.proto"; -import "odpf/meta/facets/Custom.proto"; -import "odpf/meta/common/Timestamp.proto"; -import "odpf/meta/common/Event.proto"; - -message UserKey { - string urn = 1; -} - -message User { - string urn = 1; - string source = 2; - string email = 3; - string username = 4; - string first_name = 5; - string last_name = 6; - string full_name = 7; - string display_name = 8; - string title = 9; - bool is_active = 10; - string manager_email = 11; - repeated Profile profiles = 12; - repeated Membership memberships = 20; - odpf.meta.facets.Tags tags = 21; - odpf.meta.facets.Custom custom = 22; - odpf.meta.common.Timestamp timestamps = 23; - odpf.meta.common.Event event = 100; -} - -message Membership { - string group_urn = 1; - repeated string role = 2; -} - -message Profile { - string id = 1; - string platform = 2; - string url = 3; -} - diff --git a/odpf/meta/common/Event.proto b/odpf/meta/common/Event.proto deleted file mode 100644 index 3cd37af6..00000000 --- a/odpf/meta/common/Event.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.common; - -option java_package = "io.odpf.proton.meta.common"; -option java_outer_classname = "Event"; -option go_package = "github.com/odpf/proton/meta/common"; - -import "google/protobuf/timestamp.proto"; - -message Event { - string action = 1; - string description = 2; - google.protobuf.Timestamp timestamp = 100; -} diff --git a/odpf/meta/common/Resource.proto b/odpf/meta/common/Resource.proto deleted file mode 100644 index fbdde09b..00000000 --- a/odpf/meta/common/Resource.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.common; - -option java_package = "io.odpf.proton.meta.common"; -option java_outer_classname = "Resource"; -option go_package = "github.com/odpf/proton/meta/common"; - -message Resource { - string urn = 1; - string name = 2; - string source = 3; - string type = 4; -} diff --git a/odpf/meta/common/Timestamp.proto b/odpf/meta/common/Timestamp.proto deleted file mode 100644 index eec94f97..00000000 --- a/odpf/meta/common/Timestamp.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.common; - -option java_package = "io.odpf.proton.meta.common"; -option java_outer_classname = "Timestamp"; -option go_package = "github.com/odpf/proton/meta/common"; - -import "google/protobuf/timestamp.proto"; - -message Timestamp { - google.protobuf.Timestamp created_at = 1; - google.protobuf.Timestamp updated_at = 2; -} diff --git a/odpf/meta/facets/Columns.proto b/odpf/meta/facets/Columns.proto deleted file mode 100644 index c3756554..00000000 --- a/odpf/meta/facets/Columns.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "Columns"; -option go_package = "github.com/odpf/proton/meta/facets"; - -message Columns { - repeated Column columns = 1; -} - -message Column { - string name = 1; - string description = 2; - string data_type = 3; - bool is_nullable = 4; - int64 length = 5; -} diff --git a/odpf/meta/facets/Custom.proto b/odpf/meta/facets/Custom.proto deleted file mode 100644 index 5997697c..00000000 --- a/odpf/meta/facets/Custom.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "Custom"; -option go_package = "github.com/odpf/proton/meta/facets"; - -message Custom { - map custom_properties = 1; -} diff --git a/odpf/meta/facets/Lineage.proto b/odpf/meta/facets/Lineage.proto deleted file mode 100644 index 0b54206b..00000000 --- a/odpf/meta/facets/Lineage.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "Lineage"; -option go_package = "github.com/odpf/proton/meta/facets"; - -import "odpf/meta/common/Resource.proto"; - -message Lineage { - repeated odpf.meta.common.Resource upstreams = 1; - repeated odpf.meta.common.Resource downstreams = 2; -} diff --git a/odpf/meta/facets/Ownership.proto b/odpf/meta/facets/Ownership.proto deleted file mode 100644 index da58c7f7..00000000 --- a/odpf/meta/facets/Ownership.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "Ownership"; -option go_package = "github.com/odpf/proton/meta/facets"; - -message Ownership { - repeated Owner owners = 7; -} - -message Owner { - string urn = 1; - string name = 2; - string role = 3; -} \ No newline at end of file diff --git a/odpf/meta/facets/Tags.proto b/odpf/meta/facets/Tags.proto deleted file mode 100644 index 22a6611a..00000000 --- a/odpf/meta/facets/Tags.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "Tags"; -option go_package = "github.com/odpf/proton/meta/facets"; - -message Tags { - map tags = 1; -} diff --git a/odpf/meta/facets/TopicSchema.proto b/odpf/meta/facets/TopicSchema.proto deleted file mode 100644 index 4f7f9a55..00000000 --- a/odpf/meta/facets/TopicSchema.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; - -package odpf.meta.facets; - -option java_package = "io.odpf.proton.meta.facets"; -option java_outer_classname = "TopicSchema"; -option go_package = "github.com/odpf/proton/meta/facets"; - -message TopicSchema { - string schema_url = 1; - string format = 2; -} diff --git a/odpf/metadata/dataset.proto b/odpf/metadata/dataset.proto new file mode 100644 index 00000000..9cb3617b --- /dev/null +++ b/odpf/metadata/dataset.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; + +message Dataset { + +} \ No newline at end of file