You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Renamed the outbound User-Agent product token from backblaze-b2-mcp to b2-mcp (b2-mcp/<version> on a published release, b2-mcp/dev otherwise)
across every SDK that talks to the B2 API. Operators must sequence this
with the analytics side: expand any Backblaze-side dashboards, alerts, and
token-keyed rate-limiting to accept BOTH backblaze-b2-mcp and b2-mcp
before rolling the fleet, then retire the old token only after every pod has
cycled onto b2-mcp. During a rolling deploy both tokens are emitted
simultaneously, so a dashboard keyed solely on the old token would otherwise
decay toward zero and page as a false partial outage. (#236)
Fixed
s3_put_bucket_lifecycle now clears the bucket's S3 lifecycle configuration
when passed an empty rules array, routing the clear through the destructive
gate and AWS DeleteBucketLifecycle. (#214)
Scope b2_list_buckets to authorized bucket IDs for bucket-scoped keys when
no bucketId/bucketName filter is supplied, and reject out-of-scope explicit
bucket filters before calling B2 (fixes #211).
Resolve b2_largest_files and b2_unfinished_uploads through the authorized
bucket scope instead of an unfiltered listBuckets(), so bucket-scoped keys
no longer receive HTTP 401; out-of-scope input is reported clearly without
enumerating the key's bucket namespace. (#212)
Return a stable 400 bad_request instead of HTTP 500 when s3_get_presigned_url
PutObject (or inline s3_put_object) is called without a valid signed contentType. (#213)
Validate and document the reserved bucketInfo key and corsRuleName naming
constraints so invalid inputs are rejected with a clear message. (#215)
Align the server-issued skills instructions with the shipped skills pack so
clients are pointed at the tools that are actually available. (#205)
Classify destructive confirmation/policy refusals as stable non-500 tool
outcomes: destructive_confirmation_required and destructive_confirmation_refused as HTTP 409, and destructive_policy_blocked as HTTP 403, with tool.call audit logs
recording those codes/statuses instead of internal_error/500.
S3-compatible and report tools now derive their endpoint/signing region from
the authorized b2_authorize_accounts3ApiUrl; B2_REGION is only a
fallback/default for pre-authorization paths or temporary authorize failures.
Aligned the package engines.node range with the supported Node.js 22.3+,
24, and 26 lines so it matches the runtime policy and opossum 10 support,
with drift guards for workflow and deployment documentation claims.
Publish npm releases from a staged package directory so registry metadata does
not retain the release runner's local tarball path, with a bounded
post-publish verification retry and legacy rerun allowance for immutable 0.1.0 and 0.1.1 metadata.