Dynamic link

A dynamic link attaches a dynamic volume that is stored on the Dynamic Filesystem. The dynamic link is a transparent, location-based link.

It is typically used to store data created by visitors.

Example: dynamic

File link

A file link is a pointer to another file.

Key points:
  • There are several types of file links.
  • Depending on the link type, the link may or may not be automatically followed during a file operation.
  • Some file link types are used to mount sub-volumes.
  • The link property is ALWAYS accessed on the LINKING file.
  • A link is defined by its type and any number of type-specific parameters.
  • File links are either hash-based or location-based.
  • path /gallery/smile.jpg
  • package 01ed8bb7a8ad5500c8885da1575f77068d0777606d
  • volume
  • scope
  • dynamic

Follow a link

To follow a link is to get the linked file - if it exists.

Hash-based link

A hash-based link mounts another volume by its hash. The mounted volume is part of the filesystem and the link can not break.
Modifying a volume mounted via a hash-based link causes hash change propagation in the linking volume.

File links are either hash-based or location-based.

Link type

A file's link type defines how Boomla treats the link during file operations.

Available link types and their main properties:
Link type Address type Transparent Filesystem scope Mounts volume
package hash-based yes yes yes, read-only
scope hash-based yes yes yes, read/write
volume hash-based yes no yes, read/write
dynamic location-based yes no yes, read/write
path location-based no no no

Location-based link

A location-based link is a reference to another file by its path or other means. The link may be broken as the referenced file may or may not exist.

File links are either hash-based or location-based.

Package link

A package link is a file link mounting a package by its hash. The package link is a hash-based link: the mounted subtree becomes part of the website and remains there even if the original package website is removed. 

Example: package 01ed8bb7a8ad5500c8885da1575f77068d0777606d

Path link

A path link is a reference to another file by an internal path. It is not automatically followed. Its only purpose is documenting the relationship between the two files. The path link is a location-based link.

Example: path /foo/bar

Scope link

A scope link mounts a writable volume that establishes a filesystem scope. The scope link is a transparent, hash-based link.

Turn a package link into a scope link to make it editable. (This will also prevent the system from updating the package.)

Example: scope

Simple volume

A simple volume is a volume linked via a volume link.

Transparent link

A link is said to be a transparent link if it lets you transparently read and write the linked file's data except the following:
  • name,
  • file hash,
  • subtree size,
  • fileId,
  • fileNodeId,
  • link.
The rest of the file's data is accessed on the LINKED file:
  • type,
  • title,
  • status code,
  • attributes,
  • body,
  • children,
  • created, createdBy,
  • modified, modifiedBy,
  • subtreeModified, subtreeModifiedBy.
For example, a volume link is a transparent link, while a path link is not.

Volume link

A volume link mounts a volume with no special properties except for being a separate fileNodeId space. It is a transparent, hash-based link.The attached volume is also called a simple volume.

Example: volume