Glossary

Anonymous filesystem

An anonymous filesystem is a filesystem that is not bound to a domain. Even anonymous filesystems have a domain that can be used to print the absolute path of its files, but you can't use that domain from outside the anonymous filesystem to access it.

It is a temporary filesystem that only exists for the duration of a transaction.

An alternative way of thinking is that an anonymous filesystem is not mounted anywhere. As soon as you mount it to a non-anonymous filesystem, it will stop being both anonymous and temporary.

Application call stack

Applications may run other applications, forming an application call stack. It's similar to the call stack used in programming, except only application calls are added to the application call stack.

Application call stack level

Depth of the application call stack. Stack level 0 belongs to the original application call, level 1 to the next level, etc.

Engine

An engine is a program that executes code written in a programming language. Used as a catch-all term for interpreters and virtual machines.
When writing code in a method file, you can select the engine by setting the method file's type property. For example, you can execute JavaScript code via the sjs-4 JavaScript engine.

File status code

File status code is a number stored in the status code property of files. A special case is 0, which indicates success, other status codes are used as in the HTTP specification. For example, 4xx and 5xx status codes represent errors.

Inline method

A web page may be divided into logical components. In Boomla, these components are usually stored in individual files. We can get the HTML code for each component by calling its inline method. The code is stored in a method file named .Inline.

Kernel space

Boomla is a platform which provides a filesystem, an execution model, etc. Kernel space refers to the platform. There are things kernel space code can do which is impossible in user space. For example, setting up a package link requires access to the package filesystem before it is mounted. That's only accessible in kernel space.
See also: user space.

Method file

In object oriented programming, there are classes, instances and methods; in Boomla, there are apps, app instances and methods. Each method is stored in an individual file called method file within the app. The method file is executed when the method is called on an app instance. For example, when a request hits a website, the .Request method is executed on the requested file. System defined methods start with an uppercase letter after the dot, user defined methods start with a lowercase letter after the dot.

Namespaced request parameter

HTTP request parameters may conflict if multiple components on a page expect identically named parameters. This can happen for example when there are 2 instances of the same app on a page. To avoid this, request parameters shall be namespaced. Namespacing works by adding a unique prefix to parameter names. For example, param could become n57B81.param where n57B81 is the namespace.

Request file

The request file is a file holding the input data when executing a method. It is the root file of an anonymous filesystem.

Request method

The request method is executed when a HTTP request hits a website. The target file is located by the request path, then a method file named .Request is located on its type chain and executed.

Response file

The response file is a file that shall be filled with output data during the execution of a method. It is the root file of an anonymous filesystem.

Response status code

Response status code is used for both the HTTP response status code and the status code property of the response file.
The status code property of the response file is used as the HTTP status code, with one exception: 0 is treated as success and thus a HTTP response status code of 200 is returned to the visitor.

Source file

The source file is the file holding the source code that is being executed.

Transaction

A transaction is a unit of work performed by Boomla. Changes made within a transaction are invisible until the transaction is committed. Unhandled errors during a transaction cause an automatic rollback.

Transaction tree

Every request creates a new transaction. A transaction may start any number of child transactions. A request thus builds up a tree of transactions.

User space

Boomla is a platform, it provides a Filesystem, an execution model, etc. User space means built on top of that platform, using the provided APIs.
See also: kernel space.