Purpose
Provide Google Workspace integration scripts for directory operations and reporting workflows.
Current state
Last touched: 2025-04-28. Functionality and completeness: Scripts exist; documentation and testing are limited.
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- Configuration files (TOML/YAML/JSON/INI/CONF), Database tables (SQL scripts), Browser form inputs
- CSV/SQL data
Outputs- Query results (reports/extracts), Rendered HTML output
- CSV exports
- API updates
- Log files
Reality to Action trace
Reality IngestionNot in scope.
Canonical StorageNot in scope.
Automation EnginesNot in scope.
Human InterfacesContributes in this stage.
Operational AdoptionNot in scope.
Core workflow
TBD. Document the 5-10 steps that define the core workflow.
Artifacts
- Script-specific; configured under config/ and sql/
Operational notes
Constraints and scars
- Heterogeneous scripts with varying dependencies; maintenance requires per-script knowledge.
Reliability posture
Failure modes and safe behavior: Varies per script; errors typically surface via exit codes. Idempotency / retries / batching behavior: Varies per script; no centralized retry system.
Observability
- Logs: Script-specific logs and stdout/stderr
- Metrics/health checks: None documented
- Logs: Script-specific logs under log/ and stdout/stderr output.
Security and privacy
Recommended guardrails: Review config handling, avoid committing secrets, and document access controls.
Dependencies
Upstream- Google Workspace, Snipe-IT, and other systems named in scripts
Ownership
OwnersJosh Barton
UsersJosh Barton (owner)
GSuiteAPI
Architecture & Major Components
High-level diagram (text):
- Entry/trigger -> core logic -> outputs (details per docs below)
Entry/trigger
→core logic
→outputs
Entry points: Multiple scripts in repo root (Push-*.sh, *-sync.sh)
Top-level folders: bin, config, data, etc, import-mbox, js, lib, lock, log, misc, sql
Key abstractions: Shared lib/ helpers (GAM wrapper, CSV/SQL utilities), per-script wrappers
Setup / Build / Run
- Build system(s): None (script collection).
- Run individual scripts after configuring credentials and inputs.