Environment Setup
Overview
Authentication for the internal documentation site is handled by Cloudflare Access at the edge level. No environment variables are required in the application - authentication happens before users reach the site.
Authentication Method
Cloudflare Access with One-time PIN authentication:
- User navigates to https://team.symphonycore.com
- Cloudflare Access intercepts the request
- User enters their email address
- User receives a one-time PIN via email
- User enters PIN to authenticate
- Access granted to documentation
Access Policy
Current policy configuration in Cloudflare Zero Trust:
- Application: Internal Docs
- Domain: team.symphonycore.com
- Policy: Allow emails ending in
@symphonycore.com - Identity Provider: One-time PIN
Managing Access
Adding Users
Any user with an @symphonycore.com email can access the site automatically (no manual user management needed).
Adding External Users
To allow specific external users:
- Go to Cloudflare Zero Trust Dashboard
- Navigate to Access controls → Applications
- Edit the "Internal Docs" application
- Add a new Include rule with specific email addresses
Cloudflare Dashboard Access
- Zero Trust Dashboard: https://one.dash.cloudflare.com
- Application Settings: Access controls → Applications → Internal Docs
Previous Setup (Deprecated)
Previously, authentication was handled by Firebase Auth with Google SSO. This was migrated to Cloudflare Access in December 2025 for:
- Simpler architecture (no client-side auth code)
- Support for external users via email OTP
- Reduced bundle size
- Edge-level authentication (faster, more secure)
The Firebase project (symphonycore-internal-docs) can be disabled or deleted if no longer needed.
Troubleshooting
User Can't Access
- Verify their email ends with
@symphonycore.com - Check they're entering the correct email
- Check spam folder for OTP email
- Verify Cloudflare Access application is enabled
OTP Not Received
- Check spam/junk folder
- Verify email address is correct
- Wait a few minutes and try again
- Check Cloudflare Access logs for errors