lccroar white paper€¦ · page 1: of 56 lccroar-whitepaper.docx lower columbia college lccroar...
TRANSCRIPT
Page 1 of 59: lccROAR-whitepaper.docx
Lower Columbia College
White Paper
Contents Description ................................................................................................................................................................................ 2
lccROAR ................................................................................................................................................................................. 2
Topology of the program's Logic: ........................................................................................................................................... 3
Installation ................................................................................................................................................................................. 4
Front End Website ................................................................................................................................................................. 4
Back End ................................................................................................................................................................................ 5
Admin Decryption .................................................................................................................................................................. 6
IIS Tips ...................................................................................................................................................................................... 6
Portal Sets .................................................................................................................................................................................. 7
Customized URLs ....................................................................................................................................................................... 8
Flags ...................................................................................................................................................................................... 8
Examples ............................................................................................................................................................................... 9
Logic File Description/Syntax .................................................................................................................................................. 10
Logic File ................................................................................................................................................................................. 11
Page Flags ............................................................................................................................................................................... 41
Thresholds............................................................................................................................................................................... 43
SQL Sets .................................................................................................................................................................................. 43
Example ............................................................................................................................................................................... 46
mySQL Sets .............................................................................................................................................................................. 46
Page 2 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example ............................................................................................................................................................................... 49
Specifying Encrypted Key Values In The Logic File ................................................................................................................. 49
Encrypting/Decrypting Values ................................................................................................................................................ 50
Example Logic File ............................................................................................................................................................... 50
Example Command Line Syntax ........................................................................................................................................... 50
Configuration File Example ..................................................................................................................................................... 50
Methods .................................................................................................................................................................................. 51
Logic File Examples ................................................................................................................................................................ 51
Front End ............................................................................................................................................................................. 51
Back End .............................................................................................................................................................................. 55
Admin Decryption ................................................................................................................................................................ 56
Wildcards In Values ................................................................................................................................................................ 56
Resources ................................................................................................................................................................................ 57
Definitions ............................................................................................................................................................................... 57
Modifications ........................................................................................................................................................................... 57
Description This document describes how to install/configure the lccROAR program.
lccROAR
was created to ask for information (like credentials, or other), verify that information against one to many validation lists, then
return records from one to many return lists.
As of 20180521, the program now also supports API responses in many format (ex: TXT, XML, etc.). In this mode, the program
can return data for digesting by programs/downloading.
Page 3 of 59: lccROAR-whitepaper.docx
Lower Columbia College
The program, supplied CSS styles, were also created to support Online Accessibility requirements, according to:
• LCC Supporting Colors, ref: http://services4.lowercolumbia.edu/internal/lccPrimarySupportingColors.htm
• LCC Branding and Style Guide, ref: https://services4.lowercolumbia.edu/info/webresources/Institutional-
Research/LCC_Brand_Style_Guide.pdf
• Web Accessibility wiki, ref: https://en.wikipedia.org/wiki/Web_accessibility
• WA Policy 188, ref:
http://ocio.wa.gov/sites/default/files/public/policies/188_Accessibility_Interim_TSB_Sub_201705_3.pdf
• W3C Multimedia Accessibility, ref: https://www.w3.org/2008/06/video-notes
Example Scenarios
• Multiple Portal Credentials
o User supplies personal information, like Student Id, Data Of Birth, then is provided credentials for multiple portals
they are allowed to log into.
• Reverse Phone Lookup
o User enters part or all of a phone number, and all Contact Records with any or all of that value are returned.
Topology of the program's Logic:
• Loads the main Logic File
• Loads global settings
• Loads each Portal Set
• Compare Portal Set Id against the one being provided, if none, lists any 'public' Portal Sets
• Display all Login Columns
[If user supplied data verified]
• Display all Return records that match criteria
An LDAP module was added that allows LDAP authentication. To keep true Tier-3 Security (i.e. separating Front End processes
from Back End), a Request/Response module also added. This new LDAP+Request/Response modules work in the following
manner:
• [Front-End] User enter credentials on a Front End web page
• [Front-End] Front End lccROAR submit a Request for validating/checking user Security Groups
• [Back-End] Processes the Request and produces a Response
• [Front-End] Parses the Response and responds to the user
Requests and Response are encrypted in-state.
Page 4 of 59: lccROAR-whitepaper.docx
Lower Columbia College
With the addition of a Request/Response module, there may be times when Admins will need to debug an issue by decrypting
either. Within lccROAR there is a module for decryption which launches the program in a Windows mode, i.e. point-click.
lccROAR runs in the following modes, depending on the use:
• Front End Website: Console Application
o (optional) Web Resource Browsing: acts as a Folder/File explorer
o See Key: lcc:portalSetReturnDataFileFlag, for value 'WebResourceBrowsing'
• Back End: Console Application
• Admin Decryption: Windows Application
Installation
Note: IIS made multiple updates that further isolates Console Applications when run through IIS, i.e. restricting access to system
environment variables which then causes Microsoft's own libraries, like DirectoryEntry and SQLConnection to not work because
it can't find values in the environment and won't allow nulls. Tired of this continuing restrictions, I installed Apache on another
server, and now everything works just fine. i.e. Apache is a lot friendlier/flexible to Console Applications.
Front End Website
• create a folder for lccROAR on a 'public' facing folder
• place the following files into that location
o index.css
o index.js
o index.xtm
▪ note: change the 'xtm' extension to the one your IIS server uses for Server Side Includes (SSI)
o index-h.css
o index-v.css
o lccROAR.js
o lccROARGlobal.js
o logo_web.png
▪ note: change the graphic to your logo
o recommendation: create a sub-folder called PortalSets, and then a sub-folder in that folder for each Portal Set.
This will allow organizing of each Portal Set.
Page 5 of 59: lccROAR-whitepaper.docx
Lower Columbia College
• create a Logs folder for lccROAR in a 'private' (not public accessible) location
o with permissions to read/write for the website user
• inside the Logs folder, create a sub-folder 'thresholds'
o note: this is to keep track of Thresholds
• create a Data folder for lccROAR in a 'private' (not public accessible) location
• with permissions to read only for the website user
o recommendation: create a sub-folder called PortalSets, and then a sub-folder in that folder for each Portal Set.
This will allow organizing of each Portal Set.
• place the following files into that location
o lccROAR-logic.txt (see how to create this file below)
o body.txt
o header1.txt
o topper1.txt
o body.body
o footer1.txt
• place the lccROAR.exe in your 'scripts' folder
• create a lccROAR.exe.config file and place it in the same folder (see Configuration File Example section)
After you have created your Logic File, Configuration file, finished the Installation steps above, go to your website URL. The
program should return the Portal Sets configured. See the Log for any errors/issues.
Back End
• create a folder for lccROAR on a 'non-public' private folder
• create a Logs folder for lccROAR Back End in a 'private' (not public accessible) location
o with permissions to read/write for the internal account running lccROAR
• place the following files into that location
o lccROAR-logic-backEnd.txt (see how to create this file below)
o lccROAR.exe
If you store the Logic Files for the Front End and Back End in the same folder, you will need to name them differently, we
recommend:
• [Front End] : lccROAR-logic.txt
• [Back End] : lccROAR-logic-backEnd.txt
Page 6 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Run the program with the following syntax:
lccROAR.exe lcc:logicPath lccROAR-logic-backEnd.txt
This will launch the Console Application version.
Since this should always be running for LDAP to function, we recommend using lccServiceWrapper to wrap this into a Service.
When the server restarts, lccServiceWrapper will automatically launch lccROAR. Though you could launch lccROAR back end
with any other process, i.e. Task Scheduler, batch file, etc. that can run a Console Application.
Admin Decryption
• create a local folder for Admin use (can be on any system) and place the following files into that location
o lccROAR-logic-decryptRequestsResponses.txt (see how to create this file below)
o lccROAR.exe
Run the program with the following syntax:
lccROAR.exe lcc:logicPath lccROAR-logic-decryptRequestsResponses.txt
This will launch the Windows version.
IIS Tips
You may have to configure additional settings on your IIS. Depending on the environment you have set-up. These are some tips
on those configurations.
• Go to IIS
• Click: [Server name]
o Click: ISAPI and CGI Restrictions
▪ Click: Open Feature
▪ Click: Add
▪ Click: ... (and choose the lccROAR.exe)
▪ Click: Open
▪ Check: Allow extension path to execute
▪ Click: Ok
o .
o Click: Handler Mappings
Page 7 of 59: lccROAR-whitepaper.docx
Lower Columbia College
▪ Click: CGI-exe
• Click: Edit Feature Permissions
• Check: Read, Script and Execute
• Click: Ok
• Click: Edit
• Click: Request Restrictions
• Click: Access
• Choose: Execute
Portal Sets
Portal Sets are sets of settings to define a Portal. The settings help define the following:
• what log-in columns will be used
• what return columns will be displayed
• what adhoc code will be used
For each Portal you wish to define, start with the key 'lcc:portalSetId'. This tells the program that the settings from that point
forward are for that portal, until it finds this key again.
Each Portal Set should have the following minimum keys:
• lcc:portalSetId
• lcc:portalSetTitle
• lcc:portalSetLoginSubmitTitle
• lcc:portalSetLogInPromoPath
• lcc:portalSetLoginColumn
One of these for each Log In Column
• lcc:portalSetValidateDataFile
One of these for each file used to Validate the user values
o lcc:portalSetValidateDataFileDelimiter
• lcc:portalSetReturnDataFileReturnAgainst
One of these for each Log In column you want to check against a return column
o lcc:portalSetReturnDataFileDisplayColumnsTitle
o lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage
• lcc:portalSetReturnDataFileDisplayColumn
Page 8 of 59: lccROAR-whitepaper.docx
Lower Columbia College
One of these for each return column you want to display
Customized URLs
You can create customized URLs to:
• auto open a specific Portal Set
• only return specific Return Data sets within a Portal Set
The flags that can be provided in a URL are below. They can be in any order.
Flags
lccSMethod (mandatory, one per URL)
Provides the method for the program.
See the Methods section.
Syntax: lccSMethod=[...]
Example: lccSMethod=portal
Example #2: lccSMethod=portalDemo
lccSSetId (optional, one per URL)
Provides the Portal Set Id.
Syntax: lccSSetId=[...]
Example: lccSSetId=portalsCredentials
lccSSetReturnId (optional, one per URL)
Provides the Return Data Id.
This value can contain multiple Ids, separated by commas.
Syntax: lccSSetReturnId=[...]
Example: lccSSetReturnId=2
Page 9 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example #2 (multiple):
lccSSetReturnId=1,3
lccSLoginPortalKey (optional, one per URL)
Provides the Login Key for a Portal Set defined with a Key. If not provided, the user will need to manually enter.
Syntax: lccSLoginPortalKey=[...]
Example: lccSLoginPortalKey=123
lccSOrientation (optional, one per URL)
Overrides the default orientation for a Portal Set. If the user selects an Orientation, their selection overrides this key.
Syntax: lccSOrientation=[...]
Example: lccSOrientation=123
lccSResponseMode (optional, one per URL)
Specifies the response mode.
The specific portal Logic File must authorize API mode. See key 'lcc:portalSetFlag' and values
'APIResponseModeAuthorized', 'APIResponseFormat'.
Valid Values
• API : returns data in an API format (not for browser/user friendly format)
Syntax: lccSResponseMode=[...]
Example: lccSResponseMode=API
lccAPIColFilter/# (optional, one to many per URL)
If portal us accessed in API mode, this key allows filtering of the data.
If 'lccAPIColFilter' used without any column #, then all columns are searched.
If you want to search a specific column, use that column #.
The search is an 'AND' search, all filters must be found.
Page 10 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lccAPIColFilter=[...]
Example: lccAPIColFilter=security
Example #2 (multiple):
lccAPIColFilter=security&lccAPIColFilter3=smith
Examples
Default : will list any 'public' Portal Sets
https://ourcollege.edu/scripts/lccROAR.exe
Pull Up Portal Set 'ourPortal'
https://ourcollege.edu/scripts/lccROAR.exe?lccSMethod=portal&lccSSetId=ourPortalSet
Pull Up Portal Set 'ourPortal', and only return data from Return Id '2'
https://ourcollege.edu/scripts/lccROAR.exe?lccSMethod=portal&lccSSetId=ourPortalSet&lccSSetReturnId=2
Pull Up Portal Set 'ourPortal', and return data from Return Ids '1' and '3'
https://ourcollege.edu/scripts/lccROAR.exe?lccSMethod=portal&lccSSetId=ourPortalSet&lccSSetReturnId=1,3
Logic File Description/Syntax
A Logic File is a Tab delimited text file. Any lines not recognized as a valid Key/Value pair, will be ignore and can be used as
remarks/other.
The Logic File uses the syntax.
Syntax: [Key] [tab] [Value] … [tab] [Value]
Example: lcc:key value
Any extra tabs in a line after the expected ones are considered remarks and will be ignored. This is a nice way to document
specific Key settings (see Log Levels in the Logic File example(s) for reference). Also, if you place a tab before a line, that will
essentially make it a remark and will be ignored, which makes using/not using logic without removing quicker.
Any line not starting with an expected key is ignored, which makes placing remarks/formatting the logic easy.
Page 11 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Logic File
lcc:debugIP (optional, one to many per Logic File)
Supported modules: Front End
Specifies IPs for use as Debug Machines. If more than one IP required, use multiple lines.
Debug Mode is used for debugging the program. Error messages are more detailed. See key 'lcc:debugLevel' for
setting output types.
Syntax: lcc:debugIP [tab] [..IP..]
Example: lcc:debugIP 123.123.123.123
Example #2 (multiple):
lcc:debugIP 123.123.123.123
lcc:debugIP 231.231.231.231
lcc:adminIP (optional, one to many per Logic File)
Supported modules: Front End
Specifies IPs for use as Admin Machines. If more than one IP required, use multiple lines.
Admin Mode gives access to all portals.
Syntax: lcc:debugIP [tab] [..IP..]
Example: lcc:debugIP 123.123.123.123
Example #2 (multiple):
lcc:debugIP 123.123.123.123
lcc:debugIP 231.231.231.231
lcc:logPath (mandatory, one to many per Logic File)
Supported modules: Front End, Back End, Admin Decryption
The path/root name of the Log File. The program will place the '.log' extension automatically and will append a
Year/Month date.
Page 12 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:logPath [tab] [..Path..]
Example: lcc:logPath e:\ourLogs\lccROAR\lccROAR
lcc:loadSettingsFromFile (optional, one to many per Logic File)
Supported modules: Front End, Back End, Admin Decryption
Pulls Logic File settings from another path and inserts it into the current Logic File settings. This is handy if you want to
place sections into their own files, like Portal Sets, etc.
For example, if you main Logic File has:
...
lcc:portalSetId ourPortal123
lcc:portalFlag flag1 value1
lcc:portalFlag flag2 value2
lcc:portalFlag flag3 value3
You could change to:
...
lcc:portalSetId ourPortal123
lcc:loadSettingsFromFile e:\folder\portalSets\portal123-logic.txt
Then in the 'portal123-logic.txt' file, you could have:
lcc:portalFlag flag1 value1
lcc:portalFlag flag2 value2
lcc:portalFlag flag3 value3
Syntax: lcc:loadSettingsFromFile [tab] [..Path..]
Example: lcc:loadSettingsFromFile e:\folder\portalSets\portal123-logic.txt
lcc:method (mandatory, one to many per Logic File)
Supported modules: Front End, Back End, Admin Decryption
The method the program will run in.
Syntax: lcc:logPath [tab] [..Path..]
Page 13 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example: lcc:logPath e:\ourLogs\lccROAR\lccROAR
lcc:heartbeatSeconds (optional, one per Logic File)
Supported modules: Back End
Shows a heartbeat every # seconds.
Syntax: lcc:heartbeatSeconds [tab] [..#..]
Example: lcc:heartbeatSeconds 60
lcc:abortPath (optional, one per Logic File)
Supported modules: Back End
Supplied path to an abort file. If the file is found with content, the Back End will abort and the file will be deleted.
Syntax: lcc:abortPath [tab] [..Path..]
Example: lcc:abortPath .\lccROAR-backEnd-abort.txt
lcc:pauseBetweenRequests (optional, one per Logic File)
Supported modules: Back End
How much delay between each request.
Syntax: lcc:pauseBetweenRequests [tab] [..#..]
Example: lcc:pauseBetweenRequests 1
lcc:debugLevel (optional, one to many per Logic File)
Supported modules: Front End, Back End, Admin Decryption
Specifies what debug information will be provided to the Debug IP. Provide a new line for each level desired.
Debug Levels
1 logic name/values
2 display query name/values
3 display post name/values
5 environment name/values
Page 14 of 59: lccROAR-whitepaper.docx
Lower Columbia College
6 validate information
7 validate return information
8 show link to direct Portal Set, in debug mode
9 logic name/values to screen
10 LDAP
11 Response not found
12 Response key
13 Keep Response Files
14 Keep Requests Files
15 mySQL
16 Processing Requests Folder
Syntax: lcc:debugLevel [tab] [..#..]
Example: lcc:debugLevel 1
Example #2 (multiple):
lcc:debugLevel 1
lcc:debugLevel 3
lcc:thresholdsPath (mandatory, one per Logic File)
Supported modules: Front End
Where to track Thresholds.
See section "Thresholds" for details on Thresholds.
Syntax: lcc:thresholdsPath [tab] [..Path..]
Example: lcc:thresholdsPath f:\ourLogs\lccROAR\thresholds
lcc:sitesIndexTitle (mandatory, one per Logic File)
Supported modules: Front End
When no Portal Set id is provided by the URL/user, any 'public' Portal Sets will be displayed as a link to each. This key
sets the Title above those links.
Syntax: lcc:sitesIndexTitle [tab] [...]
Example: lcc:sitesIndexTitle Sites
Page 15 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:programPath (mandatory, one per Logic File)
Supported modules: Front End
What path on the website will information be submitted.
Syntax: lcc:programPath [tab] [..Path..]
Example: lcc:programPath /scripts/lccROAR.exe
lcc:requestsPath (optional, one per Logic File)
Supported modules: Front End, Back End
When using LDAP, what path to use for creating requests.
Request files are created by the Front End and processed by the Back End. The Back End then produces a Response file.
By default, requests are deleted after processing. You can skip deleting request files through the lcc:debugLevel key.
Syntax: lcc:requestsPath [tab] [..Path..]
Example: lcc:requestsPath F:\securedFolder\webData\lccROAR\requests
lcc:requestsArchivePath (optional, one per Logic File)
Supported modules: Back End
When using LDAP, what path to use for archiving requests.
If this key supplied, you must created a sub-folders in this path for:
• completed
• failed
Request files are created by the Front End and processed by the Back End. The Back End then produces a Response file
and if the lcc:debugLevel set, will archive requests.
By default, requests are deleted after processing. You can skip deleting request files through the lcc:debugLevel key.
Syntax: lcc:requestsPath [tab] [..Path..]
Page 16 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example: lcc:requestsPath F:\securedFolder\webData\lccROAR\requests
lcc:responsesPath (optional, one per Logic File)
Supported modules: Front End, Back End
When using LDAP, what path to use for creating responses.
Response files are created by the Back End and processed by the Front End.
By default, responses are deleted after processing. You can skip deleting response files through the lcc:debugLevel
key.
Syntax: lcc:responsesPath [tab] [..Path..]
Example: lcc:responsesPath F:\securedFolder\webData\lccROAR\responses
lcc:decryptRequestsResponsesPath (mandatory, one per Logic File)
Supported modules: Admin Decryption
This provides the path where the following exist:
• Requests
• RequestsCompleted
• RequestsFailed
• Responses
Syntax: lcc:decryptRequestsResponsesPath [tab] [..Type..] [tab] [..Path..]
Example: lcc:decryptRequestsResponsesPath Requests F:\securedFolder\webData\lccROAR\requests
lcc:decryptRequestsResponsesPath RequestsCompleted F:\securedFolder\webData\lccROAR\requestsArchive\completed
lcc:decryptRequestsResponsesPath RequestsFailed F:\securedFolder\webData\lccROAR\requestsArchive\failed
lcc:decryptRequestsResponsesPath Responses F:\securedFolder\webData\lccROAR\responses
lcc:globalEncryptionHash (optional, one per Logic File)
Supported modules: Front End, Back End, Admin Decryption
Hash value supplied for encryption/decryption. Must be used with keys ‘lcc:sourceEncryptionSaltKey’ and
‘lcc:sourceEncryptionVIKey’.
Page 17 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:globalEncryptionHash [tab] [...]
Example: lcc:globalEncryptionHash s0m3C00lPhr@$e
lcc:globalEncryptionSaltKey (optional, one per Logic File)
Supported modules: Front End, Back End, Admin Decryption
Hash value supplied for encryption/decryption. Must be used with keys ‘lcc:sourceEncryptionHash’ and
‘lcc:sourceEncryptionVIKey’.
Syntax: lcc:globalEncryptionSaltKey [tab] [...]
Example: lcc:globalEncryptionSaltKey s0m3C00lPhr@$e
lcc:globalEncryptionVIKey (optional, one per Logic File)
Supported modules: Front End, Back End, Admin Decryption
Hash value supplied for encryption/decryption. Must be used with keys ‘lcc:sourceEncryptionHash’ and
‘lcc:sourceEncryptionSaltKey’.
Syntax: lcc:globalEncryptionHash [tab] [...]
Example: lcc:globalEncryptionHash s0m3C00lPhr@$e12
lcc:securityKey (optional, one per Logic File)
Supported modules: Front End, Back End, Admin Decryption
If using encryption, this key must be supplied, as it garbles the values when converted to/from Base16 characters (i.e.
ABCDEFGHIJKLMNOP). The value can be anything.
Syntax: lcc:securityKey [tab] [...]
Example: lcc:securityKey our cool security key
lcc:maxFilterSize (optional, one per Logic File)
Supported modules: Back End
By default, the program will only accept up to 50 character filter values. This key will override that size.
Page 18 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:maxFilterSize [tab] [..#..]
Example: lcc:maxFilterSize 100
lcc:LDAPServer (optional, one to many per Logic File)
Supported modules: Back End
Specifices LDAP servers for use on accounts marked as Type 'LDAP'. If more than one LDAP server is available, use
multiple lines.
Syntax: lcc:LDAPServer [tab] [..Server/Domain Context..]
Example: lcc:LDAPServer ourLDAPServer/dc=ourcollege,dc=edu
Example #2 (multiple):
lcc:LDAPServer ourLDAPServer1/dc=ourcollege,dc=edu
lcc:LDAPServer ourLDAPServer2/dc=ourcollege,dc=edu
lcc:LDAPUserId (optional, one per Logic File)
Supported modules: Back End
Specifices LDAP User Id for the connection.
Syntax: lcc:LDAPUserId [tab] [..Id..]
Example: lcc:LDAPUserId ourUser
lcc:LDAPUserPassword (optional, one per Logic File)
Supported modules: Back End
Specifices LDAP User Password for the connection.
Syntax: lcc:LDAPUserPassword [tab] [..Id..]
Example: lcc:LDAPUserPassword ourPassword
lcc:orientation (optional, one per Logic File)
Supported modules: Front End
Page 19 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Sets the orientation of the result columns for all Portal Sets. The default is vertical.
Each Portal Set can override this settings with the key "lcc:portalSetReturnDataFileDisplayColumnsOrientation".
The user can override this settings with the Adhoc choosing of Vertical or Horizontal through the web page interface.
Valid Values
Horizontal
Syntax: lcc:orientation [tab] [...]
Example: lcc:orientation Horizontal
lcc:webResourcesPath (mandatory, one per Logic File)
Supported modules: Front End
What path on the website will web resources be found.
Syntax: lcc:webResourcesPath [tab] [..Path..]
Example: lcc:webResourcesPath /lccROAR
lcc:pageHTMLAttributes (optional, one per Logic File)
Supported modules: Front End
What attributes will be added to the HTML command of all web pages.
We suggest using: lang="en"
as this specifies what language the page is coded, and is used for Web Accessibility.
Syntax: lcc:pageHTMLAttributes [tab] [...]
Example: lcc:pageHTMLAttributes lang="en"
lcc:pageCSS (optional, one to many per Logic File)
Supported modules: Front End
What Cascading Style Sheet (CSS) file(s) will be embedded in the HEAD of all web pages.
Page 20 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:pageCSS [tab] [...]
Example: lcc:pageCSS index.css
Example #2 (multiple):
lcc:pageCSS index.css
lcc:pageCSS index2.css
lcc:pageCSSHorizontal (optional, one to many per Logic File)
Supported modules: Front End
What Cascading Style Sheet (CSS) file(s) will be embedded in the HEAD of all web pages 'if' the page is user's window is
Horizontal.
Syntax: lcc:pageCSSHorizontal [tab] [...]
Example: lcc:pageCSSHorizontal index-h.css
Example #2 (multiple):
lcc:pageCSSHorizontal index-h.css
lcc:pageCSSHorizontal index2-h.css
lcc:pageCSSVertical (optional, one to many per Logic File)
Supported modules: Front End
What Cascading Style Sheet (CSS) file(s) will be embedded in the HEAD of all web pages 'if' the page is user's window is
Vertical.
Syntax: lcc:pageCSSVertical [tab] [...]
Example: lcc:pageCSSVertical index-v.css
Example #2 (multiple):
lcc:pageCSSVertical index-v.css
lcc:pageCSSVertical index2-v.css
lcc:pageScript (optional, one to many per Logic File)
Supported modules: Front End
What Javascript script paths will be embedded in the HEAD of all web pages.
Syntax: lcc:pageScript [tab] [...]
Page 21 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example: lcc:pageScript index.js
Example #2 (multiple):
lcc:pageScript index.js
lcc:pageCSS index2.js
lcc:pageTitle (mandatory, one per Logic File)
Supported modules: Front End
What Title is used in the HEAD of all web pages.
Syntax: lcc:pageTitle [tab] [...]
Example: lcc:pageTitle lccROAR: Retrieve Online Authorized Records
lcc:pageHeader (optional, one to many per Logic File)
Supported modules: Front End
What file contents will be inserted in the HEAD of all web pages.
Syntax: lcc:pageHead [tab] [...]
Example: lcc:pageHead f:\data\lccROAR\header1.txt
Example #2 (multiple):
lcc:pageHead f:\data\lccROAR\header1.txt
lcc:pageHead f:\data\lccROAR\header2.txt
lcc:pageTopper (optional, one to many per Logic File)
Supported modules: Front End
What file contents will be inserted in the top of the BODY of all web pages.
Syntax: lcc:pageTopper [tab] [...]
Example: lcc:pageTopper f:\data\lccROAR\topper1.txt
Example #2 (multiple):
lcc:pageTopper f:\data\lccROAR\topper1.txt
lcc:pageTopper f:\data\lccROAR\topper2.txt
lcc:pageBody (mandatory, one per Logic File)
Page 22 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Supported modules: Front End
What file contents will be used as the BODY of all web pages.
Syntax: lcc:pageBody [tab] [...]
Example: lcc:pageBody f:\data\lccROAR\body.txt
lcc:pageFooter (optional, one to many per Logic File)
Supported modules: Front End
What file contents will be inserted in the footer of the BODY of all web pages.
Syntax: lcc:pageFooter [tab] [...]
Example: lcc:pageFooter f:\data\lccROAR\footer1.txt
Example #2 (multiple):
lcc:pageFooter f:\data\lccROAR\footer1.txt
lcc:pageFooter f:\data\lccROAR\footer2.txt
lcc:portalSetId (mandatory, one to many per Logic File, one per Portal Set)
Supported modules: Front End
The start of settings for a Portal Set. Each of these keys must have a unique value. But, the value can be anything.
Syntax: lcc:portalSetId [tab] [..Id..]
Example: lcc:portalSetId PortalsCredentials
lcc:portalSetFlag (optional, one to many per Logic File, one to many per Portal Set)
Supported modules: Front End
Sets flags for a portal.
Valid Flags
• APIResponseFormat : what format to return API responses in.
Valid Values
▪ CSV : returns in CSV format
Page 23 of 59: lccROAR-whitepaper.docx
Lower Columbia College
▪ HTM : returns in HTML format
▪ JSON : returns in JSON format
▪ TXT : returns in tab delimited format
▪ XML : returns in XML format
▪ YAML: return in YAML format
o Example: lcc:portalSetReturnDataFileFlag APIResponseFormat TXT
• APIResponseFormat: Sets what file type will be downloaded when using flag 'APIDownloadOption'.
Valid Values:
• CSV
• HTM
• JSON
• OpenDDL
• TXT
• XML
• YAML
Example: lcc:portalSetFlag APIResponseFormat CSV
• APIDownloadOption: Turns on the ability to download the results as a file. See flag 'APIResponseFormat' to set
what type of file format the file downloads as.
Valid Values:
▪ YES
Example: lcc:portalSetFlag APIDownloadOption YES
lcc:portalSetFlag APIDownloadOption YES
• AuthorizedIPs: Sets what IPs are authorized to use a portal. Can be one to many.
Example: lcc:portalSetFlag AuthorizedIP 123.123.123.123
• AuthorizedIPsWildcardLeft: Sets what IPs are authorized to use a portal, by the left wildcard portion. This is
helpful if you want to authorize an entire subnet. Can be one to many.
Example: lcc:portalSetFlag AuthorizedIPWildcardLeft 123.123.123.
Page 24 of 59: lccROAR-whitepaper.docx
Lower Columbia College
• Demo: Sets a Portal Set to 'demo'. If lccROAR is accessed with no Portal Id and using method 'demo', it will display
links to any Portals that are marked demo. If you set this key, this Portal Set will only show up if in demo mode.
Valid Values
o YES
• FooterOff: Prevents displaying the Footer content.
Valid Values
o YES
• MaxRecords: Sets the maximum number of records that can be shown. This also shows a Max Records box for the
user to change this value. Must be a number.
• MaxRecordsCeiling: Sets the maximum number of records ceiling that can be shown. If a MaxRecords value is
supplied by the user or logic that exceeds this value, it will be reduced to this maximum value. Handy if you want
to control the maximum records you ‘ever’ want returned.
• PortalThreshold : turns on access thresholds for accessing an entire portal. This is handy for API portals to
prevent outside API calls from swamping the server.
Valid Values
▪ YES
• PreDisplay: Shows the records immediately, before any search filters supplied. This is handy where you want
records to display when no filters needed, like statistics.
Valid Values
o YES
• Private: Sets a Portal Set to 'private'. If lccROAR is accessed with no Portal Id, it will display links to any Portals
that are public. If you set this key, this Portal Set will not show up in that index.
Valid Values
o YES
• ResponseModeAuthorized: Authorizes Response Modes.
Example: lcc:portalSetFlag ResponseModeAuthorized YES
Page 25 of 59: lccROAR-whitepaper.docx
Lower Columbia College
To activate a response mode, provide the 'lccSResponseMode' key in the URL. Then provide the response
mode type.
Valid Values
• API : will return the data in a download/single file format.
Example:
https://ourserver.edu/scripts/lccROAR.exe?lccSMethod=portal&lccSSetId=ourPortalSet&lccSResponseMo
de=API
• SearchOff: Prevents displaying the Search bar.
Valid Values
o YES
• Skip: Allows you to have settings for a Portal Set, but, have the program skip those settings. This is helpful if you
want to turn on/off Portal Sets.
Valid Values
o YES
• SubmitButtonOff: Prevents displaying the Submit content.
Valid Values
o YES
• ToolbarOff: Prevents displaying the Toolbar content.
Valid Values
o YES
• TopperOff: Prevents displaying the Topper content.
Valid Values
o YES
Syntax: lcc:portalSetFlag [tab] [..Flag Name..] [tab] [..Flag Value..]
Example: lcc:portalSetFlag Skip YES
Page 26 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example (multiple):
lcc:portalSetFlag Skip YES
lcc:portalSetFlag Private YES
lcc:portalSetWebResourceBrowsingDataType (optional, one to many per Logic File, one to many per Portal Set)
Supported modules: Front End
Sets what file types can be downloaded and what Mime-Type the file extension will be downloaded as, see Key
lcc:portalSetReturnDataFileFlag.
Mime-Types can be found in document:
mimeTypes.pdf
Syntax: lcc:portalSetWebResourceBrowsingDataType [tab] [..extension..] [tab] [..Mime Type..]
Example: lcc:portalSetWegResourceBrowsingDataType txt text/plain
Example (multiple):
lcc:portalSetWegResourceBrowsingDataType txt text/plain
lcc:portalSetWegResourceBrowsingDataType doc application/msword
lcc:portalSetWegResourceBrowsingDataType pdf application/pdf
lcc:portalSetWebResourceBrowsingIncludeFilename (optional, one to many per Logic File, one to many per Portal Set)
Supported modules: Front End
Can include certain file names. All others will be skipped.
This value can use wildcards. See the Wildcards In Values section.
Syntax: lcc:portalSetWebResourceBrowsingIncludeFilename [tab] [..filename..]
Example: lcc:portalSetWegResourceBrowsingIncludeFilename ourFile.txt
Example (multiple):
lcc: portalSetWegResourceBrowsingIncludeFilename ourFile.txt
lcc: portalSetWegResourceBrowsingIncludeFilename lcc*-logic.txt
lcc: portalSetWegResourceBrowsingIncludeFilename lcc*logic.*
lcc:portalSetWebResourceBrowsingExcludeFilename (optional, one to many per Logic File, one to many per Portal Set)
Supported modules: Front End
Page 27 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Can exclude certain file names from showing.
This value can use wildcards. See the Wildcards In Values section.
Syntax: lcc:portalSetWebResourceBrowsingExcludeFilename [tab] [..filename..]
Example: lcc:portalSetWegResourceBrowsingExcludeFilename ourFile.txt
Example (multiple):
lcc:portalSetWegResourceBrowsingExcludeFilename ourFile.txt
lcc:portalSetWegResourceBrowsingExcludeFilename lcc*-logic.txt
lcc:portalSetWegResourceBrowsingExcludeFilename lcc*logic.*
lcc:portalSetTitle (mandatory, one to many per Logic File, one per Portal Set)
Supported modules: Front End
Sets a Portal Set Title. This displays at the top of a Portal Set page.
Syntax: lcc:portalSetTitle [tab] [...]
Example: lcc:portalSetTitle Portals Credentials
lcc:portalSetPageTopper (optional, one to many per Logic File, per Portal Set)
Supported modules: Front End
What file contents will be inserted in the top of the BODY of the current portal.
Syntax: lcc:portalSetPageTopper [tab] [...]
Example: lcc:portalSetPageTopper f:\data\lccROAR\topper1.txt
Example #2 (multiple):
lcc:portalSetPageTopper f:\data\lccROAR\topper1.txt
lcc:portalSetPageTopper f:\data\lccROAR\topper2.txt
lcc:portalSetPageFooter (optional, one to many per Logic File, per Portal Set)
Supported modules: Front End
What file contents will be inserted in the bottom of the BODY of the current portal.
Page 28 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:portalPageFooter [tab] [...]
Example: lcc:portalPageFooter f:\data\lccROAR\footer1.txt
Example #2 (multiple):
lcc:portalPageFooter f:\data\lccROAR\footer1.txt
lcc:portalPgeFooter f:\data\lccROAR\footer2.txt
lcc:portalSetAndOr (optional, one to many per Logic File, one per Portal Set)
Supported modules: Front End
Sets a Portal Set to display an And/Or filter option. By default, when searching multiple columns, the program performs
an 'And' search where ALL search terms must be found. Providing this key with 'Or' default to an 'Or' search and so ANY
search terms makes a record valid.
By providing this key, the user will be provided And/Or buttons that they can use to change the And/Or search option o-
the-fly.
Valid Values
• And
• Or
Syntax: lcc:portalSetAndOr [tab] [...]
Example: lcc:portalSetAndOr And
lcc:portalSetCSS (optional, one to many per Logic File/Portal Set)
Supported modules: Front End
What Cascading Style Sheet (CSS) file(s) will be embedded in the page of a specific portal.
Syntax: lcc:portalSetCSS [tab] [...]
Example: lcc:portalSetCSS portalStyles.css
Example #2 (multiple):
lcc:portalSetCSS portalStyles.css
lcc:portalSetCSS portalStyles2.css
lcc:portalSetKey (optional, one to many per Logic File, one per Portal Set)
Page 29 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Supported modules: Front End
Sets a key that must be used to access this portal.
Syntax: lcc:portalSetKey [tab] [...]
Example: lcc:portalSetKey 1234abcd
lcc:LDAPSecurityGroup (optional, one to many per Logic File, one to many per Portal Set)
Supported modules: Front End
What AD security group will be required for a user to use this portal. If more than one is supplied, any match
authenticates the user.
See key 'lcc:LDAPSecurityGroupsMustMatchAll to force a user to be a member of all defined groups.
Syntax: lcc:LDAPSecurityGroup [tab] [...]
Example: lcc:LDAPSecurityGroup CN=ourGroup1,OU=Security Groups,DC=college=edu
Example #2 (multiple):
lcc:LDAPSecurityGroup CN=ourGroup1,OU=Security Groups,DC=college=edu
lcc:LDAPSecurityGroup CN=ourGroup2,OU=Special,DC=college=edu
lcc:LDAPSecurityGroupsMustMatchAll (optional, one per Logic File)
Supported modules: Front End
If provided and 'YES', will force a user to be a member of all defined security groups.
Valid Values
• YES
Syntax: lcc:LDAPSecurityGroupsMustMatchAll [tab] [YES]
Example: lcc:LDAPSecurityGroupsMustMatchAll YES
lcc:portalSetThreshold (optional, one to many per Logic File/Portal Set)
Supported modules: Front End
Sets a Threshold.
Page 30 of 59: lccROAR-whitepaper.docx
Lower Columbia College
See section "Thresholds" for details on Thresholds.
Valid Thresholds
• Millisecond
• Second
• Minute
• Hour
• Day
Syntax: lcc:portalSetThreshold [tab] [..Threshold..] [tab] [..#..]
Example: lcc:portalSetThreshold Second 2
Example #2 (multiple):
lcc:portalSetThreshold Second 2
lcc:portalSetThreshold Minute 4
lcc:portalSetAdhocCodePath (optional, one to many per Logic File/Portal Set)
Supported modules: Front End
What file contents will be inserted in the top of the BODY of the web page for this Portal Set.
Syntax: lcc:portalSetAdhocCodePath [tab] [..path.]
Example: lcc:portalSetAdhocCodePath f:\data\lccROAR\PortalSets\PortalsCredentials\Adhoc.txt
Example #2 (multiple):
lcc:portalSetAdhocCodePath f:\data\lccROAR\PortalSets\PortalsCredentials\Adhoc.txt
lcc:portalSetAdhocCodePath f:\data\lccROAR\PortalSets\PortalsCredentials\Adhoc2.txt
lcc:portalSetLoginSubmitTitle (mandatory, one to many per Logic File, one per Portal Set)
Supported modules: Front End
What title is placed on the Log In link for this Portal Set.
Syntax: lcc:portalSetLoginSubmitTitle [tab] [...]
Example: lcc:portalSetLoginSubmitTitle Retrieve Credentials
Page 31 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetLoginInformationNotFoundMessage (optional, one to many per Logic File, one per Portal Set)
Supported modules: Front End
Replaces the "Information Provided Not Found" message if the supplied values are not found.
Syntax: lcc:portalSetLoginInformationNotFoundMessage [tab] [...]
Example: lcc:portalSetLoginInformationNotFoundMessage Retrieve Credentials
lcc:portalSetLoginPromoPath (mandatory, one to many per Logic File/Portal Set)
Supported modules: Front End
What file content will be displayed above the columns on the Log In page for this Portal Set.
Syntax: lcc:portalSetLoginPromoPath [tab] [..Path..]
Example: lcc:portalSetLoginPromoPath f:\data\lccROAR\PortalSets\PortalsCredentials\Promo.txt
Example #2 (multiple):
lcc:portalSetLoginPromoPath f:\data\lccROAR\PortalSets\PortalsCredentials\Promo.txt
lcc:portalSetLoginPromoPath f:\data\lccROAR\PortalSets\PortalsCredentials\Promo2.txt
lcc:portalSetLoginSubmitAdhocCode (optional, one to many per Logic File, one per Portal Set)
Supported modules: Front End
The Log In link normally submits to the program URL, however, this will override the action with this JavaScript code.
This is useful if you want to do your own actions/verifications on the data before it is submitted.
Syntax: lcc:portalSetLoginSubmitAdhocCode [tab] [...]
Example: lcc:portalSetLoginSubmitAdhocCode lccFSubmitAdhoc()
lcc:portalSetLoginGlobalColumn (optional, one to many per Logic File/Portal Set)
Supported modules: Front End
Proved an "(All Columns)" search box that will search all columns.
Syntax: lcc:portalSetLoginGlobalColumn [tab] [YES]
Example: lcc:portalSetLoginGlobalColumn YES
Page 32 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetLoginColumn (mandatory, one to many per Logic File/Portal Set)
Supported modules: Front End
The start of settings for a Portal Set Log In Column. Each of these keys must have a unique value. But, the value can be
anything. The '#' column should be unique and may be used in the future for referencing which column, but, the '#' is
ignored at this time. It is a good reference point for the administrator to keep track of each column #.
Syntax: lcc:portalSetLoginColumn [tab] [..#..] [tab] [..Id..]
Example: lcc:portalSetLoginColumn 1 SID
lcc:portalSetLoginColumnFlag (optional, one to many per Logic File/Portal Set/Column)
Supported modules: Front End
A set of flags that can affect how the column looks and acts.
Valid Flags
• AutoFocus YES
Will auto focus the user input to this box. Only one is valid per Portal Set
• Case-Insensitive YES
The user value will be compare regardless of the character case
• InputType
Valid Values
o Number
Force user to input numbers
o Hidden
Hide the input. This is handy if you want to check/control the value
Define what type of input is shown
• LabelPreAdhocCodePath [..Path..]
Add content before the Column Label
• LabelPostAdhocCodePath [..Path..]
Add content after the Column Label
• Maxlength [..#..]
Forces user value to a max length
Page 33 of 59: lccROAR-whitepaper.docx
Lower Columbia College
• MultiLine YES
Changes a filter box into a multi-line box. Will default to 3 lines shown, unless the flag 'MultiLineRows' set.
• MultiLineRows [..#..]
Changes how many rows are displayed in a multiline filter box.
• MultiFilters YES
Accepts multiple values in a filter box. The values can be separated by a comma or one on each line. This
flag should only be used on a single filter.
• NameInputAppend [...]
Appends content after the Column Name Label
• SuggestFormat [...]
Suggest value format to the user
• SuggestedValues [...Type...]
Produces suggested values that the user can choose from.
Valid Values:
ctcLinkTerm: produces 8 Terms worth of ctcLink Term codes.
• ThresholdMonitor YES
Adds this column to the Threshold monitor. See section "Thresholds" for details on Thresholds.
• ValuePreAdhocCodePath [..Path..]
Add content before the Column Input
• ValuePostAdhocCodePath [..Path..]
Add content after the Column Input
• ValidateAgainst [..#..]
What column this value is compared against for validation. See flag 'ValidateAgainstQuery' if you want the
validation to be handled by the query.
• ValidateAgainstQuery [..#..]
Specifies that the column comparison will be handled by the query. The program then assume, that if 'any'
value is supplied by the user, and records come back from the query, that they are a match.
• Wildcard YES
The user value can be found anywhere in the validation column
Syntax: lcc:portalSetLoginColumnFlag [tab] [..Flag..] [tab] [...]
Example: lcc:portalSetLoginColumnFlag Wildcard YES
Example #2 (multiple):
lcc:portalSetLoginColumnFlag Wildcard YES
Page 34 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetLoginColumnFlag InputType Number
lcc:portalSetValidateDataFile (mandatory, one to many per Logic File/Portal Set)
Supported modules: Front End
A path where a file contains records to validate against user values.
If you want to validate against data from a SQL source. Use a path format:
Syntax: SQL:[..SQL Set Id..]
Example: SQL:ourDatabase
If use a SQL source, see the SQL Sets section on the keys to used.
Syntax: lcc:portalSetValidateDataFile [tab] [..Path..]
Example: lcc:portalSetValidateDataFile \\server\share$\lccROAR\studentInformation.txt
lcc:portalSetValidateDataFileFlag (optional, one to many per Logic File, one to many per Portal Set, one to many per Portal Set
Validate Data File)
Supported modules: Front End
Sets flags for a portal set data file.
Valid Flags
• Encrypted: Specifies that the data is encrypted.
Valid Values
o YES
Syntax: lcc:portalSetValidateDataFileFlag [tab] [..Flag Name..] [tab] [..Flag Value..]
Example: lcc:portalSetValidateDataFileFlag Encryted YES
Example (multiple):
lcc:portalSetValidateDataFileFlag Encrypted YES
lcc:portalSetValidateDataFileFlag [..Other..] YES
Page 35 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetValidateDataFileDelimiter (optional, one to many per Logic File/Portal Set, one per Validate Data File)
Supported modules: Front End
What delimiter is used between the columns. The program defaults to Tab if one not provided.
To specify a Tab, use "[tab], else use the character.
Syntax: lcc:portalSetValidateDataFileDelimiter [tab] [..Delimiter..]
Example: lcc:portalSetValidateDataFileDelimiter ,
Example #2: lcc:portalSetValidateDataFileDelimiter [tab]
lcc:portalSetReturnDataFile (mandatory, one to many per Logic File/Portal Set)
Supported modules: Front End
A path where a file contains records to return against user values.
The Id column should be unique per file. It is used by the program to track settings.
If you want to validate against data from a SQL source. Use a path format:
Syntax: SQL:[..SQL Set Id..]
Example: SQL:ourDatabase
If use a SQL source, see the SQL Sets section on the keys to used.
Syntax: lcc:portalSetReturnDataFile [tab] [..Id #..] [tab] [..Path..]
Example: lcc:portalSetReturnDataFile 1 \\server\share$\lccROAR\studentInformation.txt
lcc:portalSetReturnDataFileFlag (optional, one to many per Logic File, one to many per Portal Set, one to many per Portal Set
Return Data File)
Supported modules: Front End
Sets flags for a portal set return data file.
Valid Flags
lcc:portalSetReturnDataFileFlag MultiFiltersSQLOR EMPLID='[lccUserCol1]'
Page 36 of 59: lccROAR-whitepaper.docx
Lower Columbia College
• Encrypted: Specifies that the data is encrypted.
Valid Values
YES
• MultiFiltersSQLOR : provides the portion of the SQL query that should be modified for mulitple filters.
For example, if you had a query:
SELECT ourCol FROM ourTable WHERE ourCol='[lccUserCol1]';
You would want the "ourCol='[lccUserCol1]' provided multiple times (one for each filter value) and combined
wiht an OR clause. And so this flag would be this value: ourCol='[lccUserCol1]'
When the search is ran by the user, and if filter values "one, two, three" provided, the query would be change
on-the-fly to this:
SELECT ourCol FROM ourTable WHERE (ourCol='one' OR ourCol='two' OR ourCol='three');
• PrependRecordNumber : shows a record #, the # is the number of the match
Valid Values
YES
• ShowLastUpdate: Show the last time the return data file was updated. Only works with files, not SQL/mySQL data.
The value supplied is the text that will show before the date/time.
• SplitRecordsTableAtPrecent: Splits how what precentage of records are shown in a column format. For example,
if you set at ".25" (25 percent), 1/4th of the records will show in four columns.
• WebResourceBrowsing : change the output into a Folder/File explorer
o See Flags:
▪ WebResourceBrowsingDataType
o See Keys:
▪ lcc:portalSetWebResourceBrowsingDataType
• WebResourceBrowsingDataType : what file extensions are valid to show (one to many)
• WebResourceBrowsingHideHiddenFiles : when showing files, will hide any marked as 'hidden' by the operating
system.
• WebResourceBrowsingDirectoryReverseOrderOnCookieTrail : instructs the program to show directories in
reverse order when the cookie trail matches this keys value
Example: lcc:portalSetReturnDataFileFlag WebResourceBrowsingDirectoryReverseOrderOnCookieTrail
/ourFolder/folder2
• WebResourceBrowsingFileReverseOrderOnCookieTrail : instructs the program to show files in reverse order
when the cookie trail matches this keys value
Example: lcc:portalSetReturnDataFileFlag WebResourceBrowsingFilesReverseOrderOnCookieTrail
/ourFolder/folder2
Page 37 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:portalSetReturnDataFileFlag [tab] [..Flag Name..] [tab] [..Flag Value..]
Example: lcc:portalSetReturnDataFileFlag Encryted YES
Example (multiple):
lcc:portalSetReturnDataFileFlag Encrypted YES
lcc:portalSetReturnDataFileFlag ShowLastUpdate Last Updated:
lcc:portalSetReturnDataFileFlag [..Other..] YES
Example (multiple, Web Resource Browsing):
lcc:portalSetReturnDataFileFlag WebResourceBrowsing YES
lcc:portalSetReturnDataFileFlag WebResourceBrowsingDataType doc
lcc:portalSetReturnDataFileFlag WebResourceBrowsingDataType docx
lcc:portalSetReturnDataFileFlag WebResourceBrowsingDataType pdf
lcc:portalSetReturnDataFileDisplayColumnFlag (optional, one to many per Logic File, one to many per Portal Set, one to many
per Return Data File Display Column)
Supported modules: Front End
Sets flags for a portal return data file display column.
Valid Flags
• HideName: Hides the name of the column from the user. This is handy when you only want the value(s) displayed,
like statistics.
Valid Values
o YES
• DisplayFormat: Formats the value for display
Valid Values
o #,#: used with numbers to display it in comma format, ex: 123,456
o #.#: used with numbers to display it in decimal format, with last character after the decimal, ex: 12345.6
o #.##: used with numbers to display it in decimal format, with last two characters after the decimal, ex:
1234.56
• HighlightCell: Highlights a cell
Valid Values
Page 38 of 59: lccROAR-whitepaper.docx
Lower Columbia College
o If Has Value: if the cell has a value
Syntax: lcc:portalSetReturnDataFileDisplayColumnFlag [tab] [..Flag Name..] [tab] [..Flag Value..]
Example: lcc:portalSetReturnDataFileDisplayColumnFlag HideName YES
Example (multiple):
lcc:portalSetReturnDataFileDisplayColumnFlag HideName YES
lcc:portalSetReturnDataFileDisplayColumnFlag DisplayFormat #,#
lcc:portalSetReturnDataFileDelimiter (optional, one to many per Logic File/Portal Set, one per Return Data File)
Supported modules: Front End
What delimiter is used between the columns. The program defaults to Tab if one not provided.
To specify a Tab, use "[tab], else use the character.
Syntax: lcc:portalSetReturnDataFileDelimiter [tab] [..Delimiter..]
Example: lcc:portalSetReturnDataFileDelimiter ,
Example #2: lcc:portalSetReturnDataFileDelimiter [tab]
lcc:portalSetReturnDataFileReturnAgainst (mandatory, one to many per Logic File/Portal Set/Return Data File)
Supported modules: Front End
What Log In column will be checked against what Return column.
Syntax: lcc:portalSetReturnDataFileReturnAgainst [tab] [..Log In Col #..] [tab] [..Return Col #..]
Example: lcc:portalSetReturnDataFileReturnAgainst 1 4
lcc:portalSetReturnDataFileDisplayColumnsTitle (mandatory, one to many per Logic File/Portal Set, one per Return Data File)
Supported modules: Front End
What title is displayed above the Return columns.
Syntax: lcc:portalSetReturnDataFileDisplayColumnsTitle [tab] [...]
Example: lcc:portalSetReturnDataFileDisplayColumnsTitle Your Portal Credentials
Page 39 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetReturnDataFileDisplayColumnsOrientation (optional, one to many per Logic File/Portal Set, one per Return Data
File)
Supported modules: Front End
Sets the orientation of the result columns. The default is vertical.
The user can override this settings with the Adhoc choosing of Vertical or Horizontal through the web page interface.
Valid Values
Horizontal
Syntax: lcc:portalSetReturnDataFileDisplayColumnsOrientation [tab] [...]
Example: lcc:portalSetReturnDataFileDisplayColumnsOrientation Horizontal
lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage (mandatory, one to many per Logic File/Portal Set, one per
Return Data File)
Supported modules: Front End
If no records match, what message is displayed.
Syntax: lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage [tab] [...]
Example: lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage No credentials found.
lcc:portalSetReturnDataFileDisplayColumn (mandatory, one to many per Logic File/Portal Set, one to many per Return Data
File)
Supported modules: Front End
What Return column to return and what Label to use for it.
Syntax: lcc:portalSetReturnDataFileDisplayColumn [tab] [..Col #..] [tab] [..Label..]
Example: lcc:portalSetReturnDataFileDisplayColumn 4 Username
Example #2 (multiple):
lcc:portalSetReturnDataFileDisplayColumn 4 Username
lcc:portalSetReturnDataFileDisplayColumn 6 Password
Page 40 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetReturnDataFileDisplayColumnAsList (optional, one to many per Logic File/Portal Set, one per Return Data File)
Supported modules: Front End
If supplied, will combine all values from a single column into one delimited value and display in a text box that can be
copied by the user. For example, if your results contain an 'email' column, you can use this key to combine all those
email addresses into a single value ready to be pasted into the TO line.
The Col # paramter defines which column will be used to grab values from.
On the Delimiter parameter, this is a single character used to delimit the values, like ';'. If you want to use a whitespace
character, you can supplied these:
• [space]
• [tab]
The Title paramter defines what title to display in the copy section of the values.
Syntax: lcc:portalSetReturnDataFileDisplayColumnAsList [tab] [..Col #..] [tab] [..Delimiter..] [tab] [..Title..]
Example: lcc:portalSetReturnDataFileDisplayColumnAsList 8 ; Email Addresses
Example #2: lcc:portalSetReturnDataFileDisplayColumn 4 [tab] EMPLIDs
lcc:portalSetReturnDataFileDisplayColumnFlag (optional, one to many per Logic File/Portal Set/Return Display Column)
Supported modules: Front End
A set of flags that can affect how the return display column looks and acts.
Valid Flags
• PrependValueData [...]
Add content before the Column Value
• AppendValueData [...]
Add content after the Column Value
• PrependValueDataIfNotEmpty [...]
Add content before the Column Value, only if the Column Value is not empty
• AppendValueDataIfNotEmpty [...]
Add content after the Column Value, only if the Column Value is not empty
Page 41 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Syntax: lcc:portalSetReturnDataFileDisplayColumnFlag [tab] [...]
Example: lcc:portalSetReturnDataFileDisplayColumn PrependValueData lcc-
Example #2 (multiple):
lcc:portalSetReturnDataFileDisplayColumn PrependValueData lcc-
lcc:portalSetReturnDataFileDisplayColumn AppendValueDataIfNotEmpty @ourcollege.edu
Page Flags
When using the following keys to define files that will be loaded:
• lcc:pageHeaders
• lcc:pageTopper
• lcc:pageBody
• lcc:Footer
Flags can be used to define where auto-adhoc information will be inserted. Unlike Keys from the Logic File, flags have no
values and only define where something should happen.
The following flags can be used. At this time, the best place to place these flags would be in the 'lcc:pageBody' file.
[lccFlag:methodPortalOn] (mandatory, one per file)
Defines the beginning of a Portal Content Area. The Portal Content Area is where the program returns Portal content.
This is the only content the program returns at this time, but, this flag allows for future types of content outside of a Portal.
Must be paired with '[lccFlag:methodPortalOff]'.
Syntax: [lccFlag:methodPortalOn]
Example: [lccFlag:methodPortalOn]
[lccFlag:methodPortalOff] (mandatory, one per file)
Defines the end of a Portal Content Area. See '[lccFlag:methodPortalOn]'.
Must be paired with '[lccFlag:methodPortalOn]'.
Syntax: [lccFlag:methodPortalOff]
Page 42 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example: [lccFlag:methodPortalOff]
[lccFlag:displayLoginTitle] (optional, one per file)
Display the value from key ' lcc:sitesIndexTitle'.
Syntax: [lccFlag:displayLoginTitle]
Example: [lccFlag:displayLoginTitle]
[lccFlag:displayLogInPromo] (optional, one per file)
Display the content from any keys/paths supplied with 'lcc:portalSetLogInPromoPath'.
Syntax: [lccFlag:displayLogInPromo]
Example: [lccFlag:displayLogInPromo]
[lccFlag:displayLogInColumns] (mandatory, one per file)
Display all of the columns in a Portal Set defined with the key 'lcc:portalSetLoginColumn'.
Syntax: [lccFlag:displayLogInColumns]
Example: [lccFlag:displayLogInColumns]
[lccFlag:displaySubmit] (mandatory, one per file)
Displays a submit link from the content in these keys:
• lcc:portalSetLoginSubmitTitle
• lcc:portalSetLoginSubmitAdhocCode
Syntax: [lccFlag:displaySubmit]
Example: [lccFlag:displaySubmit]
[lccFlag:debugOn] (optional, one to many per file)
Defines the beginning of a Debug section. Any content between this and the matching '[lccFlag:debugOff] key will only
be displayed if being viewed by a Debug IP..
Must be paired with '[lccFlag:debugOff]'.
Syntax: [lccFlag:debugOn]
Example: [lccFlag:debugOn]
Page 43 of 59: lccROAR-whitepaper.docx
Lower Columbia College
[lccFlag:debugOff] (optional, one to many per file)
Defines the end of a Debug section. See '[lccFlag:debugOn]'.
Must be paired with '[lccFlag:debugOn]'.
Syntax: [lccFlag:debugOff]
Example: [lccFlag:debugOff]
Thresholds
Thresholds are a way to monitor and control how often users can query for information. This helps block brute-force attacks.
In the Thresholds folder, there are two types of files:
• thresholdsMonitor-YYYYMMDD.txt
This is the central thresholds monitoring log. It is just used as a history of attempts to retrieve information.
• [value]_[value].txt
For each column defined as a threshold, their values are concatenated together to create a filename.
Then, each retrieve for those same values are logged. If log entries for a specific threshold (like Second,
Minute) are exceeded in a specific day, the user is blocked from retrieving the information.
Thresholds have these default max attempts per day:
• Millisecond: 1
• Second: 1
• Minute: 4
• Hour: 12
• Day: 20
These settings can be overridden/configured per Portal Set.
SQL Sets
Page 44 of 59: lccROAR-whitepaper.docx
Lower Columbia College
SQL Sets define a connection source, query, and columns returned. The rows returned from the SQL query are treated just like
the lines from a Return Data File line.
lcc:SQLSetId (optional, one to many per Logic File/Portal Set, one per SQL Set section)
The start of settings for a SQL Set. Each of these keys must have a unique value. But, the value can be anything.
Syntax: lcc:SQLSetId [tab] [...]
Example: lcc:SQLSetId ourSQLSet
lcc:SQLSetServer (mandatory, one per SQL Set)
The SQL server.
Syntax: lcc:SQLSetServer [tab] [...]
Example: lcc:SQLSetServer ourSQLServer
lcc:SQLSetSecurityType (optional, one per SQL Set)
Defines what type of security is used. The default is User Id/Password.
Valid Values
• Integrated : does not pass the User Id/Password
Syntax: lcc:SQLSetSecurityType [tab] [...]
Example: lcc:SQLSetSecurityType Integrated
lcc:SQLSetUserId (optional, one per SQL Set)
User Id for the SQL connection.
Suggestion: we highly suggest encrypting the value for this key. See "Specifying Encrypted Key Values In The Logic
File"
Syntax: lcc:SQLSetUserId [tab] [...]
Example: lcc:SQLSetUserId jdoe
lcc:SQLSetUserPassword (optional, one per SQL Set)
User Password for the SQL connection.
Page 45 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Suggestion: we highly suggest encrypting the value for this key. See "Specifying Encrypted Key Values In The Logic
File"
Syntax: lcc:SQLSetUserPassword [tab] [...]
Example: lcc:SQLSetUserPassword jdoe
lcc:SQLSetDatabase (mandatory, one per SQL Set)
The SQL database.
Syntax: lcc:SQLSetDatabase [tab] [...]
Example: lcc:SQLSetDatabase ourDatabase
lcc:SQLSetTable (mandatory, one per SQL Set)
The SQL table.
Syntax: lcc:SQLSetTable [tab] [...]
Example: lcc:SQLSetTable ourTable
lcc:SQLSetQuery (mandatory, one per SQL Set)
The SQL query. . The # column specifies which query to use in the Validate or Return data sets. This way, you can have
multiple queries defined for the same SQL set, as long as they return the same number of columns.
Within the query, you can have user supplied filters embedded into the query. Just placed “[lccUserCol#]” where you
want the user supplied value. For example, if you allow the user to have three (3) filter column, and you want what they
supplied in #2 to be used in the query, you could do the following:
SELECT * FROM ourTable WHERE lccSOurCol='[lccUsercol2]' ORDER BY col1,col2;
You can optionally begin the Query value with: "FromFile:" and then supply a path. The query will then be read from that
path.
Syntax: lcc:SQLQuery [tab] [..#..] [tab] [..Query..]
Example: lcc:SQLQuery 1 SELECT * FROM ourTable ORDER BY col1,col2;
Example (from file): lcc:SQLQuery 1 FromFile:E:\ourQueries\someSet-query-1.txt
Example (multiple):
lcc:SQLQuery 1 SELECT * FROM ourTable ORDER BY col1,col2;
Page 46 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:SQLQuery 2 SELECT * FROM ourTable ORDER BY col3,col4;
lcc:SQLSetResultsCol (mandatory, one to many per SQL Set)
A column returned by the query. There should be one of this key for each column returned.
The name does not matter, and is only a placeholder for the system, and used by the person reading the Logic File.
Syntax: lcc:SQLResultsCol [tab] [..Name..]
Example: lcc:SQLResultsCol Last Name
Example #2 (multiple):
lcc:SQLResultsCol Last Name
lcc:SQLResultsCol First Name
Example
lcc:SQLSetId ourSQLSet
lcc:SQLSetServer ourSQLServer
lcc:SQLSetSecurityType Integrated
lcc:SQLSetUserId ourSQLuser
lcc:SQLSetUserPassword ourSQLPassword
lcc:SQLSetDatabase ourDatabase
lcc:SQLSetTable ourTable
lcc:SQLSetQuery SELECT * FROM ourTable ORDER BY col1,col2;
lcc:SQLSetResultsCol Last Name
lcc:SQLSetResultsCol First Name
lcc:SQLSetResultsCol Hours
lcc:SQLSetResultsCol Title
mySQL Sets
mySQL Sets define a connection source, query, and columns returned. The rows returned from the mySQL query are treated
just like the lines from a Return Data File line.
Page 47 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:mySQLSetId (optional, one to many per Logic File/Portal Set, one per mySQL Set section)
The start of settings for a mySQL Set. Each of these keys must have a unique value. But, the value can be anything.
Syntax: lcc:mySQLSetId [tab] [...]
Example: lcc:mySQLSetId myourSQLSet
lcc:mySQLSetDriver (mandatory, one per mySQL Set)
The mySQL driver.
Syntax: lcc:mySQLSetDriver [tab] [...]
Example: lcc:mySQLSetDriver {MySQL ODBC 5.3 ANSI Driver}
lcc:mySQLSetServer (mandatory, one per mySQL Set)
The mySQL server.
Syntax: lcc:mySQLSetServer [tab] [...]
Example: lcc:mySQLSetServer ourMySQLServer
lcc:mySQLSetServerPort (mandatory, one per mySQL Set)
The mySQL server port.
Syntax: lcc:mySQLSetServerPort [tab] [..#..]
Example: lcc:mySQLSetServerPort 3306
lcc:mySQLSetUserId (optional, one per mySQL Set)
User Id for the mySQL connection.
Suggestion: we highly suggest encrypting the value for this key. See "Specifying Encrypted Key Values In The Logic
File"
Syntax: lcc:mySQLSetUserId [tab] [...]
Example: lcc:mySQLSetUserId jdoe
lcc:mySQLSetUserPassword (optional, one per mySQL Set)
User Password for the mySQL connection.
Page 48 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Suggestion: we highly suggest encrypting the value for this key. See "Specifying Encrypted Key Values In The Logic
File"
Syntax: lcc:mySQLSetUserPassword [tab] [...]
Example: lcc:mySQLSetUserPassword jdoe
lcc:mySQLSetDatabase (mandatory, one per mySQL Set)
The mySQL database.
Syntax: lcc:mySQLSetDatabase [tab] [...]
Example: lcc:mySQLSetDatabase ourDatabase
lcc:mySQLSetTable (mandatory, one per mySQL Set)
The mySQL table.
Syntax: lcc:mySQLSetTable [tab] [...]
Example: lcc:mySQLSetTable ourTable
lcc:mySQLSetQuery (mandatory, one per mySQL Set)
The mySQL query. The # column specifies which query to use in the Validate or Return data sets. This way, you can
have multiple queries defined for the same mySQL set, as long as they return the same number of columns.
Syntax: lcc:mySQLQuery [tab] [..#..] [tab] [..Query..]
Example: lcc:mySQLQuery 1 SELECT * FROM ourTable ORDER BY col1,col2;
Example (multiple):
lcc:mySQLQuery 1 SELECT * FROM ourTable ORDER BY col1,col2;
lcc:mySQLQuery 2 SELECT * FROM ourTable2 ORDER BY col1,col3;
lcc:mySQLSetResultsCol (mandatory, one to many per mySQL Set)
A column returned by the query. There should be one of this key for each column returned.
The name does not matter, and is only a placeholder for the system, and used by the person reading the Logic File.
Syntax: lcc:mySQLResultsCol [tab] [..Name..]
Example: lcc:mySQLResultsCol Last Name
Page 49 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Example #2 (multiple):
lcc:mySQLResultsCol Last Name
lcc:mySQLResultsCol First Name
Example
lcc:mySQLSetId osTicket-Tickets
lcc:mySQLSetDriver {MySQL ODBC 5.3 ANSI Driver}
lcc:mySQLSetServer 123.123.123.123
lcc:mySQLSetServerPort 3306
lcc:mySQLSetUserId [lcc:encrypted]...
lcc:mySQLSetUserPassword [lcc:encrypted]...
lcc:mySQLSetDatabase osticket_db
lcc:mySQLSetTable ost_ticket
lcc:mySQLSetQuery SELECT T1.ticket_id,T1.number,T1.status_id,T1.created,T1.updated FROM
ost_ticket AS T1;
lcc:mySQLSetResultsCol Id
lcc:mySQLSetResultsCol Number
lcc:mySQLSetResultsCol Status_Id
lcc:mySQLSetResultsCol Created
lcc:mySQLSetResultsCol Updated
Specifying Encrypted Key Values In The Logic File
The following Keys values can be encrypted (see Encrypting Key Values):
• lcc:LDAPUserId
• lcc:LDAPUserPassword
• lcc:SQLSetUserId
• lcc:SQLSetUserPassword
If you supply the Keys:
• lcc:globalEncryptionHash
• lcc:sourceEncryptedSaltKey
Page 50 of 59: lccROAR-whitepaper.docx
Lower Columbia College
• lcc:sourceEncryptedVIKey
To specify that the value is encrypted, precede the value with the text "[lcc:encrypted]".
For example, this would provide an encrypted value for a password key:
lcc:LDAPUserId [lcc:encrypted]...
Encrypting/Decrypting Values
To encrypt/decrypt a value, create a Logic File with only these three keys.
• lcc:globalEncryptionHash
• lcc:globalEncryptionSaltKey
• lcc:globalEncryptionVIKey
These keys/values should match the ones in your regular/site Logic File.
Run the lccROAR.exe from another folder (other than the website folder) and supply a new Configuration File that points to this
Logic File.
Then, use the Example Command Line Syntax below to Encrypt values. As each value is encrypted and copied to your
clipboard,
Example Logic File
note: extra tabs used to be view friendly in this document
lcc:globalEncryptionHash 1234512345
lcc:globalEncryptionSaltKey asdfasdf
lcc:globalEncryptionVIKey 1a1a1a1a1a1a1a1a
Example Command Line Syntax
lccROAR.exe lcc:method encrypt ...
lccROAR.exe lcc:method decrypt ...
Configuration File Example
Page 51 of 59: lccROAR-whitepaper.docx
Lower Columbia College
Change the key 'lcc:l ogicPath' to point to the path/file of your Logic File.
Suggestion: set your web server to not server this config file to end users.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections></configSections>
<appSettings>
<add key="lcc:logicPath" value="[drive]:\folder\lccROAR-logic.txt"/>
</appSettings>
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
Methods
portal : responds in 'portal' mode, which is also the default
portalDemo : responds in 'portal demo' mode. This will only display 'public' Portal Sets that are marked as 'demo'
encrypt : encrypt a value
backEnd : respond to requests, produce responses, like LDAP
Logic File Examples
Front End
lcc:debugIP 123.123.123.123
lcc:debugLevel 1 logic name/values to log
lcc:debugLevel 2 display query name/values
lcc:debugLevel 3 display post name/values
lcc:debugLevel 5 environment name/values
lcc:debugLevel 6 validate information
lcc:debugLevel 7 validate return information
Page 52 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:debugLevel 8 show link to direct Portal Set, in debug mode
lcc:debugLevel 9 logic name/values to screen
lcc:debugLevel 10 LDAP
lcc:debugLevel 11 Response not found
lcc:debugLevel 12 Response key
lcc:debugLevel 13 Keep Response Files
lcc:logPath [drive]:\folder\logs\lccROAR\lccROAR
lcc:thresholdsPath [drive]:\folder\lccROAR\thresholds
lcc:orientation Horizontal
lcc:sitesIndexTitle Sites
lcc:globalEncryptionHash s0m3C00lPhr@$e+
lcc:globalEncryptionSaltKey s0m3C00lPhr@$e+
lcc:globalEncryptionVIKey s0m3C00lPhr@$e12
lcc:securityKey our cool security key
----------------------------
lcc:programPath /ourScripts/lccROAR.exe
lcc:webResourcesPath /lccROAR
lcc:requestsPath [drive]:\folder\data\lccROAR\requests
lcc:responsesPath [drive]:\folder\data\lccROAR\responses
lcc:pageHTMLAttributes lang="en"
lcc:pageCSS index.css
lcc:pageCSSHorizontal index-h.css
lcc:pageCSSVertical index-v.css
lcc:pageScript index.js
lcc:pageTitle lccROAR: Retrieve Online Authorized Records
lcc:pageHeader D:\web\data\lccROAR\header1.txt
lcc:pageTopper D:\web\data\lccROAR\topper1.txt
lcc:pageBody D:\web\data\lccROAR\body.txt
lcc:pageFooter D:\web\data\lccROAR\footer1.txt
lcc:pageHTMLAttributes lang="en"
lcc:pageCSS index.css
lcc:pageCSSHorizontal index-h.css
lcc:pageCSSVertical index-v.css
lcc:pageScript index.js
lcc:pageTitle Retrieve Credentials
lcc:pageHeader [drive]:\folder\data\lccROAR\header1.txt
lcc:pageTopper [drive]:\folder\data\lccROAR\topper1.txt
lcc:pageBody [drive]:\folder\data\lccROAR\body.txt
Page 53 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:pageFooter [drive]:\folder\data\lccROAR\footer1.txt
-----------------------------------------------------------------------------------------------------------------------
------
lcc:portalSetId PhoneReverseLookup
lcc:portalSetFlag Skip YES
lcc:portalSetFlag Private YES
lcc:portalSetThreshold Second 2
lcc:portalSetThreshold Minute 60
lcc:portalSetThreshold Hour 300
lcc:portalSetThreshold Day 500
lcc:portalSetTitle Phone Reverse Lookup
lcc:portalSetLoginSubmitTitle Provide Phone Number
lcc:portalSetLogInPromoPath [drive]:\folder\data\PortalSets\PortalsCredentials\Promo.txt
lcc:portalSetLoginColumn 1 Phone
lcc:portalSetLoginColumnFlag AutoFocus YES
lcc:portalSetLoginColumnFlag InputType Number
lcc:portalSetLoginColumnFlag ValidateAgainst 4
lcc:portalSetLoginColumnFlag Wildcard YES
lcc:portalSetLoginColumnFlag Case-Insensitive YES
lcc:portalSetLoginColumnFlag ThresholdMonitor YES
lcc:portalSetValidateDataFile \\server\share$\folder\lccROAR-phoneReverseLookup.txt
lcc:portalSetValidateDataFileDelimiter [tab]
lcc:portalSetReturnDataFile 1 \\server\share$\folder\lccROAR-phoneReverseLookup.txt
lcc:portalSetReturnDataFileReturnAgainst 1 4
lcc:portalSetReturnDataFileDelimiter [tab]
lcc:portalSetReturnDataFileDisplayColumnsTitle Record Information
lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage No matches found.
lcc:portalSetReturnDataFileDisplayColumn 1 LID Id
lcc:portalSetReturnDataFileDisplayColumn 2 First Name
lcc:portalSetReturnDataFileDisplayColumn 3 Last Name
lcc:portalSetReturnDataFileDisplayColumn 4 Phone
lcc:portalSetReturnDataFileDisplayColumn 5 Email
lcc:portalSetReturnDataFileDisplayColumnFlag AppendValueDataIfNotEmpty @ourcollege.edu
lcc:portalSetReturnDataFileDisplayColumn 6 Title
lcc:portalSetReturnDataFileDisplayColumn 8 Department
-----------------------------------------------------------------------------------------------------------------------
------
lcc:portalSetId sqlDriverTest
lcc:portalSetFlag Skip YES
lcc:portalSetFlag Private YES
lcc:portalSetTitle SQL Driver Test
Page 54 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:portalSetKey ourCoolKey
lcc:LDAPSecurityGroup CN=ourSecurityGroup,OU=Security Groups,DC=college,DC=edu
lcc:LDAPSecurityGroup CN=ourSecurityGroup2,OU=Security Groups,DC=college,DC=edu
lcc:portalSetLoginSubmitTitle SQL Driver Test
lcc:portalSetLoginInformationNotFoundMessage No LID Records Found For That Criteria
lcc:portalSetLogInPromoPath [drive]:\folder\data\lccROAR\PortalSets\sqlDriverTest\promo.txt
lcc:portalSetLoginColumn 1 First Name
lcc:portalSetLoginColumnFlag AutoFocus YES
lcc:portalSetLoginColumnFlag Case-Insensitive YES
lcc:portalSetLoginColumnFlag ValidateAgainst 2
lcc:portalSetLoginColumnFlag Wildcard YES
lcc:portalSetLoginColumnFlag EmptyValueValid YES
lcc:portalSetLoginColumnFlag SuggestFormat ex: john
lcc:portalSetLoginColumn 2 Last Name
lcc:portalSetLoginColumnFlag Case-Insensitive YES
lcc:portalSetLoginColumnFlag ValidateAgainst 3
lcc:portalSetLoginColumnFlag Wildcard YES
lcc:portalSetLoginColumnFlag EmptyValueValid YES
lcc:portalSetLoginColumnFlag SuggestFormat ex: doe
lcc:portalSetLoginColumn 3 Email
lcc:portalSetLoginColumnFlag Case-Insensitive YES
lcc:portalSetLoginColumnFlag ValidateAgainst 4
lcc:portalSetLoginColumnFlag Wildcard YES
lcc:portalSetLoginColumnFlag EmptyValueValid YES
lcc:portalSetLoginColumnFlag SuggestFormat ex: jdoe
lcc:portalSetValidateDataFile SQL:sqlTest
lcc:portalSetReturnDataFile 1 SQL:sqlTest
lcc:portalSetReturnDataFileReturnAgainst 1 2
lcc:portalSetReturnDataFileReturnAgainst 2 3
lcc:portalSetReturnDataFileReturnAgainst 3 4
lcc:portalSetReturnDataFileDisplayColumnsTitle SQL Test Records
lcc:portalSetReturnDataFileDisplayColumnsOrientation Horizontal
lcc:portalSetReturnDataFileDisplayColumnsEmptyMessage No LID Records found.
lcc:portalSetReturnDataFileDisplayColumn 1 Id
lcc:portalSetReturnDataFileDisplayColumn 2 First Name
lcc:portalSetReturnDataFileDisplayColumn 3 Last Name
lcc:portalSetReturnDataFileDisplayColumn 4 Email
lcc:portalSetReturnDataFileDisplayColumn 5 Hours
lcc:portalSetReturnDataFileDisplayColumn 6 Title
-----------------------------------------------------------------------------------------------------------------------
------
lcc:SQLSetId sqlTest
lcc:SQLSetServer ourSQLServer
lcc:SQLSetSecurityType Integrated
Page 55 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:SQLSetUserId [lcc:encrypted]...
lcc:SQLSetUserPassword [lcc:encrypted]...
lcc:SQLSetDatabase ourDatabase
lcc:SQLSetTable dbo.ourTable
lcc:SQLSetQuery 1 SELECT RTRIM(id),RTRIM(FirstName),RTRIM(LastName),RTRIM(Email),RTRIM(Hours),RTRIM(Title) FROM
dbo.ourTable ORDER BY Id DESC,LastName,FirstName;
lcc:SQLSetResultsCol First Name
lcc:SQLSetResultsCol Last Name
lcc:SQLSetResultsCol Email
lcc:SQLSetResultsCol Hours
lcc:SQLSetResultsCol Title
-----------------------------------------------------------------------------------------------------------------------
------
lcc:mySQLSetId osTicket Tickets
lcc:mySQLSetDriver {MySQL ODBC 5.3 ANSI Driver}
lcc:mySQLSetServer 123.123.123.123
lcc:mySQLSetServerPort 3306
lcc:mySQLSetUserId [lcc:encrypted]...
lcc:mySQLSetUserPassword [lcc:encrypted]...
lcc:mySQLSetDatabase ourDatabase
lcc:mySQLSetTable ourTable
lcc:mySQLSetQuery 1 SELECT T1.ticket_id,T1.number,T2.name AS User FROM ourTickets WHERE T1.dept_id='1';
lcc:mySQLSetQuery 2 SELECT T1.ticket_id,T1.number,T2.name AS User FROM ourTickets WHERE T1.dept_id='2';
lcc:mySQLSetResultsCol ticket_id
lcc:mySQLSetResultsCol number
lcc:mySQLSetResultsCol User
Back End
lcc:debugLevel 9
lcc:debugLevel 10
lcc:debugLevel 14 Keep Requests Files
lcc:logPath [drive]:\folder\logs\lccROAR\lccROARLog-backEnd
lcc:debugMode YES
lcc:globalEncryptionHash s0m3C00lPhr@$e+
lcc:globalEncryptionSaltKey s0m3C00lPhr@$e+
lcc:globalEncryptionVIKey s0m3C00lPhr@$e12
Page 56 of 59: lccROAR-whitepaper.docx
Lower Columbia College
lcc:method backEnd
lcc:heartbeatSeconds 60
lcc:abortPath .\lccROAR-backEnd-abort.txt
lcc:pauseBetweenRequests 1
lcc:requestsPath [drive]:\folder\data\lccROAR\requests
lcc:responsesPath [drive]:\folder\data\lccROAR\responses
lcc:requestsArchivePath [drive]:\folder\data\lccROAR\requestsArchive
lcc:LDAPServer ourDC/dc=college,dc=edu
lcc:LDAPServer ourDC2/dc=college,dc=edu
lcc:securityKey our cool security key
lcc:LDAPUserId [lcc:encrypted]...
lcc:LDAPUserPassword [lcc:encrypted]...
Admin Decryption
lcc:logPath .\lccROARLog
lcc:globalEncryptionHash s0m3C00lPhr@$e+
lcc:globalEncryptionSaltKey s0m3C00lPhr@$e+
lcc:globalEncryptionVIKey s0m3C00lPhr@$e12
lcc:securityKey our cool security key
lcc:method decryptRequestsResponses
lcc:decryptRequestsResponsesPath Requests \\ourServer\share$\folder\data\lccROAR\requests
lcc:decryptRequestsResponsesPath RequestsCompleted \\ourServer\share$\folder\data\lccROAR\requestsArchive\completed
lcc:decryptRequestsResponsesPath RequestsFailed \\ourServer\share$\folder\data\lccROAR\requestsArchive\failed
lcc:decryptRequestsResponsesPath Responses \\ourServer\share$\folder\data\lccROAR\responses
Wildcards In Values
If a key allows wildcards, you can use the following type of wildcards in values.
• *abc : will return true if the value ends in 'abc'
• abc* : will return true if the value begins in 'abc'
• abc*lmn* : will return true if the value begins with 'abc' and has 'lmn' somewhere before the end
• abc*lmn*xyz : will return true if the value begins with 'abc' and has 'lmn' somewhere before the end and ends in xyz
Page 57 of 59: lccROAR-whitepaper.docx
Lower Columbia College
In short, the '*' can be used where you want a wildcard placed.
Resources
• LCC Supporting Colors, ref: http://services4.lowercolumbia.edu/internal/lccPrimarySupportingColors.htm
• LCC Branding and Style Guide, ref: https://services4.lowercolumbia.edu /info/webresources/Institutional-
Research/LCC_Brand_Style_Guide.pdf
• Web Accessibility wiki, ref: https://en.wikipedia.org/wiki/Web_accessibility
• WA Policy 188, ref:
http://ocio.wa.gov/sites/default/files/public/policies/188_Accessibility_Interim_TSB_Sub_201705_3.pdf
• W3C Multimedia Accessibility, ref: https://www.w3.org/2008/06/video-notes
Definitions
AD - Active Directory
CSS - Cascading Style Sheets
LDAP - Lightweight Directory Access Protocol
IIS - Internet Information Services
SQL - Structured Query Language
URL - Uniform Resource Locator
Modifications
NAME DATE MODIFICATION
David Mielcarek 9/20/2017 Created
David Mielcarek 9/27/2017 Added SQL Sets, and Keys "
lcc:portalSetReturnDataFileDisplayColumnsOrientation",
"lcc:portalSetKey", new Customized URL parameters.
David Mielcarek 9/29/2017 Added Encryption, LDAP keys.
David Mielcarek 20171017 Add key 'lcc:portalSetCSS'
David Mielcarek 20171117 Added LDAP, Back End Requests/Responses and Admin
Decryption modules.
Page 58 of 59: lccROAR-whitepaper.docx
Lower Columbia College
David Mielcarek 20171129 Added key 'lcc:portalSetAndOr'
David Mielcarek 20171130 Added mySQL Set
David Mielcarek 20171206 Convert/added keys to 'flags', like lcc:portalSetFlag
David Mielcarek 20171207 Added flag 'lcc:loadSettingsFromFile'
David Mielcarek 20180116 Added flag 'ShowLastUpdated'
David Mielcarek 20180227 Added keys 'lcc:portalSetWebResourceBrowsingDataType',
'lcc:portalSetWebResourceBrowsingIncludeFilename',
'lcc:portalSetWebResourceBrowsingExcludeFilename',
'WebResourceBrowsingDirectoryReverseOrderOnCookieTrail',
'WebResourceBrowsingFileReverseOrderOnCookieTrail' and
Flag 'WebResourceBrowsingDataType'. Added wildcard
values.
David Mielcarek 20180327 Added more flags to
'lcc:portalSetReturnDataFileDisplayColumnFlag' for decimals
David Mielcarek 20180329 Added more flags to
'lcc:portalSetReturnDataFileDisplayColumnFlag' for
HighlightCell
David Mielcarek 20180514 Added key 'lcc:adminIP'
David Mielcarek 20180521 Added more flags to 'lcc:portalSetFlag' for
'ResponseModeAuthorized', 'APIResponseFormat'
David Mielcarek 20180718 Added more flags to 'lcc:portalSetFlag' for 'AuthorizedIP',
'AuthorizedIPWildcardLeft'
David Mielcarek 20180806 Added keys 'lcc:portalPageTopper', 'lcc:portalPageFooter'
David Mielcarek 20180807 Added key 'lcc:portalSetLoginGlobalColumn'
David Mielcarek 20180829 Added flag to ‘lcc:portalSetFlag’ for ‘PortalThreshold’
David Mielcarek 20180911 Added flag to ‘lcc:portalSetFlag’ for ‘MaxRecordsCeiling’, note
about lccUserCol# in key ‘lcc:SQLSetQuery’
David Mielcarek 20200409 Added option on lcc:SQLSetQuery for loading from file, see
"FromFile:"
David Mielcarek 20200706 Added key 'lcc:LDAPSecurityGroupsMustMatchAll'
David Mielcarek 20200709 Added key 'lcc:portalSetReturnDataFileDisplayColumnAsList'
David Mielcarek 20200714 Added new flag to 'lcc:portalSetLoginColumnFlag' for
'SuggestedValues' and option ctcLinkTerm.
David Mielcarek 20200715 Added new flag to 'lcc:portalSetLoginColumnFlag' for
'MultiLine', 'MultiLineRows', 'MultiFilters'. New key
Page 59 of 59: lccROAR-whitepaper.docx
Lower Columbia College
'lcc:maxFilterSize', new flags to 'lcc:portalSetFlag' for
'APIResponseFormat', 'APIDownloadOption'.
David Mielcarek 20201001 Added new flag to 'lcc:portalSetLoginColumnFlag' for
'ValidateAgainstQuery'
End of document