blob: 90b302ac97f05f82232550b0f37aee6184bcd414 [file] [log] [blame]
This Whimsy Roster tool presents a variety of organizational data about
people and groups at the ASF in a convenient and secure manner.
It uses Rack and Sinatra to run the server, Wunderbar for output, and
the whimsy/asf library to directly access a variety of ASF data
sources and files.
A public-facing version of some of this data is here:
https://whimsy.apache.org/foundation/orgchart/
Note that public_*.rb scripts are run by cron on the whimsy.a.o
server and control generating the /public/*.json files.
Run Roster Locally :car:
===
To test locally, run:
rake server
If you are running commands/actions that require authentication, start your
sever using:
rake auth server
Doing so will prompt you for your ASF password. Should your ASF username
not match your local user name, set the `USER` environment variable to your
apache user id before running the above command.
Issues? [Local setup](../../DEVELOPMENT.md#running-whimsy-applications-car).
Architecture Overview
===
The roster tool primarily displays data from a variety of sources
(private and public), and in some cases allows self-service for
Apache committers to update data directly.
* config.ru and main.rb are the startup and central control.
* models/ obviously provide the data models; many of them mirror but
add functionality to some of the whimsy/asf models.
* views/ provide the individual view pages.html.rb and (when used)
associated pages.js.rb scripts that make interactive features work,
using React.js.
* lib/whimsy/asf/auth is used by a few tools to do specific authorization
steps **within** the tool - instead of simply relying on httpd
to gate access to a URL as a whole.