Web Publishing Implementation Plan

Stuff to Build

Production Server

  1. Apache module to set "notes" (collection, revision, whatever) (also used on staging server) (these are put in the .htaccess files, so other Apache modules can have collection information, and for logging purposes) [DONE]
  2. Apache module to pull collection data from LDAP for authorization (requires coordination with kweb or pubcookie or whatever we use) (also used on staging server) [5 days; other LDAP work required first]
  3. tool to check out a given revision of a collection and move it into place on demand (built on top of RCS) [2 days, Shawn]
  4. tool to fetch collection metadata from LDAP and create .htaccess file on demand (whenever a collection is published) [2 days, Shawn]
  5. tool to fetch collection metadata from LDAP, update Apache conf, and do graceful server restart on demand (whenever a collection gains a new location in a server's URL namespace, almost always just the first time it's published) [2 days]

Staging Server

  1. Modified wu_ftpd to call external programs on FTP events and make decisions based on the results (this is hard) [DONE, by Derek]
  2. Further modified wu_ftpd to use Kerberos but not try to get new AFS credentials based on the result (this may be hard) [DONE, by Derek]
  3. Set up inetd to run authenticated, in order to launch modified wu_ftpd with specific AFS credentials. [5 days, requires help, Derrick?]
  4. command line program to enforce ACLs built from LDAP, and also queue a publish event based on a filename [3 days]
  5. simple tool to dump the current URLs of a collection on demand [DONE]
  6. tool to check in a new symbolic revision of a collection on demand [2 days]
  7. event handler engine to deal with publish events in the SQL table (remotely invokes tools on production servers) (this could be an event loop, a stored procedure, fired off by an Oracle trigger, we don't know yet) [3 weeks]
  8. set of dynamic web pages to provide skeleton of the UI [being done by User Services]
  9. set of dynamic web pages to provide each feature of the UI (including one for the logging project and one for the link checking project) [being worked on by User Services]
  10. program to handle events from the LDAP trigger server [2 days, Shawn]

Other (eg. supporting app servers)

  1. LDAP application server with the web collection schema [DONE]
  2. LDAP schema for stuff needed for logging subsystem [DONE]
  3. LDAP schema for per-directory ACLs [DONE]
  4. application-specific Oracle tables [DONE]
  5. tools to fetch logs from production server(s) and grep/awk the bejezis out of them [2 days, Shawn]
  6. scripts to perform required AFS administrative functions [5 days; may need help]

Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.5 First published draft, just a simple list of the pieces to build. 2001/7/20 Doug DeJulio
0.6 Added various minor details, cut down usage of words like "magic" and "thingy", as per Other Doug's request. 2001/7/23 Doug DeJulio
0.65 Added first rough time estimates 2001/7/24 Doug DeJulio
0.7 Added the one item needed for the simple model, a publish trigger tool. 2001/7/30 Doug DeJulio
0.75 Updated for progress; more changes coming. 2001/10/25 Doug DeJulio
0.8 Updated for "new" requirements. Each item given a unique number. 2001/10/30 Doug DeJulio
0.81 Now reflects that some items have been assigned to other people. 2001/11/07 Doug DeJulio
0.82 Updated to show progress. 2001/11/19 Doug DeJulio