Skip to content

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 application
  • mightybox - Core brand name
  • mymightybox / my-mightybox - Brand variations
  • admin - Administrative interface
  • administrator - Administrative interface
  • root - System root
  • system - System operations

API & Service Names

  • api - API gateway
  • www - Web service
  • console - Admin console
  • dashboard - Dashboard interface
  • portal - Portal interface

Common Service Names

  • mail - Mail service
  • ftp - FTP service
  • ssh - SSH service
  • vpn - VPN service
  • app - Generic application

Environment Keywords

  • staging - Reserved for staging workflows
  • production - Reserved for production workflows
  • development - Reserved for development workflows
  • test - Reserved for testing workflows
  • demo - 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 ❌ Rejected
  • Team-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:

  1. Update the _RESERVED_SHORTDOMAINS set in backend/app/domains/environments/schemas.py
  2. Update this documentation
  3. Test the validation with the new name
  4. 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