| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | --
 | 
					
						
							|  |  |  | -- Table that captures all the relationships between entities
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS entity_relationship (
 | 
					
						
							|  |  |  |     fromId VARCHAR(36) NOT NULL,                -- ID of the from entity
 | 
					
						
							|  |  |  |     toId VARCHAR(36) NOT NULL,                  -- ID of the to entity
 | 
					
						
							|  |  |  |     fromEntity VARCHAR(256) NOT NULL,           -- Type name of the from entity
 | 
					
						
							|  |  |  |     toEntity VARCHAR(256) NOT NULL,             -- Type name of to entity
 | 
					
						
							|  |  |  |     relation TINYINT NOT NULL,
 | 
					
						
							|  |  |  |     jsonSchema VARCHAR(256),                    -- Schema used for generating JSON
 | 
					
						
							|  |  |  |     json JSON,                                  -- JSON payload with additional information
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     deleted BOOLEAN NOT NULL DEFAULT FALSE,
 | 
					
						
							|  |  |  |     INDEX edge_index (fromId, toId, relation),
 | 
					
						
							|  |  |  |     INDEX from_index (fromId, relation),
 | 
					
						
							|  |  |  |     INDEX to_index (toId, relation),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (fromId, toId, relation)
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Table that captures all the relationships between field of an entity to a field of another entity
 | 
					
						
							|  |  |  | -- Example - table1.column1 (fromFQN of type table.columns.column) is joined with(relation)
 | 
					
						
							|  |  |  | -- table2.column8 (toFQN of type table.columns.column)
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS field_relationship (
 | 
					
						
							|  |  |  |     fromFQN VARCHAR(256) NOT NULL,              -- Fully qualified name of entity or field
 | 
					
						
							|  |  |  |     toFQN VARCHAR(256) NOT NULL,                -- Fully qualified name of entity or field
 | 
					
						
							|  |  |  |     fromType VARCHAR(256) NOT NULL,             -- Fully qualified type of entity or field
 | 
					
						
							|  |  |  |     toType VARCHAR(256) NOT NULL,               -- Fully qualified type of entity or field
 | 
					
						
							|  |  |  |     relation TINYINT NOT NULL,
 | 
					
						
							|  |  |  |     jsonSchema VARCHAR(256),                    -- Schema used for generating JSON
 | 
					
						
							|  |  |  |     json JSON,                                  -- JSON payload with additional information
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     INDEX from_index (fromFQN, relation),
 | 
					
						
							|  |  |  |     INDEX to_index (toFQN, relation),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (fromFQN, toFQN, relation)
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Used for storing additional metadata for an entity
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS entity_extension (
 | 
					
						
							|  |  |  |     id VARCHAR(36) NOT NULL,                    -- ID of the from entity
 | 
					
						
							|  |  |  |     extension VARCHAR(256) NOT NULL,            -- Extension name same as entity.fieldName
 | 
					
						
							|  |  |  |     jsonSchema VARCHAR(256) NOT NULL,           -- Schema used for generating JSON
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							|  |  |  |     PRIMARY KEY (id, extension)
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Service entities
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS dbservice_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-17 14:59:37 -07:00
										 |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     serviceType VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.serviceType') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-17 14:59:37 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-17 14:59:37 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS messaging_service_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     serviceType VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.serviceType') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS dashboard_service_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-09-24 16:28:44 -07:00
										 |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     serviceType VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.serviceType') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-09-24 16:28:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-09-24 16:28:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS pipeline_service_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     serviceType VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.serviceType') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  | CREATE TABLE IF NOT EXISTS storage_service_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     serviceType VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.serviceType') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | --
 | 
					
						
							|  |  |  | -- Data entities
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS database_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS database_schema_entity (
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-14 09:05:01 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS table_entity (
 | 
					
						
							| 
									
										
										
										
											2021-11-15 12:51:33 -08:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-11-15 12:51:33 -08:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-11-15 12:51:33 -08:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-11-15 12:51:33 -08:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS metric_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS report_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS dashboard_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-11 12:44:03 -08:00
										 |  |  | CREATE TABLE IF NOT EXISTS ml_model_entity (
 | 
					
						
							| 
									
										
										
										
											2021-10-06 09:03:07 +02:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-10-06 09:03:07 +02:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-10-06 09:03:07 +02:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS pipeline_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-11-18 16:27:43 -08:00
										 |  |  |     fullyQualifiedName VARCHAR(512) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-18 10:35:48 -07:00
										 |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-18 10:35:48 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-18 10:35:48 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS topic_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-25 13:19:35 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS chart_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-09-24 08:54:04 -07:00
										 |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-09-24 08:54:04 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  | CREATE TABLE IF NOT EXISTS location_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL ,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-11-03 08:51:36 +01:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | --
 | 
					
						
							|  |  |  | -- Feed related tables
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS thread_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     entityId VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.entityId') NOT NULL,
 | 
					
						
							|  |  |  |     entityLink VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.about') NOT NULL,
 | 
					
						
							|  |  |  |     assignedTo VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.addressedTo'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     createdAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.threadTs') STORED NOT NULL,
 | 
					
						
							|  |  |  |     createdBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.createdBy') STORED NOT NULL,
 | 
					
						
							|  |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     resolved BOOLEAN GENERATED ALWAYS AS (json -> '$.resolved'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id)
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-04 22:55:27 -07:00
										 |  |  | --
 | 
					
						
							|  |  |  | -- Policies related tables
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS policy_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-11-09 20:56:45 -08:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-11-09 20:56:45 -08:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-11-09 20:56:45 -08:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Ingestion related tables
 | 
					
						
							|  |  |  | --
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | CREATE TABLE IF NOT EXISTS ingestion_pipeline_entity (
 | 
					
						
							| 
									
										
										
										
											2021-11-09 20:56:45 -08:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-11-04 22:55:27 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-11-04 22:55:27 -07:00
										 |  |  |     timestamp BIGINT,
 | 
					
						
							|  |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-11-04 22:55:27 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | --
 | 
					
						
							|  |  |  | -- User, Team, and bots
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS team_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS user_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     email VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.email') NOT NULL,
 | 
					
						
							|  |  |  |     deactivated VARCHAR(8) GENERATED ALWAYS AS (json ->> '$.deactivated'),
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS bot_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS role_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     defaultRole BOOLEAN GENERATED ALWAYS AS (json -> '$.defaultRole'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Usage table where usage for all the entities is captured
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS entity_usage (
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     id VARCHAR(36) NOT NULL,         -- Unique id of the entity
 | 
					
						
							|  |  |  |     entityType VARCHAR(20) NOT NULL, -- name of the entity for which this usage is published
 | 
					
						
							|  |  |  |     usageDate DATE,                  -- date corresponding to the usage
 | 
					
						
							|  |  |  |     count1 INT,                      -- total daily count of use on usageDate
 | 
					
						
							|  |  |  |     count7 INT,                      -- rolling count of last 7 days going back from usageDate
 | 
					
						
							|  |  |  |     count30 INT,                     -- rolling count of last 30 days going back from usageDate
 | 
					
						
							|  |  |  |     percentile1 INT,                 -- percentile rank with in same entity for given usage date
 | 
					
						
							|  |  |  |     percentile7 INT,                 -- percentile rank with in same entity for last 7 days of usage
 | 
					
						
							|  |  |  |     percentile30 INT,                -- percentile rank with in same entity for last 30 days of usage
 | 
					
						
							|  |  |  |     UNIQUE (usageDate, id)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | -- Tag related tables
 | 
					
						
							|  |  |  | --
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS tag_category (
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL, -- JSON stores category information and does not store children
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name) -- Unique tag category name
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS tag (
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL, -- JSON stores all tag attributes and does not store children
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-10-16 16:38:09 -07:00
										 |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS tag_usage (
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     source TINYINT NOT NULL,            -- Source of the tag label
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  |     tagFQN VARCHAR(256) NOT NULL,       -- Fully qualified name of the tag
 | 
					
						
							|  |  |  |     targetFQN VARCHAR(256) NOT NULL,    -- Fully qualified name of the entity instance or corresponding field
 | 
					
						
							|  |  |  |     labelType TINYINT NOT NULL,         -- Type of tagging: manual, automated, propagated, derived
 | 
					
						
							|  |  |  |     state TINYINT NOT NULL,             -- State of tagging: suggested or confirmed
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (source, tagFQN, targetFQN)
 | 
					
						
							| 
									
										
										
										
											2021-08-01 14:27:44 -07:00
										 |  |  | );
 | 
					
						
							| 
									
										
										
										
											2021-08-03 22:40:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-09 13:25:08 -08:00
										 |  |  | CREATE TABLE IF NOT EXISTS change_event (
 | 
					
						
							|  |  |  |     eventType VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.eventType') NOT NULL,
 | 
					
						
							|  |  |  |     entityType VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.entityType') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-11-09 18:01:17 -08:00
										 |  |  |     userName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.userName') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     eventTime BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.timestamp') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2021-08-03 22:40:42 -07:00
										 |  |  |     json JSON NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     INDEX event_type_index (eventType),
 | 
					
						
							|  |  |  |     INDEX entity_type_index (entityType),
 | 
					
						
							|  |  |  |     INDEX event_time_index (eventTime)
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS webhook_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     json JSON NOT NULL,
 | 
					
						
							|  |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     -- No versioning, updatedAt, updatedBy, or changeDescription fields for webhook
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS glossary_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     name VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.name') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							|  |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (name)
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS glossary_term_entity (
 | 
					
						
							|  |  |  |     id VARCHAR(36) GENERATED ALWAYS AS (json ->> '$.id') STORED NOT NULL,
 | 
					
						
							|  |  |  |     fullyQualifiedName VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.fullyQualifiedName') NOT NULL,
 | 
					
						
							|  |  |  |     json JSON NOT NULL,
 | 
					
						
							|  |  |  |     updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json ->> '$.updatedAt') NOT NULL,
 | 
					
						
							|  |  |  |     updatedBy VARCHAR(256) GENERATED ALWAYS AS (json ->> '$.updatedBy') NOT NULL,
 | 
					
						
							| 
									
										
										
										
											2022-04-26 19:14:51 -07:00
										 |  |  |     deleted BOOLEAN GENERATED ALWAYS AS (json -> '$.deleted'),
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  |     PRIMARY KEY (id),
 | 
					
						
							| 
									
										
										
										
											2022-04-28 07:30:56 -07:00
										 |  |  |     UNIQUE (fullyQualifiedName)
 | 
					
						
							| 
									
										
										
										
											2022-04-24 13:16:24 -07:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 |