OAuth Storage Quick Reference
Files Created
| File | Purpose |
|---|---|
src/corpusiq/oauth_storage.py |
Core storage implementation |
src/corpusiq/oauth_cleanup.py |
Background cleanup task |
test_oauth_storage.py |
Test suite |
.oauth_data/clients.json |
Registered OAuth clients |
.oauth_data/codes.json |
Authorization codes |
.oauth_data/tokens.json |
Access tokens |
Key Features
✅ Thread-safe file operations
✅ Automatic expiration (codes: 10 min, tokens: 1 hour)
✅ Background cleanup (runs every hour)
✅ Client validation on all endpoints
✅ One-time use authorization codes
✅ Redirect URI validation
Quick Commands
Test Storage
$env:PYTHONPATH="$PWD\src"
python test_oauth_storage.py
View Registered Clients
Get-Content .oauth_data\clients.json | ConvertFrom-Json | ConvertTo-Json
View Active Tokens
Get-Content .oauth_data\tokens.json | ConvertFrom-Json | ConvertTo-Json
Backup OAuth Data
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
Copy-Item .oauth_data .oauth_data_backup_$timestamp -Recurse
Clear All OAuth Data (Fresh Start)
Remove-Item .oauth_data -Recurse -Force
# Data will be recreated on next use
Expiration Times
| Item | Lifetime |
|---|---|
| Authorization Code | 10 minutes |
| Access Token | 1 hour |
| Client Secret | 90 days |
Security Notes
⚠️ Never commit .oauth_data/ (already in .gitignore)
⚠️ Backup regularly for production use
⚠️ Monitor logs for failed auth attempts
Storage Location
.oauth_data/ in your project root:
corpusiq-openai-sdk/
├── .oauth_data/ ← OAuth storage (ignored by git)
│ ├── clients.json ← Registered clients
│ ├── codes.json ← Authorization codes
│ └── tokens.json ← Access tokens
├── src/
│ └── corpusiq/
│ ├── oauth_storage.py ← Storage implementation
│ └── oauth_cleanup.py ← Cleanup task
└── test_oauth_storage.py ← Tests
Next: Test with ChatGPT
- Make sure your server is running
- Follow CHATGPT_INTEGRATION_STEPS.md
- Watch server logs for OAuth flows
- Check
.oauth_data/for registered clients
Your authorization server: https://mcp.sqltrainer.com