Related Atlas entry
Purpose
Maintain a reliable, auditable sync between district staff data and ASCIP People, Groups, and Buckets. The goal is to replace manual reconciliation with a repeatable diff-and-apply workflow that logs every action and supports safe reruns.
When to use this playbook
- Before running production syncs or applying new mapping files.
- When reviewing audit logs after a major staff data refresh.
- When investigating drift between district data and ASCIP state.
Signals to stop or escalate
- Planned removals exceed an expected threshold.
- API auth failures or repeated 4xx/5xx responses from ASCIP.
- Mapping files no longer align with bucket/group definitions.
Audience and access
- Primary operators: IT automation and data services staff.
- Secondary reviewers: systems owner (you) and integration stakeholders.
- Required access: ASCIP API credentials with permission to read/write People, Groups, and Bucket values.
System overview (what the sync actually does)
- Pulls current ASCIP state for People, Groups, and Bucket definitions.
- Fetches per-person detail records because list endpoints omit bucket data.
- Normalizes identities (case-insensitive emails; match on work and personal emails when available).
- Compares desired staff records from CSV to ASCIP state and produces a diff.
- Applies only the delta (adds, updates, removals) and writes audit logs.
- Enforces group membership rules (default district group and site/location group).
Patterns in use
Inputs
- District staff CSV extract (source of truth).
- Mapping files for bucket/group/value IDs.
- ASCIP API credentials (HMAC auth).
- Optional config flags for logging verbosity and dry-run mode (TBD if not implemented).
Outputs
- ASCIP state changes (adds/updates/removals).
- Diff report or action plan (if enabled).
- Audit logs for each action and exceptions.
- Exported CSV snapshots (if enabled).
Preconditions
- Latest staff extract is validated and complete.
- Mapping files are current and match ASCIP IDs.
- Operator has verified credential scope and access.
- Log destination is writable and rotation strategy is known.
Run steps
- Prepare inputs
- Confirm staff CSV schema matches expected headers.
- Validate mapping files (bucket/group IDs, value IDs, location groups).
- Snapshot current ASCIP state
- Run the sync to fetch People, Groups, and Bucket definitions.
- Confirm the per-person detail fetch executes (required for bucket data).
- Generate diff (dry-run if supported)
- Review planned adds, updates, removals, and group membership changes.
- Apply changes
- Run the apply step with rate-limiting if configured.
- Watch logs for HTTP 411 or other vendor response issues.
- Review outputs
- Validate counts: input records vs. actions performed vs. errors.
- Review exception logs for mismatched groups or unmapped buckets.
- Archive artifacts
- Store CSV inputs, mapping files, and run logs alongside the run timestamp.
Validation checklist
- Confirm bucket assignments match expected values for a sample of users.
- Confirm group memberships include both default district group and site group.
- Confirm removed users are truly deprovisioned in the source extract.
- Confirm no duplicate identities were created due to mismatched emails.
Monitoring and observability
- Track total actions (adds, updates, removals, group assignments).
- Track error rates and top failure reasons.
- Capture timing per phase to detect slowdowns or API throttling.
- Maintain a per-run summary for audit requests.
Failure modes and recovery
- Missing bucket fields from list endpoints
- Mitigation: ensure per-person detail fetch runs for every user.
- HTTP 411 content-length requirement
- Mitigation: avoid query-param POST/PUT; use correct body format.
- Group membership desync
- Mitigation: enforce group calls per group and re-run if drift detected.
- Partial run failures
- Mitigation: rerun with identical inputs; diff should reduce double-apply risk.
- Mapping file drift
- Mitigation: refresh mapping IDs before major runs; validate against ASCIP.
Security and privacy
- PII is present in both inputs and logs. Avoid logging full records unless necessary.
- Store logs in a restricted location with clear retention policy (TBD).
- Use least-privilege API credentials scoped to required endpoints only.
Change management
- Record changes to mapping files with timestamps and owner.
- Document schema changes in the CSV extract definition.
- Add a short run summary to the Atlas project page after major changes.
Open items and improvements
- Add resumable batching and explicit rate-limit handling.
- Add a first-class dry-run output if not already available.
- Expand automated validation for bucket and group coverage.