Main Features
Filament Tenancy includes a complete set of features designed to make multi-tenancy implementation simple and powerful.
Installation and Configuration
Section titled “Installation and Configuration”Easy Installation
Section titled “Easy Installation”- Interactive Installer: Step-by-step wizard that guides the entire installation process
- Automatic Verification: Checks database compatibility and dependencies
- Automatic Configuration: Publishes configuration files and registers services automatically
- Plan Creation: Automatically creates default plans (Basic, Premium, Enterprise)
Flexible Configuration
Section titled “Flexible Configuration”- Database: Support for MySQL and PostgreSQL
- Domain Detection: Auto-detection of
APP_DOMAINfromAPP_URL - Central Domains: Easy configuration of central domains
Tenant Management
Section titled “Tenant Management”Creation and Management
Section titled “Creation and Management”- Interactive Creation: Interactive command to create tenants with complete wizard
- Automatic DB Creation: Automatically creates the tenant database
- Automatic Migrations: Runs migrations automatically when creating tenant
- Automatic Seeders: Runs configured seeders automatically
- Panel Management: Create and manage tenants from the Filament panel
Domains and Subdomains
Section titled “Domains and Subdomains”- Domain Resolution: Each tenant can have its own domain
- Subdomain Resolution: Support for subdomains using
APP_DOMAIN - Path Resolution: Option for path-based resolution
- Automatic Detection: Detects and configures
APP_DOMAINautomatically
User Management
Section titled “User Management”Tenant Users
Section titled “Tenant Users”- Interactive Creation: Command to create users with roles and permissions
- Role Assignment: Assign roles during creation
- Permission Assignment: Assign specific permissions to users
- Password Generation: Generates secure passwords automatically
Central Users
Section titled “Central Users”- Centralized Management: Manage central system users
- Central Roles: Super Admin, Landlord Admin, Support
- Central Permissions: Separate permission system for central administration
Roles and Permissions
Section titled “Roles and Permissions”Complete RBAC System
Section titled “Complete RBAC System”- Spatie-like System: Familiar API for developers who know Spatie Permission
- Roles and Permissions: Complete roles and permissions system
- Tenant Isolation: Roles and permissions completely isolated per tenant
- Granular Permissions: Specific permissions for different actions
Central Permissions
Section titled “Central Permissions”- Separate System: Independent permissions for central administration
- Predefined Roles: Super Admin, Landlord Admin, Support
- Complete Management: Manage central roles and permissions from the panel
Filament Integration
Section titled “Filament Integration”Filament Plugins
Section titled “Filament Plugins”- TenancyLandlordPlugin: Plugin for central administration panel
- TenancyTenantPlugin: Plugin for tenant panels
- Automatic Registration: Automatic plugin registration according to configuration
- Access Restrictions: Integrated middleware to prevent cross-access
Filament Resources
Section titled “Filament Resources”- Landlord Resources: Complete management of tenants, plans, and subscriptions
- Tenant Resources: Specific resources for each tenant
- Customization: Easy customization of resources and forms
Database
Section titled “Database”Multi-Database Tenancy
Section titled “Multi-Database Tenancy”- Complete Isolation: Each tenant has its own database
- Automatic Creation: Creates databases automatically
- Automatic Migrations: Runs migrations when creating tenant
- Automatic Seeders: Runs configured seeders
Connection Management
Section titled “Connection Management”- Connection Pooling: Database connection optimization
- Credential Management: Secure and encrypted credential storage
- Key Rotation: Automatic encryption key rotation
- Monitoring: Connection and performance monitoring
Shared Assets
Section titled “Shared Assets”Asset System
Section titled “Asset System”- Share Assets: Share common assets from central to tenants
- Livewire Support: Special handling for Livewire components
- Filament Support: Filament assets automatically shared
- Fallback System: Automatic fallback to central assets if they don’t exist in tenant
Helper Function
Section titled “Helper Function”- tenant_asset(): Helper function to access shared assets
- Automatic Resolution: Automatically resolves tenant or central assets
- Optimization: Cache and optimization of asset URLs
Plans and Subscriptions
Section titled “Plans and Subscriptions”Plan Management
Section titled “Plan Management”- Predefined Plans: Basic, Premium, Enterprise included
- Customization: Create and customize plans from the panel
- Features: Define features and limits per plan
- Prices and Cycles: Configure prices and billing cycles
Subscriptions
Section titled “Subscriptions”- Automatic Creation: Automatically creates subscriptions when assigning plan
- States: State management (active, cancelled, expired, trial)
- Expiration: Automatic expiration date management
- Renewal: Automatic renewal configuration
Security
Section titled “Security”Security Middleware
Section titled “Security Middleware”- InitializeTenancy: Automatically resolves tenant
- EnsureTenantAccess: Verifies tenant access
- PreventTenantAccess: Prevents access from tenant context
- PreventLandlordAccess: Prevents access without active tenant
Validations
Section titled “Validations”- Central Domains: Central domain protection
- Active Tenants: Only active tenants can access
- Expiration Verification: Verifies expiration dates
- Custom 404: Custom 404 page for tenant not found
Logging and Monitoring
Section titled “Logging and Monitoring”Logging System
Section titled “Logging System”- Enhanced Logging: Environment-aware logging system
- Production Logs: Only critical errors in production
- Development Logs: Detailed logs in development
- Masking: Masks sensitive data in logs
Performance Monitoring
Section titled “Performance Monitoring”- Real-time Metrics: Connection and performance monitoring
- Configurable Alerts: Configurable thresholds for alerts
- Health Checks: Automatic system health checks
- Monitoring Commands: Commands to monitor connections
Customization
Section titled “Customization”Custom 404 Page
Section titled “Custom 404 Page”- Beautiful Page: Custom and modern error page
- Livewire Support: Optional Livewire component
- Optional Publishing: Publish components and views for customization
- Debug Information: Shows useful information for debugging
Extensibility
Section titled “Extensibility”- Events: Complete event system for extension
- Listeners: Configurable listeners for events
- Extension Points: Multiple points to extend functionality
- Traits: Reusable traits for models
Artisan Commands
Section titled “Artisan Commands”Available Commands
Section titled “Available Commands”- Installation: Interactive installation command
- Tenant Management: Create, list, delete tenants
- User Management: Create users with roles and permissions
- Migrations: Commands for tenant migrations
- Central Database: Commands for central DB setup
Execution Modes
Section titled “Execution Modes”- Interactive Mode: Interactive prompts for better UX
- Non-Interactive Mode: Support for scripts and automation
- Validation: Complete input validation
- Clear Messages: Clear error and success messages
Performance
Section titled “Performance”Optimizations
Section titled “Optimizations”- Connection Pooling: Connection pool for better performance
- Cache: Configuration and resolution cache
- Memory Management: Memory monitoring and optimization
- Query Optimization: Database query optimization
Scalability
Section titled “Scalability”- Multiple Tenants: Designed to handle many tenants
- Configurable Limits: Configurable limits per tenant
- Automatic Cleanup: Automatic cleanup of unused resources
- Monitoring: Resource and performance monitoring