> For the complete documentation index, see [llms.txt](https://docs.decube.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decube.io/virtual-sources-and-objects/manage-virtual-objects.md).

# Manage Virtual Objects

{% hint style="info" %}
This article describes the method to update virtual objects via the UI. If you intend to develop a workflow to update via API instead, check out our [Public API documentation](/public-api/overview/index/virtual-sources.md).
{% endhint %}

Virtual objects are the assets that live under a virtual source — schemas, tables, columns, data jobs, data tasks, dashboards, and charts. You create and manage them using the **Asset Tree Editor**, which auto-saves every change as you make it.

Open the Asset Tree Editor from the **virtual source landing page** or from any **virtual asset's detail page**. The editor opens scoped to wherever you launched it from — from the virtual source you see all object types across four tabs (Schemas, Data Jobs, Dashboards, Charts); from an individual asset you see that asset and its children.

<figure><img src="/files/oiXmXPXsXoLjDEVxwedd" alt=""><figcaption></figcaption></figure>

## Add an object

Each tab has an **Add virtual \[type]** button that creates a new row at the top of the list. Enter a name and click away to save. To add a child object (e.g. a table under a schema), expand the parent row first — the **Add child** button appears inside it.

## Edit an object

Click any field in a row to edit it. Changes save automatically when you click away. For the **Definition** field, clicking it opens a markdown editor modal where you write and save the content.

## Delete an object

Click the delete icon on any row and confirm in the modal. Deleting a parent object (e.g. a Schema) also removes all its children.

{% hint style="warning" %}
Deletion is irreversible — the object and all its metadata are removed from the Catalog, lineage, and search results.
{% endhint %}

## Object type reference

| Asset type | Fields                                                                                                                                              |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Schema     | `name`                                                                                                                                              |
| Table      | `name`, `definition` (markdown, renders in the Definition tab)                                                                                      |
| Column     | `name`, `unified_type` (data type), `raw_type` (free text, e.g. `VARCHAR(255)`), `constraints` (`NOT_NULL`, `UNIQUE`, `PRIMARY_KEY`, `FOREIGN_KEY`) |
| Data Job   | `name`, `schedule`, `definition` (markdown, renders in the Definition tab)                                                                          |
| Data Task  | `name`, `definition` (markdown, renders in the Definition tab)                                                                                      |
| Dashboard  | `name`, `url` (renders as a link in the Overview tab)                                                                                               |
| Chart      | `name`, `url` (renders as a link in the Overview tab)                                                                                               |
