- PostgreSQL connection configured
- Supabase PostgreSQL URL added to .env
- Database connection tested successfully
- Connection pooling configured (10 connections, 20 max overflow)
- Auto-retry enabled for reliability
- Changed from SQLite to PostgreSQL
- Auto-login DISABLED (manual login required)
- Admin user configured
- Username:
admin - Password:
SecureAdmin@2026
- Username:
- New user activation required (security)
- JWT token system configured
- Access token: 1 hour lifetime
- Refresh token: 7 days lifetime
- Secure cookie settings enabled
- Per-user data isolation enabled
- User workspace separation configured
- Each user gets:
- Unique user_id (UUID)
- Personal flows
- Private folders
- Isolated API keys
- Separate variables & credentials
- Server running on http://127.0.0.1:7860
- Health check passing (HTTP 200 OK)
- Frontend assets properly served
- API documentation available at /docs
- Login to Langflow: http://127.0.0.1:7860
- Change admin password from
SecureAdmin@2026to something secure - Create your first regular user account
- Test user isolation (create 2 users, verify they can't see each other's data)
- Set up Supabase backup schedule (already automatic, but verify)
- Configure log rotation
- Set up monitoring alerts (optional)
Option A: Supabase Auth (EASIEST) ⭐ Recommended
- ✅ You already have Supabase
- ✅ Built-in Google OAuth
- ✅ Simple frontend integration
- ✅ No extra service costs
- Enable in Supabase Dashboard
- Add Google credentials
- Integrate with frontend
Option B: Auth0
- ✅ Many OAuth providers (Google, GitHub, etc.)
- ✅ Enterprise features
- ✅ Good documentation
- ❌ Additional service cost
- Sign up for Auth0
- Configure application
- Add to Langflow
Option C: Clerk
- ✅ Modern UI components
- ✅ Easy integration
- ✅ Web3 wallet support
- ❌ Additional service cost
- Sign up for Clerk
- Install packages
- Configure providers
Option D: Custom Implementation
- ✅ Full control
- ✅ No external dependencies
- ❌ More development work
- Create OAuth endpoints
- Implement token validation
- Add database migrations
If using Supabase Auth:
- Go to Supabase Dashboard → Authentication → Providers
- Enable Google provider
- Get credentials from Google Cloud Console:
- Visit https://console.cloud.google.com/apis/credentials
- Create OAuth 2.0 Client ID
- Add authorized redirect:
https://fgsksclhdanmgylswifm.supabase.co/auth/v1/callback
- Add credentials to Supabase
- Test Google login
If using custom implementation:
- Add OAuth endpoints to Langflow
- Create Google OAuth flow
- Handle token exchange
- Update User model for OAuth fields
- Test end-to-end
Option 1: Via Phantom SDK
- Install
@solana/wallet-adapter-phantom - Add frontend button for wallet connection
- Implement signature verification
- Create/link user by wallet address
- Store wallet address in user table
Option 2: Via Clerk (if chosen)
- Enable Web3 authentication in Clerk
- Configure Phantom as provider
- Use Clerk components
-- Add OAuth support to user table
ALTER TABLE "user" ADD COLUMN oauth_provider VARCHAR(50);
ALTER TABLE "user" ADD COLUMN oauth_id VARCHAR(255);
ALTER TABLE "user" ADD COLUMN email VARCHAR(255) UNIQUE;
ALTER TABLE "user" ADD COLUMN wallet_address VARCHAR(255) UNIQUE;
ALTER TABLE "user" ADD COLUMN avatar_url TEXT;
ALTER TABLE "user" ADD COLUMN email_verified BOOLEAN DEFAULT FALSE;
CREATE INDEX idx_user_oauth ON "user"(oauth_provider, oauth_id);
CREATE INDEX idx_user_wallet ON "user"(wallet_address);
CREATE INDEX idx_user_email ON "user"(email);- Create Alembic migration
- Test migration on dev database
- Apply to production
- Add "Sign in with Google" button
- Add "Connect Phantom Wallet" button
- Update login page UI
- Add OAuth callback handling
- Test user experience
- Can login as admin
- Can change admin password
- Can create new user
- Can login as new user
- Users see only their own data
- Create User A and User B
- User A creates a flow
- Verify User B cannot see User A's flow
- Verify User A cannot see User B's flows
- Test API key isolation
- Test variable isolation
- Test with 10 concurrent users
- Monitor connection pool usage
- Check query performance
- Verify no connection leaks
- Google login works
- User profile synced from Google
- Phantom wallet connection works
- Wallet signature verification works
- OAuth users can access their data
- OAuth logout works properly
- Check server logs for errors
- Monitor database connection pool
- Verify backup completion (Supabase dashboard)
- Review user activity
- Check database size growth
- Update dependencies if needed
- Review security alerts
- Rotate admin credentials
- Review user accounts (deactivate unused)
- Check database performance metrics
- Update documentation
- This Setup:
SETUP_GUIDE.md(detailed) - Quick Reference:
QUICK_START.md(commands) - Langflow Docs: https://docs.langflow.org
- Supabase Auth: https://supabase.com/docs/guides/auth
- Dashboard: https://supabase.com/dashboard/project/fgsksclhdanmgylswifm
- Database: https://supabase.com/dashboard/project/fgsksclhdanmgylswifm/database
- Auth: https://supabase.com/dashboard/project/fgsksclhdanmgylswifm/auth
- API Keys: https://supabase.com/dashboard/project/fgsksclhdanmgylswifm/settings/api
- Google OAuth: https://developers.google.com/identity/protocols/oauth2
- Phantom: https://docs.phantom.app/integrating/detecting-phantom
- Supabase Auth: https://supabase.com/docs/guides/auth/social-login/auth-google
- Auth0: https://auth0.com/docs/quickstart/spa
- Clerk: https://clerk.com/docs
┌─────────────────────────────────────────┐
│ Langflow Multi-Tenant Setup Status │
├─────────────────────────────────────────┤
│ ✅ PostgreSQL Database: Connected │
│ ✅ Authentication: Enabled │
│ ✅ Multi-Tenant: Active │
│ ✅ Server: Running (Port 7860) │
│ ⚠️ OAuth Google: Not Implemented │
│ ⚠️ OAuth Phantom: Not Implemented │
│ ⏳ Security Hardening: Pending │
└─────────────────────────────────────────┘
- ✅ PostgreSQL database (Supabase)
- ✅ User authentication with login page
- ✅ Multi-tenant data isolation
- ✅ Session management
- ✅ API key management per user
- ✅ Secure password storage (bcrypt)
⚠️ Google OAuth integration⚠️ Phantom wallet authentication⚠️ Social login UI components- ⏳ Production SSL/TLS
- ⏳ Rate limiting
- ⏳ 2FA (optional)
- Login and secure your admin account
- Create a test user
- Verify multi-tenant isolation
- Read through SETUP_GUIDE.md
- Choose OAuth provider (Supabase Auth recommended)
- Set up Google OAuth
- Test OAuth login flow
- Document OAuth setup
- Implement Phantom wallet integration (if needed)
- Set up production environment
- Enable HTTPS
- Configure monitoring
- Change default passwords immediately
- Use environment variables for secrets
- Enable 2FA for admin accounts
- Regular security audits
- Keep dependencies updated
- Monitor database connection pool
- Use Redis for caching in production
- Implement rate limiting
- Set up CDN for static assets
- Set up error tracking (Sentry)
- Monitor database performance (Supabase dashboard)
- Log user activity
- Track API usage per tenant
- Supabase handles automatic backups
- Verify backup schedule in dashboard
- Test restore procedure
- Document recovery plan
🎉 Congratulations! Your Langflow instance is now running with PostgreSQL and multi-tenant support!
Next: Login at http://127.0.0.1:7860 with admin/SecureAdmin@2026