Feature Flags
Control feature visibility and availability through feature flags.
Overviewโ
Feature flags control which modules and features are available for each organization and tenant.
Default Feature Flagsโ
| Feature | Default | Description |
|---|---|---|
FEATURE_DASHBOARD | โ | Dashboard |
FEATURE_TIME_TRACKING | โ | Time tracking |
FEATURE_ESTIMATE | โ | Estimates |
FEATURE_INVOICE | โ | Invoicing |
FEATURE_INVOICE_RECURRING | โ | Recurring invoices |
FEATURE_IMPORT_EXPORT | โ | Data import/export |
FEATURE_EMPLOYEE_RECURRING_EXPENSE | โ | Employee expenses |
FEATURE_ORGANIZATION_RECURRING_EXPENSE | โ | Org expenses |
FEATURE_EMPLOYEE_EXPENSE | โ | Expense tracking |
FEATURE_ORGANIZATION_PROJECT | โ | Projects |
FEATURE_ORGANIZATION_TASK | โ | Tasks |
FEATURE_ORGANIZATION_CONTACT | โ | Contacts CRM |
FEATURE_ORGANIZATION_TEAM | โ | Teams |
FEATURE_EMPLOYEE_LEVEL | โ | Employee levels |
FEATURE_ORGANIZATION_DEPARTMENT | โ | Departments |
Feature Flag Scopesโ
| Scope | Description |
|---|---|
| Global | Applies to all tenants |
| Tenant | Tenant-specific override |
| Organization | Organization-specific override |
APIโ
# Get available features
GET /api/feature/toggle
# Toggle a feature
PUT /api/feature/toggle
{
"featureId": "feature-uuid",
"enabled": false,
"organizationId": "org-uuid"
}
Frontend Usageโ
@Component({ ... })
export class SomeComponent {
constructor(private featureService: FeatureService) {}
get isTimeTrackingEnabled(): boolean {
return this.featureService.isFeatureEnabled('FEATURE_TIME_TRACKING');
}
}