Skip to content

Instantly share code, notes, and snippets.

@rayvoelker
Last active March 6, 2026 22:28
Show Gist options
  • Select an option

  • Save rayvoelker/cdb532b9b3d535e76dabf784d09ca4b9 to your computer and use it in GitHub Desktop.

Select an option

Save rayvoelker/cdb532b9b3d535e76dabf784d09ca4b9 to your computer and use it in GitHub Desktop.
ilsaux ILS Auxiliary Server - Master Documentation Index (CHPL)

ilsaux -- ILS Auxiliary Server Documentation

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)


Documentation Gists

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

Active Reports -- Quick Reference

Shelf-List Reports (6 -- HIGH PRIORITY)

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

Other Active Reports (16)

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.


Sierra:: Modules (16)

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

Manifest Files (9)

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

Scripts (13)

Python scripts (stdlib-only, rerunnable) that generated this documentation from the live ilsaux server.

Manifest Generators (7)

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

Documentation Generators (3)

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

Utilities (3)

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)

Framework & Architecture

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.


Migration & Archive Plan

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

Credential Safety Note

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment