| 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. |