# Data editor

URL: /code/systems/data-editor · Id: `system:data-editor`

> Data editor edits a Startup’s own Nouns directly: tables, saved views, imports, exports and bulk Changes.

Data editor edits a [Startup](/business/nouns/startup)’s own records directly, in tables and saved views over every [Noun](/business/nouns/noun) it defines. Imports, exports and bulk edits land as one [Change](/business/nouns/change), so every edit is reviewed and reversible.

## Summary
| Part | This System |
| --- | --- |
| Group | Moves to Code |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Front: offered from a Startup’s first days |

You can ask:

- “Show me every customer in a table”
- “Import these contacts from a spreadsheet”
- “Export all orders to CSV”

## What you get
| Part | This System |
| --- | --- |
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | [Database](/code/platform/capabilities/database), [Search](/code/platform/search), [Event streams](/code/platform/event-streams) |

## Nouns it owns
| Noun | Definition |
| --- | --- |
| [Collection](/business/nouns/collection) | A Collection is a Thing with members, either listed one by one or defined by a saved query. |

## Verbs
| Verb | Object | Approval | Event |
| --- | --- | --- | --- |
| [Collection.create](/business/nouns/collection/create) | [Collection](/business/nouns/collection) | None | `Collection.created` |
| [Collection.update](/business/nouns/collection/update) | [Collection](/business/nouns/collection) | None | `Collection.updated` |
| [Collection.list](/business/nouns/collection/list) | [Collection](/business/nouns/collection) | None | None. |

## Events
| Direction | Event | How |
| --- | --- | --- |
| Emits | `Collection.created` | By [Collection.create](/business/nouns/collection/create) |
| Emits | `Collection.updated` | By [Collection.update](/business/nouns/collection/update) |

## States
None.

## Who operates it
| Part | This System |
| --- | --- |
| Accountable | [Engineering Lead](/agents/engineering/engineering-lead) |
| Team | [Engineering Team](/agents/engineering) |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | `supervised` |

## Approvals and limits
None.

## Processes that use it
None.

## Rail underneath
None.

## Views and dashboards
| View | Shows | Metrics |
| --- | --- | --- |
| The [Engineering Lead](/agents/engineering/engineering-lead)’s view | The Metrics its accountable Role answers for. | [Change lead time](/agents/engineering#change-lead-time) |

## Access
What each Access level may call here.

| Access level | May call |
| --- | --- |
| `owner` | Every Verb (5) |
| `admin` | Every Verb (5) |
| `member` | Every Verb (5) |
| `viewer` | Read only (2 of 5) |

## Import and export
None.

## Fees and pricing
None.

## Availability and limits
| Part | This System |
| --- | --- |
| Status | Beta: it works, and its Verbs may still change |

## Compliance notes
Controls it carries:

- [Log completeness](/systems/trust-and-governance/controls/log-completeness)
- [Append-only records](/systems/trust-and-governance/controls/append-only-records)
- [Point-in-time recovery](/systems/trust-and-governance/controls/point-in-time-recovery)
- [Processing definitions](/systems/trust-and-governance/controls/processing-definitions)

## Related Systems
- [Listings](/systems/listings): also holds [Collection](/business/nouns/collection)

## Example
A [Directory](/products/templates/directory) of climate grants imports 2,400 grant rows from a spreadsheet. Data editor stages them as one Change with 31 duplicates marked; the [Operations Lead](/agents/operations/operations-lead) [Agent](/business/nouns/agent) merges the duplicates and applies the rest. A year later, the import still reads back exactly as it arrived.