Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emicklei/gws
command line tool for using the Google Workspace Admin (formerly GSuite)
https://github.com/emicklei/gws
cli command-line-tool gcp google google-workspace google-workspace-add-on gsuite
Last synced: 21 days ago
JSON representation
command line tool for using the Google Workspace Admin (formerly GSuite)
- Host: GitHub
- URL: https://github.com/emicklei/gws
- Owner: emicklei
- License: mit
- Created: 2019-09-19T07:44:15.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-05T20:17:07.000Z (7 months ago)
- Last Synced: 2024-10-04T15:47:44.244Z (about 1 month ago)
- Topics: cli, command-line-tool, gcp, google, google-workspace, google-workspace-add-on, gsuite
- Language: Go
- Homepage:
- Size: 201 KB
- Stars: 15
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# gws - command line tool to use the Google Workspace Admin SDK
## features
- list of users
- details of a user
- membership of a user
- management of groups
- list of roles
- user assignments of a role
- list of domainsAny command can produce JSON format using `-json` at the end of the command.
## examples
gws user list
gws user list -limit 4
gws user membership john.doe
gws user membership [email protected]
gws user info john.doe
gws user info [email protected]
gws user aliases [email protected]
gws user suspend angelina "retired"gws group list
gws group members all
gws group members [email protected]gws group info somegroup
gws group info [email protected]
gws group delete [email protected]
gws group delete [email protected]
gws group add my-group this-person [email protected]
gws group remove my-group this-person
gws group export -json > all.json
gws --domain company.com group export -csv > company-only.csvgws role list
gws role assignments _USER_MANAGEMENT_ADMIN_ROLE
gws domain listgws examples
## requirements
- A Google Cloud Identity domain with API access enabled
- A Google account in that domain with enough administrator privileges
- A Google Cloud Platform project with Admin SDK enabled ( https://console.developers.google.com/apis/library/admin.googleapis.com?project=YOURPROJECT )### primary domain access
If your Google Workspace (GSuite) account only has "Group Editor" role then you cannot use the short syntax for accounts that require the lookup of the primary domain. You can workaround this missing permission by setting an enviroment variable such as:
export GWS_PRIMARY_DOMAIN=yourhost.com
## install
Installation requires the Go SDK.
go install github.com/emicklei/gws@latest
## tool authentication
- Using the Google Cloud Platform console, create a new OAuth 2.0 client ID credential in the project for which you enabled the Admin SDK.
- Download the JSON file from the list of Credentials (download button on the right).
- Save the file to *gws-credentials.json* in your *home* directory or a *local* directory if you need access to more organisations. *gws* will look for this file in the current directoy first.## user permissions
*gws* requires the following authentication scopes to be consent per user.
You will be asked to accept those on the first time you use *gws*.
Note that accepting these scopes does not mean you as a user have access ; this is controlled in Cloud Identity (or Google Workspace/GSuite) Admin Console.- https://www.googleapis.com/auth/admin.directory.user
- https://www.googleapis.com/auth/admin.directory.group ( for group management )
- https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly
- https://www.googleapis.com/auth/admin.directory.domain.readonlySee also https://developers.google.com/admin-sdk/directory/v1/guides/authorizing
## help
Having problems using *gws* ? Read about [known errors](/errors.md)
© 2023+, ernestmicklei.com. MIT License. Contributions welcome.