Schema Editor
The schema editor is where you define the property (column) structure of ontological entities and relationships. When adding or modifying an entity or relationship, it opens in the Properties tab. You can work between Table mode, which handles fields line by line, and JSON mode, which manipulates the same schema as JSON text.
After creating an entity or relationship, you cannot delete or rename an existing property, change its data type or nullability, or change the identifier key. To change one of these fields, delete and recreate the entity or relationship.
Before deletion, review relationships and pipelines that reference the asset. After recreation, map the dataset and load data again. You can add new properties and edit the alias or description of an existing property.

Edit mode
| mode | Use | suitable situation |
|---|---|---|
| Table | Edit fields in-place, line by line | Most schema definition/modification tasks |
| JSON | Write schema directly as JSON text | Pasting external schema, fine-tuning |
Switch between Table and JSON modes with the toggle at the top of the editor. What you write in one mode will remain when you move to another mode.
table mode
Each field (column) is displayed in one line, and the data type for each field is identified by color icons, allowing you to read the entire schema at a glance.
Field row configuration
- Type icon: Color-codes data types (text, number, date/time, Boolean, complex).
- Name / Alias / Description: Select a field to edit it. The AI generation button can suggest aliases, descriptions, and field names.
- Data Type: Select from a selector that is grouped by type and can be searched. The
Numeric(number) type specifies both the number of digits (precision) and the number of decimal places (scale). - NULL Allowed: Click the
NOT NULL/NULLbadge to change whether the value can be empty (NULL allowed). - Identification Key: Assign or disable with the key icon on each line (see below).
- Action: Delete the field.
The field order can be changed by dragging the left drag handle, or by focusing on the handle and using the arrow keys (↑/↓). The order determined here is reflected in the saved schema.
There are the following buttons at the top of the editor.
- Native type display: Changes the data type shown on the screen to the actual storage type name (e.g.
utf8,int64). - Add Attribute: Adds a new field line.
- AI attribute suggestion: Receive suggestions from AI on what attributes to have based on the context of the entity.
Identification key and display column
Identification keys and display columns are settings that apply to the entire schema, not just individual columns, so they are managed in the summary area at the top of the table.
- Identification key: A column that distinguishes each row when new data is inserted or updated (Upsert). Designate by clicking the key icon in each field line. If multiple numbers are specified, it becomes an identification key that groups multiple columns, and the order (number) has meaning. You can adjust the key order in the summary area. If the identification key is empty, the entity cannot be used as an input or output of the pipeline.
- Display column: Column to display as the name of the entity node in the graph (one for each schema).
JSON mode
This mode edits the same schema as JSON text. It is convenient when pasting an externally created schema or copying and modifying an existing schema, and it notifies you immediately if grammar or format is incorrect while inputting.
The schema consists of a fields array, and each field has the following items.
name: Field name (required)type: Storage data type (e.g.utf8,int64,float64,bool,decimal)nullable: Whether the value can be empty (true/false)metadata: Additional information such as alias (alias), description (comment), path to retrieve value from original JSON (jsonpath), etc.
The identification key and display column are settings that apply to the entire schema, so they are contained in keys, display_column of schema level metadata.
{
"fields": [
{ "name": "id", "nullable": false, "type": { "name": "utf8" } },
{
"name": "email",
"nullable": true,
"type": { "name": "utf8" },
"metadata": { "alias": "Email", "comment": "Customer email" }
},
{
"name": "amount",
"nullable": true,
"type": { "name": "decimal", "precision": 12, "scale": 4 }
}
],
"metadata": { "keys": "id", "display_column": "email" }
}
name and type in each field must be present. If it is missing or incorrectly formatted, an error will be displayed and you will not be able to save it.
Starting schema with CSV
Uploading a CSV file can only be used when creating a new entity, relationship, or dataset. It automatically guesses fields and data types by looking at the file's header and example values and creates a schema draft. When editing entities and relationships that have already been created, use only table and JSON mode.
Restrict schema changes after creation
Once an entity or relationship is created, changes to existing content in the schema are blocked (only adding new columns is possible). Deleting or renaming existing columns, changing data types or NULL tolerance, or changing identification keys are not supported. If such changes are required, the entity or relationship must be deleted and then recreated.
- Existing columns are marked with a lock, and only the alias and description can be modified.
- Adding new columns is possible at any time.
- When editing this way, JSON mode opens read-only.