> ## Documentation Index
> Fetch the complete documentation index at: https://ekso.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# DataContainer

> Top-level work container — a project, queue, product line, or service queue.

Top-level work container — a project, queue, product line, or service queue. Every `DataItem` belongs to exactly one container. Containers carry an owner and one or more processes (each defining a workflow + field schema).

## Sample JSON

Copy, edit, paste. Server-set fields (`id`, `created`, `tenantId`, …) are omitted from the example — they're populated by the server on response.

```json theme={null}
{
  "code": "FEN",
  "name": "Next-gen App",
  "description": "Next-gen enterprise automation platform",
  "label": "label_01HLABEL_PRODUCT",
  "owner": "user_01HUSER_OWNER",
  "archived": false,
  "role": [
    {
      "role": "View",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "Add",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "Filter",
      "userGroup": [
        "group_01HGROUP_EVERYONE"
      ]
    },
    {
      "role": "Manage",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "Change",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "ChangeOwn",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "Delete",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    },
    {
      "role": "DeleteOwn",
      "userGroup": [
        "group_01HGROUP_EVERYONE",
        "group_01HGROUP_DEV"
      ]
    }
  ]
}
```

## What Ekso fills in

These fields are managed by the server. You don't pass them on writes — they appear on the response.

* **`lastSequence`** — Counter for the next item sequence number. Server increments this every time `POST /api/item` creates an item against this container.

## Fields

| Field          | Type                                              | Required     | Notes                                                                                                                   |
| -------------- | ------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------- |
| `entity`       | string • nullable                                 | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `code`         | string                                            | **Required** | Short human-readable code. Unique per tenant. Used as a prefix in item identifiers (`FEN-123`).                         |
| `name`         | string                                            | **Required** | Display name shown across the UI and reports.                                                                           |
| `description`  | string                                            | **Required** | Long-form description. Plain text in the database; some surfaces render markdown.                                       |
| `label`        | string                                            | Optional     | Id of a `ConfigLabel` for visual grouping — colour coded across boards and lists.                                       |
| `lastSequence` | integer                                           | Server-set   | Server-managed counter. The next item created against this container will be `code-(lastSequence+1)`.                   |
| `owner`        | string                                            | Optional     | User id of the owning user. The owner has implicit `ChangeOwn` / `DeleteOwn` rights regardless of explicit role grants. |
| `archived`     | boolean                                           | Optional     | When true, the container is hidden from default lists; items remain queryable.                                          |
| `role`         | array\<[`DataRole`](/data-model/data-role)>       | Optional     | Per-role access grants. Each entry pairs an `AppRole` with the user-group ids that hold that role on this container.    |
| `process`      | array\<[`DataProcess`](/data-model/data-process)> | Optional     | Array of `DataProcess` references attached to this container. The first acts as the default for new items.              |
| `tenantId`     | string                                            | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `id`           | string                                            | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `created`      | string (date-time)                                | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `createdBy`    | string                                            | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `updated`      | string (date-time)                                | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `updatedBy`    | string                                            | Server-set   | Set by the server. Read-only on writes.                                                                                 |
| `deleted`      | boolean                                           | Server-set   | Set by the server. Read-only on writes.                                                                                 |

## Used by

### Request body

* `POST /api/container`
* `PUT /api/container`

### Response body

* `GET /api/container/{id}`
* `GET /api/container`
* `POST /api/container`

### CLI

`ekso container` — see the [command branches](/cli/branches) page for available verbs. Body for create / update verbs typically passed via `--data @file.json` matching the [sample JSON](#sample-json) above.
