Purpose
A fast, safe, and auditable commandline tool written in Rust to synchronize users from a CSV file into Titan HST. It creates and updates users, manages site role membership, removes users from sites when they no longer appear in your source, and produces humanfriendly reports (plain text, HTML, and email).
Current state
Core sync and reporting behavior is implemented, and initial testing is complete. Registry-backed runtime evidence still points to the Integr8r `TitanHST` job as the active production path, but this Rust CLI is the intended successor because it improves user assignment handling and should support more frequent delta updates. Staging, production testing, and cutover still need to be completed.
Next step
Stage and production-test `titanhst_sync`, publish the active host and scheduler model, and complete cutover from the legacy Integr8r path by summer 2026 at the latest.
Interfaces
Inputs- Config with API key and SMTP settings
- CSV input
- Configuration files (TOML)
- CSV files
Outputs- Titan HST user/role updates
- reports in logs/
- HTML reports
- Text reports
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.
Artifacts
- CSV requires external_id, first_name, last_name, email, site_name, role_names
Operational notes
Constraints and scars
- Safety thresholds must be tuned per district size; CSV schema drift can break mapping.
Reliability posture
Strong local guardrails (delta limits, dry-run support, report artifacts) make this safer than ad hoc scripts, but production scheduler ownership and active write-mode governance are still unresolved.
Observability
- Logs: Rust logging framework detected (log/tracing/env_logger).
- Metrics/health checks: None documented; use reports and logs
- Logs: Written under logs/ with HTML/text reports per run.
Security and privacy
Keep API keys and SMTP credentials out of source control. Prefer environment overrides for secrets. Reports and logs may contain user identifying information; handle according to your policies.
Dependencies
Upstream- Titan HST API
- optional SMTP relay
Ownership
OwnersJosh Barton
UsersJosh Barton (owner)
titanhst_sync
Architecture & Major Components
High-level diagram (text):
- Entry/trigger -> core logic -> outputs (details per docs below)
Entry/trigger
→core logic
→outputs
Entry points: src/main.rs
Top-level folders: data, docs, logs, src
Key abstractions: Safety preflight guardrails, site/role mapping, report generation
Setup / Build / Run
- Build system(s): Cargo.
- Build with Cargo and provide a config.toml + CSV input file.
- Use –dry_run to review the HTML/text report before applying changes.
Registry Alignment
- Related registry entry:
INT-016. - The registry treats TitanHST as a live district integration, but strongest current production evidence still sits in Integr8r and not conclusively in this Rust binary.
- Current runtime / active path: Integr8r
TitanHST job (batch-disabled, diff-enabled) with SQL export and secure upload. - Modernization / successor path: this Rust CLI and Aether wrapper (
titanhst_sync.sh), with initial testing complete and a planned production cutover window no later than summer 2026. - Scheduler / operator model: Integr8r scheduled or operator-run controls appear primary; this CLI path still needs declared production scheduler ownership.
- Site/staff scope: district staff safety-account provisioning and role/site mapping.
- This page remains the technical record for the newer implementation path while the production cutover/coexistence question stays unresolved.