The Session Variable administration page allows the definition and default configuration for session variables within the AppBoard system.
Typical uses for session variables:
- storing environmental information that is subject to change such as database hostnames, usernames, passwords - and used in Data Source configuration.
- associating extra information for domains and users, which can then be used for a variety of purposes such as modifying queries etc... This may be helpful in multi-tenanted deployments. Refer to the Dynamic Queries documentation for more details.
- a central place to store simple key information used in multiple places
Session variables can be used anywhere SHIM expressions are permitted using session.var.get.
There are a number of ways to set session variables:
- Session Variables administration page to define and set defaults
- URL parameters to override session variables (only allowed if configured this way)
- Imported at runtime dynamically, for example by pulling in additional user attributes from LDAP and assigning them to session variables.
1.1. Variable Scoping
An important concept is that session variables are globally available but can actually have different values depending on the session and whether the session variable has been defined to have Domain and/or User scope. For a given session the most specific version takes precedence: user, then domain, then the system default.
2. Managing Session Variables
The default screen when accessing the Session Variables administration page provides the mechanism to override Domain and User scoped variables. To actually define and edit default values click the Manage Variables button to bring up the Manage Variables dialog as shown to the right.
This dialog can be used to:
- Add new variables
- Delete variables
- Configure existing variables
The following table provides a description of the configuration fields when defining variables:
|Name||Shows the name of the currently selected variable. This is not editable, if a variable with an incorrect name is created then delete it and create another.|
|Description||This description is purely for the AppBoard administrator. Best practices is to provide some information around why and what the variable is used for.|
|Type||Drop-down selection of the data type of the variable. The default is STRING, but other types include BOOLEAN, NUMBER, INT, and DATE|
|Scope||Check the Domain and/or User boxes allow for domain and user scoping. See the Variable Scoping section above for more information.|
|Ordinal Position||Can be used to order the list of variables in this dialog.|
|Default Value||Define the default value of this variable here.|
2.1. Setting Scoped Overrides
The Managed Variables dialog allows for variables to be configured along with their default values. If the Domain and/or User scopes have been checked then the main Session Variables administration page is used to specify the Domain and User specific overrides.
To set an override:
- Bring up the Session Variables administration page
- Select the appropriate domain from the Domain drop-down selection.
- Either select the domain itself or a specific user in the Users list.
- At this point the Variables pane should show any variables that are scoped for the selection made (either domain or user or both).
- Type in an override value for desired variable.
As shown in the example screenshot at the top of this page, the domain System is selected which is showing a variable Test. As the field is blank there is currently no override, but the administrator could specify one here.
3.1. Data Source Configuration
Using session variables to store data source configuration can be helpful if this information is used multiple times (multiple data source configurations) and also for workflow where a development environment may have one set of details, while production has another, and the Export/Import feature is used to migrate configuration excluding the session variables.
In this example four session variables have been created for the database host, name, username, and password as shown below:
With the variables created it is now possible to create or modify the data source to use these variables. The Insert Expression button is a convenient way to have the appropriate SHIM expression text inserted for you. The URL field has the value below which is not completely visible in the screenshot:
The Password field is also a SHIM expression except the value is masked with asterisks.
3.2. In Queries
Refer to the Dynamic Queries documentation for more details.