Reserved Environment Names¶
Overview¶
To prevent conflicts with system routes and core application functionality, MBPanel enforces a list of reserved environment names that cannot be used when creating new environments.
Reserved Names List¶
The following names are blocked and will result in a validation error:
System/Application Names¶
team-management/team_management- Used by the team management applicationmightybox- Core brand namemymightybox/my-mightybox- Brand variationsadmin- Administrative interfaceadministrator- Administrative interfaceroot- System rootsystem- System operations
API & Service Names¶
api- API gatewaywww- Web serviceconsole- Admin consoledashboard- Dashboard interfaceportal- Portal interface
Common Service Names¶
mail- Mail serviceftp- FTP servicessh- SSH servicevpn- VPN serviceapp- Generic application
Environment Keywords¶
staging- Reserved for staging workflowsproduction- Reserved for production workflowsdevelopment- Reserved for development workflowstest- Reserved for testing workflowsdemo- Reserved for demo instances
Implementation¶
Reserved names are enforced in the EnvironmentCreateRequest schema validator:
# backend/app/domains/environments/schemas.py
_RESERVED_SHORTDOMAINS = {
"team-management",
"team_management",
"mightybox",
"mymightybox",
"my-mightybox",
"admin",
"administrator",
"root",
"system",
"api",
"www",
"mail",
"ftp",
"ssh",
"vpn",
"app",
"console",
"dashboard",
"portal",
"staging",
"production",
"development",
"test",
"demo",
}
Validation Logic¶
The validator performs case-insensitive matching and normalizes hyphens to underscores:
team-management❌ RejectedTeam-Management❌ Rejected (case insensitive)team_management❌ Rejected (normalized)ADMIN❌ Rejected (case insensitive)my-app✅ Allowed
Error Message¶
When a reserved name is used, the API returns:
{
"detail": "The name 'team-management' is reserved and cannot be used. Please choose a different name for your environment."
}
Adding New Reserved Names¶
To add additional reserved names:
- Update the
_RESERVED_SHORTDOMAINSset inbackend/app/domains/environments/schemas.py - Update this documentation
- Test the validation with the new name
- Deploy to all environments
Best Practices¶
When choosing environment names:
✅ Good Examples:
- myblog - Clear and unique
- e-commerce-prod - Descriptive with context
- client-portal-v2 - Version indication
❌ Avoid:
- Generic names like app, test, demo
- System-sounding names like admin, api
- Names matching the reserved list