Purpose
Keep class-size planning views refreshed from Aeries so staffing and section-load discussions use a current source feed.
Current state
The implementation path is now explicit: `run.sh` executes `conf.d/summary.toml` and `conf.d/class-counts.toml`, produces `data/summary.csv` and `data/class-counts.csv`, and overwrites `SourceData-summary` and `SourceData-class-counts` ranges in the destination sheet. `aether/docs/cron-example.txt` documents hourly weekday execution (`0 7-18 * * 1-5`) from `/home/bousdtech/repos/BOUSD-ClassSize-Extract/run.sh`.
Next step
Confirm authoritative host identity, owner/escalation contacts, and the canonical list of downstream planning views that consume the two source tabs.
Interfaces
Inputs- SQL query files
- TOML configuration
- ODBC connection settings
- Google service-account access
Outputs- class-size sheet tabs
- local CSV artifacts
- planning source data
Reality to Action trace
Reality IngestionContributes in this stage.
Canonical StorageNot in scope.
Automation EnginesNot in scope.
Human InterfacesContributes in this stage.
Operational AdoptionContributes in this stage.
Core workflow
TBD. Document the 5-10 steps that define the core workflow.
Data integrity and contracts
Source of truth rules
- Aeries is canonical for the extracted data.
- Destination sheets are operational distribution surfaces and should not become the authoring system.
Safe handling
- Restrict service-account keys and ODBC credentials to approved operators.
- Treat CSV artifacts and destination tabs as restricted operational data.
- Document host ownership and recovery steps in an internal runbook.
Operational notes
Reliability posture
Deterministic `run.sh` behavior with two fixed extracts and documented cron-path cadence provides stable runtime evidence; failures usually preserve prior sheet state, but alert routing and owner escalation are still not centralized.
Observability
- stdout/stderr from run.sh and bundled CLI tools
- CSV artifacts in data/ (`summary.csv`, `class-counts.csv`) and temp/
- stale or missing downstream sheet tabs
Security and privacy
These jobs move restricted operational data from Aeries into Google Sheets. Keep service-account keys, credentials, logs, and CSV artifacts private.
Dependencies
Upstream- Aeries SQL access
- ODBC driver stability
- service-account sharing
- scheduler ownership
Downstream- class-load and enrollment planning workflows
Ownership
OwnersTechnology Services, Josh Barton
UsersTechnology Services, district reporting stakeholders
Operational Notes
- Implementation pattern:
run.sh wrapper, conf.d/ configuration, SQL-over-ODBC extraction, local CSV artifacts, and controlled Google Sheets range overwrites. - Extract contracts:
summary and class-counts each map from conf.d/<name>.toml to data/<name>.csv and SourceData-<name>!A1:ZZ10000. - Scheduled cadence: Hourly on weekdays between 07:00 and 18:00; repo evidence in
aether/docs/cron-example.txt uses 0 7-18 * * 1-5 /home/bousdtech/repos/BOUSD-ClassSize-Extract/run.sh. - README-level credential boundary: destination sheets are expected to grant edit access to the shared service account used across this extract family.
- Shared family risks include sheet header drift, secret sprawl, host ownership gaps, and weak centralized monitoring.
Registry Alignment
- Registry context: this feed belongs to the Aeries-to-Google Sheets reporting extract family, which Atlas keeps as operational family context rather than as a standalone BOUSD integration.
- Registry clarified: this job shares the same production host, secret, and schema-drift risk profile as the other BOUSD reporting extracts.
- Validation gaps: destination tab contracts are now known in repo evidence, but canonical owner/escalation mapping and consuming planning-workflow inventory remain incomplete.