# Read-Only Mode
URL: https://pro.rv-grid.com/guides/gantt/features/read-only-mode/
Source: src/content/docs/guides/gantt/features/read-only-mode.mdx
Description: Use Gantt read-only mode to block packaged task, dependency, and assignment mutations while keeping the schedule inspectable.
Read-only mode turns the packaged Gantt editing surface into an inspection surface. Users can still view the task table and timeline, navigate, search, filter, sort, zoom, and use non-mutating UI, but packaged project mutations are rejected.

Enable it on the Gantt config:

```ts
grid.gantt = {
  id: 'project-1',
  name: 'Project Roadmap',
  version: '1',
  currency: 'USD',
  timeZone: 'UTC',
  primaryCalendarId: 'standard',
  updatedAt: new Date().toISOString(),
  readOnly: true,
};
```

## What It Blocks

`readOnly: true` blocks mutations routed through the packaged Gantt services:

- Task changes: move, resize, split, progress edits, inline task-field edits, task creation, indent, outdent, and delete.
- Dependency changes: create, update, delete, and predecessor/successor field replacement.
- Assignment changes: assignee/resource field updates and assignment replacement.

Blocked mutations return a failure result instead of updating the stores. Task changes return `readonly-task`; dependency and assignment changes return `readonly-project`.

## What Still Works

Read-only mode does not turn the grid into a static screenshot. Non-mutating workflows remain available:

- Timeline rendering, task bars, dependencies, baselines, critical-path visuals, and diagnostics.
- Tree expand/collapse, search, filtering, sorting, scrolling, and zoom.
- External application-controlled state replacement, such as loading a different project snapshot or changing the Gantt config.

The built-in Gantt context menu also hides mutating row actions when the project is read-only.

## Difference From Grid Readonly

`gantt.readOnly` is a Gantt project mutation guard. It protects the packaged task, dependency, and assignment mutation paths.

The RevoGrid `readonly` property is a grid-level editing setting. Use it when you also want to prevent generic cell editing behavior outside Gantt's mutation services.

```ts
grid.readonly = true;
grid.gantt = {
  ...projectConfig,
  readOnly: true,
};
```
