---
title: "Data dictionary"
description: "Define the data your requirements capture, show and change, with the rules every value must follow."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.heizen.work/llms.txt
> Use this file to discover all available pages before exploring further.

# Data dictionary

The data dictionary lists every piece of data the product works with, such as
an email address, a password, or how long a reset link stays valid. Each field
is defined once for the project and reused by every requirement that needs it.

Open it from **Data dictionary** in the project sidebar, under Product.

## A field

| Part            | Meaning                                                                  |
| --------------- | ------------------------------------------------------------------------ |
| **Name**        | Unique in the project, such as Email.                                    |
| **Entity**      | What it belongs to, such as User or Invoice. Fields are grouped by it.   |
| **Type**        | Text, Number, Email, Password, Date, Choice and so on.                   |
| **Comes from**  | Entered by the user, Derived, Generated by the system, From another system, or a Configured setting. |
| **How it is worked out** | For a derived field, for example "Sent time + 1 hour".          |
| **Sensitivity** | Not sensitive, **Personal** data, or **Secret** (passwords, tokens).     |
| **Choices**     | For a Choice field, one value per line.                                  |
| Example, Default, Unit, Format | Optional details, such as `DD/MM/YYYY`.                   |

## Rules

A rule says what a value must be, in plain words, such as "At least 8
characters". Choose **Add rule** and pick a kind: Required, Format, Length,
Range, Pattern, Unique, Allowed values, Matches field, or **Write a rule** for
anything else.

- Kinds with limits, such as Length or Range, show **Min** and **Max**. The
  description updates as you change them, until you write your own.
- Select the message icon on a rule to add the message users see when it fails.

A rule is either:

- **Shared**: it applies everywhere the field is used. Add these on the
  dictionary page, or under **Rules everywhere … is used** on a requirement.
- **For one requirement**: it applies only there, such as "Must belong to an
  existing account" on Reset password. These are marked **here only**.

## Data fields on a requirement

Every requirement has a **Data fields** tab, next to **Details** in its side
panel and on its full page. The tab shows how many fields it lists.

1. Choose **Add data field**, then pick a field or type a new name and choose
   **Create**.
2. Set how the requirement uses it: **Entered**, **Shown**, **Used** or
   **Updated**, and select **Required** if it must be filled in here.
3. Select the field to open it. Add rules for this requirement, edit the
   shared rules and definition, or add notes.

Changing a shared rule or the definition changes it for every requirement that
uses the field; the section says how many share it. **Remove from requirement**
removes the field and its rules for this requirement only.

## The dictionary page

Fields are grouped by entity, with their type, where they come from, their
first rule, and the requirements that use them. Search by name, entity,
description or rule. Select a field to edit it beside the list, or a
requirement ID to open that requirement. **New field** adds a field directly.

Deleting a field removes it, and its rules, from every requirement that uses it.

Changes to fields and rules are recorded in the audit log. They do not create a
new requirement version or reset approval.

Source: https://docs.heizen.work/studio/product/data-dictionary/index.mdx
