- Python 3.11 or higher
- Node.js 18 or higher
- Docker and Docker Compose (for containerized deployment)
- Google Workspace Admin account
Before using the GWorkspace Toolbox, you need to set up a Google Cloud project and enable the necessary APIs.
- Go to Google Cloud Console
- Click on the project dropdown at the top
- Click "New Project"
- Enter a project name (e.g., "GWorkspace Toolbox")
- Click "Create"
- In the Google Cloud Console, go to "APIs & Services" > "Library"
- Search for "Admin SDK API"
- Click on it and click "Enable"
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- If prompted, configure the OAuth consent screen:
- User Type: Internal (if using Google Workspace) or External
- App name: GWorkspace Toolbox
- User support email: Your email
- Developer contact: Your email
- Save and continue
- Back to "Create OAuth client ID":
- Application type: "Desktop app"
- Name: GWorkspace Toolbox Desktop
- Click "Create"
- Download the JSON file
- Save it (you'll upload this through the application interface)
- Go to "APIs & Services" > "OAuth consent screen"
- Click "Edit App"
- In "Scopes", add the following scope:
https://www.googleapis.com/auth/admin.directory.user.readonly
- Save and continue
cd backend
python -m venv venv
# On macOS/Linux
source venv/bin/activate
# On Windows
venv\Scripts\activate
pip install -r requirements.txt
# Copy and configure environment file
cp .env.example .env
# Start the backend server
python main.pyThe backend will be available at: http://localhost:8000
API documentation available at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
cd frontend
npm install
# Start the development server
npm run devThe frontend will be available at: http://localhost:3000
This is the recommended method for production deployment or if you want a quick setup.
# Build and start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downAccess the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Open the application in your browser (http://localhost:3000)
- In the "Google Workspace Authentication" section
- Click "Choose File" and select the credentials JSON file you downloaded earlier
- Click "Upload Credentials"
- Click the "Authenticate" button
- A browser window will open asking you to sign in with your Google Workspace admin account
- Grant the requested permissions
- The browser will show a success message
- Return to the application - you should now see your admin email and domain
- Once authenticated, scroll to "Available Tools"
- Click "Extract Aliases"
- Wait for the extraction to complete
- View the statistics (total users, users with aliases)
- Click "Download CSV" to get your file
The generated CSV file contains:
- Column 1: Current Email (primary email address)
- Column 2: Alias 1 (first alias if exists)
- Column 3: Alias 2 (second alias if exists)
- Column N: Alias N (additional aliases as needed)
Example:
Current Email,Alias 1,Alias 2,Alias 3
john.doe@company.com,jdoe@company.com,johnd@company.com,
jane.smith@company.com,jsmith@company.com,,
Solution: Make sure you've uploaded the credentials JSON file through the interface first.
Solution:
- Verify that the Admin SDK API is enabled in your Google Cloud project
- Check that your OAuth credentials are configured correctly
- Ensure you're using a Google Workspace admin account
Solution:
- Make sure you're logged in as a Google Workspace super admin
- Verify that the OAuth consent screen has the correct scopes
Solution:
- Check if ports 3000 and 8000 are available
- Run
docker-compose logsto see error messages - Make sure Docker Desktop is running
-
Never commit credentials: The
.gitignorefile is configured to excludecredentials.jsonandtoken.json -
Use environment-specific credentials: Create separate OAuth clients for development and production
-
Rotate credentials regularly: Periodically regenerate OAuth credentials
-
Limit scope: The application only requests read-only access to user directory
-
Secure exports: CSV files containing user data should be handled according to your organization's data protection policies
The application supports three languages:
- English (default)
- Spanish (Español)
- Portuguese (Português)
Use the language selector in the top-right corner to switch languages.
If you encounter issues not covered in this guide:
- Check the application logs
- Review the API documentation at http://localhost:8000/docs
- Create an issue on the project repository
After successfully setting up and using the Alias Extractor tool, you can:
- Use the CSV data to audit email aliases
- Import the data into other systems
- Plan for future tools (coming soon):
- SAML attribute mapper
- SSO configuration validator
- User provisioning checker