feat(storage): Azure Blob Storage provider

↗ view on GitHub · Allen Morgan · 2026-05-08 · c3daf8fa

Adds AzureBlobProvider implementing the StorageProvider interface, with
auth via either AZURE_STORAGE_CONNECTION_STRING (local dev / Azurite)
or AZURE_STORAGE_ACCOUNT_NAME + DefaultAzureCredential (Managed Identity
in Container Apps). Container defaults to "documents".

signedUrl() returns null - Azure deployments use the backend download
proxy at GET /download/:token rather than direct storage URLs. The /url
route already falls back to buildDownloadUrl() when this returns null.

The factory now picks Azure when AZURE_STORAGE_* is set, falling back to
R2 when R2_* is set. With neither, the server still starts and the first
storage operation fails with a clear error.

Adds @azure/storage-blob; @azure/identity is shared with lib/config.ts.
Repository Altien/mikeOssAzure
Author Allen Morgan <amorgan@altien.com>
Authored
Parents 7d5e48d6
Stats 3 files changed , +167 , -1
Part of Storage provider abstraction + Azure Blob

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-c3daf8fa.md from inside the repo you want the change in.

⬇ Download capture-commit-c3daf8fa.md