NAME

hubvar - Hub variables

SYNOPSIS

The Hub library uses a registry to store hierarchical (or nested) data structures, and exposes this registry as $Hub. The library itself uses configuration information and populates registry keys (addresses). This document is a dictionary of the implemented values and their meanings.

VARIABLES

Environment Variables

These shell/mod_perl environment variables will affect the library:

CONF_FILE                Configuration filename (instead of '.conf')
WORKING_DIR              Working directory
DEBUG                    Honor debugging statements
GLOBAL_EXCLUDE           Semicolon list of dirs (Hub::find)
GLOBAL_IGNORE            Semicolon list of patterns (Hub::find)

Prepopulated Variables

These variables are populated by the library when a callback occurs. A default callback is performed when the library is used so that $Hub is immediately available to standard perl scripts. Otherwise a callback occurs for each mod_perl response or when Hub::callback is explicitly called.

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/sys/OPTS                         hash    Command-line options
/sys/ARGV                         array   Command-line arguments (w/o options)
/sys/ENV                          hash    Copy of %ENV

When processing HTTP requests:

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/cgi                              hash    CGI parameters
/user                             hash    Authorized user account (or undef)
/session                          hash    Instance of hashfile
/session/credentials/auth_tstamp  scalar  Last time authorization succeeded
/session/credentials/username     scalar  From /cgi/username when action=login
/session/credentials/password     scalar  From /cgi/password when action=login
/sys/request/page/url             scalar  Request URL
/sys/request/page/path            scalar  Directory of URL
/sys/request/page/name            scalar  Name of requested file (no path)
/sys/request/page/ext             scalar  Requested file extension

Runtime Configuration /conf

These values are defined in a file named .conf or per environment variable CONF_FILE.

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/timeout/lockfile            scalar  Seconds to wait on lock files
/conf/parser/max_depth            scalar  Maximum number of replacements 
/conf/parser/max_scope_depth      scalar  Maximum local stack size
/conf/win32/owner_name            scalar  ACL For setting owner permissions
/conf/win32/group_name            scalar  ACL For setting group permissions
/conf/win32/other_name            scalar  ACL For setting other permissions

When processing HTTP requests:

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/content_types               scalar  File extension to MIME type map
/conf/authorization/users         scalar  Where user accounts are located
/conf/authorization/password_key  scalar  The password sub-key of the account
/conf/authorization/timeout       scalar  Seconds before auth is invalid
/conf/session/enable              scalar  Enable cookie-based sessions
/conf/session/directory           scalar  Writeable directory for session data
/conf/session/timeout             scalar  Seconds before session is invalid

Internal Variables

You should not need to use these unless you are doind module development.

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/sys/PATH                         array   Working directory stack
/sys/CGI                          object  Apache2::Request or CGI object
/sys/response/headers             array   Generated headers
/sys/response/template            scalar  Response template

Content File Manager Application

VARIABLE ADDRESS                  TYPE    DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/cms/deny                    array   List off addresses (regex) to deny
/conf/cms/root                    scalar  Restricted to this directory

AUTHOR

Ryan Gies (ryangies@livesite.net)

COPYRIGHT

Copyright (C) 2006-2007 by Livesite Networks, LLC. All rights reserved.

Copyright (C) 2000-2005 by Ryan Gies. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

* The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

* Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

* The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

To the best of our knowledge, no patented algorithms have been used. However, we do not have the resources to carry out a patent search, and therefore cannot give any guarantee of the above statement.

UPDATED

08/02/2007