feat: v3.1.0 — Live Platform Foundation (Track E.1-E.3)
Major release introducing the Live Platform architecture:
- SQLite database backend with async operations and migrations (E.1)
- AES-256-GCM credential encryption with HKDF key derivation (E.1)
- OAuth Social Login with GitHub and Google (E.2)
- Site management API with encrypted credential storage (E.3)
- Per-user MCP endpoints at /u/{user_id}/{alias}/mcp (E.3)
- User API keys with bcrypt hashing (E.3)
- Auto-generated config snippets for 5 MCP clients (E.3)
- Dashboard: dark/light mode, RBAC, My Sites, Connect page
- Active background health checks
- 452 tests (up from 303), all passing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
33
env.example
33
env.example
@@ -19,6 +19,14 @@
|
||||
# Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))"
|
||||
MASTER_API_KEY=your-secure-key-here
|
||||
|
||||
# Encryption key for user credentials (REQUIRED for Live Platform / Track E)
|
||||
# Generate with: python -c "import os, base64; print(base64.b64encode(os.urandom(32)).decode())"
|
||||
ENCRYPTION_KEY=
|
||||
|
||||
# Dashboard session secret (REQUIRED for production)
|
||||
# Generate with: python -c "import secrets; print(secrets.token_hex(32))"
|
||||
DASHBOARD_SESSION_SECRET=
|
||||
|
||||
# ============================================
|
||||
# WORDPRESS SITES
|
||||
# ============================================
|
||||
@@ -122,6 +130,28 @@ WORDPRESS_SITE1_ALIAS=mysite
|
||||
# OAUTH_JWT_SECRET_KEY=your-jwt-secret
|
||||
# OAUTH_BASE_URL=https://your-public-domain.com
|
||||
|
||||
# ============================================
|
||||
# OAUTH SOCIAL LOGIN (optional — for user registration)
|
||||
# ============================================
|
||||
# Enable GitHub and/or Google login for the Live Platform.
|
||||
# Create OAuth apps:
|
||||
# GitHub: https://github.com/settings/developers → New OAuth App
|
||||
# - Callback URL: https://your-domain.com/auth/callback/github
|
||||
# Google: https://console.cloud.google.com/apis/credentials → Create OAuth Client
|
||||
# - Callback URL: https://your-domain.com/auth/callback/google
|
||||
|
||||
# GITHUB_CLIENT_ID=
|
||||
# GITHUB_CLIENT_SECRET=
|
||||
# GOOGLE_CLIENT_ID=
|
||||
# GOOGLE_CLIENT_SECRET=
|
||||
# PUBLIC_URL=https://mcp.example.com
|
||||
# SESSION_EXPIRY_HOURS=168
|
||||
|
||||
# === SITE MANAGEMENT (E.3) ===
|
||||
# MAX_SITES_PER_USER=10
|
||||
# USER_RATE_LIMIT_PER_MIN=30
|
||||
# USER_RATE_LIMIT_PER_HR=500
|
||||
|
||||
# ============================================
|
||||
# ADVANCED (optional — defaults are fine)
|
||||
# ============================================
|
||||
@@ -129,6 +159,9 @@ WORDPRESS_SITE1_ALIAS=mysite
|
||||
# Logging
|
||||
LOG_LEVEL=INFO
|
||||
|
||||
# Database path (default: data/mcphub.db)
|
||||
# DATABASE_PATH=/app/data/mcphub.db
|
||||
|
||||
# Rate limits (per client)
|
||||
# RATE_LIMIT_PER_MINUTE=60
|
||||
# RATE_LIMIT_PER_HOUR=1000
|
||||
|
||||
Reference in New Issue
Block a user