MCPcopy Index your code
hub / github.com/cisagov/ScubaGoggles

github.com/cisagov/ScubaGoggles @v0.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.0 ↗ · + Follow
364 symbols 1,181 edges 35 files 327 documented · 90%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ScubaGoggles Logo

GitHub Release PyPI - Version GitHub Downloads PyPI Downloads GitHub License

Developed by CISA, ScubaGoggles is an assessment tool that verifies a Google Workspace (GWS) organization's configuration conforms to the policies described in the Secure Cloud Business Applications (SCuBA) Secure Configuration Baseline documents.

For the Microsoft 365 (M365) rendition of this tool, see ScubaGear.

[!WARNING] This tool is in an alpha state and in active development. At this time, outputs could be incorrect and should be reviewed carefully.

Overview

We use a three-step process: 1. Export. In this step, we primarily use the Google Admin SDK API to export and serialize all the relevant logs and settings into json. ScubaGoggles also uses various other Google APIs to grab organization metadata, user privileges etc. 2. Verify. Compare the exported settings from the previous step with the configuration prescribed in the baselines. We do this using OPA Rego, a declarative query language for defining policy. 3. Report. Package the results as HTML and JSON.

Table of Contents

Installation

Prerequisites

Authentication

Usage

Troubleshooting

Misc

Project License

Unless otherwise noted, this project is distributed under the Creative Commons Zero license. With developer approval, contributions may be submitted with an alternate compatible license. If accepted, those contributions will be listed herein with the appropriate license.

Core symbols most depended-on inside this repo

write
called by 18
scubagoggles/config.py
find_element
called by 11
scubagoggles/Testing/Functional/SmokeTests/selenium_browser.py
find_elements
called by 11
scubagoggles/Testing/Functional/SmokeTests/selenium_browser.py
log_rego_output
called by 9
scubagoggles/run_rego.py
find_opa
called by 8
scubagoggles/run_rego.py
purge_reports
called by 8
scubagoggles/purge.py
parse_baselines
called by 8
scubagoggles/reporter/md_parser.py
_parser_error
called by 8
scubagoggles/reporter/md_parser.py

Shape

Method 272
Function 62
Class 29
Route 1

Languages

Python97%
TypeScript3%

Modules by API surface

scubagoggles/Testing/Unit/Python/test_policy_api.py38 symbols
scubagoggles/Testing/Unit/Python/version/test_version.py32 symbols
scubagoggles/provider.py29 symbols
scubagoggles/reporter/reporter.py24 symbols
scubagoggles/Testing/Unit/Python/test_run_rego.py21 symbols
scubagoggles/Testing/Unit/Python/test_user_setup.py20 symbols
scubagoggles/policy_api.py17 symbols
scubagoggles/orchestrator.py15 symbols
scubagoggles/config.py12 symbols
scubagoggles/Testing/Functional/SmokeTests/smoke_test_utils.py12 symbols
scubagoggles/version.py11 symbols
scubagoggles/reporter/md_parser.py11 symbols

For agents

$ claude mcp add ScubaGoggles \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page