Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions docs/apps/dispatch.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@ Real-time statistics banner displaying:
- Auto-reconnect with background resume refresh
- Events trigger automatic data refresh across all console panels

### Run cards and recommendations

When the department uses [Run Cards](../web-app/run-cards), the New Call screen shows the recommended units and personnel for the call's priority and type (or dispatches them automatically), lets the dispatcher escalate alarm levels, and surfaces move-up recommendations.

### Chat, moderation and the Assistant

Dispatch is the reference chat client: all channels, incident channels per call, urgent messages and the Assistant. See [Chat & Assistant](../web-app/chat).

### Field Records

With `Records.Field.Dispatch` enabled, dispatchers can start the NERIS incident report or a run record directly from the call. See [Records](../web-app/records/overview).

## Settings & Configuration

| Setting | Description |
Expand Down
12 changes: 12 additions & 0 deletions docs/apps/responder.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,18 @@ Resgrid Responder is a cross-platform application designed for **individual firs
- **Geolocation Hub**: live personnel and unit location updates
- Auto-reconnect with token refresh

### Chat & Assistant

Department, station, group and incident channels, direct messages (to people or to a unit's crew), threads, reactions, urgent messages with acknowledgement, and the **Assistant** for plain-language commands. Push notifications follow the web routing matrix (mentions, DMs and urgent messages push; open channels do not). Requires the `Chat.System` feature flag. See [Chat & Assistant](../web-app/chat).

### Checklists

Personal and assigned checks (start-of-shift, personal gear, station duties) run from the app with photos, signatures, N/A reasons and offline progress; due checks appear on the home screen. See [Checklists](../web-app/checklists).

### Field Records

When `Records.Field.Responder` is enabled, members author Records in the field (run reports, training records, department definitions such as SAR clue reports or damage assessments) with offline drafts, attachments and sync; finalisation can be handed to the web app. See [Records](../web-app/records/overview).

## Settings & Configuration

| Setting | Description |
Expand Down
16 changes: 16 additions & 0 deletions docs/apps/unit.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,22 @@ The app uses a sidebar/drawer layout that adapts to orientation:

**Modal screens**: Create New Call, Call Detail, Edit Call

### Chat

Unit identity chat: messages sent from the app are attributed to the unit (with the human sender recorded), incident channels open automatically for dispatched calls, and DMs addressed to the unit reach the whole crew. See [Chat & Assistant](../web-app/chat).

### Checklists and equipment

Unit-targeted checklists (apparatus daily / weekly, SCBA, equipment checks) run from the tablet with witness hand-off, photos and evidence; failed critical items can place the unit out of service and raise a work order (Readiness Pro). The equipment issued to the unit from [Inventory](../web-app/inventory) is listed for reference and consumption. See [Checklists](../web-app/checklists).

### Field Records

With `Records.Field.Unit` enabled the crew authors **Unit activity** and run records from the app, with the unit's times prefilled from status changes. See [Records](../web-app/records/overview).

### Hardware GPS trackers

Vehicles with a hardware tracker report position alongside (or instead of) the app; the web administrator sets the source priority. See [Hardware GPS Tracking](../web-app/unit-tracking).

## Settings & Configuration

| Setting | Description |
Expand Down
4 changes: 4 additions & 0 deletions docs/configuration/inventory-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ sidebar_position: 20

# Inventory Types

:::caution Legacy page
This page describes the original inventory *types* screen. Since the 2026 inventory modernization the **Inventory** module is a full workspace — items with bulk or serialized tracking, locations, lots with expiry, assets, kits, issuance, counts, alerts, purchasing and reports. The old *Manage Types* link now opens the **Items** tab of that workspace, and existing types and balances are imported the first time an administrator presses **Initialize inventory**. Read [Web application → Inventory](../web-app/inventory) for the current module; the notes below remain for departments still on the legacy screens.
:::

Inventory Types in Resgrid define the categories of items your department tracks in the inventory system. Each type represents a class of supply or equipment — such as "SCBA Bottles", "Medical Supplies", "Hose Sections", or "Batteries" — and includes configuration for units of measure and expiration tracking.

## Why Inventory Types Matter
Expand Down
4 changes: 4 additions & 0 deletions docs/how-tos/setup-department.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ sidebar_position: 2

# Setup Department

:::tip Recipes by organization type
This page is the generic, screen-by-screen walk-through. For concrete values — which unit types, call types, roles, statuses, run cards, checklists and records to create for a **fire department, EMS agency, SAR team, emergency management office, incident management team, CERT program, security company, industrial ERT, delivery/transit operator or multi-agency dispatch centre** — see the [Setup guides by organization](../setup-guides/overview).
:::

This guide walks you through every step needed to get your Resgrid department configured and ready for day-to-day use. Work through the sections in order — each one builds on the previous.

## Before You Begin
Expand Down
78 changes: 50 additions & 28 deletions docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,62 @@ sidebar_position: 1

# Introduction

**Resgrid: The Complete Open Source Computer Aided Dispatch & Emergency Management System**
**Resgrid: the complete open-source computer-aided dispatch, records and readiness platform**

Resgrid is a computer aided dispatch, management and logistics for first responders, disaster response, emergency management and companies.
Resgrid is computer-aided dispatch, personnel and unit management, records management and logistics for first responders, disaster response, emergency management and for the businesses and industrial teams that dispatch people and vehicles to jobs.

Originally started as a hosted only solution in 2014, the Resgrid system as processed hundreds of thousands of calls, messages, statuses and staffing updates and much more. With over 4,000 departments signed up Resgrid is the only open source computer aided dispatch system able to run at scale.
Started as a hosted service in 2014, Resgrid has processed millions of calls, messages, statuses and staffing updates for thousands of departments. It is the only open-source CAD able to run at that scale, and the same code runs the hosted service and self-hosted installations.

Resgrid is written on the Microsoft .Net and .Net Core Frameworks utilizing Microsoft SQL Server as the primary data repository.
Resgrid is written in C# on .NET with SQL Server or PostgreSQL as the primary store, Redis for caching, RabbitMQ (or Azure Service Bus) for messaging, and React Native / Expo mobile apps.

:::danger Work In Progress
This documentation is an on-going Work-In-Progress (WIP) and is not complete. There many sections that are empty to help organize, give landing areas and structure for documentation. Documentation is usually added when we address issues or get questions. If you need information and the area of the documentation is missing or incomplete, please create a Github issue
with the question and we will address it.
:::tip Where to start
- **Using the web app?** Start with the [Web application overview](web-app/overview) and [Navigation](web-app/navigation).
- **Setting up a department?** Pick the recipe for your organisation under [Setup guides](setup-guides/overview).
- **Hosting it yourself?** See [Self-hosted](self-hosted/quick-start).
- **Integrating?** See the [API](api/authentication) and [Workflows](web-app/workflows).
:::

:::tip User Interface Changes
We update our User Interfaces for our websites and applications every couple of years. As such the UI shown in Pictures in this documentation may not match what is currently in production. Functionality should remain the same but may be presented differently. We don't update the pictures/documentation unless there is a major overhaul of the functionality.
:::info Screenshots
Screenshots in this documentation were taken from the current web application with sample data. The interface is updated over time; functionality stays the same even when a screen looks a little different.
:::

## Features

- **Personnel Management**: Define personnel, contact information, details, certification, roles, status and availability for all personnel
- **Unit Support**: Support for apparatuses and groups of personnel working as a single unit (i.e. a USAR team) with AVL, accountability and logging
- **Groups and Locations**: Create groups and locations and assign personnel or units underneath for management of large or disperse organizations
- **Computer Aided Dispatch**: Create CallsIncidents and dispatch personnel, units, roles or groups to respond to those incidents both manual and automatic dispatches are supported
- **Messaging**: Built in message system to allow for targeted and dynamic communications to personnel
- **Chat**: Embedded P2P, Groups, Dispatch to Unit and Command chat system to enable very quick text based communications
- **Duty Shift System**: Create both Assigned Shifts and Signup Shifts to manage a static or dynamic workforce, switch swapping and trading support with attendance validation
- **Learning Management**: Design Trainings with text based materials, attach documents or presentations or link to external videos and assign questions to validate understanding of material
- **Run Logs and Logging**: Record actions of a call, training and meetings to keep tract of actions and events, hours, personnel and units involved
- **Reporting**: Generate reports for run logs, calls, training, meetings and more. Ability to use Reporting to create exports to integrate with 3rd party systems
- **Calendar System**: Create calendar entries and setup RSVP style events to keep personnel engaged and informed about activities and events
- **Inventory Management**: Track any kind of inventory both perishable (like medicine) and durable (like hand tools) equipped on apparatus, issued to personnel or stored at locations
- **Document Storage**: Upload and serve documents at a department or group level to members of your organization allowing a centralized place to serve documents from
- **Notifications Service**: Flexible notification system to alert of low personnel role or unit availability, staffing or status changes or any other system generated event
- **Department Linking**: Create powerful department links to allow for multiple independent organizations (i.e. mutual aid agreements or centralized dispatch center) to cooperate
- **Mobile Apps**: Apps available on Google Play and Apple App Store that can work with any standard installation. For Personnel, Units, Stations and Commanders.
- **API**: Included API with information about calls allow for easy extension and interaction without having to change code in the Resgrid Core codebase
## What is in the box

### Operations

- **Computer-aided dispatch** — create calls by hand, from email/SMS pages, from the API or the Assistant; dispatch personnel, groups, roles and units; push, SMS, email and voice alerting; check-in timers; scheduled calls. [Dispatch & Calls](web-app/dispatch-calls)
- **Run cards and automatic dispatch** — pre-planned assignments by priority and type, station-based or closest-unit selection, alarm levels, move-ups. [Run Cards](web-app/run-cards)
- **Personnel, units, groups and statuses** — the roster, apparatus, stations with geofences, and fully customisable status and staffing vocabularies. [Personnel](web-app/personnel) · [Units](web-app/units) · [Groups & Stations](web-app/groups-stations) · [Custom Statuses](web-app/custom-statuses)
- **Mapping** — live map with layers, points of interest, custom raster/region maps, indoor floor plans, routing, hardware GPS trackers. [Mapping](web-app/mapping) · [Custom Maps](web-app/custom-maps) · [Indoor Maps](web-app/indoor-maps) · [Hardware GPS Tracking](web-app/unit-tracking)
- **Routes** — planned multi-stop routes for hydrant checks, patrols, deliveries and transit. [Routes](web-app/routes)
- **Shifts and workshifts** — assigned and signup shifts, trades, staffing views. [Shifts](web-app/shifts)
- **Chat and Assistant** — realtime channels, DMs, incident channels, moderation, and a conversational assistant that takes commands. [Chat](web-app/chat)
- **Voice** — push-to-talk channels and audio streams. [Voice & Audio](web-app/voice-audio)

### Records and reporting

- **Records (RMS)** — typed operational records, NERIS incident reporting, department-designed forms from template packs (SAR, CERT, EOC, HAZMAT, industrial, security, delivery, transit, ICS forms), prevention (occupancies, inspections, hydrants, permits, CRR), investigations, analytics, quality review, legal holds and public-records disclosure. [Records](web-app/records/overview)
- **Reports** — printable and scheduled reports across every module. [Reports](web-app/reports)
- **Documents, notes, calendar, trainings** — the department's shared knowledge and learning. [Documents](web-app/documents) · [Notes](web-app/notes) · [Calendar](web-app/calendar) · [Trainings](web-app/trainings)

### Readiness and logistics

- **Checklists** — apparatus, equipment, facility and personal checks with schedules, reminders, witnesses, evidence and compliance reporting. [Checklists](web-app/checklists)
- **Work orders and preventive maintenance** — repairs, safety holds, meter- and calendar-based schedules, costs and service levels (Readiness Pro). [Work Orders](web-app/work-orders)
- **Inventory** — bulk and serialized stock, lots and expiry, issuance, kits, counts, alerts, purchasing and controlled-substance witnessing. [Inventory](web-app/inventory)
- **Resource orders and department links** — mutual aid between departments. [Resource Orders](web-app/resource-orders) · [Department Links](web-app/department-links)

### Automation, security and integration

- **Workflows** — event-driven automation with email, SMS, chat, webhook, API and file actions. [Workflows](web-app/workflows)
- **Notifications** — readiness alerts on availability, status and inventory. [Notifications](web-app/notifications)
- **Security** — granular permissions, audit log, 2FA, security policy, SSO/SCIM, and Advanced Data Protection with department-owned encryption keys. [Security & Permissions](web-app/security-permissions) · [Advanced Data Protection](web-app/data-protection) · [Enterprise SSO](enterprise/sso-overview)
- **API and apps** — a documented REST API and the Responder, Unit, Dispatch, Incident Command, Big Board and Relay apps. [API](api/authentication) · [Apps](apps/responder)

## Who uses it

Fire departments (volunteer, combination, career), EMS agencies, search and rescue teams, emergency management agencies and EOCs, incident management teams, CERT and community response programs, private security and campus security, industrial fire brigades and plant ERTs, delivery, transit and field-service operators, and the dispatch centres that serve several of them. Each has a [setup guide](setup-guides/overview).

## Contributing to the documentation

This documentation is open source at [github.com/Resgrid/docs](https://github.com/Resgrid/docs). If something is missing or wrong, open an issue or a pull request.
65 changes: 65 additions & 0 deletions docs/reference/feature-flags.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
sidebar_position: 8
title: Feature Flags & Module Gates
---

# 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)

```bash
# 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

| Key | Gates | Depends on | Seeded |
|---|---|---|---|
| `Chat.System` | Realtime chat, incident channels, Assistant conversation, moderation (web + apps). Free for all plans. | — | M0108 |
| `Chatbot.TwilioTextIntegration` | Routes inbound SMS through the Assistant pipeline instead of the legacy text commands. | — | — |
| `Dispatch.RunCards` | Run cards, station-based / closest-unit selection, move-ups, alarm levels. | — | M0116 |
| `Checklists.System` | Checklists module (free). | — | M0189 (off) |
| `Maintenance.WorkOrders` | Work orders and preventive maintenance. Also needs the Readiness Pro add-on and the Maintenance module switch. | — | M0189 (off) |
| `Records.System` | The Records module; replaces Logs in the sidebar. A department must also **activate** Records. | — | M0152 (off) |
| `Records.Field.Responder` / `.Unit` / `.IncidentCommand` / `.Dispatch` | Field Records surfaces in each app. | `Records.System` | M0152 |
| `Records.Prevention.Occupancy` | Occupancies and the pre-plan crosswalk. | `Records.System` | M0186 |
| `Records.Prevention.Inspections` | Inspection programs, code sets, inspections, violations. | `Records.Prevention.Occupancy` | M0186 |
| `Records.Prevention.Hydrants` | Hydrants and water sources. | `Records.System` | M0186 |
| `Records.Prevention.Permits` | Permits and plan review. | `Records.Prevention.Occupancy` | M0186 |
| `Records.Prevention.Crr` | Community risk reduction activities. | `Records.System` | M0186 |
| `Records.Investigations` | Investigation cases. | `Records.System` | M0186 |
| `Records.QualityReview` | Quality review rubrics and sampling. | `Records.System` | M0186 |
| `Records.Analytics` | Records analytics dashboards. | `Records.System` | M0187 |
| `Security.DepartmentProtectedDataEnrollment` | Platform-wide admission gate for **new** Advanced Data Protection enrollments (operator-managed; never affects departments already enrolled). | — | M0126 |

## Other gates

Besides flags, a page can be hidden by:

| Gate | Where |
|---|---|
| **Module switches** (Messaging, Mapping, Shifts, Logs/Records, Reports, Documents, Calendar, Notes, Training, Inventory, Checklists, Maintenance) | Department Settings → Module Settings (`DepartmentModuleSettings`) |
| **Plan and add-ons** (PTT, ADP, Readiness Pro, Enterprise SSO) | Subscription & Billing; entitlement checked against the billing API (`SubscriptionsService`, `ReadinessAccessService`) |
| **Permissions** | Security & Permissions |
| **Records activation** | Records → Activate (`RmsDepartmentCutover`) |
| **Installation config** | e.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.
Loading
Loading