Scott Holdings LLC
Design preview
GS
SaaS products Ledgerly Storage

Resources & storage · Ledgerly

Allocate this app's slice of your pooled database and container storage.

Allocations

Cannot be set below current usage.

Primary DB40 GB / 80 GB
Log DB12 GB / 30 GB
AI / vector DB18 GB / 40 GB
Container storage30 GB / 40 GB

Pool headroom

Primary pool
310 / 500 GB allocated
Log pool
70 / 150 GB
AI pool
88 / 200 GB
Container pool
120 / 160 GB
About this page

Shows allocations and latest precise usage gauges for the core, logging, AI and optional container dimensions. The CLI should preserve canonical meter keys and units so the UI never mixes decimal GB, GiB, request counters, or legacy quota columns.

Behind this page/apps/:saasAppId/storage · CanManageStorage

Retrieve

Effective allocation comes from vw_SaaSAppEffectiveQuota; pool headroom from vw_CustomerStoragePool. Current gauges use canonical meters: db.primary.gb, db.log.gb, db.ai.gb with unit GiB and decimal precision 9. api.requests is a request counter with precision 0.

Save

UpsertStorageAllocation writes per-app allocations only after ownership and pool validation. Shrinks below the latest canonical gauge are rejected per dimension. Legacy quota columns remain zero and must not be revived in the UI.

Success

  • Allocations stay within pool capacity.
  • Decreases below used size are rejected with a distinct error.
  • Freed headroom returns to the pool on deprovision.

CLI handoff

Implement this scaffold from the structured contract, then remove hard-coded preview rows. The source of truth is CLI Handoff and admin-cli-manifest.json.

Page IDapp-resources
Route/apps/:saasAppId/storage
AccessCanManageStorage
Statusjourney-aligned-scaffold

Server-inject identity and scope values; never trust browser-supplied account, app, tenant, user, entitlement, price, or permission identifiers. Preserve the loading, empty, forbidden, failed, retrying, and completed states shown by the preview.