# Object Distribution

Distribution is the mechanism for pushing content from one location to another in Nuvolos. For background on how distribution fits into the platform, see [Distribution](https://docs.nuvolos.com/features/nuvolos-basic-concepts/distribution).

Distribution is a **push** operation: you initiate it from a source and send it to a specified target. You need **EDITOR** access on the target instance and at least **VIEWER** access on the source (see [Roles](https://docs.nuvolos.com/administration/roles)).

You can distribute the following object types:

* Files, sets of files, or entire directories
* Tables or sets of tables
* Applications or sets of applications
* Entire snapshots

## Distributing a selected list of items

You can distribute a set of items from a single instance using the **Stage** — a temporary area for collecting objects to be distributed. To distribute from multiple sources, you must initiate a separate distribution from each source.

For example, to distribute a file and an application:

1. Navigate to the space containing the instance you want to distribute from.
2. Navigate to the instance.
3. On the sidebar, click **Files**. Select the file you want to distribute and click **STAGE**. You can also do mass operations on the action item row about the file list table in the vertical **...** menu.
4. *(Optional)* On the sidebar, click **Applications**. Select the application you want to distribute and stage it.
5. *(Optional)* On the sidebar, click **Tables**. Select the tables you want to distribute, and stage them.
6. On the sidebar, click the share icon to open the **Stage**. Review your staged objects — you can remove items using the red "X" button — and click **CONTINUE**.
7. Click **CONTINUE** to save a bundle - an identifier for the pack of objects you are sending out.
8. Select the target for distribution. You can distribute within the current space, to another space, or to another organisation. You can also choose whether to share with all instances (*education-only*) or just one. Click **CONTINUE**.
9. Decide whether you want to send an accompanying e-mail upon task completion or not. The message notifies all users in the target instances about a distribution having completed.
10. Select the [distribution strategy](https://docs.nuvolos.com/features/object-distribution/distribution-strategies). **Overwrite** (which replaces objects of the same name in the target) is the best practice in almost all use-cases.
11. Optionally create a snapshot in the target before distribution to guard against data loss. Click **CONTINUE**.
12. Make a final review, then
13. Click **SHARE OBJECTS**.

## Recalling files

If a file, folder, table or even application is accidentally distributed, **space administrators** can remove it from other instances.

### Recalling from the Master instance

1. Navigate to the space containing the instance you distributed from.
2. Navigate to the **Master** instance.
3. On the sidebar, click **Files** and locate the file or folder you want to recall.
4. Click **...** in the **Actions** column of the object list.
5. Select **DELETE FOR OTHERS** to delete the file from all instances except the Master, or **DELETE FOR ALL** to delete it from all instances including the Master.

{% hint style="info" %}
**DELETE FOR ALL** only affects the current state of each instance. Existing snapshots are not modified — the object remains available in any snapshot taken before the deletion. This also means the storage hold is only released once all containing snapshots are also removed from the system.
{% endhint %}

### Recalling from the Distributed or student instances

1. Navigate to the space.
2. Navigate to the **Distributed** instance (or the relevant student instance).
3. On the sidebar, click **Files** and locate the file or folder you want to recall.
4. Click **...** in the **Actions** column of the object list.
5. Select **Delete for students** to remove the file from all current and future student instances. This creates a new snapshot in the [Distributed instance](https://docs.nuvolos.com/features/object-distribution/the-distributed-instance) with the selected files removed.

{% hint style="info" %}
To recall accidentally distributed files, trigger the **DELETE FOR OTHERS/DELETE FOR STUDENTS** action **after** the distribution has finished. Otherwise, the deletion task might execute before the distribution task and have no effect.
{% endhint %}
