File properties are system defined, as opposed to file attributes that are user defined. File properties are hard wired into Boomla and often have special behavior attached. You can set some properties but not all of them.
Note that the file name is not a file property. It is the file's address among its siblings. This is important because changing the file's name doesn't affect its fileHash.
The fileNodeId is the ID of a file node within a volume. The fileNodeId is unique within a volume but not within a filesystem, which is a tree of volumes.
In comparison, the fileId is like a path, identifying a file node within a filesystem. It is a concatenated string of fileNodeIds.
Currently, fileNodeIds are 128bit pseudo-random numbers represented in string format. (Note that this may change at any time, so you should always treat it as a raw string.)
The root file of a volume currently always has the fileNodeId
The link property is a string holding a well-formatted file link.
It is an ASCII string in form
LINKTYPE is a valid link type, like
ARGS is zero or more link type specific arguments. Its size is limited to
The type property holds the name of a built-in type or an internal path to a file. Its maximum length is
The title property holds the file’s human readable name, possibly with spaces and other special characters. An UTF-8 string, maximum
255 bytes long.
The statusCode property stores the status of a file. It may indicate an error. Currently, it is only used for setting the status code of the HTTP response.
Its values follow the HTTP conventions except for the default value
0 means OK which is the default,
200 means OK (it is recommended to use
499 client error,
599 server error.
See the list of HTTP Status Codes on Wikipedia for more details.
The body is a binary storage area, limited to 10MB.
The created property stores a unix timestamp of when the file was created.
The createdBy property stores the UserId of the user that created the file.
The modified property stores a unix timestamp of when the file was last modified.
The modifiedBy property stores the UserId of the user that last modified the file.
The descendantsModified property stores the unix timestamp when any of the file's descendants was last modified. Removing any of the file's descendants will also update this property, thus it may be greater than the largest modifiedBy property in its subtree.
The descendantsModifiedBy property stores the UserId of the user that was last to make a change to any of the file's descendants.
The attrHash is the hash of the file's attributes when serialized. It is not guaranteed to be normalized. If two files have the same attrHash, their attributes are guaranteed to match. If two files have different attribute hashes, their attributes may or may not match.
The attrSize is the size of the file's attributes when serialized, in bytes.
The bodyHash is the hash of the file's body. It is not guaranteed to be normalized. If two files have the same bodyHash, their bodies are guaranteed to be identical. If two files have different body hashes, their bodies may or may not match.
The bodySize is the size of the file's body in bytes.
The childrenHash is the hash of the data structure representing the file's children, when serialized.
The childrenSize property is the size of all serialized data structures required to represent the child subtree of a file, in bytes.
Note: data deduplication is not taken into account here. If you make 100 copies of a 10MB file, it will show as 1GB while in fact it will only use 10MB disk space (plus a little overhead).