System: Sierra ILS report automation server at Cincinnati & Hamilton County Public Library (CHPL)
Contents: 94 documentation files covering 51 reports, 16 Perl modules, cron framework, and migration plan
Credentials: All sensitive values replaced with [REDACTED-*] markers (see bottom of this file)
This documentation is split across multiple gists to stay within GitHub's rendering limits.
| Category | Files | Description | Link |
|---|---|---|---|
| Reports | 53 | 52 report docs (51 reports + template) | View gist |
| Modules | 17 | 16 Sierra:: Perl module docs | View gist |
| Framework | 4 | Cron framework, config format, archive plan | View gist |
| Manifests (Small) | 8 | 7 renderable CSVs and text files | View gist |
| Manifests (Large) | 3 | Full file listing + script content JSON | View gist |
| Scripts | 16 | 13 Python/bash generator scripts | View gist |
These are the highest-value reports, actively used for collection management.
| Report | Full Name | Schedule | Last Run | Doc File |
|---|---|---|---|---|
| slitemdata | Item Data Inconsistency Report | MONTH | 2026-03-06 | reports--slitemdata.md |
| slmainmissing | Shelflist - Main Missing | MONTH | 2026-03-01 | reports--slmainmissing.md |
| sllastcopymissing | Shelflist - Last Copy Missing | MONTH | 2026-03-01 | reports--sllastcopymissing.md |
| slmissing | Shelflist - Missing | Quarterly | 2026-01-15 | reports--slmissing.md |
| slonorder | Shelflist - Circulated On-Order | Monthly (15th) | 2026-02-15 | reports--slonorder.md |
| slrepair | Shelflist - Repair | MONTH | 2026-03-01 | reports--slrepair.md |
| Report | Full Name | Schedule | Last Run | Doc File |
|---|---|---|---|---|
| activeusersmonthly | Active Users Count - Monthly | 1st of month | 2026-03-01 | reports--activeusersmonthly.md |
| bookclubrenewal | Book Club Renewal Report | MONTH | 2026-03-06 | reports--bookclubrenewal.md |
| deletedbibs | Deleted Bibs Report | YEAR | 2026-03-01 | reports--deletedbibs.md |
| dupeitembarcodes | Duplicate Barcodes | Twice daily | 2026-03-06 | reports--dupeitembarcodes.md |
| excusedlossbookclub | Excused Lost Bookclub | 1st of month | 2026-03-01 | reports--excusedlossbookclub.md |
| maindisplays | Shelflist - Main Displays | Weekly (Mon) | 2026-03-02 | reports--maindisplays.md |
| newdvds | New DVDs | 1st of month | 2026-03-01 | reports--newdvds.md |
| newlongintransit | Shelflist - New Long In-Transit | Monthly (15th) | 2026-02-15 | reports--newlongintransit.md |
| nolongernew | Shelflist - No Longer New | Monthly (15th) | 2026-02-15 | reports--nolongernew.md |
| olddvds | Old DVDs | 1st of month | 2026-03-01 | reports--olddvds.md |
| oldlongintransit | Shelflist - Old Long In-Transit | Monthly (15th) | 2026-02-15 | reports--oldlongintransit.md |
| removedupfines | Remove Duplicate Fines | MONTH | 2026-03-06 | reports--removedupfines.md |
| turn13 | Turn 13 | WEEK | 2026-03-06 | reports--turn13.md |
| turn18 | Turn 18 | WEEK | 2026-03-06 | reports--turn18.md |
| unpaidmanualcharges | Unpaid Manual Charges | MONTH | 2026-03-01 | reports--unpaidmanualcharges.md |
| userdata | User Data Entry Error Report | MONTH | 2026-03-06 | reports--userdata.md |
Inactive and obsolete reports (2 inactive-recent + 27 obsolete) are classified in the Framework gist.
Custom Perl modules in Modules/Sierra/ providing database access, location mapping, and ILS integration.
| Module | Purpose | Used By | Doc File |
|---|---|---|---|
| Sierra::Locations | Branch/location code lookups | 55 files | modules--sierra-locations.md |
| Sierra::DB | PostgreSQL database connection | 50 files | modules--sierra-db.md |
| Sierra::Items | Item record queries | 35 files | modules--sierra-items.md |
| Sierra::Tools | Utility functions | 11 files | modules--sierra-tools.md |
| Sierra::PatronSoap | Patron SOAP API client | 9 files | modules--sierra-patronsoap.md |
| Sierra::PatronUpdate | Patron record modifications | 8 files | modules--sierra-patronupdate.md |
| Sierra::Labels | Label generation | 8 files | modules--sierra-labels.md |
| Sierra::Shelflist | Shelf list report helpers | 8 files | modules--sierra-shelflist.md |
| Sierra::Bibs | Bibliographic record queries | 7 files | modules--sierra-bibs.md |
| Sierra::IIIUsers | III user account lookups | 7 files | modules--sierra-iiiusers.md |
| Sierra::Floating | Floating collection logic | 6 files | modules--sierra-floating.md |
| Sierra::SoapApi | Low-level SOAP API wrapper | 5 files | modules--sierra-soapapi.md |
| Sierra::FinePay | Fine payment processing | 3 files | modules--sierra-finepay.md |
| Sierra::Address | Patron address handling | 3 files | modules--sierra-address.md |
| Sierra::UserData | User data entry validation | 3 files | modules--sierra-userdata.md |
| Sierra::MARCtoLatin | MARC character conversion | 2 files | modules--sierra-marctolatin.md |
| Sierra::FinePayment | Fine payment (alternate) | 2 files | modules--sierra-finepayment.md |
Machine-readable data files generated by the analysis scripts.
| File | Format | Contents | Gist |
|---|---|---|---|
| manifests--summary-report.txt | TXT | Human-readable overview: file stats, report status, dependencies, cron, git, credentials | Small |
| manifests--report-status.csv | CSV | All 51 reports with status, last run, schedule, Perl file, line count, credential count | Small |
| manifests--cron-schedule.csv | CSV | Parsed crontab history (38 files, 1,020 entries) | Small |
| manifests--perl-dependencies.csv | CSV | 5,151 Perl import entries with classification (core/cpan/local/pragma) | Small |
| manifests--git-summaries.csv | CSV | 71 git repos with commit counts and last commit dates | Small |
| manifests--credential-locations.csv | CSV | 316 credential references (file + line + type only, NO values) | Small |
| manifests--file-manifest.csv | CSV | Full file listing: 17,362 files with paths, sizes, extensions | Large |
| manifests--directory-tree.txt | TXT | Directory structure of the ilsaux server | Small |
| manifests--script-content.json | JSON | Extracted code structure: 4,432 subs, 1,424 SQL queries, 295 data maps, 423 TODOs | Large |
Python scripts (stdlib-only, rerunnable) that generated this documentation from the live ilsaux server.
| Script | Output |
|---|---|
| scripts--manifest-tree.py | file-manifest.csv, directory-tree.txt |
| scripts--manifest-perl-deps.py | perl-dependencies.csv |
| scripts--manifest-script-content.py | script-content.json |
| scripts--manifest-cron.py | cron-schedule.csv |
| scripts--manifest-report-status.py | report-status.csv |
| scripts--manifest-git.py | git-summaries.csv |
| scripts--manifest-summary.py | summary-report.txt |
| Script | Output |
|---|---|
| scripts--generate-report-docs.py | 51 report docs in reports--*.md |
| scripts--generate-module-docs.py | 16 module docs in modules--*.md |
| scripts--generate-framework-doc.py | Framework docs |
| Script | Purpose |
|---|---|
| scripts--generate-archive-plan.py | Generates archive-plan.md (migration classification and priorities) |
| scripts--sanitize-for-gist.py | Redacts credentials and internal hostnames for safe publishing |
| scripts--publish-ilsaux-gist.sh | Original single-gist publisher (kept for reference) |
All reports follow the same execution pattern through generic-cron.sh:
cron schedule -> <report>-cron.sh -> generic-cron.sh -> perl ./$SOURCEFILE -> Sierra::DB -> PostgreSQL
See generic-cron-framework.md for the full execution flow.
See config-file-format.md for the Config::Simple .cfg credential format.
See archive-plan.md for the full classification and migration priorities.
Key numbers:
- 6 active-critical shelf-list reports (migrate first)
- 16 other active reports (evaluate for migration)
- 2 inactive-recent (review with stakeholders)
- 27 obsolete (archive as historical record)
- 49.6 GB total server size; 65.9% is active report data
- 316 credential references that need rotation before any migration
All sensitive values in these gists have been replaced by the sanitizer (sanitize-for-gist.py):
| Marker | Meaning |
|---|---|
[REDACTED-PASSWORD] |
Database or service password |
[REDACTED-USER] |
Database username or service account |
[REDACTED-HOST] |
Internal hostname or domain (*.plch.net, *.iii.com, etc.) |
[REDACTED-EMAIL] |
Internal email address |
[INTERNAL-HOST] |
Short internal hostname reference |
The credential-locations.csv file lists where credentials appear (file + line + type) but contains no actual credential values.