Skip to content
Return to top
On this page

# Collections #

> Collections are a set of items. This can be a 1-1 data table in SQL, a group of other collections, or a readonly view. They come with all the same power and functionality of data tables, despite the less technical name.

## Overview #

Collections are data tables. Typically, you access items within a collection in the Content Module.

## System Collections #

System collections store the data and configuration details required to power your project.

Since system collections store information that powers your Directus project. You cannot reconfigure system collections or any of their default fields, as any reconfigurations would break your project. However, you can create and configure new fields on a system collection. This lets you safely customize your data model as desired.

System collections are not displayed in the Content Module. The following table will go over the logic and functionality each system collection is responsible for, as well as where to find relevant App and API documentation.

System Collection | Purpose | APP | API
--- | --- | --- | ---
Activity | Tracks and stores all events within Directus, giving full accountability over everything. | Activity Log | Activity
Collections | Stores data table & configuration details each and every Collection. | Collections | Collections
Dashboards | Stores dashboard configuration details and all relationally linked panels. | Insights | N/A
Fields | Stores configuration details for each field. | Fields | Fields
Files | This stores file location from asset storage as well as any data associated with that file. | File Library | Files
Flows | Stores basic logic required for Flows, which enable event-triggered task automation. | Flows | Flows
Folders | Stores information required for Folders, which provide virtual file asset management. | Folders | Folders
Migrations | Used by our install/upgrade process to track when migration scripts for a specific release have been run. | It has no relevant app functionality. | N/A
Notifications | Stores details about in-app notifications. | Module Bar and Sidebar | Notifications
Operations | Stores information required for Operations, which are a part of Flows. | Operations | Operations
Panels | This stores information about individual analytics panels, which are displayed on Dashboards. | Insights | N/A
Permissions | This stores the access permissions configured for roles. | Users, Roles & Permissions | Permissions
Presets | This stores details for presets and bookmarks. | Presents & Bookmarks | Presets
Relations | This stores information about relationships between collections. | Relationships | Relations
Revisions | Revisions are changes/edits made to Items. Directus keeps track of edits made, so you're able to revert to a previous state at will. | Revert an Item | Revisions
Roles | Stores information about each role created. | Users, Roles, and Permissions | Roles
Sessions | Stores information about each user session, for system purposes. | N/A | N/A
Settings | Stores all configurations made within Settings > Project Settings. | Project Settings | settings
Shares | Stores all information regarding data shares. | Data Sharing |
Users | Stores information about each user within the platform. | User Directory | Users
Webhooks | Stores all information about configured webhooks. | Webhooks | Webhooks

## Create a Collection #

To create a collection, follow these steps.

1. Navigate to Settings > Data Model, click add in the page header, and a drawer will open.
2. Enter a unique Collection Name. This cannot be modified later, but can be translated.
   This is used as the data table key, API collection key, and default collection name.
3. Optional: Make any other configurations as desired.
   - Singleton — Toggles whether the collection is a Singleton.
   - Primary Key Field — Sets the name of the primary key field, defaults to `id`.
   - Type — Sets the type of ID to use for this collection.
4. Click arrow_forward to confirm.
5. Enable and rename the other Optional System Fields as desired:
   - Status — Stores item status.
   - Sort — Adds a field which enables drag-and-drop sorting of items.
   - Created On — Logs the date an item was created.
   - Created By — Logs the user that created this item.
   - Updated On — Logs the date an item was last updated.
   - Updated By — Stores the last user to edit the file.
6. Click check to confirm and create the collection.

Immutable Keys

The collection name from step two cannot be modified after collection creation. However, you can override how it is displayed with Collection Naming Translations.

Composite Keys

Directus does not currently support composite keys. If your project uses composite keys, you will need to make an adjustment to the data model.

SQL Views

Directus does not currently support creation of virtual tables via SQL Views.

Database Tables

Remember, a collection is simply a database table. Therefore, you can import or create a table directly in the database and it will automatically appear within your Directus project. The first time you manage that table, a `directus_collections` record will be created with default values.

## Toggle Collection Visibility #

To toggle whether a collection is hidden by default in the Content Module, follow these steps.

1. Navigate to Settings > Data Model.
2. Click more_vert to open the collection's Context Menu.
3. Select View Content or Make Collection Hidden to adjust visibility as desired.

TIP

Assuming a user has access permissions, hidden collections can still be viewed. They must right-click on the Navigation Bar and choose visibility Show Hidden Collections.

## Create a Folder #

Folders allow you to sub-nest and group how collections are displayed. This feature simply changes how the collections are displayed under Settings > Data Model and in the Content Module. It has no impact on the data model. To create a folder, follow these steps.

1. Navigate to Settings > Data Model.
2. Click create_new_folder in the page header.
3. Set a folder key, which will also be used as the folder's name.
4. Optional: Set the folder icon, color, note and translations as desired.
5. Click Save to create your folder.

## Toggle Folder Display #

To toggle folder display, follow these steps.

