tududi/backend/modules/feature-flags/service.js
Chris 57a6e558f3
fix: use CALDAV_ENABLED for calendar feature flag (#1070)
* fix: add FF_ENABLE_CALDAV feature flag for CalDAV functionality

Introduces a new dedicated feature flag for CalDAV sync that checks
both FF_ENABLE_CALDAV and CALDAV_ENABLED environment variables. This
allows the CalDAV tab to appear in profile settings when users set
CALDAV_ENABLED=true as documented.

The existing FF_ENABLE_CALENDAR remains unchanged as it's for a
separate (hidden) calendar feature.

Changes:
- Added 'caldav' feature flag to backend service (checks FF_ENABLE_CALDAV
  or CALDAV_ENABLED)
- Updated frontend FeatureFlags interface to include 'caldav'
- Changed CalDAV tab to use 'caldav' feature flag instead of 'calendar'
- Added FF_ENABLE_CALDAV to .env.example, .env.test, Dockerfile, and CI

Fixes #1048

* fix: add caldav property to all FeatureFlags initializations

Fixes TypeScript errors where FeatureFlags objects were missing the
new caldav property in:
- frontend/utils/featureFlags.ts (defaultFlags and error return)
- frontend/components/Navbar.tsx
- frontend/components/Sidebar.tsx
- frontend/components/Sidebar/SidebarNav.tsx
2026-04-25 18:21:53 +03:00

20 lines
563 B
JavaScript

'use strict';
class FeatureFlagsService {
/**
* Get all feature flags.
*/
getAll() {
return {
backups: process.env.FF_ENABLE_BACKUPS === 'true',
calendar: process.env.FF_ENABLE_CALENDAR === 'true',
caldav:
process.env.FF_ENABLE_CALDAV === 'true' ||
process.env.CALDAV_ENABLED === 'true',
habits: process.env.FF_ENABLE_HABITS === 'true',
mcp: process.env.FF_ENABLE_MCP === 'true',
};
}
}
module.exports = new FeatureFlagsService();