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

# Stores

> Create and manage store resources that pipeline Store nodes read from and write to.

Stores are managed key-value resources that pipeline [Store nodes](/nodes/store) use to persist values across runs and pipelines. Each store holds a timestamped series of entries indexed by key, written by pipeline runs and optionally added or edited by hand. Open **Settings** and select **Stores** to manage your stores.

## Creating a store

1. Click **New Store**
2. Enter a **Name** for the store. The name is how pipeline Store nodes identify it in the node editor
3. Optionally enter a **Description** to remind your team what the store is for
4. Set the **Retention** limits that control how much data the store keeps (see below)
5. Click **Save**

Once created, the store appears in the stores list and is available for selection in any pipeline's Store node.

## Retention settings

Every store has retention limits that cap storage automatically. Both values are required when you create or edit a store.

| Setting                 | Description                                                                                                       | Allowed range |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------- |
| **Max entries per key** | When a key exceeds this number of entries, the oldest entries are pruned so the total stays at or below the limit | 1 to 1,000    |
| **Max age (days)**      | Entries older than this many days are removed automatically                                                       | 1 to 365      |

Both limits are enforced independently: an entry is removed when it violates either rule.

<Note>Retention is applied asynchronously. Entries past the limit may remain briefly visible after a write before the cleanup runs.</Note>

## Managing stores

Click a store row to open it and browse its entries in a paginated table (see [Browsing entries](#browsing-entries) below).

From the row actions menu you can:

* **Edit:** update the store's name, description, or retention settings. Changes take effect immediately for new writes; existing entries are not retroactively affected by retention changes until the next cleanup cycle
* **Download Excel:** export every entry in the store to an `.xlsx` file. The workbook has one row per entry with the key, its stored value, and the UTC timestamp it was written
* **Clear:** delete all entries in the store while keeping the store itself. Use this to reset accumulated data without reconfiguring pipelines
* **Delete:** permanently remove the store and all its entries

## Browsing entries

Click a store to open its detail page, which lists the stored entries in a paginated table. Each row shows the **key**, the stored **value**, when it was **stored** (UTC), the **run** that wrote it (linking to that run), and the source **document**. Filter by key to narrow the list, or sort by the stored date. The detail page also has its own **Download Excel** button for the full export.

Entries added by hand have no originating run, so the **run** column shows a **Manual** badge instead of a run link, and they have no source document.

### Managing entries

You can add, edit, and delete individual entries directly from the store detail page.

* **Add an entry:** click **New Value** in the page header (next to **Download Excel**) to open the **New Value** dialog. Enter a **Key** (required, up to 500 characters) that identifies the time series; the key is set only on create and cannot be changed afterward. Enter the **Value (JSON)** in the JSON editor: it must be valid JSON and is stored exactly as entered, with no trimming. Click **Add Value** to save.
* **Edit an entry:** click the **Edit** action on an entry row to open the **Edit Value** dialog. Only the value is editable; the key cannot change. Click **Save Changes** to save.
* **Delete an entry:** click the **Delete** action on an entry row to permanently remove that single entry after confirming in the dialog.

<Note>These actions affect one entry at a time and are distinct from the store-level **Clear** (removes all entries) and **Delete** (removes the whole store).</Note>

<Warning>Deleting a store that is referenced by an active pipeline will cause those Store node steps to fail at runtime. Update or remove the Store nodes in affected pipelines before deleting the store.</Warning>

## Plan limits

The number of stores available depends on your subscription plan. When you reach your plan's store limit, the **New Store** button is disabled. Upgrade your plan or delete unused stores to create more.

See [subscription](/admin/subscription) for plan details.

## Permissions

Managing stores requires the `Account.Store` permission. The per-entry actions are gated by that permission's individual actions: the **New Value** button requires the create action, the **Edit** action requires the update action, and the **Delete** action requires the delete action. Each control only appears when you have the corresponding action. See [roles and permissions](/admin/roles-and-permissions) for details.

## Related

<CardGroup cols={2}>
  <Card title="Store node" icon="database" href="/nodes/store">
    Read from and write to a store inside a pipeline
  </Card>

  <Card title="Connectors" icon="plug" href="/admin/connectors">
    Connect Ingestly to external services via OAuth
  </Card>

  <Card title="Roles and permissions" icon="shield-halved" href="/admin/roles-and-permissions">
    Control who can manage stores in your organization
  </Card>

  <Card title="Subscription" icon="credit-card" href="/admin/subscription">
    View plan limits and upgrade options
  </Card>
</CardGroup>