1. Navigate to Settings > Data Model.
2. Click folder on the desired collection to toggle the following displays:
   - Start Open
   - Start Collapsed
   - Always Open

## Sort and Nest Collections #

To sort and nest collections in Settings > Data Model and Content Module, follow these steps.

1. Navigate to Settings > Data Model.
2. Click and drag drag_handle to position collections as desired.
   To nest a collection, drag below and to the right of an intended parent folder or collection.

## Configure a Collection #

To configure a collection, follow these steps.

1. Navigate to Settings > Data Model and click the desired collection.
   The collection's configuration page will open.
2. Make configurations as desired. Configuration options are broken into six categories.
   - Fields and Layout
   - Collection Setup
   - Archive
   - Sort
   - Accountability
   - Duplication
3. Click check to confirm.

### Fields & Layout #

This section allows you to create and configure fields, as well as configure how fields are displayed on the Item Details Page. To learn more, please see the documentation on fields.

### Collection Setup #

These controls allow you to modify how the collection is displayed within the Content Module.

- Collection Name — Displays the collection's name, which cannot be modified. However, you can override the displayed name with Collection Naming Translations, shown lower on this list.
- Note — Set a helpful note that explains the collection's purpose.
- Icon — Set an icon used throughout the app when referencing this collection.
- Color — Set a color for the icon, shown in the Navigation Bar and its page header.
- Display Template — Create a Display Template for the collection.
- Hidden — Toggle whether the collection should be globally hidden in the other app modules, even for admin users. You cannot hide collections for admins via permissions like other roles, so this comes in handy to tidy up the Content Module.
- Singleton — Toggle to bypass the Collection Page and take users to the Item Details Page.
- Collection Naming Translations — Translate the collection name across multiple languages. When the default language is changed in Project Settings or User Details Page, the relevant translation, if any exists, will be used throughout the app.

Collection Naming Translations

By default, Directus uses the Title Formatter to display collection keys as human readable names, but you can also use translations to explicitly rename more technical table keys.

What's a Singleton?

A collection that only contains one single item. For example, a website's About Us page.

### Archive #

Selects a field to handle archiving items. This provides a soft-delete functionality for items in a collection. Archived items will still exist in the collection and database, but are filtered within the Data Studio. To configure an archive field, set the following four input fields as desired.

- Archive Field — Selects the archive field from a dropdown menu.
- Archive App Filter — Toggles whether app users can filter for archived items.
- Archive Value — A value that is assigned to the field when an item is archived.
- Unarchive Value — A value that is assigned to the field when an item is unarchived.

Automatic Setup

When you create a collection, you have the option to create an optional Status Field. If you choose to include this field, the collection's archive settings will be automatically configured for you.

Archive Field Values

The archive fields can contain any number of additional values besides the archived and unarchived values defined above.

Archived Item Management via API

Archived items are hidden in the app by default, but they are still returned normally via the API unless explicitly filtered out. This gives you the flexibility to manage archived items however you want when working with the API.

### Sort Field #

The sort feature enables users to manually sort Items within the Data Studio. This is typically shown on the Content Module > Collection Page. It can also be used for sorting items within Junction Collections. A standard field, configured with an `INTEGER` data type, is required. As shown in the video, fields which cannot serve as sort fields will be grayed out and unselectable in the Sort Field dropdown.

Sort Field — Select a field to custom sort and order items. Click Deselect to disable.

To configure a sort field, follow these steps.

1. Create a Field with an `INTEGER` data type.
2. Choose a field from the dropdown under Settings > Data Model > [Collection] > Sort.
3. Click check to confirm.

Once you sort field is configured, you may want to learn how to manually sort Items.

Automatic Setup

When you create a Collection, you have the option of creating a Sort field. If you choose to include this field, the collection's sort settings will automatically be configured for you.

Interface Sorting

To configure manual sorting within a relational Interface (e.g., M2M, O2M, or M2A), configure as above, but also set the Sort Field within the relationship section of the field's configuration drawer.

Configure to Hidden

You can also set this field to be Hidden so it doesn't show up within the Item Details Page.

### Accountability #

By default, your Directus Project tracks all activity and revisions for collections. However, you can override this and choose what data is tracked.

- Activity & Revision Tracking — The following options are supported:
  - Track Activity & Revisions
  - Only Track Activity
  - Do Not Track Anything

Accountability vs. Telemetry

Accountability is a log of who does what in your project. It is for your team's own use. This is different from telemetry, which is configured under environment variables.

### Duplication #

The Save as Copy option on the Item Details Page offers a way to effectively duplicate the current item. Since there may be unique or relational data within the item, it's important to control exactly what will be copied. Duplication lets you configure which parent & relational field values will be copied when you use Save as Copy on an item.

- Item Duplication Fields — Check the field(s) to copy values for when duplicating an item.

## Delete a Collection #

To delete a collection, follow these steps.

1. Navigate to Settings > Data Model > [Collection Name].
2. Click delete in the page header.
3. Confirm this decision by clicking Delete in the dialog.

DANGER

This action is permanent and irreversible. Please proceed with caution.