# Getting data into a Storage Pool

## Managing Data

### Member backups

From any enrolled server’s member tabs:

<table id="bkmrk-source-typical-path-"><colgroup><col></col><col></col></colgroup><tbody><tr><th colspan="1" rowspan="1">Source

</th><th colspan="1" rowspan="1">Typical path

</th></tr><tr><td colspan="1" rowspan="1">**OpenLiteSpeed → Backups**

</td><td colspan="1" rowspan="1">Full / site / web backup jobs

</td></tr><tr><td colspan="1" rowspan="1">**MariaDB → Backup**

</td><td colspan="1" rowspan="1">Database dump

</td></tr><tr><td colspan="1" rowspan="1">**cPanel → account backup**

</td><td colspan="1" rowspan="1">WHM `pkgacct` style packages

</td></tr><tr><td colspan="1" rowspan="1">**Backups tab**

</td><td colspan="1" rowspan="1">Snapshot backups

</td></tr></tbody></table>

When the job supports it, you **choose the destination Storage Pool** before the job runs. Progress appears under **Activity** (incoming lane).

Agent backups flow: **check quota → collect → dump/package → upload → confirm stored**. Install a current agent (v204+ recommended) for step-by-step byte progress.

### WHM / cPanel S3 destination

1. Open **Storage Pools → {pool} → Credentials**.
2. Copy **S3 endpoint**, **bucket** (your pool slug), **access key**, and **secret**.
3. In WHM: **Backup → Additional Destinations → S3 Compatible**.
4. Set endpoint to your pool hostname, bucket to slug, path as documented on the Credentials page.
5. Run WHM backups — they land as objects in that pool.

Quota is enforced on the vault; over-quota uploads receive **507 Insufficient Storage**.

### Browser upload (Pro)

1. Open pool **Objects**.
2. Click **Upload**.
3. Select file(s) — large files upload in **16 MiB chunks** (max **5 GiB per file**).
4. After upload, **publish**: attach as a new version of an existing object, keep as a separate object, or cancel.

### Configuration Discovery (Pro)

Baseline server configs without running a full backup:

1. On **Objects**, click **Run Discovery**.
2. Pick **one member** to scan (account-wide member list).
3. Choose categories (HAProxy, nginx, OpenLiteSpeed, PHP, SSL, MariaDB, cPanel, cron, firewall, apps, and more) or select all.
4. Options: include SSL private keys (off by default), include system package units under `/lib/systemd/system` (off by default), **force fresh baseline** (ignore agent cache).
5. Confirm — a read-only scan runs on that member only. Discovered text files become objects; **unchanged files do not create new versions**.

Live progress shows on the Objects page until complete. Requires agent **v208+** for discovery (older agents may still be selectable; the job reports the real result).

**Privacy:** application configs (WordPress, Laravel, Docker Compose, and similar) store **redacted** copies — passwords and secrets are stripped. Redacted objects show **Secrets redacted** and cannot be deployed back to production.

### Track Changes (daily discovery)

On a **member folder** row menu → **Track Changes**:

- Enables a **daily** scheduled discovery for that member and pool.
- Folder shows **Tracked daily.**
- Only **changed** files create new versions (agent v219+ cache).

### Agent CLI upload (large files)

On the server (agent **v195+**):

```bash
sudo /usr/local/bin/balctl_heartbeat.py --send-to-storage /path/to/file-or-folder
```

The agent packages the path, checks quota, uploads as an **Agent upload** object. Useful when browser limits are awkward.

### Protection replication

**Protection** jobs (cPanel / OpenLiteSpeed standby) can replicate into vault storage tied to your account quota. If space is insufficient, the replication wizard prompts for **Cloud Backup Storage** add-ons.