Here is a simple example of a RSP page:
<html><body> <% print [now <br> what-dir] %> </body></html>
Cheyenne serves static resources from the main process (UniServe process), CGI and RSP are executed by pre-forked worker processes. So writing to the same file from RSP script can be an issue if you don't have a mean to ensure that write accesses are serialized.
Cheyenne has no driver included, you have to load them. The best place is in 'worker-libs config block (see ChangeLog.txt).
For webapps specific libraries, the best place is 'on-application-start in %app-init.r.
There are two debug loggin options.
After installation option 2 is disabled. You can re-enable it by adding a DEBUG keyword in httpd.cfg in domain or webapp config block.
Even if you keep option 2 disabled, you can enable debug output to the client on a per script-file base. Add this line at the beginning of the RSP script:
This value is reseted at every RSP page request.
At the moment Chyenne supports:
Cheyenne supports the concept of a web application. That's a collection of files in a seperate directory. Every web app has an
app-init.r file where you can specify different handlers that are exectued at different times. The supported handlers are:
You can specify a special login sequence if you're using the AUTH keyword in the webapp config bloc. If you do this, a user has first to login to request any other page/file from the web application directory. Even if the user tries a direct request the login sequence is first executed.
Inside a web app directory you can create a public folder where you store files that are accessible without having to login. For example: If your login page uses CSS, images etc. these go into the public directory. Otherwise the files won't be loaded.
If AUTH is not used, you can access every webapp resource directly, it's up to each RSP to manage the access rights strategy. In this case you can use a common filter script called from 'on-page-start to control access as you like.
Cheyenne has no builtin support for basic auth. You need to provide your own code. 'on-page-start is a good place to put that kind of filter.