Skip to main content

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​

FeatureDefaultDescription
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​

ScopeDescription
GlobalApplies to all tenants
TenantTenant-specific override
OrganizationOrganization-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');
}
}