The webapp.properties File Format
General properties

The /apps/[app-name.webapp]/webapp.properties file specifies app-specific properties in the Java properties file format.

The following general properties are supported:

classpaths

a semicolon-delimited (";") list of Java classpaths to consider, when loading Java classes within the "staticjava" web calls adapter;

default: /apps/[app-name.webapp]/bin

app_displayed_name

app name to be displayed to end users

default: simple app directory name without the .webapp extension

hidden

true|false, whether to hide the app from the list of apps displayed to end users

default: false

app_url_name

app url to be appended to [domain_or_ip]/apps/ to access the current web app

default: lower-cased app directory name without the .webapp extension and without all blank characters

app_extension

the default file extension (without the dot)

default: the same as [app_url_name]

supported_extensions

a comma-delimited list of supported file extensions (with or without dots)

default: empty

collaborative

true|false, whether the given app supports collaboration among multiple users

default: false

singleton

true|false, whether only one instance of the app can be launched at a time

default: false

app_type

specifies app type, which is equal to the name of the app adapter to use for delivering the app to the end user

default: html

requires_root_url_paths

true|false, whether the app requires root URL paths, i.e., it is not able to serve paths relative to /apps/[app_url_name]; if true, webAppOS will either create a subdomain for this service (if domain_or_ip in webappos.properties points to a domain), or reserves a separate HTTP and (if secure=true in webappos.properties) HTTPS ports that can accept paths without the "/apps/[app_url_name]" prefix;

default: false

main

the name of the webcall action to be launched when the user creates or opens some project with this app. The webcall will be invoked right after web memory has been initialized. The webcall must follow the "webmemcall" calling conventions, however, no web memory object will be passed to it as an argument (a zero web memory reference will be passed instead).

default: empty

requires_web_libraries

a comma-delimited list of required web libraries (with or without the .weblibrary extension)

default: empty

mimes

a semicolon(";")-delimited list of strings in the form of name:value, where name is an extension (including the dot, e.g., ".lua") or a directory name relative to the home folder (including the starting "/", e.g., "/Desktop"), while value is the mime-type, e.g., "source/lua" or "directory/desktop"; mime values are used when searching for icons

app_templates_search_path

a colon or semicolon-delimited path, where to search for the out-of-the-box app-specific templates

default: $WEBAPPOS_ROOT/apps/$APP_FULL_NAME/templates (see Placeholders below)

published_templates_search_path

a colon or semicolon-delimited path, where to search for additional (e.g., published by the admin) app-specific templates

default: $WEBAPPOS_ROOT/apps/$APP_FULL_NAME/published_templates (see Placeholders below)

user_templates_search_path

where to search for user-specific app templates ($LOGIN is allowed as a placeholder for the user login name)

default: $WEBAPPOS_ROOT/home/$LOGIN/templates (see Placeholders below)

Placeholders

For some properties the following placeholders can be used.  They will be automatically substituted by actual runtime values:

$WEBAPPOS_ROOT

the directory, where webAppOS is located, e.g., /some/path/webAppOS/dist

$APP_DIR

the directory, where this app is located, e.g., /some/path/webAppOS/dist/apps/ThisAppName.webapp

$APP_FULL_NAME

(in paths only) the full name of this app (equal to the app directory name without the path, but with the .webapp extension), e.g., ThisAppName.webapp

$LOGIN

(for the user_templates_search_path property only) the login name of the end user, who is going to create a new project from a template located in the user's home directory

Specific properties

Apps can introduce additional app-specific propertis and app adapters can introduce properties specific for all apps of the same type.

Refer to the documentation of the particular app for app-specific properties.

Refer to the documentation of the particular app adapter for app-type-specific properties. Currently, the out-of-the-box "html" app adapter does not have additional properties.