Scripting Extension Overview

The scripting extension provides a number of extension points called “hooks” throughout GeoServer. Each hook provides a way to plug in functionality via a script. See the Scripting Hooks section for details on each of the individual scripting hooks.

Scripts are located in the GeoServer data directory under a directory named scripts. Under this directory exist a number of other directories, one for each scripting hook:


The apps directory provides an “application” hook allowing for one to provide a script invokable over http.

The function directory provides a Filter Function hook allowing to create new custom functions to be used for example in WFS/WMS filtering or in SLD expressions, see Filter functions.

The lib directory is not a hook but is meant to be a location where common scripts/libraries may be placed. For instance this directory may be used as a common location for data structures and utility functions that may be utilized across many different scripts.


How the lib directory (or if it is utilized at all) is language specific.

The wfs/tx directory provides a WFS Transactions hook allowing to intercept WFS transaction.

The wps directory provides a Web Processing Service (WPS) process hook to contribute a process invokable via WPS.

See Scripting Hooks for more details.

Creating scripts involves either creating a script in one of these hook directories or creating it with web user interface. New scripts are picked up automatically by GeoServer without a need to ever restart the server as is the case with a pure Java GeoServer extension.