Book of Knowledge — sustainment handoff
Everything an incoming team needs to operate the site. Contacts are fictional.
Architecture
- Drupal 10.3 on PHP 8.3, MariaDB 10.11, Redis cache
- Environments: dev → test → prod; Git-based deploys with pre-deploy snapshot
- CDN + WAF in front of prod; US-only hosting region
- Key modules: webform, paragraphs, pathauto, metatag, views_bulk_operations
Runbooks
Apply a security advisory
- Read advisory; rate per policy (Critical = 72 h).
- Branch,
composer update drupal/MODULE --with-dependencies. - Deploy to test; run smoke tests + automated a11y scan.
- Snapshot prod; deploy in window; run
drush updbanddrush cr. - Log in Patches table; notify web team.
Restore from backup
- Declare incident; freeze content edits.
- Select restore point from Backup log.
- Restore to staging first; verify smoke tests.
- Promote; record RTO achieved.
Publish an emergency alert
- Create Alert content; skip Review with on-call approval.
- Purge CDN cache for
/. - Confirm banner on mobile and with a screen reader.
Semiannual 508 report
- Run full-site scan + manual sample of top 25 templates.
- Generate report on the 508 Reports page.
- File tickets for new issues; send summary to the Accessibility Coordinator.
Contacts & escalation (fictional)
| Role | Name | Contact |
|---|---|---|
| City Web Manager | Dana Whitlock | webmanager@underton.example |
| Accessibility Coordinator | Luis Ferreira | a11y@underton.example |
| IT Security Officer | Priya Raman | security@underton.example |
| Sustainment on-call | Rotation | (555) 010-0199 |
Credentials
Stored in vault — not shown. All admin, hosting, CDN, and third-party credentials live in the agency password vault with named access. Request access through the IT Security Officer. Never paste secrets into tickets or this document.
Recurring calendar
- Weekly: dependency check, link-monitor triage
- Monthly: patch window (2nd Saturday, 6–8 AM CT)
- Quarterly: restore test, access review
- Semiannual (Jan & Jul): Section 508 report