Atlas project development

google-classroom-guardians

Manage Google Classroom guardian relationships by reading a CSV of students and guardians, computing required invitations/removals, and applying them via the Classroom API. It ingests CSV input file, service-account JSON key, impersonated admin email and produces Optional plan report (JSON/CSV), guardian invitations and deletions via API.

Type
Field Tool
Lifecycle
Active
Last touched
2025-09-08
Visibility
Public

Purpose

Manage Google Classroom guardian relationships by reading a CSV of students and guardians, computing required invitations/removals, and applying them via the Classroom API.

Current state

Last touched: 2025-09-08. Functionality and completeness: Add and sync modes implemented; documentation is minimal.

Next step

Add baseline automated tests to cover critical flows; Add CI pipeline for build/test/lint; Document deployment/runtime environment (or add Dockerfile); Document interfaces (CLI flags, API endpoints, file formats); Add structured logging and basic health checks.

Interfaces

Inputs
  • CSV input file, service-account JSON key, impersonated admin email
  • Configuration files (TOML/YAML/JSON/INI/CONF)
  • CSV files
Outputs
  • Optional plan report (JSON/CSV), guardian invitations and deletions via API
  • CSV files

Reality to Action trace

Reality Ingestion

Not in scope.

Canonical Storage

Not in scope.

Automation Engines

Not in scope.

Human Interfaces

Not in scope.

Operational Adoption

Contributes in this stage.

Core workflow

TBD. Document the 5-10 steps that define the core workflow.

Artifacts

  • CSV expects `student_email` and `guardians` (comma/semicolon-separated)

Operational notes

Constraints and scars

  • Rate limits from the Classroom API require backoff and can slow large syncs.

Reliability posture

Failure modes and safe behavior: Auth or API failures abort; dry-run allows validation before writes. Idempotency / retries / batching behavior: Exponential backoff for 429/5xx; add-only mode avoids removals.

Observability

  • Logs: Rust logging framework detected (log/tracing/env_logger).
  • Metrics/health checks: None documented; rely on logs and exit codes

Security and privacy

Student/guardian PII is present in CSV inputs; secure storage and access controls are required. Service-account keys and admin impersonation should be handled via secure secrets. Sensitive secret material detected in google-classroom-guardians/priv_key.json; ensure it is excluded from docs and CI. Sensitive secret material detected in google-classroom-guardians/aether-422702-7523b3cb27b9.json; ensure it is excluded from docs and CI.

Dependencies

Upstream
  • Google Classroom API

Ownership

Owners

Josh Barton

Users

Josh Barton (owner)

google-classroom-guardians

Architecture & Major Components

  • High-level diagram (text):

    • Entry/trigger -> core logic -> outputs (details per docs below)
  • Entry points: src/main.rs

  • Top-level folders: releases, src

  • Key abstractions: CLI argument parsing, CSV parsing, Google Classroom API client, retry/backoff wrapper

Setup / Build / Run

  • Build system(s): Cargo.