# Entity Schema ## Properties - **version**: Version of schema. - **kind**: Component kind. - **schema** *(array)*: Objects (or nested objects) representing columns containg a name, type and args. - **name** *(string)*: Name of the entity. - **storages** *(array)*: An array of storages and their associated translation mappers. - **storage** *(string)*: Name of a readable or writable storage class which provides an abstraction to read from a table or a view in ClickHouse. - **is_writable** *(boolean)*: Marks the storage is a writable one. - **translation_mappers** *(object)*: Represents the set of rules used to translates different expression types. - **columns** *(array)* - **mapper** *(string)*: Mapper class name. - **args** *(object)*: Key/value mappings required to instantiate Mapper class. - **functions** *(array)* - **mapper** *(string)*: Mapper class name. - **args** *(object)*: Key/value mappings required to instantiate Mapper class. - **curried_functions** *(array)* - **mapper** *(string)*: Mapper class name. - **args** *(object)*: Key/value mappings required to instantiate Mapper class. - **subscriptables** *(array)* - **mapper** *(string)*: Mapper class name. - **args** *(object)*: Key/value mappings required to instantiate Mapper class. - **join_relationships** *(object)* - **^.*$** *(object)*: The join relationship. The key for this relationship is how the relationship is specified in queries (MATCH x -[key]-> y). - **rhs_entity** *(string)*: The entity key of the rhs entity to join with. - **columns** *(array)*: A sequence of tuples of columns to join on, in the form (left, right). - **join_type** *(string)*: The type of join that can be performed (either 'left' or 'inner'. - **equivalences** *(array)*: Tracking columns in the two entities that are not part of the join key but are still equivalent. - **storage_selector** *(object)*: - **selector** *(string)*: QueryStorageSelector class name. - **args** *(object)*: Key/value mappings required to instantiate QueryStorageSelector class. - **query_processors** *(array)*: Represents a transformation applied to the ClickHouse query. - **processor** *(string)*: Name of LogicalQueryProcessor class config key. Responsible for the transformation applied to a query. - **args** *(object)*: Key/value mappings required to instantiate QueryProcessor class. - **validators** *(array)*: The validation logic used on the ClickHouse query. - **validator** *(string)*: Validator class name. - **args** *(object)*: Key/value mappings required to instantiate Validator class. - **validate_data_model** *(['string', 'null'])*: The level at which mismatched functions and columns when querying the entity should be logged. - **required_time_column** *(['string', 'null'])*: The name of the required time column specifed in schema. - **partition_key_column_name** *(['string', 'null'])*: The column name, if this entity is partitioned, to select slice. - **subscription_processors** *(array)* - **processor** *(string)*: Entity Subscription Processor class name. - **args** *(object)*: Key/value mappings required to instantiate Entity Subscription Processor class. - **subscription_validators** *(array)* - **validator** *(string)*: Entity Subscription Validator class name. - **args** *(object)*: Key/value mappings required to instantiate Entity Subscription Validator class.