Skip to main content

Feature Flags & Module Gates

Some Resgrid modules are behind feature flags so they can be rolled out gradually. On the hosted service Resgrid staff switch them on; on a self-hosted installation the operator does it with the tools console. Flags are stored in the database (FeatureFlags, FeatureFlagOverrides, FeatureFlagTargetingRules, FeatureFlagPrerequisites), cached, and evaluated per department: a department override wins over a percentage rollout and targeting rules, which win over the global default.

Managing flags (self-hosted)​

# list flags and what a department resolves to
dotnet Resgrid.Console.dll --FeatureFlags --DepartmentId=1

# turn a flag on for one department (department override)
dotnet Resgrid.Console.dll --FeatureFlags --Key=Records.System --DepartmentId=1 --On

# turn a flag on globally (default for every department without an override)
dotnet Resgrid.Console.dll --FeatureFlags --Key=Checklists.System --On

# remove an override, staged rollout, list keys the code gates on
dotnet Resgrid.Console.dll --FeatureFlags --Key=Chat.System --DepartmentId=1 --Clear
dotnet Resgrid.Console.dll --FeatureFlags --Key=Chat.System --Rollout=25
dotnet Resgrid.Console.dll --FeatureFlags --Keys

Writes go through the feature-toggle service, so caches are invalidated and an audit event is written; web, API and workers pick up the change on their next read. FeatureFlagsConfig.FeatureFlagsEnabled=false turns the whole subsystem off (every flag reads as disabled).

Flags​

KeyGatesDepends onSeeded
Chat.SystemRealtime chat, incident channels, Assistant conversation, moderation (web + apps). Free for all plans.—M0108
Chatbot.TwilioTextIntegrationRoutes inbound SMS through the Assistant pipeline instead of the legacy text commands.——
Dispatch.RunCardsRun cards, station-based / closest-unit selection, move-ups, alarm levels.—M0116
Checklists.SystemChecklists module (free).—M0189 (off)
Maintenance.WorkOrdersWork orders and preventive maintenance. Also needs the Readiness Pro add-on and the Maintenance module switch.—M0189 (off)
Records.SystemThe Records module; replaces Logs in the sidebar. A department must also activate Records.—M0152 (off)
Records.Field.Responder / .Unit / .IncidentCommand / .DispatchField Records surfaces in each app.Records.SystemM0152
Records.Prevention.OccupancyOccupancies and the pre-plan crosswalk.Records.SystemM0186
Records.Prevention.InspectionsInspection programs, code sets, inspections, violations.Records.Prevention.OccupancyM0186
Records.Prevention.HydrantsHydrants and water sources.Records.SystemM0186
Records.Prevention.PermitsPermits and plan review.Records.Prevention.OccupancyM0186
Records.Prevention.CrrCommunity risk reduction activities, smoke / CO alarm counts and alarm requests (M0284).Records.SystemM0186
Records.InvestigationsInvestigation cases.Records.SystemM0186
Records.QualityReviewQuality review rubrics and sampling.Records.SystemM0186
Records.AnalyticsRecords analytics dashboards.Records.SystemM0187
Search.UnifiedSearch: the Search page and search results in the top-bar box (the Go to shortcuts work without it). The installation must also run the search host (SearchConfig.Enabled).—M0208 (off)
Security.DepartmentProtectedDataEnrollmentPlatform-wide admission gate for new Advanced Data Protection enrollments (operator-managed; never affects departments already enrolled).—M0126
Business.OperationsMaster switch for every paid Business Ops surface; the purchase itself is the Business Ops add-on.—M0211 (off)
Invoicing.CustomerInvoicingInvoicing: billing profiles, rate cards, invoices, payments, aging. Also needs the Business Operations module switch and the add-on.Business.OperationsM0211 (off)
Payments.StripeConnectOperator-only per-region kill switch for online payment collection (on in the US cluster, off in the EU cluster at launch). Departments cannot override it.—M0212 (off, permanent)
Invoicing.OnlinePaymentsCustomers pay invoices through the department's own Stripe account.Invoicing.CustomerInvoicing, Payments.StripeConnectM0212 (off)
Operations.DeploymentsDeployment Finance (Workforce & Business Ops → Deployments): deployments, rosters, daily time reports, expenses, files, external orders (which also need Records.System). Free — no add-on. Read-only deployment reports need only Records.System.—M0219 (off)
Invoicing.ContractorBillingRate schedules, contracts, bids, the deployment wizard and invoice generation from time reports.Business.OperationsM0219 (off)
CostRecovery.CalOesMarsCal OES MARS cost recovery.Business.OperationsM0219 (off)
Workforce.InternalCostingWorkforce compensation, work entries, resource costing and cost runs.Business.OperationsM0224 (off)
Compliance.CaliforniaPayDataReportingCalifornia CRD pay data report wizard and demographic self-identification; the department's Advanced Data Protection state must also be Enabled.Business.OperationsM0224 (off)
Onboarding.MigrationWizardImport & Migration: the self-service import of configuration, people and apparatus. Master switch; department administrators only.—M0277 (off)
Onboarding.OperationsDataImport & Migration wave 2B: dispatch configuration, shifts, calendar, geography, contacts and Records prevention data. Not used by the current release.Onboarding.MigrationWizardM0277 (off)
Onboarding.ReadinessDataImport & Migration wave 2C: inventory, checklists, maintenance plans, open work orders and Business Ops profiles. Not used by the current release.Onboarding.MigrationWizardM0277 (off)
Onboarding.OperationalHistoryImport & Migration phase 3: closed calls, training results and certification history. Not used by the current release.Onboarding.MigrationWizardM0277 (off)
Onboarding.HistoricalRecordsImport & Migration phase 3R: third-party incident history into Records. Not used by the current release.Onboarding.MigrationWizard, Records.SystemM0277 (off)
Onboarding.VendorPacksImport & Migration phase 3B: sample-validated vendor export packs. Not used by the current release.Onboarding.MigrationWizardM0277 (off)
Onboarding.DepartmentPackageImport & Migration phase 4: Resgrid department package export, cluster moves and configuration cloning. Not used by the current release.Onboarding.MigrationWizardM0277 (off)
Onboarding.ManagedMigrationOperator-only: offers the Operate support access level (Resgrid staff run an import with two-person control) and the Please do the migration for us request, for a department with an agreed managed migration. Never enabled globally; set per department.Onboarding.MigrationWizardM0277 (off, permanent)

Other gates​

Besides flags, a page can be hidden by:

GateWhere
Module switches (Messaging, Mapping, Shifts, Logs/Records, Reports, Documents, Calendar, Notes, Training, Inventory, Checklists, Maintenance, Business Operations)Department Settings → Module Settings (DepartmentModuleSettings)
Plan and add-ons (PTT, ADP, Readiness Pro, Business Ops, Enterprise SSO)Subscription & Billing; entitlement checked against the billing API (SubscriptionsService, ReadinessAccessService, BusinessOperationsAccessService)
PermissionsSecurity & Permissions
Records activationRecords → Activate (RmsDepartmentCutover)
Installation confige.g. NERIS submission switched off system-wide, external connectors off, tracker gateway disabled

Environments​

A flag can be restricted to an environment (SystemBehaviorConfig.Environment: Dev, QA, Staging, Production); a flag pinned to another environment evaluates as its off value.