# Product Specifications

### Character Set Support

#### UTF-8 Encoding Overview

UTF-8 encodes all character data, providing consistent representation across various storage systems. Defined by RFC 3629, UTF-8 is a variable-length encoding capable of representing all 1,112,064 valid Unicode code points using one to four 8-bit bytes.

* **ASCII Range (U+0000 to U+007F):** Encoded using a single byte, maintaining binary compatibility with ASCII.
* **Higher Ranges:** Encoded using two to four bytes, optimized to minimize size and maximize compatibility for frequently used characters.

This strategy ensures comprehensive Unicode support, efficient storage, and reliable interoperability with modern file systems and network protocols.

#### UTF-8 Restrictions

Avoid using certain UTF-8 characters in file or folder names:

* `/` and `|` are reserved by the filesystem and shell.
* `%` and `:` should not be the sole characters in a name.

When a file or folder is encoded with a non-UTF-8 character set, it will automatically be re-encoded using the format `%MNGA182` followed by the **hexadecimal representation** of the original name. This process maintains compatibility and helps track files with unsupported or legacy encodings.

These limits apply to tasks, naming, containers, and supported backends. Some values reflect underlying OS or protocol constraints.

### Limitations

These limits apply to tasks, naming, containers, and supported backends. Some values reflect underlying OS or protocol constraints.

#### Tasks Limitations

| Tasks                    | Value                      |
| ------------------------ | -------------------------- |
| Maximum number of tasks  | 18,446,744,073,709,551,615 |
| Maximum task name length | 255 characters             |

| Files And Directories                   | Value                      | Notes                                                     |
| --------------------------------------- | -------------------------- | --------------------------------------------------------- |
| Maximum number of files and directories | 18,446,744,073,709,551,615 | Includes active, archived, exchange, and deleted entries. |

| Names and paths                | Value          | Notes                                                                                                       |
| ------------------------------ | -------------- | ----------------------------------------------------------------------------------------------------------- |
| Maximum filename length        | 255 characters | If a non-UTF-8 character is detected, the name is re-encoded. This reduces the effective max length.        |
| Maximum path + filename length | 4096 bytes     | Matches OS `PATH_MAX`. Unicode can use multiple bytes. Practical limit is also capped at 21,845 characters. |

For files or folders with non-UTF-8 characters, Nodeum re-encodes them as: `%MNGA182` followed by the hexadecimal representation of the original name.

#### Metadata Limitations

| Metadata fields           | Value          |
| ------------------------- | -------------- |
| Metadata name length      | 256 characters |
| Metadata value length     | 256 characters |
| Custom field name length  | 256 characters |
| Custom field value length | 256 characters |

#### Reserved Extended Attribute Metadata

The following attribute names are reserved by Nodeum for extended metadata:

* `user.mtcsize`
* `user.mtcid`
* `user.mtcincache`
* `user.mtclastgetdate`
* `user.mtclastupdate`

| Container                    | Value                                                         | Notes                                                    |
| ---------------------------- | ------------------------------------------------------------- | -------------------------------------------------------- |
| Maximum number of containers | 100                                                           |                                                          |
| Container name length        | 4–25 characters                                               |                                                          |
| First character              | Must be lower case                                            | Required if the container must be accessible through S3. |
| Unsupported patterns         | `_`, trailing `-`, `;;`, `--`, IP address (e.g. `10.10.10.2`) |                                                          |

#### File System Commands

This system supports all standard file operations such as `mkdir`, `rmdir`, `ls`, and `cd`, but it does not support symbolic links.

#### Storage Limitations

| Nas Storage          | Value          |
| -------------------- | -------------- |
| Hostname length      | 55 characters  |
| Target name length   | 255 characters |
| Mount options length | 255 characters |
| Username length      | 255 characters |
| Password length      | 255 characters |

| S3 - Object Storage                         | Value                                 |
| ------------------------------------------- | ------------------------------------- |
| Cloud connector name length                 | 25 characters                         |
| Bucket name length                          | 64 characters                         |
| Location/region length                      | 15 characters                         |
| Buckets                                     | No limit                              |
| Objects per bucket                          | No limit                              |
| Multipart uploads returned per list request | 1,000                                 |
| Objects returned per list request           | 1,000                                 |
| Parts per upload                            | 10,000                                |
| Parts returned per list parts request       | 1,000                                 |
| Max object size                             | 5 TB                                  |
| Max object size per PUT operation           | 5 TB                                  |
| Min object size                             | 0 B                                   |
| Part size                                   | 5 MB to 5 GB (last part: 0 B to 5 GB) |

| Tape Library                     | Value          |
| -------------------------------- | -------------- |
| Tape library name length         | 250 characters |
| Tape pool name length            | 255 characters |
| Barcode length                   | 8 characters   |
| Maximum number of tape libraries | 16             |
| Maximum number of drives         | 256            |
| Maximum number of tapes          | 15,000         |
