The AWS Ops Wheel is a tool that simulates a random selection from a group of participants that weights away from participants recently chosen. For any group, the selection can also be rigged to suggest a particular participant that will be selected in a blatantly obvious (and sometimes hilarious) way. Version 2.0 introduces multi-tenant architecture, advanced user management, and enterprise-grade security features.
Quick Start (Recommended V2)
Deploy the enhanced multi-tenant version with advanced features:
Option 1: V2 Deployment (Recommended)
./deploy-v2.sh --suffix dev --admin-email your@email.com
Option 2: Legacy V1 Deployment
./deploy.sh --email your@email.com --suffix dev
Version Comparison
Feature
V1 (Legacy)
V2 (Enhanced)
Architecture
Single-tenant
Multi-tenant with Wheel Groups
User Management
Basic Cognito
Advanced roles & permissions
Security
Standard
Fine-grained access control
Data Isolation
None
Complete organizational separation
Role System
Admin/User
ADMIN, WHEEL_ADMIN, USER, DEPLOYMENT_ADMIN
How It Works
Core Concept
The AWS Ops Wheel provides fair random selection with intelligent weighting that reduces the probability of selecting recently chosen participants. This ensures balanced distribution over time while maintaining the element of surprise.
Selection Algorithm
The enhanced weighting system works as follows:
def suggest_participant(wheel):
target_number = len(wheel) * random() # Random number between 0 and total_weight
participant = None
for participant in wheel:
target_number -= participant.weight
if target_number <= 0:
break
return participant
def select_participant(chosen, wheel):
# Redistribute weight from chosen participant to others
if len(wheel) > 1:
weight_slice = chosen.weight / (len(wheel) - 1)
for participant in wheel:
if participant == chosen:
participant.weight = 0 # Chosen participant gets zero weight
else:
participant.weight += weight_slice # Others get increased weight
This algorithm ensures recently chosen participants have lower probability of being selected again, promoting fairness over time.
Operations Guide
V2 Enhanced Operations
Wheel Group Operations
Notes: Wheel Groups are isolated organizational containers in V2’s multi-tenant architecture
Create a wheel group: Set up a new organization with custom settings, quotas, and branding
Requires wheel group name and admin user email
Automatically creates the first admin user for the group
Configurable resource limits (max wheels, max participants per wheel)
Custom themes and organizational settings
Update wheel group settings: Modify quotas, themes, and organizational preferences
View wheel group statistics: See user count, wheel count, activity metrics, and usage analytics
Delete wheel group: Permanently remove the entire organization and ALL associated data
Warning: This is irreversible and deletes all wheels, participants, and users
Enhanced Wheel Operations
Notes: Wheels are scoped to their wheel group with advanced multi-tenant features
Create a new wheel: Set up participant selection groups within your wheel group
Supports custom names, descriptions, and selection limits
Configurable participant weight defaults
Optional wheel templates for consistency
Edit an existing wheel: Modify settings, appearance, and selection parameters
Delete a wheel: Remove wheel and all associated participants
Single Spin: Traditional single participant selection with enhanced animations
Notes: This does not adjust weighting, so if you’re unhappy with the result, you can spin again
Proceed: Accept the suggested participant(s) and adjust weights accordingly
Reset: Restart all participants to equal weights as 1.0
Advanced Participant Operations
Notes: Participants have enhanced profiles and are isolated within wheel groups
Add participants to a wheel: Create new participants with rich metadata
Requires name and follow-through URL that opens in a new browser tab when selected
Participants begin with configurable default weight (typically 1.0)
Optional email, tags, and custom attributes
Batch import support via CSV upload
Edit participant details: Update name, URL, weight, tags, and metadata
Delete specific participants: Remove individuals from wheels
Advanced rigging: Configure participants to be selected next
Doesn’t change actual weighting - bypasses selection algorithm temporarily
After proceeding, weights adjust as if participant was selected normally
Can be hidden (deceptive) or visible (comical demonstration mode)
Supports multi-participant rigging for complex scenarios
User Management Operations (V2 Multi-Tenant)
Notes: Users belong to wheel groups with role-based permissions
Create users: Add team members to your wheel group with appropriate roles
Supports ADMIN, WHEEL_ADMIN, and USER roles
Automatic Cognito user creation with temporary passwords
Email verification and welcome workflows
Update user roles: Change permissions within the wheel group
Delete users: Remove users from both the wheel group and authentication system
Create users: Create users within the wheel group
Deployment Admin Operations (Platform Management)
Notes: Deployment Admins have cross-group platform oversight
List all wheel groups: View every organization with statistics and activity metrics
See user counts, wheel counts, creation dates, and last activity
AWS Ops Wheel - Enhanced Multi-Tenant Edition
The AWS Ops Wheel is a tool that simulates a random selection from a group of participants that weights away from participants recently chosen. For any group, the selection can also be rigged to suggest a particular participant that will be selected in a blatantly obvious (and sometimes hilarious) way. Version 2.0 introduces multi-tenant architecture, advanced user management, and enterprise-grade security features.
Quick Start (Recommended V2)
Deploy the enhanced multi-tenant version with advanced features:
Option 1: V2 Deployment (Recommended)
Option 2: Legacy V1 Deployment
Version Comparison
How It Works
Core Concept
The AWS Ops Wheel provides fair random selection with intelligent weighting that reduces the probability of selecting recently chosen participants. This ensures balanced distribution over time while maintaining the element of surprise.
Selection Algorithm
The enhanced weighting system works as follows:
This algorithm ensures recently chosen participants have lower probability of being selected again, promoting fairness over time.
Operations Guide
V2 Enhanced Operations
Wheel Group Operations
Notes: Wheel Groups are isolated organizational containers in V2’s multi-tenant architecture
Enhanced Wheel Operations
Notes: Wheels are scoped to their wheel group with advanced multi-tenant features
Advanced Participant Operations
Notes: Participants have enhanced profiles and are isolated within wheel groups
User Management Operations (V2 Multi-Tenant)
Notes: Users belong to wheel groups with role-based permissions
Deployment Admin Operations (Platform Management)
Notes: Deployment Admins have cross-group platform oversight
V1 Legacy Operations
Basic Wheel Operations (V1)
Notes: V1 provides single-tenant wheel management
Basic Participant Operations (V1)
Notes: Participants aren’t shared between wheels in V1
Authentication and User Management (V1)
Notes: V1 uses basic Cognito authentication without multi-tenant features
Screenshots
Wheels Table
Participants Table
Wheel Interface (Pre-spin)
Wheel Interface (Post-spin)
User Guide
V2 Core Concepts
Wheel Groups
Wheel Groups are isolated organizational containers that provide:
User Roles & Permissions
Enhanced Wheel Operations
Participant Management
Legacy V1 Concepts
V1 provides the original single-tenant experience:
Development Guide
Development Dependencies
V2 Requirements (Recommended)
V1 Requirements (Legacy Support)
AWS Permissions & Setup
Recommended: Dedicated IAM User
Create a dedicated IAM user for development:
cloudformation/awsopswheel-create-policy.jsonRequired AWS Services
Testing
V2 Comprehensive Testing
V1 Legacy Testing
🚀 Deployment Guide
V2 Enhanced Deployment (Recommended)
Quick Deployment
Advanced Options
V2 Deployment Features
V1 Legacy Deployment
Option 1: CloudFormation Launch
Use the launch button above or deploy directly:
Option 2: Manual Build & Deploy
Post-Deployment Setup
V2 Multi-Tenant Setup
V1 Single-Tenant Setup
Miscellaneous
Import Participant Data from CSV
V1 Legacy CSV Import
Use the utility script for V1 deployments:
Stack Management
V2 Stack Operations
Wheel Customization
To change wheel spinning speed, modify
EASE_OUT_FRAMESandLINEAR_FRAMESinui/src/components/wheel.jsx. Lower values correspond to faster spinning.License & Legal
This project is licensed under the Apache License 2.0. See
LICENSE,NOTICE, andTHIRD-PARTY-LICENSESfor complete details.