File Pointer Properties

File Pointer Properties allow files to be stored as the value for certain properties which have the File or Filelist datatype. The files are stored in the File Store in the MongoDB repository and can be retrieved and downloaded locally through the Object Properties panel of the parent object.

They allow for operating manuals, documentation, images, icons etc. to be stored as property values, attached to objects and retrieved on-demand.

Adding Attachments in DataStudio

Most objects in the system have an Attachments property in the Common property compound of the Properties Panel.

Attachments Property - Object Properties Panel
Figure 1. Attachments Property - Object Properties Panel

In DataStudio, all File Pointer Properties can be managed using the File Manager Dialog to add delete and modify files. Click on the …​ icon to open the FileManager dialog.

File Manager

The File Manager table dialog allows you to manage the File Pointer Properties and add multiple attachments to the same object.

File Manager Dialog
Figure 2. File Manager Dialog

All the actions regarding File Pointer Properties follow the same workflow. For example, if you want to add a new file to the database, click on the + icon open the 'Select File' dialogue and the select the file which you want to attach to this object. Click open to confirm your selection.

At the bottom of the dialogue click OK to close it. Finally click Apply in the Properties Panel to execute your changes.

For other actions related to File Pointer Properties see the table below.

Table 1. File Pointer Properties - Menu Bar Options
Element Function Description

icon properties attachments add 64

Add File

Opens the 'Select File' dialogue for uploading new files to the database

icon upper limit1

Upload / Change File

Opens the 'Select File' dialogue for uploading files to the database

icon lower limit1


Opens the 'Save File' dialogue for saving to the local filesystem

icon dashboard delete row

Remove Row

Deletes the selected attachment.
Select the row in the table before clicking this icon.

icon glasses


Shows the selected attachment in the preview area (if possible)

Upload Restrictions

Upload Restrictions for the filetype and/or the file size can be configured in the properties of the System object. There, in the FileStore > Upload Restrictions property compound, a maximum size for files can be specified and file extensions can be entered into a whitelist to allow or into a blacklist to disallow filetypes.

If both a whitelist and blacklist are specified, then only the whitelist is used. File Extensions have to be entered as comma separated lists - without dots (e.g. 'exe,bat'; not '.exe,.bat'). Extensions can include white space but need to begin and end with a non-white-space character as leading and trailing white space will be removed. The asterisk (*) character matches any non-empty extension, making all other entries in the list irrelevant. It must not be used as a wildcard to define a group of extensions! So, when the whitelist is set to an asterisk then any file with a file extension is allowed. If the blacklist is set to an asterisk, then only files without a file extension are allowed.

A Max File Size value of 0 means that no file size checks are carried out. Files which have already been stored in the system are not affected by changes in the Upload Restrictions properties.

How files are stored within the system

The file itself is stored in the MongoDB repository using the MongoDB GridFS specification. This has advantages over other MongoDB specifications as it does not run up against the size constraints for sending and receiving that are in place for other document types (for example the BSON documents used in the standard System Data Stores). Zero-length files are also allowed.

The file pointer property itself displays only the filename of the attached file.


A File Pointer Property has accompanying metadata that contains a link (or 'pointer') to the actual stored file as well as information related to the file (such as the file name). This metadata can also contain custom user data.

For properties of the Filelist type the filename in the metadata is used to uniquely identify files.

While the size of the actual file is virtually unlimited, the accompanying metadata is limited to 512 MB (this size limitation applies to all BSON documents exchanged between the Core and its clients (or in Store and Forward).
Metadata can be used in mass config scripts. However, the file digest is not guaranteed to be present when the script is executed and hence the actual file content might be lost

Lua API functions - File Pointer Properties

As described above, file pointer properties consist of the binary file data itself and associated metadata.

File operations are synchronous and may take a long time. Clients are advised to execute such operations asynchronously, e.g. by using dedicated threads.

Support for file pointer properties is currently provided through the following Lua API functions:

See the associated Lua function documentation for more details on the table schema for file pointer properties and how to access them using the Lua API.

Web API endpoints - File Pointer Properties

Support for file pointer properties is currently provided through the following Web API endpoints: