Przejdź do głównej zawartości

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_DASHBOARDDashboard
FEATURE_TIME_TRACKINGTime tracking
FEATURE_ESTIMATEEstimates
FEATURE_INVOICEInvoicing
FEATURE_INVOICE_RECURRINGRecurring invoices
FEATURE_IMPORT_EXPORTData import/export
FEATURE_EMPLOYEE_RECURRING_EXPENSEEmployee expenses
FEATURE_ORGANIZATION_RECURRING_EXPENSEOrg expenses
FEATURE_EMPLOYEE_EXPENSEExpense tracking
FEATURE_ORGANIZATION_PROJECTProjects
FEATURE_ORGANIZATION_TASKTasks
FEATURE_ORGANIZATION_CONTACTContacts CRM
FEATURE_ORGANIZATION_TEAMTeams
FEATURE_EMPLOYEE_LEVELEmployee levels
FEATURE_ORGANIZATION_DEPARTMENTDepartments

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');
}
}