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 (see some details in the section The html adapter)

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

a comma-delimited list of dependencies; the list must contain the names of all directly required web apps, services, or libraries (with the .webapp, .webservice, or .weblibrary extension) that have to be present to be able to use this web app; indirect dependencies will be collected recursively and put into the all_required and all_required_web_libraries attributes of the corresponding org.webappos.properties.WebAppProperties Java object

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.

The html adapter

The html adapter serve files (usually .html/.css/.js/.mjs files) in the [webappos]/dist/apps/[app-name.webapp]/web-root folder to the URL path /apps/[app_url_name].

Currently, the out-of-the-box "html" app adapter does not have additional properties.  However, a special asterisk notation can be used to access the files also from the project cache directory. For that, specify the asterisk in the URL path. Besides, due to security considerations, you have to specify also the query arguments login, ws_token, and project_id.  By default, files from the project are downloaded by the browser.  If you wish not to download, but to embed some .html within an iframe, specify the "auto_content_type" query parameter.

/apps/[app_url_name]/*some/path/within/current/project/file.html?login=webappos&ws_token=1234&project_id=webappos/project1.ext&auto_content_type