LDAP Integration with BbLearn
Several NAU affiliated populations will automatically have BbLearn accounts built on their behalf, as well as real time (almost) updating of those accounts. Code which manages this integration reside on oleadmin.ucc.nau.edu, in account "ldap." There are 4 separate jobs, each with a specific responsibility: account_build_bblearn, account_update_bblearn, account_build_affiliates, and account_build_overrides. Each job is called by crontab, and runs periodically, (check the crontab under user "ldap").
The 2 main jobs: account_build_bblearn and account_update_bblearn; handle the following LDAP affiliations: student, staff, faculty, instructor, future faculty, future instructor, future staff, and admitted. LDAP affiliation is the LDAP attribute fetched from "naueduprimaryaffiliation", but any "secondary" affiliation is also covered by checking LDAP attribute "edupersonaffiliation."
Other affiliations needing BbLearn accounts are covered by jobs: "account_build_affiliates" and "account_build_overrides." The primary function of "account_build_affiliates" is to build BbLearn accounts for LDAP affiliations of "affiliate". The primary function of "account_build_overrides" is to build BbLearn accounts for all other affiliations, such as "degree completed", "recent student", "previous faculty", etc.
Both account builds and updates are triggered by spool files, scp'ed by LDAP to oleadmin.ucc, which are zero byte length files copied to the /spool subdirectory. Naming of these spool files designates which job will pick up and process the account. Spool files named with an emplid (EG: 5194711) are assumed to be account builds and thus handled by "account_build_bblearn". Spool files named with a uid (EG: jmh42) are assumed to be account updates and are handled by "account_update_bblearn". Both processes will recognize a build versus an update and write back a uid or an emplid to the /spool subdirectory if necessary. Spool files with a format of <uid>_override or <uid>_affiliate are handled by jobs account_build_override and account_build_affiliate respectively.
Spool files can be generated by user request at: https://oleadmin.ucc.nau.edu/learn-cgi-bin/dbtools/PRD/account_build/index.pl
This is usually necessary for either affiliates or overrides. Both of those jobs run once an hour, so give it some time to work.
All programs build and update BbLearn accounts by using the SIS framework. This process builds flatfiles with '|' delimited fields and then calls end points via framework web service to upload the data. All account builds are verified by querying the BbLearn backend DB for confirmation.
Several subdirectories in the /spool directory contain processed spool files. These directories are: ".goodbld", which holds IDs indicating a successful transaction; ".badbld", holds IDs indicating a failed transaction; ".noupdate", holds uids which the program determined did not need updating; ".nobld", which holds emplids of NAU users whose affiliation is not currently being processed. Such affiliations are: "applicant" and no LDAP affiliation.
Besides building and updating BbLearn accounts, these programs add records to override DB table "vista_member_info" if one doesn't already exist for a given user. They also will build LDAP host accounts for host "bblearn.nau.edu" if one has not yet been built.
Common code (subroutines and constants) are stored in Perl module "AccountBuildUpdate.pm".