gam7 7.25.1__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.1 → gam7-7.26.0}/.github/workflows/build.yml +4 -4
- {gam7-7.25.1 → gam7-7.26.0}/PKG-INFO +2 -2
- {gam7-7.25.1 → gam7-7.26.0}/pyproject.toml +1 -1
- {gam7-7.25.1 → gam7-7.26.0}/src/GamUpdate.txt +8 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/__init__.py +38 -5
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glcfg.py +4 -0
- {gam7-7.25.1 → 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.1 → gam7-7.26.0}/wiki/GamUpdates.md +5 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Chat.md +4 -4
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Version-and-Help.md +6 -6
- gam7-7.25.1/wiki/Cloud-Identity-Policies.md +0 -416
- {gam7-7.25.1 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/stale.yml +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/LICENSE +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/README.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/.gitignore +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/GamCommands.txt +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/LICENSE +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/README.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/callgam.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/__main__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/client.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/core.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/data.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/http.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/atom/url.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam-install.sh +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam-setup.bat +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam.exe.manifest +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam.spec +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/gam.wxs +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/license.rtf +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/openssl.props +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/tools/ssd.mjs +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/src/version_info.txt.in +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/00scratch.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Addresses.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Administrators.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Aliases.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Authorization.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Basic-Items.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Calendars.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Customer.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Domains.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Global-Address-List.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Groups.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Home.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Licenses.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/List-Items.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/List.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/README.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Rclone.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Reports.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Reseller.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Resources.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Schemas.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Scripts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Send-Email.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Sites.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Todrive.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Users.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/_Sidebar.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/gam.cfg.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.25.1 → gam7-7.26.0}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.25.1 → 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,11 @@
|
|
|
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
|
+
|
|
1
9
|
7.25.01
|
|
2
10
|
|
|
3
11
|
Fixed bug in `gam config timezone <String>` to handle timezone abbreviations correctly;
|
|
@@ -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
|
|
|
@@ -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)
|
|
@@ -5088,7 +5121,7 @@ def callGData(service, function,
|
|
|
5088
5121
|
e = e.args[0]
|
|
5089
5122
|
handleOAuthTokenError(e, GDATA.SERVICE_NOT_APPLICABLE in throwErrors)
|
|
5090
5123
|
raise GDATA.ERROR_CODE_EXCEPTION_MAP[GDATA.SERVICE_NOT_APPLICABLE](str(e))
|
|
5091
|
-
except (
|
|
5124
|
+
except (http.client.ResponseNotReady, OSError) as e:
|
|
5092
5125
|
errMsg = f'Connection error: {str(e) or repr(e)}'
|
|
5093
5126
|
if n != triesLimit:
|
|
5094
5127
|
waitOnFailure(n, triesLimit, SOCKET_ERROR_RC, errMsg)
|
|
@@ -5398,7 +5431,7 @@ def callGAPI(service, function,
|
|
|
5398
5431
|
e = e.args[0]
|
|
5399
5432
|
handleOAuthTokenError(e, GAPI.SERVICE_NOT_AVAILABLE in throwReasons)
|
|
5400
5433
|
raise GAPI.REASON_EXCEPTION_MAP[GAPI.SERVICE_NOT_AVAILABLE](str(e))
|
|
5401
|
-
except (
|
|
5434
|
+
except (http.client.ResponseNotReady, OSError) as e:
|
|
5402
5435
|
errMsg = f'Connection error: {str(e) or repr(e)}'
|
|
5403
5436
|
if n != triesLimit:
|
|
5404
5437
|
waitOnFailure(n, triesLimit, SOCKET_ERROR_RC, errMsg)
|
|
@@ -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
|
+
```
|
|
@@ -10,6 +10,11 @@ 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
|
+
|
|
13
18
|
### 7.25.00
|
|
14
19
|
|
|
15
20
|
Removed a capabilty added in 7.24.00 that allowed reading command data from Google Docs and Sheets
|
|
@@ -252,7 +252,7 @@ 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.25.
|
|
255
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.14.0 64-bit final
|
|
258
258
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -990,7 +990,7 @@ 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.25.
|
|
993
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pythonsource
|
|
994
994
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
995
995
|
Python 3.14.0 64-bit final
|
|
996
996
|
Windows-10-10.0.17134 AMD64
|
|
@@ -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,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.25.
|
|
6
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
8
|
Python 3.14.0 64-bit final
|
|
9
9
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -15,7 +15,7 @@ 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.25.
|
|
18
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
20
|
Python 3.14.0 64-bit final
|
|
21
21
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -27,7 +27,7 @@ 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.25.
|
|
30
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
32
|
Python 3.14.0 64-bit final
|
|
33
33
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -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.25.
|
|
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.25.
|
|
79
|
+
7.25.01
|
|
80
80
|
```
|
|
81
81
|
In Linux/MacOS you can do:
|
|
82
82
|
```
|
|
@@ -86,7 +86,7 @@ echo $VER
|
|
|
86
86
|
Print the current version of Gam and address of this Wiki
|
|
87
87
|
```
|
|
88
88
|
gam help
|
|
89
|
-
GAM 7.25.
|
|
89
|
+
GAM 7.25.01 - https://github.com/GAM-team/GAM
|
|
90
90
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
91
91
|
Python 3.14.0 64-bit final
|
|
92
92
|
macOS Tahoe 26.0.1 x86_64
|