Vaulthalla Logo

Cost Control

Vaulthalla has two complementary cost-control systems for S3-compatible vaults:

  1. Request budgets on vault sync policies.
  2. Price budgets using provider pricing estimates and policy enforcement.

Use both for important S3/R2 vaults. Request budgets bound the shape of a sync run, while price budgets bound estimated currency exposure.

Which Control Should I Use?

GoalUse
Prevent an accidental bucket-wide LIST scanRequest budgets
Cap GET, PUT, DELETE, COPY, HEAD, or download-byte pressureRequest budgets
Enforce a max estimated cost per run, day, or monthPrice budgets
Warn before S3/R2 work becomes expensivePrice budgets
Run large planned maintenance with explicit limitsBoth
Keep a large bucket indexed without repeated scansRequest budgets plus inventory/events

Request Budgets

Request budgets live on an S3/R2 vault sync policy. They cap planned and observed S3 operations such as LIST, HEAD, GET, PUT, COPY, DELETE, and downloaded bytes.

Configure them with:

1vh vault sync set <vault> --s3-budget-preset balanced2vh vault sync set <vault> --s3-budget-get 1000 --s3-budget-list 100

See Request Budgets and the detailed S3 Cost Guardrails Runbook.

Price Budgets

Price budgets estimate provider costs and apply policies at global, provider, or vault level.

Configure them with:

1vh pricing budget set-global --mode warn --max-daily 5 --currency USD2vh pricing budget set-provider cloudflare-r2 --mode enforce --max-run 13vh pricing budget set-vault <vault> --mode report --max-run 0.25

See Price Budgets.

Web Console

The web console exposes both cost-control concepts in different places:

  • Vault form and sync policy controls: request-budget preset, custom request limits, sync interval, max remote-index age, strategy, and conflict policy.
  • Cost Control page: price-budget policies, status, ledger, notifications, and overrides.

For a new S3/R2 vault:

  1. Start with upstream encryption enabled.
  2. Use cache strategy unless you know you need full two-way sync.
  3. Keep the default balanced request budget or choose conservative for unknown buckets.
  4. Set a vault-level price budget in report or warn mode.
  5. Run vh vault sync dry-run <vault> before the first real sync.
  6. Import S3 Inventory before scanning a large existing bucket.
  7. Move price policy to enforce only after the estimates match your provider billing model.

What A Stall Means

When a cost control blocks work, Vaulthalla usually records the sync event as stalled with a reason. A stall is a safety stop. Inspect the reason, dry-run the next plan, and raise only the limit that matches the intended operation.