gam7 7.25.0__tar.gz → 7.26.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- {gam7-7.25.0 → gam7-7.26.0}/.github/workflows/build.yml +4 -4
- {gam7-7.25.0 → gam7-7.26.0}/PKG-INFO +2 -2
- {gam7-7.25.0 → gam7-7.26.0}/pyproject.toml +1 -1
- {gam7-7.25.0 → gam7-7.26.0}/src/GamUpdate.txt +13 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/__init__.py +41 -11
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glcfg.py +4 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glglobals.py +3 -0
- gam7-7.26.0/wiki/Cloud-Identity-Policies.md +137 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +12 -6
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GamUpdates.md +28 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +4 -4
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Todrive.md +2 -2
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Chat.md +4 -4
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Version-and-Help.md +10 -10
- {gam7-7.25.0 → gam7-7.26.0}/wiki/gam.cfg.md +5 -0
- gam7-7.25.0/wiki/Cloud-Identity-Policies.md +0 -416
- {gam7-7.25.0 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/stale.yml +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/LICENSE +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/README.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/.gitignore +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/GamCommands.txt +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/LICENSE +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/README.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/callgam.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/__main__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/client.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/core.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/data.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/http.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/atom/url.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam-install.sh +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam-setup.bat +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam.exe.manifest +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam.spec +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/gam.wxs +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/license.rtf +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/openssl.props +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/tools/ssd.mjs +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/src/version_info.txt.in +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/00scratch.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Addresses.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Administrators.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Aliases.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Authorization.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Basic-Items.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Calendars.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Customer.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Domains.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Global-Address-List.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Groups.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Home.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Licenses.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/List-Items.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/List.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/README.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Rclone.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Reports.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Reseller.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Resources.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Schemas.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Scripts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Send-Email.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Sites.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Users.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/_Sidebar.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.25.0 → gam7-7.26.0}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -126,16 +126,16 @@ jobs:
|
|
|
126
126
|
name: Test Python 3.12
|
|
127
127
|
- os: ubuntu-24.04
|
|
128
128
|
goal: test
|
|
129
|
-
python: "3.
|
|
129
|
+
python: "3.15-dev"
|
|
130
130
|
freethreaded: false
|
|
131
131
|
jid: 17
|
|
132
|
-
name: Test Python 3.
|
|
132
|
+
name: Test Python 3.15-dev
|
|
133
133
|
- os: ubuntu-24.04
|
|
134
134
|
goal: test
|
|
135
|
-
python: "3.14
|
|
135
|
+
python: "3.14"
|
|
136
136
|
freethreaded: true
|
|
137
137
|
jid: 18
|
|
138
|
-
name: Test Python 3.14
|
|
138
|
+
name: Test Python 3.14 freethread
|
|
139
139
|
|
|
140
140
|
steps:
|
|
141
141
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gam7
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.26.0
|
|
4
4
|
Summary: CLI tool to manage Google Workspace
|
|
5
5
|
Project-URL: Homepage, https://github.com/GAM-team/GAM
|
|
6
6
|
Project-URL: Issues, https://github.com/GAM-team/GAM/issues
|
|
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
21
|
Requires-Dist: arrow>=1.3.0
|
|
22
22
|
Requires-Dist: chardet>=5.2.0
|
|
23
23
|
Requires-Dist: cryptography>=44.0.2
|
|
@@ -27,7 +27,7 @@ dependencies = [
|
|
|
27
27
|
]
|
|
28
28
|
description = "CLI tool to manage Google Workspace"
|
|
29
29
|
readme = "README.md"
|
|
30
|
-
requires-python = ">=3.
|
|
30
|
+
requires-python = ">=3.10"
|
|
31
31
|
classifiers = [
|
|
32
32
|
"Programming Language :: Python :: 3",
|
|
33
33
|
"Programming Language :: Python :: 3 :: Only",
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
7.26.00
|
|
2
|
+
|
|
3
|
+
Added `debug_redaction` Boolean variable to `gam.cfg`. When True, the default,
|
|
4
|
+
sensitive data like access/refresh tokens, client secret and authorization codes
|
|
5
|
+
are redacted from debug output. This allows you to post debug output without
|
|
6
|
+
compromising your account information. Even with debug redaction,
|
|
7
|
+
anything shared publicly should be double-checked for sensitive content.
|
|
8
|
+
|
|
9
|
+
7.25.01
|
|
10
|
+
|
|
11
|
+
Fixed bug in `gam config timezone <String>` to handle timezone abbreviations correctly;
|
|
12
|
+
they were incorrectly shifted to lowercase.
|
|
13
|
+
|
|
1
14
|
7.25.00
|
|
2
15
|
|
|
3
16
|
Removed a capabilty added in 7.24.00 that allowed reading command data from Google Docs and Sheets
|
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.
|
|
28
|
+
__version__ = '7.26.00'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -49,7 +49,7 @@ from email.policy import SMTP as policySMTP
|
|
|
49
49
|
import hashlib
|
|
50
50
|
from html.entities import name2codepoint
|
|
51
51
|
from html.parser import HTMLParser
|
|
52
|
-
import http.client
|
|
52
|
+
import http.client
|
|
53
53
|
import importlib
|
|
54
54
|
from importlib.metadata import version as lib_version
|
|
55
55
|
import io
|
|
@@ -375,6 +375,37 @@ YUBIKEY_VALUE_ERROR_RC = 85
|
|
|
375
375
|
YUBIKEY_MULTIPLE_CONNECTED_RC = 86
|
|
376
376
|
YUBIKEY_NOT_FOUND_RC = 87
|
|
377
377
|
|
|
378
|
+
DEBUG_REDACTION_PATTERNS = [
|
|
379
|
+
# Positional patterns that redact sensitive credentials based on their location
|
|
380
|
+
(r'(Bearer\s+)\S+', r'\1*****'), # access tokens and JWTs in auth header
|
|
381
|
+
(r'([?&]refresh_token=)[^&]*', r'\1*****'), # refresh token URL parameter
|
|
382
|
+
(r'([?&]client_secret=)[^&]*', r'\1*****'), # client secret URL parameter
|
|
383
|
+
(r'([?&]key=)[^&]*', r'\1*****'), # API key URL parameter
|
|
384
|
+
(r'([?&]code=)[^&]*', r'\1*****'), # auth code URL parameter
|
|
385
|
+
|
|
386
|
+
# Pattern match patterns that redact sensitive credentials based on known credential pattern
|
|
387
|
+
(r'ya29.[0-9A-Za-z-_]+', '*****'), # Access token
|
|
388
|
+
(r'1%2F%2F[0-9A-Za-z-_]{100}|1%2F%2F[0-9A-Za-z-_]{64}|1%2F%2F[0-9A-Za-z-_]{43}', '*****'), # Refresh token
|
|
389
|
+
(r'4/[0-9A-Za-z-_]+', '*****'), # Auth code
|
|
390
|
+
(r'GOCSPX-[0-9a-zA-Z-_]{28}', '*****'), # Client secret
|
|
391
|
+
(r'AIza[0-9A-Za-z-_]{35}', '*****'), # API key
|
|
392
|
+
(r'eyJ[a-zA-Z0-9\-_]+\.eyJ[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]*', '*****'), # JWT
|
|
393
|
+
]
|
|
394
|
+
|
|
395
|
+
def redactable_debug_print(*args):
|
|
396
|
+
processed_args = []
|
|
397
|
+
for arg in args:
|
|
398
|
+
if arg.startswith('b\''):
|
|
399
|
+
sbytes = arg[2:-1]
|
|
400
|
+
sbytes = bytes(sbytes, 'utf-8')
|
|
401
|
+
arg = sbytes.decode()
|
|
402
|
+
arg = arg.replace('\\r\\n', "\n ")
|
|
403
|
+
if GC.Values[GC.DEBUG_REDACTION]:
|
|
404
|
+
for pattern, replace in DEBUG_REDACTION_PATTERNS:
|
|
405
|
+
arg = re.sub(pattern, replace, arg)
|
|
406
|
+
processed_args.append(arg)
|
|
407
|
+
print(*processed_args)
|
|
408
|
+
|
|
378
409
|
# Multiprocessing lock
|
|
379
410
|
mplock = None
|
|
380
411
|
|
|
@@ -3716,12 +3747,12 @@ def SetGlobalVariables():
|
|
|
3716
3747
|
return stringlist
|
|
3717
3748
|
|
|
3718
3749
|
def _getCfgTimezone(sectionName, itemName):
|
|
3719
|
-
value = _stripStringQuotes(GM.Globals[GM.PARSER].get(sectionName, itemName)
|
|
3720
|
-
if value in {'utc', 'z'}:
|
|
3750
|
+
value = _stripStringQuotes(GM.Globals[GM.PARSER].get(sectionName, itemName))
|
|
3751
|
+
if value.lower() in {'utc', 'z'}:
|
|
3721
3752
|
GM.Globals[GM.CONVERT_TO_LOCAL_TIME] = False
|
|
3722
3753
|
return arrow.now('utc').tzinfo
|
|
3723
3754
|
GM.Globals[GM.CONVERT_TO_LOCAL_TIME] = True
|
|
3724
|
-
if value == 'local':
|
|
3755
|
+
if value.lower() == 'local':
|
|
3725
3756
|
return arrow.now(value).tzinfo
|
|
3726
3757
|
try:
|
|
3727
3758
|
return arrow.now(value).tzinfo
|
|
@@ -4124,6 +4155,8 @@ def SetGlobalVariables():
|
|
|
4124
4155
|
GM.Globals[GM.OAUTH2_TXT_LOCK] = f'{GC.Values[GC.OAUTH2_TXT]}.lock'
|
|
4125
4156
|
# Override httplib2 settings
|
|
4126
4157
|
httplib2.debuglevel = GC.Values[GC.DEBUG_LEVEL]
|
|
4158
|
+
# Use our own print function for http.client so we can redact and cleanup
|
|
4159
|
+
http.client.print = redactable_debug_print
|
|
4127
4160
|
# Reset global variables if required
|
|
4128
4161
|
if prevExtraArgsTxt != GC.Values[GC.EXTRA_ARGS]:
|
|
4129
4162
|
GM.Globals[GM.EXTRA_ARGS_LIST] = [('prettyPrint', GC.Values[GC.DEBUG_LEVEL] > 0)]
|
|
@@ -4775,7 +4808,7 @@ def getService(api, httpObj):
|
|
|
4775
4808
|
waitOnFailure(n, triesLimit, INVALID_JSON_RC, str(e))
|
|
4776
4809
|
continue
|
|
4777
4810
|
systemErrorExit(INVALID_JSON_RC, str(e))
|
|
4778
|
-
except (
|
|
4811
|
+
except (http.client.ResponseNotReady, OSError, googleapiclient.errors.HttpError) as e:
|
|
4779
4812
|
errMsg = f'Connection error: {str(e) or repr(e)}'
|
|
4780
4813
|
if n != triesLimit:
|
|
4781
4814
|
waitOnFailure(n, triesLimit, SOCKET_ERROR_RC, errMsg)
|
|
@@ -4810,7 +4843,6 @@ def defaultSvcAcctScopes():
|
|
|
4810
4843
|
saScopes[scope['api']].append(scope['scope'])
|
|
4811
4844
|
else:
|
|
4812
4845
|
saScopes[scope['api']].extend(scope['scope'])
|
|
4813
|
-
saScopes[API.DRIVEACTIVITY].append(API.DRIVE_SCOPE)
|
|
4814
4846
|
saScopes[API.DRIVE2] = saScopes[API.DRIVE3]
|
|
4815
4847
|
return saScopes
|
|
4816
4848
|
|
|
@@ -5089,7 +5121,7 @@ def callGData(service, function,
|
|
|
5089
5121
|
e = e.args[0]
|
|
5090
5122
|
handleOAuthTokenError(e, GDATA.SERVICE_NOT_APPLICABLE in throwErrors)
|
|
5091
5123
|
raise GDATA.ERROR_CODE_EXCEPTION_MAP[GDATA.SERVICE_NOT_APPLICABLE](str(e))
|
|
5092
|
-
except (
|
|
5124
|
+
except (http.client.ResponseNotReady, OSError) as e:
|
|
5093
5125
|
errMsg = f'Connection error: {str(e) or repr(e)}'
|
|
5094
5126
|
if n != triesLimit:
|
|
5095
5127
|
waitOnFailure(n, triesLimit, SOCKET_ERROR_RC, errMsg)
|
|
@@ -5399,7 +5431,7 @@ def callGAPI(service, function,
|
|
|
5399
5431
|
e = e.args[0]
|
|
5400
5432
|
handleOAuthTokenError(e, GAPI.SERVICE_NOT_AVAILABLE in throwReasons)
|
|
5401
5433
|
raise GAPI.REASON_EXCEPTION_MAP[GAPI.SERVICE_NOT_AVAILABLE](str(e))
|
|
5402
|
-
except (
|
|
5434
|
+
except (http.client.ResponseNotReady, OSError) as e:
|
|
5403
5435
|
errMsg = f'Connection error: {str(e) or repr(e)}'
|
|
5404
5436
|
if n != triesLimit:
|
|
5405
5437
|
waitOnFailure(n, triesLimit, SOCKET_ERROR_RC, errMsg)
|
|
@@ -12351,8 +12383,6 @@ def checkServiceAccount(users):
|
|
|
12351
12383
|
saScopes[scope['api']].append(scope['roscope'])
|
|
12352
12384
|
checkScopesSet.add(scope['roscope'])
|
|
12353
12385
|
i += 1
|
|
12354
|
-
if API.DRIVEACTIVITY in saScopes and API.DRIVE3 in saScopes:
|
|
12355
|
-
saScopes[API.DRIVEACTIVITY].append(API.DRIVE_SCOPE)
|
|
12356
12386
|
if API.DRIVE3 in saScopes:
|
|
12357
12387
|
saScopes[API.DRIVE2] = saScopes[API.DRIVE3]
|
|
12358
12388
|
GM.Globals[GM.OAUTH2SERVICE_JSON_DATA][API.OAUTH2SA_SCOPES] = saScopes
|
|
@@ -149,6 +149,8 @@ CSV_OUTPUT_USERS_AUDIT = 'csv_output_users_audit'
|
|
|
149
149
|
CUSTOMER_ID = 'customer_id'
|
|
150
150
|
# If debug_level > 0: extra_args['prettyPrint'] = True, httplib2.debuglevel = gam_debug_level, appsObj.debug = True
|
|
151
151
|
DEBUG_LEVEL = 'debug_level'
|
|
152
|
+
# redact sensitive credentials from debug output
|
|
153
|
+
DEBUG_REDACTION = 'debug_redaction'
|
|
152
154
|
# Developer Preview API Key
|
|
153
155
|
DEVELOPER_PREVIEW_API_KEY = 'developer_preview_api_key'
|
|
154
156
|
# When retrieving lists of ChromeOS devices from API, how many should be retrieved in each chunk
|
|
@@ -378,6 +380,7 @@ Defaults = {
|
|
|
378
380
|
CSV_OUTPUT_USERS_AUDIT: FALSE,
|
|
379
381
|
CUSTOMER_ID: MY_CUSTOMER,
|
|
380
382
|
DEBUG_LEVEL: '0',
|
|
383
|
+
DEBUG_REDACTION: TRUE,
|
|
381
384
|
DEVELOPER_PREVIEW_API_KEY: '',
|
|
382
385
|
DEVICE_MAX_RESULTS: '200',
|
|
383
386
|
DOMAIN: '',
|
|
@@ -547,6 +550,7 @@ VAR_INFO = {
|
|
|
547
550
|
CSV_OUTPUT_USERS_AUDIT: {VAR_TYPE: TYPE_BOOLEAN},
|
|
548
551
|
CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'CUSTOMER_ID', VAR_LIMITS: (0, None)},
|
|
549
552
|
DEBUG_LEVEL: {VAR_TYPE: TYPE_INTEGER, VAR_SIGFILE: 'debug.gam', VAR_LIMITS: (0, None), VAR_SFFT: ('0', '4')},
|
|
553
|
+
DEBUG_REDACTION: {VAR_TYPE: TYPE_BOOLEAN},
|
|
550
554
|
DEVELOPER_PREVIEW_API_KEY: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
|
|
551
555
|
DEVICE_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 200)},
|
|
552
556
|
DOMAIN: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GA_DOMAIN', VAR_LIMITS: (0, None)},
|
|
@@ -107,6 +107,8 @@ CURRENT_SVCACCT_USER = 'csa'
|
|
|
107
107
|
DATETIME_NOW = 'dtno'
|
|
108
108
|
# If debug_level > 0: extra_args['prettyPrint'] = True, httplib2.debuglevel = gam_debug_level, appsObj.debug = True
|
|
109
109
|
DEBUG_LEVEL = 'dbgl'
|
|
110
|
+
# Whether debug output should redact sensitive credentials
|
|
111
|
+
DEBUG_REDACTION = 'dbrd'
|
|
110
112
|
# Decoded ID token
|
|
111
113
|
DECODED_ID_TOKEN = 'didt'
|
|
112
114
|
# Index of start of <UserTypeEntity> in command line
|
|
@@ -263,6 +265,7 @@ Globals = {
|
|
|
263
265
|
CURRENT_SVCACCT_USER: None,
|
|
264
266
|
DATETIME_NOW: None,
|
|
265
267
|
DEBUG_LEVEL: 0,
|
|
268
|
+
DEBUG_REDACTION: True,
|
|
266
269
|
DECODED_ID_TOKEN: None,
|
|
267
270
|
ENTITY_CL_DELAY_START: 1,
|
|
268
271
|
ENTITY_CL_START: 1,
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Cloud Identity Policies
|
|
2
|
+
- [API documentation](#api-documentation)
|
|
3
|
+
- [Notes](#notes)
|
|
4
|
+
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
|
5
|
+
- [Definitions](#definitions)
|
|
6
|
+
- [Policies](#policies)
|
|
7
|
+
- [Display Cloud Identity Policies](#display-cloud-identity-policies)
|
|
8
|
+
|
|
9
|
+
## API documentation
|
|
10
|
+
* [Policy API](https://cloud.google.com/identity/docs/reference/rest/v1/policies)
|
|
11
|
+
* [Policy Settings](https://cloud.google.com/identity/docs/concepts/supported-policy-api-settings)
|
|
12
|
+
|
|
13
|
+
## Notes
|
|
14
|
+
To use these commands you must update your client access authentication.
|
|
15
|
+
You'll enter 20r to turn on the Cloud Identity Policy scope; then continue
|
|
16
|
+
with authentication.
|
|
17
|
+
```
|
|
18
|
+
gam oauth delete
|
|
19
|
+
gam oauth create
|
|
20
|
+
...
|
|
21
|
+
[R] 20) Cloud Identity - Policy (supports readonly)
|
|
22
|
+
```
|
|
23
|
+
You must enable access to policies in the GCP cloud console.
|
|
24
|
+
|
|
25
|
+
* Login at console.cloud.google.com
|
|
26
|
+
* In the upper left click the three lines to the left of Google Cloud and select IAM & Admin
|
|
27
|
+
* Under IAM & Admin select IAM
|
|
28
|
+
* Click in the box to the right of Google Cloud
|
|
29
|
+
* Click the three dots at the right and select IAM/Permissions
|
|
30
|
+
* Now you should be at "Permissions for organization ..."
|
|
31
|
+
* Click on Grant Access
|
|
32
|
+
* Enter the GAM project creator address in Principals
|
|
33
|
+
* Click in the Select a role box
|
|
34
|
+
* Type orgpolicy.policyAdmin in the Filter box
|
|
35
|
+
* Click Organization Policy Administrator
|
|
36
|
+
* Click Save
|
|
37
|
+
|
|
38
|
+
## Definitions
|
|
39
|
+
```
|
|
40
|
+
<CIPolicyName> ::= policies/<String>|settings/<String>|<String>
|
|
41
|
+
<CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
|
|
42
|
+
<CIPolicyNameEntity> ::=
|
|
43
|
+
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
|
44
|
+
|
|
45
|
+
<RegularExpression> ::= <String>
|
|
46
|
+
See: https://docs.python.org/3/library/re.html
|
|
47
|
+
<REMatchPattern> ::= <RegularExpression>
|
|
48
|
+
<RESearchPattern> ::= <RegularExpression>
|
|
49
|
+
<RESubstitution> ::= <String>>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Policies
|
|
53
|
+
These are the supported policies GAM can show today.
|
|
54
|
+
|
|
55
|
+
See: https://cloud.google.com/identity/docs/concepts/supported-policy-api-settings
|
|
56
|
+
|
|
57
|
+
## Display Cloud Identity Policies
|
|
58
|
+
Display selected policies.
|
|
59
|
+
```
|
|
60
|
+
gam info policies <CIPolicyEntity>
|
|
61
|
+
[nowarnings] [noappnames]
|
|
62
|
+
[formatjson]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Select policies::
|
|
66
|
+
* `polices/<String>` - A policy name, `policies/ahv4hg7qc24kvaghb7zihwf4riid4`
|
|
67
|
+
* `settings/<String>` - A policy setting type, `settings/workspace_marketplace.apps_allowlist`
|
|
68
|
+
* `<String>` - A policy setting type, `workspace_marketplace.apps_allowlist`
|
|
69
|
+
|
|
70
|
+
By default, policy warnings are displayed, use the 'nowarnings` option to suppress their display.
|
|
71
|
+
|
|
72
|
+
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
|
73
|
+
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
|
74
|
+
|
|
75
|
+
By default, Gam displays the information as an indented list of keys and values.
|
|
76
|
+
* `formatjson` - Display the fields in JSON format.
|
|
77
|
+
|
|
78
|
+
Display all or filtered policies.
|
|
79
|
+
```
|
|
80
|
+
gam show policies
|
|
81
|
+
[filter <String>] [nowarnings] [noappnames]
|
|
82
|
+
[group <REMatchPattern>] [ou|org|orgunit <REMatchPattern>]
|
|
83
|
+
[formatjson]
|
|
84
|
+
```
|
|
85
|
+
By default, all policies are displayed.
|
|
86
|
+
* `filter <String>` - Display filtered policies, See https://cloud.google.com/identity/docs/reference/rest/v1beta1/policies/list
|
|
87
|
+
* `group <REMatchPattern>` - Only display policies whose group email address matches the `<REMatchPattern>`
|
|
88
|
+
* `ou|org|orgunit <REMatchPattern>` - Only display policies whose OU path matches the `<REMatchPattern>`
|
|
89
|
+
|
|
90
|
+
By default, policy warnings are displayed, use the `nowarnings` option to suppress their display.
|
|
91
|
+
|
|
92
|
+
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
|
93
|
+
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
|
94
|
+
|
|
95
|
+
By default, Gam displays the information as an indented list of keys and values.
|
|
96
|
+
* `formatjson` - Display the fields in JSON format.
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
gam print policies [todrive <ToDriveAttribute>*]
|
|
100
|
+
[filter <String>] [nowarnings] [noappnames]
|
|
101
|
+
[group <REMatchPattern>] [ou|org|orgunit <REMatchPattern>]
|
|
102
|
+
[formatjson [quotechar <Character>]]
|
|
103
|
+
```
|
|
104
|
+
By default, all policies are displayed:
|
|
105
|
+
* `filter <String>` - Display filtered policies, See https://cloud.google.com/identity/docs/reference/rest/v1beta1/policies/list
|
|
106
|
+
* `group <REMatchPattern>` - Only display policies whose group email address matches the `<REMatchPattern>`
|
|
107
|
+
* `ou|org|orgunit <REMatchPattern>` - Only display policies whose OU path matches the `<REMatchPattern>`
|
|
108
|
+
|
|
109
|
+
By default, policy warnings are displayed, use the `nowarnings` option to suppress their display.
|
|
110
|
+
|
|
111
|
+
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
|
112
|
+
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
|
113
|
+
|
|
114
|
+
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
115
|
+
* `formatjson` - Display the fields in JSON format.
|
|
116
|
+
|
|
117
|
+
By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
|
|
118
|
+
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
|
|
119
|
+
When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
|
|
120
|
+
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
|
121
|
+
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
|
122
|
+
|
|
123
|
+
### Examples
|
|
124
|
+
Print all service status policies.
|
|
125
|
+
```
|
|
126
|
+
gam redirect csv ./ServiceStatusPolicies.csv print policies filter "setting.type.matches('.*service_status')"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Print all polices that apply directly to the OU "/Staff".
|
|
130
|
+
```
|
|
131
|
+
gam redirect csv ./StaffPolicies.csv print policies ou "^/Staff$"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Print all polices that apply to the OU "/Staff" and its sub-OUs.
|
|
135
|
+
```
|
|
136
|
+
gam redirect csv ./StaffPolicies.csv print policies ou "^/Staff"
|
|
137
|
+
```
|
|
@@ -83,14 +83,20 @@ gam csv gsheet you@exmaple.com <DriveFileIDEntity> "Sheet 1" gam create user fir
|
|
|
83
83
|
|
|
84
84
|
## Limited Service Account Access
|
|
85
85
|
If you want to disable a user's service account access to Drive and Sheets but still allow reading command data from Google Docs and Sheets,
|
|
86
|
-
issue the following command and
|
|
86
|
+
issue the following commands. The admin specified in `gam oauth create` can read command data from Docs and Sheets to which it has access.
|
|
87
87
|
```
|
|
88
|
-
gam
|
|
88
|
+
gam config commanddata_clientaccess true save
|
|
89
|
+
gam oauth create
|
|
90
|
+
Enable the following and proceed to authorization.
|
|
89
91
|
|
|
90
|
-
[
|
|
91
|
-
[*]
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
[*] 42) Drive API - commanddata_clientaccess
|
|
93
|
+
[*] 54) Sheets API - commanddata_clientaccess
|
|
94
|
+
```
|
|
95
|
+
In these options, the `<EmailAddress> is not used, but for clarity you may want to specify the
|
|
96
|
+
email address of the admin specified in `gam oauth create`.
|
|
97
|
+
```
|
|
98
|
+
gdoc <EmailAddress> <DriveFileIDEntity>|<DriveFileNameEntity>|(<SharedDriveEntity> <SharedDriveFileNameEntity>)
|
|
99
|
+
gsheet <EmailAddress> <DriveFileIDEntity>|<DriveFileNameEntity>|(<SharedDriveEntity> <SharedDriveFileNameEntity>) <SheetEntity>
|
|
94
100
|
```
|
|
95
101
|
|
|
96
102
|
## Read data from a Google Cloud Storage File
|
|
@@ -10,6 +10,34 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|
|
10
10
|
|
|
11
11
|
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
|
12
12
|
|
|
13
|
+
### 7.25.01
|
|
14
|
+
|
|
15
|
+
Fixed bug in `gam config timezone <String>` to handle timezone abbreviations correctly;
|
|
16
|
+
they were incorrectly shifted to lowercase.
|
|
17
|
+
|
|
18
|
+
### 7.25.00
|
|
19
|
+
|
|
20
|
+
Removed a capabilty added in 7.24.00 that allowed reading command data from Google Docs and Sheets
|
|
21
|
+
when a user's service account access to Drive and Sheets had been disabled. Jay was concerned
|
|
22
|
+
that this change could be exploited to give access to all user's files.
|
|
23
|
+
|
|
24
|
+
This capability has been replaced by issuing the following commands. The admin specified in `gam oauth create`
|
|
25
|
+
can read command data from Docs and Sheets to which it has access.
|
|
26
|
+
```
|
|
27
|
+
gam config commanddata_clientaccess true save
|
|
28
|
+
gam oauth create
|
|
29
|
+
Enable the following and proceed to authorization.
|
|
30
|
+
|
|
31
|
+
[*] 42) Drive API - commanddata_clientaccess
|
|
32
|
+
[*] 54) Sheets API - commanddata_clientaccess
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
* See: https://github.com/GAM-team/GAM/wiki/Command-Data-From-Google-Docs-Sheets-Storage#limited-service-account-access
|
|
36
|
+
|
|
37
|
+
Fixed in bug in `gam report` that caused a trap with either of the `thismonth` or `previousmonths` options were used.
|
|
38
|
+
|
|
39
|
+
Upgraded to Python 3.14.0.
|
|
40
|
+
|
|
13
41
|
### 7.24.01
|
|
14
42
|
|
|
15
43
|
Updated GAM to handle the following error that occurs when GAM tries to authenticate
|
|
@@ -252,9 +252,9 @@ writes the credentials into the file oauth2.txt.
|
|
|
252
252
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
|
253
253
|
admin@server:/Users/admin$ gam version
|
|
254
254
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
|
255
|
-
GAM 7.
|
|
255
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
|
-
Python 3.
|
|
257
|
+
Python 3.14.0 64-bit final
|
|
258
258
|
macOS Tahoe 26.0.1 x86_64
|
|
259
259
|
Path: /Users/admin/bin/gam7
|
|
260
260
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -990,9 +990,9 @@ writes the credentials into the file oauth2.txt.
|
|
|
990
990
|
C:\>del C:\GAMConfig\oauth2.txt
|
|
991
991
|
C:\>gam version
|
|
992
992
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
|
993
|
-
GAM 7.
|
|
993
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pythonsource
|
|
994
994
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
995
|
-
Python 3.
|
|
995
|
+
Python 3.14.0 64-bit final
|
|
996
996
|
Windows-10-10.0.17134 AMD64
|
|
997
997
|
Path: C:\GAM7
|
|
998
998
|
Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -336,10 +336,10 @@ issue the following command and make these settings:
|
|
|
336
336
|
gam user user@domain.com update serviceaccount
|
|
337
337
|
|
|
338
338
|
[ ] 20) Drive API (supports readonly)
|
|
339
|
-
[*] 22) Drive API - write todrive data
|
|
339
|
+
[*] 22) Drive API - write todrive data - has access to all Drive
|
|
340
340
|
[*] 31) Gmail API - Send Messages - including todrive
|
|
341
341
|
[ ] 42) Sheets API (supports readonly)
|
|
342
|
-
[*] 44) Sheets API - write todrive data
|
|
342
|
+
[*] 44) Sheets API - write todrive data - has access to all Sheets
|
|
343
343
|
```
|
|
344
344
|
|
|
345
345
|
## No Service Account Access
|
|
@@ -327,7 +327,7 @@ gam <UserTypeEntity> show chatspaces
|
|
|
327
327
|
By default, chat spaces of all types are displayed.
|
|
328
328
|
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
|
329
329
|
|
|
330
|
-
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this
|
|
330
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
331
331
|
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
332
332
|
to get the `accessSettings` field.
|
|
333
333
|
|
|
@@ -343,7 +343,7 @@ gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
|
|
343
343
|
By default, chat spaces of all types are displayed.
|
|
344
344
|
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
|
345
345
|
|
|
346
|
-
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this
|
|
346
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
347
347
|
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
348
348
|
to get the `accessSettings` field.
|
|
349
349
|
|
|
@@ -401,7 +401,7 @@ By default, all chat spaces of type SPACE are displayed.
|
|
|
401
401
|
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
|
402
402
|
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
|
403
403
|
|
|
404
|
-
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this
|
|
404
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
405
405
|
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
406
406
|
to get the `accessSettings` field.
|
|
407
407
|
|
|
@@ -419,7 +419,7 @@ By default, all chat spaces of type SPACE are displayed.
|
|
|
419
419
|
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
|
420
420
|
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
|
421
421
|
|
|
422
|
-
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this
|
|
422
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
423
423
|
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
424
424
|
to get the `accessSettings` field.
|
|
425
425
|
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.
|
|
6
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
|
-
Python 3.
|
|
8
|
+
Python 3.14.0 64-bit final
|
|
9
9
|
macOS Tahoe 26.0.1 x86_64
|
|
10
10
|
Path: /Users/Admin/bin/gam7
|
|
11
11
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -15,9 +15,9 @@ Time: 2023-06-02T21:10:00-07:00
|
|
|
15
15
|
Print the current version of Gam with details and time offset information
|
|
16
16
|
```
|
|
17
17
|
gam version timeoffset
|
|
18
|
-
GAM 7.
|
|
18
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
|
-
Python 3.
|
|
20
|
+
Python 3.14.0 64-bit final
|
|
21
21
|
macOS Tahoe 26.0.1 x86_64
|
|
22
22
|
Path: /Users/Admin/bin/gam7
|
|
23
23
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -27,9 +27,9 @@ Your system time differs from www.googleapis.com by less than 1 second
|
|
|
27
27
|
Print the current version of Gam with extended details and SSL information
|
|
28
28
|
```
|
|
29
29
|
gam version extended
|
|
30
|
-
GAM 7.
|
|
30
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
|
-
Python 3.
|
|
32
|
+
Python 3.14.0 64-bit final
|
|
33
33
|
macOS Tahoe 26.0.1 x86_64
|
|
34
34
|
Path: /Users/Admin/bin/gam7
|
|
35
35
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -68,7 +68,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|
|
68
68
|
Path: /Users/Admin/bin/gam7
|
|
69
69
|
Version Check:
|
|
70
70
|
Current: 5.35.08
|
|
71
|
-
Latest: 7.
|
|
71
|
+
Latest: 7.25.01
|
|
72
72
|
echo $?
|
|
73
73
|
1
|
|
74
74
|
```
|
|
@@ -76,7 +76,7 @@ echo $?
|
|
|
76
76
|
Print the current version number without details
|
|
77
77
|
```
|
|
78
78
|
gam version simple
|
|
79
|
-
7.
|
|
79
|
+
7.25.01
|
|
80
80
|
```
|
|
81
81
|
In Linux/MacOS you can do:
|
|
82
82
|
```
|
|
@@ -86,9 +86,9 @@ echo $VER
|
|
|
86
86
|
Print the current version of Gam and address of this Wiki
|
|
87
87
|
```
|
|
88
88
|
gam help
|
|
89
|
-
GAM 7.
|
|
89
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM
|
|
90
90
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
91
|
-
Python 3.
|
|
91
|
+
Python 3.14.0 64-bit final
|
|
92
92
|
macOS Tahoe 26.0.1 x86_64
|
|
93
93
|
Path: /Users/Admin/bin/gam7
|
|
94
94
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
@@ -140,6 +140,11 @@ cmdlog_max_kilo_bytes
|
|
|
140
140
|
Maximum kilobytes per log file
|
|
141
141
|
Default: 1000
|
|
142
142
|
Range: 100 - 10000
|
|
143
|
+
commanddata_clientaccess
|
|
144
|
+
Enable/disable use of client access rather than service account access for the
|
|
145
|
+
admin specified in `gam oauth create` when reading command data from Docs and Sheets
|
|
146
|
+
to which it has access.
|
|
147
|
+
Default: False
|
|
143
148
|
config_dir
|
|
144
149
|
GAM config directory containing client_secrets.json, oauth2.txt, oauth2service.json
|
|
145
150
|
and extra_args.txt
|