> For the complete documentation index, see [llms.txt](https://docs.testfirst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.testfirst.com/data-repository/data-repository.md).

# Data Repository

The **Data Repository** is a centralized storage area where you can manage reusable data used in automated test cases.

Instead of hardcoding values inside tests, the Data Repository allows you to store important data elements, such as selectors, variables, and endpoints, and reference them across multiple test cases. This helps keep tests **clean, maintainable, and reusable**.

Data in the repository is organized by **environment**, allowing different values to be used for different testing environments (for example: Development, Staging, or Production).

***

### What Can Be Stored in the Data Repository

The Data Repository supports several types of reusable data.

* Variables
* Selectors
* Endpoints

***

### Environments

Data Repository items can be organized by **environment**.

This allows different data values to be used depending on where the tests run.

Example environments might include:

* Development
* QA
* Staging
* Production

For example:

| Environment | Variable Value |
| ----------- | -------------- |
| Development | dev-user       |
| Staging     | staging-user   |
| Production  | prod-user      |

This ensures tests remain consistent while adapting to different environments.

***

## Permissions

Access to the Data Repository is controlled using a dedicated permission.

Navigate to:

**Administration → Roles and Permissions → Automation → Data Repository**

Permission:

**Modify**

This permission controls whether a user can modify Data Repository items.

***

### Modify Permission Enabled

If the **Modify** permission is enabled, the user can:

* Create new items
* Create folders
* Edit existing items
* Delete items

This provides **full access** to manage the Data Repository.

***

### Modify Permission Disabled

If the **Modify** permission is not enabled, the user has **read-only access**.

Users can:

* View repository items
* Reference stored data in test cases

But they **cannot modify repository data**.

***

## Read-Only User Interface Behaviour

When a user has **read-only access**, the interface automatically hides editing controls.

The following actions are not available:

#### Hidden Action Buttons

* **Create New Item**
* **Create New Folder**

***

### Best Practices

To keep the Data Repository organized and maintainable:

* Use **clear naming conventions** for selectors and variables
* Group related items into **folders**
* Separate environment-specific values properly
* Avoid duplicating selectors across multiple items
* Update selectors in the repository instead of editing test cases

Using a well-structured Data Repository improves **test stability, reuse, and maintainability** across your automation suite.
