Feature Flags

101 feature keys across 12 modules. Admin-controlled per-society toggles. KV-cached with 5-minute TTL. Small societies see only what they need.

Architecture

Admin toggles feature via POST /admin/features/toggle
    │
    ├─→ UPDATE society_features SET enabled = 1/0
    ├─→ Invalidate KV cache: DELETE "features:{societyId}"
    └─→ Next request picks up new state

Route handler:
  requireFeature('billing.maintenance')
    ├─→ Check KV cache first (5-min TTL)
    ├─→ Cache miss → query D1 society_features table
    └─→ Returns 403 if feature disabled

Default Enabled Features (46)

These are enabled by default for all societies on first setup:

ModuleFeature Keys
Billingbilling.maintenance
Membersmembers.directory
Noticesnotices.board, notices.push
Complaintscomplaints.basic
Documentsdocuments.vault
Amenitiesamenity.booking
Communitycommunity.feed
Accountingaccounting.coa
Authauth.mfa, auth.rbac
Guardguard.basic
Financeerp.vendors, finance.vendor_bills
Reportsreports.financial, reports.complaints, reports.visitors, reports.overview, reports.export, reports.gst, reports.tds

Full Feature List (12 modules, 101 keys)

ModuleFeature Keys
Billingbilling.maintenance, billing.auto_demand, billing.penalty, billing.escalation, billing.service_blocking, billing.reminders, billing.invoice_pdf, billing.e_invoicing
Paymentspayments.razorpay, payments.upi, payments.neft, payments.cheque, payments.auto_pay, payments.refund, bank_accounts, payment_verification
Accountingaccounting.coa, accounting.journal, accounting.bank_reconciliation, advanced_accounting, accounting.gst, accounting.tds, accounting.credit_debit
Governanceagm.workflow, agm.quorum, e_voting, governance, noc_approval, letter_approval, ai_mom, noc_esign
Securityguard.basic, guard.patrol, guard.leaderboard, guard.leaderboard, blacklist, sos, boom_barrier
Parkingparking.zone_map, parking.anpr, parking.rfid, parking.ev_charging, parking.visitor
Workforceworkforce.attendance, workforce.shifts, workforce.payroll, workforce.checklist
Facilitiesamenity.booking, facilities.pricing, facilities.deposits, facilities.analytics
Communitycommunity.feed, community.polls, community.forum, community.events, community.blood_donor, safety_alerts, hyperlocal
Documentsdocuments.vault, statutory_registers, document_signatures
Compliancegst_compliance, tds_filing, dpdp_compliance, audit_logs
Reportsreports.financial, reports.complaints, reports.visitors, reports.overview, reports.export, reports.gst, reports.tds

Admin API

GET  /admin/features              → List all features with enablement status
POST /admin/features/toggle       → Toggle a feature on/off
POST /admin/features/bulk-toggle  → Toggle multiple features at once