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
{{ message }}
Repository navigation
Bump @azure/storage-blob from 12.33.0 to 12.34.0 - #2819
Added accessTier, accessTierInferred, accessTierChangedOn, and smartAccessTier to the blob download response.
Added an opt-in Apache Arrow response format for listBlobsFlat and listBlobsByHierarchy (set responseFormat to StorageResponseFormat.Arrow), plus a new endBefore list option. The default remains XML.
Other Changes
For service version 2026-10-06 and later, upload operations now return the service-computed CRC64 checksum (xMsContentCrc64) in addition to contentMD5 when a Content-MD5 is provided. This applies to stageBlock, stageBlockFromURL, uploadPages, uploadPagesFromURL, appendBlock, appendBlockFromURL, upload, and syncUploadFromURL.
Commits
018f2ef [storage] updated the spec commit to point it to a commit that is available o...
0eaf6a1 [storage] updated package versions and changelogs for STG 103/104 GA
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Copilot This PR was opened by Dependabot. Please take it the rest of the way before it's ready for human review:
Impact analysis — review the PR diff/description to identify what changed, including the package name and old → new version, then check where that dependency is actually used in the codebase, or whether it is unused, and summarize the potential impact.
Fix build/conflict issues — run npm ci --legacy-peer-deps, npm run build, and npm run lint; resolve any merge conflicts, build errors, or lint errors that surface.
Tests — add or update tests under tests/** to cover the changed usage, and make sure they meaningfully validate the change (not just re-assert the version bump).
Run the suite — run the relevant npm run test:* script(s) for the affected area (e.g. test:blob, test:queue, test:table) and keep fixing until they pass.
Changelog — Add a changelog entry only for changes that an Azurite user, operator, SDK developer, or extension user could reasonably observe. Exclude internal maintenance, testing, CI/CD, linting, and development dependency updates unless they result in a user-visible behaviour, compatibility, performance, or security improvement.
Comments — review any existing PR comments and review threads, including resolved/hidden ones, and address anything actionable.
Self-rate — rate this work 1-10 against: correctness, test coverage, changelog accuracy, build/lint health, and comment resolution.
Iterate — if it's not a 10, keep improving until it is before finishing.
Summary — your final response must use the following structure exactly (no free-form paragraph summary).
Copilot This PR was opened by Dependabot. Please take it the rest of the way before it's ready for human review:
Impact analysis — review the PR diff/description to identify what changed, i...
Completed in commit 609fc38. @azure/storage-blob 12.34.0 now works with Azurite's supported Blob API versions by accepting 2026-10-06; added regression coverage and a changelog entry. npm ci --legacy-peer-deps, build, lint, npm run test:blob, and npm run test:package-scripts pass. Reviewed all available PR comments and review threads; no other actionable items remain.
Align active API version and response headers with 2026-10-06
src/blob/utils/constants.ts:104
This accepts 2026-10-06, but BLOB_API_VERSION is still 2026-06-06 (constants.ts:5), and the blob handlers use that constant for the response x-ms-version header. A client using the new SDK default will therefore be told that the request was processed as 2026-06-06 despite this PR claiming support for 2026-10-06; update the active API version and its related support metadata/tests, or narrow the changelog claim to request compatibility only.
Preserve blob access tier headers for older API versions
src/blob/handlers/BlobHandler.ts:1133
x-ms-access-tier, x-ms-access-tier-inferred, and x-ms-access-tier-change-time are long-standing Get Blob response headers (they predate 2026-10-06), so this gate suppresses valid tier metadata whenever a client pins an older supported API version. The new SDK release exposes these existing headers; it does not make them latest-version-only. Let the existing blob.properties spread serialize them for all versions and add an older-version regression case.
Test download headers remain absent for older API versions
src/blob/handlers/BlobHandler.ts:1118
The new download-header behavior is explicitly version-gated, but the added test covers only 2026-10-06. Add an older-version download assertion for all three headers so future response-spread or mapper changes cannot leak the new contract to 2026-06-06 clients.
Update stale comment about version-gated CRC64 behavior
src/blob/handlers/BlockBlobHandler.ts:324
The new version gate means CRC64 is not always computed or returned: for an older API request with an expected MD5, includeCRC64 is false. This now contradicts the immediately preceding comment claiming that both checksums are always computed and returned; update it so future changes do not rely on the stale invariant.
Updated the default Blob service API version and fixed various issues related to blob operations.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Suppress access-tier change time for inferred blob tiers
src/blob/handlers/BlobHandler.ts:1137
For blobs created without an explicit tier, BlockBlobHandler stores accessTierInferred: true together with a creation-time accessTierChangeTime. This new download mapping therefore emits x-ms-access-tier-change-time even though the REST contract says that header is returned only when the block blob's tier has been explicitly set. Suppress the change-time header while the tier is inferred, and cover a default-tier upload as well as the explicit-tier case.
SQL conversion drops false accessTierInferred on download
tests/blob/apis/blockblob.test.ts:2107
This SQL-tagged case cannot pass for a tier supplied during upload. BlockBlobHandler.upload sets accessTierInferred to false, but SqlBlobMetadataStore.convertBlobModelToDbModel persists it as blob.properties.accessTierInferred || null (line 3241), and getModelValue converts that null back to undefined. Consequently the SQL download omits this header/property instead of returning false. Preserve boolean false with nullish coalescing in the SQL conversion (and keep this assertion) so the newly exposed download headers work consistently in both stores.
Copilot , could you please check this comment and take necessary action
Needs a closer look
Explicit access tiers lose accessTierInferred: false in the SQL store, breaking the newly tested download response.
0 open findings
1 resolved since last review
Medium severity #2819 (comment)
Previously missed (1)
In code that hasn't changed since last review
Medium severity SQL conversion drops false accessTierInferred on download
tests/blob/apis/blockblob.test.ts:2107
This SQL-tagged case cannot pass for a tier supplied during upload. BlockBlobHandler.upload sets accessTierInferred to false, but SqlBlobMetadataStore.convertBlobModelToDbModel persists it as blob.properties.accessTierInferred || null (line 3241), and getModelValue converts that null back to undefined. Consequently the SQL download omits this header/property instead of returning false. Preserve boolean false with nullish coalescing in the SQL conversion (and keep this assertion) so the newly exposed download headers work consistently in both stores.
Copilot , could you please check this comment and take necessary action
Needs a closer look
Explicit access tiers lose accessTierInferred: false in the SQL store, breaking the newly...
The SQL store now saves accessTierInferred with ?? instead of ||, so an explicit false is kept rather than becoming null. I left the download test's assertion as it was. Commit: 424ad68.
Typecheck and lint pass. I haven't run the @sql test because no MySQL instance was available here.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
It changes Blob protocol behavior across handlers, generated models, and both persistence backends without independently executed validation.
0 open findings
🧠 Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependenciesPull requests that update a dependency filejavascriptPull requests that update javascript code
3 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps @azure/storage-blob from 12.33.0 to 12.34.0.
Changelog
Sourced from @azure/storage-blob's changelog.
Commits
018f2ef[storage] updated the spec commit to point it to a commit that is available o...0eaf6a1[storage] updated package versions and changelogs for STG 103/104 GA8c75658[storage] STG 103/104 (#39451)f7e9279Fix stale and broken //metadata version mappings (#39243)18ae6c7[EngSys] use "workspace:^" version specifier for internal packages (#39200)eb49098[storage-queue] migrate to typespec-based code generation (#38224)1d09a0f[EngSys] upgrade dev dependency prettier to v3.9.1 (#39127)0616d26Re-export RestError and isRestError in non-management packages (#39007)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)