# Data Structure

### Teams and Workspaces

#### 1. Automatic Creation at Registration

When a user registers on the Supervisely platform, one **Team** and one **Workspace** are automatically created in their account. By default, this workspace is named ***First Workspace***.

This is how it looks on the Supervisely platform:

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-e535e3cc002638ba098b15d2467a37f784161ce3%2Fd-s-1.png?alt=media" alt=""><figcaption></figcaption></figure>

And this is how it looks schematically:

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-f62537a96d962c074216a5eaa415094143b7f7a0%2Fd-s-default-scheme1.jpg?alt=media" alt=""><figcaption></figcaption></figure>

#### 2. Team & Workspace Structure Rules

Every Member with [Full-scope Permission](https://docs.supervisely.com/collaboration/admin-panel/users-management) is always a part of at least one **Team**.\
A member may leave or delete a personal **Team**, provided that they remain associated with at least one **Team** that includes at least one **Workspace** at all times.

Each **Team** must always have at least one **Workspace**, although it doesn't have to be the original one created at registration.

The Supervisely system strictly enforces these rules and will not allow any actions that would violate them. For example, you won't be able to delete your last remaining Team or its only Workspace.

#### 3. Creating & Managing Teams

A Member with the Admin role can invite other Members to their **Team**. The invited member will gain access to all projects within this **Team**.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-1646e8c1d292eba3a858f2d5895fd08df2b4cfcd%2Fd-s-default-scheme2.jpg?alt=media" alt=""><figcaption></figcaption></figure>

In addition to their default **Team**, a Member can also create new **Teams** to collaborate on separate projects or with different groups.

#### 4. Switching Between Teams

To manage or switch between **Teams**, click the arrow next to the name of your current Team.\
A menu will appear with a list of all Teams you are a member of (not necessarily the ones you created) along with other settings.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-4f71233fb511f94b7f426d8247a330b4bb85e113%2Fd-s-teams.png?alt=media" alt=""><figcaption></figcaption></figure>

When you [invite other Members](https://docs.supervisely.com/data-organization/project-dataset/data-structure) to your **Team**, make sure you have the correct **Team** selected as active.\
The invitations will be sent specifically to the currently active **Team** that you created.

### Projects and Datasets

Inside a **Workspace**, a Member can create an unlimited number of Projects.\
Each **Project** can contain multiple **Datasets**, which store the actual data and annotations.

This flexible structure allows Members to organize data in a way that fits their workflow.

Furthermore, a Member can create additional **Workspaces** inside any **Team** where they have the Admin role.\
Inside a **Dataset**, you can create **Sub-Datasets**, enabling flexible and deeply nested data structures - just like folders and subfolders on your computer. There are no limitations on nesting depth, so you can organize your data in whatever hierarchy makes sense for your workflow.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-9fa3afecfc3323a69c99ebcf13ba839d2117006a%2Fd-s-default-scheme3.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Let's repeat an important rule: at the **Project** level, you cannot store files directly - only **Datasets** can exist there. Files and **Sub-Datasets** can only be added inside a **Dataset**.

You can think of **Datasets** as folders and **Sub-Datasets** as **subfolders**. This allows you to recreate complex directory structures exactly the way you organize data on your local machine or in your company's cloud storage. It's especially useful if you're working with a shared storage system that already follows a specific hierarchy - you can mirror that same structure inside Supervisely without restrictions.

To create a sub-dataset inside an existing dataset:

1. Click the `Add` button
2. Select **Create New Dataset**\
   Then, you can navigate into the newly created sub-dataset and upload your files there.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-54870a8ec9bca8632a741bae8df763d912bdc7e1%2Fd-s-create_new_dataset_in_dataset-1.png?alt=media" alt=""><figcaption></figcaption></figure>

Great! Your sub-dataset with files is now ready.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-3861605f8dd57ef2c218f53a009dacf72ff9298e%2Fd-s-create_new_dataset_in_dataset-2.png?alt=media" alt=""><figcaption></figcaption></figure>

### Project versions

[**Project Versions**](https://docs.supervisely.com/data-organization/project-dataset/project-versions) let you manage and track project states over time, allowing you to save, instantly preview, restore, and compare different iterations of your data.

Key features of project versioning include:

* **Version Control**: Track and manage changes made to the project over time, ensuring every specific state is recorded.
* **History Tracking & Metadata**: Maintain a comprehensive history of all modifications, making it easy to understand the project's evolution. You can edit version titles and descriptions at any time to keep context clear.
* **Instant Previews**: Create read-only project snapshots (for Images and Videos) to instantly inspect annotations in the labeling toolbox, use AI Search, and filter data without requiring a full project restore.
* **Reverting Changes**: Restore any previous version of the project, allowing you to get a new project with a specific state of data.
* [**MLOps Workflow**](https://docs.supervisely.com/data-organization/mlops-workflow): Execute machine learning tasks on specific versions of the project data, ensuring that the exact state of the data used is known. Previews are also fully integrated into the workflow graph. This guarantees consistency and reproducibility of results.

<figure><img src="https://1080806899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4BHwRbuyIoH-xoF3Gv%2Fuploads%2Fgit-blob-436d70c44b78ba87cbf48170799020dae5e770c2%2Fproject-versions.jpg?alt=media" alt="Project versions overview"><figcaption></figcaption></figure>

{% hint style="info" %}
**Note**: **Project versions** are not available on the Free plan.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.supervisely.com/data-organization/project-dataset/data-structure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
