# OpenInteract Glossary

action
  An action is a configuration directive that maps a URL to a handler. You setup actions within a package in the `action.perl` file, and default actions are defined in the `server.perl` file.
base installation
  An OpenInteract base installation is where all versions of all installed packages live. When you create a website or apply a package, the original source for the package lives in the base installation. One base installation can support many separate websites, and you should only ever need to create the base installation once.
handler
  A handler is a piece of Perl code that ultimately returns a fragment of HTML, or more generally, text. The handler manages action security and manipulates objects (fetches, creates, saves, removes) and hands the data to the template for display.
package
  Unit of distribution for a given functionality. This includes all of the necessary configuration, templates, Perl code, etc. You can install, upgrade and remove packages to or from your website. You configure a package using the `action.perl` and `spops.perl` files.
server
  An Apache/mod_perl process that runs the code making up one or more websites. You configure the server using `httpd.conf` and `httpd_modperl.conf` files.
stash class
  A stash class is Perl code that holds objects and other information for a website from request to request. Every website has its own stash class. (Not to be confused with Perl package symbol tables.)
template
  A template is a piece of text that contains template processing directives interspersed with other text. Normally in OpenInteract, this will be Template Toolkit processing directives interspersed with HTML.
tool
  Loosely speaking, a package implements a tool. This is not exactly true, since a package can choose to implement more than one tool. In general, you will find that there is a one-to-one mapping between a package and a tool. A tool consists of a set of templates that manipulate a common set of objects.
website
  An instantiation of the base OpenInteract framework plus a set of user-defined packages. You configure the website using the `server.perl` file.