Storage-activity ("insights") tools — read-only usage questions answered from
data B2 already provides. No new backend.
Phase 1 (b2_usage_growth, b2_egress_leaders) — read the caller's daily Usage
Report CSVs from the reserved b2-reports-<accountId> bucket. These reports
are NOT universal: they must be enabled by Backblaze (Partner/Enterprise/
Groups) — so the tools feature-detect the bucket and return a clean
"not enabled" message when it is absent. Reports are region-scoped (only
Group members in the same data region as the Group account).
Phase 2 (b2_largest_files, b2_unfinished_uploads) — live, per-bucket native
listing. Works on any account; no index required.
Everything is read-only and scoped by the caller's credential: HTTP builds a
fresh B2Client after per-request credential resolution, so a partner
key sees its sub-accounts (one report row each) and a customer key sees only
itself — scope is automatic and fail-closed.
Storage-activity ("insights") tools — read-only usage questions answered from data B2 already provides. No new backend.
Phase 1 (b2_usage_growth, b2_egress_leaders) — read the caller's daily Usage Report CSVs from the reserved
b2-reports-<accountId>bucket. These reports are NOT universal: they must be enabled by Backblaze (Partner/Enterprise/ Groups) — so the tools feature-detect the bucket and return a clean "not enabled" message when it is absent. Reports are region-scoped (only Group members in the same data region as the Group account). Phase 2 (b2_largest_files, b2_unfinished_uploads) — live, per-bucket native listing. Works on any account; no index required.Everything is read-only and scoped by the caller's credential: HTTP builds a fresh B2Client after per-request credential resolution, so a partner key sees its sub-accounts (one report row each) and a customer key sees only itself — scope is automatic and fail-closed.