Appearance
Folder
Type: Object
A tenant-scoped, named storage location: a name bound to exactly one transport plus a root path/prefix within it, so files, workflow nodes and scripts can choose where bytes live without knowing how they get there. The binding is flattened here to a kind discriminator plus the at-most-one matching reference ID.
Fields
| Name | Type | Args | Description | Deprecated |
|---|---|---|---|---|
| controllerId | ControllerID | TypeID of the bound edge controller (e.g. "ctl_01K…"). Non-null only when kind is CONTROLLER; null otherwise. The controller always belongs to this tenant. | ||
| createdAt | String! | ISO-8601 timestamp of when the folder was created. | ||
| description | String | Optional free-text note about the folder's purpose (max 1000 characters); null when unset. | ||
| id | FolderID! | TypeID of this folder (e.g. "fld_01K…"); stable file handles reference it. | ||
| isDefault | Boolean! | True for the single folder per tenant that receives files stored without an explicit folder selection. Exactly one folder per tenant carries this flag. | ||
| kind | FolderBindingKind! | Discriminator for the folder's binding; tells you which of storageBackendId / controllerId is populated. | ||
| name | String! | Human-facing folder name. Unique per tenant. | ||
| rootPath | String! | Location within the bound transport. For cloud bindings (CONTROL_CLOUD, STORAGE_BACKEND) this is a key prefix — possibly empty, never leading "/". For CONTROLLER it is an absolute filesystem path starting with "/". Never contains a ".." segment. | ||
| storageBackendId | StorageBackendID | TypeID of the bound storage backend (e.g. "sbk_01K…"). Non-null only when kind is STORAGE_BACKEND; null otherwise. | ||
| tenantId | TenantID! | TypeID of the owning tenant (e.g. "ten_01K…"); folders are tenant-scoped. | ||
| updatedAt | String! | ISO-8601 timestamp of the folder's last modification; equals createdAt until first update. |