Filesystem tree

Files are directories

In the Boomla Filesystem, files are also directories. They can store both data and have children, at the same time.


Because there is no difference between files and directories, we usually just draw them as circles:


Files are ordered

Files are stored in the order you place them. When placing a file, you have to specify its exact location, not only the parent that shall contain it.

This feature was designed to help ordering elements on the user interface, without the need for an orderID field or similar.



EDIT: This section needs to be updated. We now support bucket names. Buckets can be defined on the file's type chain.

Children of a file are stored in buckets. Buckets provide a way to group children of a file without the need to introduce another level of hierarchy. A bucket is identified by its BucketId, a number between 0-255.

Bucket 0 is the default bucket, it is generally used for application files and assets, typically not used to display its contents on the user interface. Hence, it can be considered a hidden bucket.


The Boomla Filesystem is type safe in that it has a concept of what files are safe to be placed where. See file placement and .Accept rules for more details.

File links

Boomla supports file links. You can create a file link by setting the file's link property.

Among other things, file links can be used to mount one volume into another. This is for example used to mount packages.



A Boomla filesystem is a tree of volumes. Volumes can be nested via file links.


The fileNodeId of a file is unique within a volume but not within a filesystem. For example i123.

The fileId of a file is unique within a filesystem. It can be thought of as a fileNodeId path, defining how to reach a file across volume boundaries. For example f4.6.8.