Storage
Vercel Blob Storage
Alpha
DSAR is currently in alpha. APIs, package surfaces, configuration, and documentation may change as the project evolves.
@dsar/storage-vercel-blob stores DSAR fulfilment artifacts in Vercel's managed blob storage service. Zero infrastructure setup when deploying on Vercel.
Installation
| Package manager | Command |
|---|---|
| npm | npm install @dsar/storage-vercel-blob |
| pnpm | pnpm add @dsar/storage-vercel-blob |
| yarn | yarn add @dsar/storage-vercel-blob |
| bun | bun add @dsar/storage-vercel-blob |
Setup
Configuration
| Option | Default | Description |
|---|---|---|
readWriteToken | process.env.BLOB_READ_WRITE_TOKEN | Vercel Blob read-write token |
prefix | artifacts | Key prefix for all stored objects |
addRandomSuffix | false | Append random suffix to keys |
allowOverwrite | false | Allow overwriting existing objects |
cacheControlMaxAge | — | CDN cache-control max age |
timeoutMs | 10000 | Request timeout in milliseconds |
retryMaxAttempts | 3 | Retry count for retriable failures |
Key Layout
Default deterministic key format:
Fallback values:
- missing
requestId→request-unknown - missing
manifestId→manifest-unknown - missing
category→uncategorized - missing name/id →
artifact.bin
Error and Retry Behaviour
| Category | Retriable | Examples |
|---|---|---|
timeout | yes | request abort, blob service unavailable |
rate_limit | yes | blob rate limiting / throttling |
network | yes | fetch/socket connectivity failures |
auth | no | invalid token, store suspended/not found |
validation | no | malformed input/config |
config | no | adapter setup invalid |
unknown | no | unmatched provider errors |
Caching and Overwrite Notes
- Vercel Blob
put(...)requiresaccess: "public"and serves content through CDN cache. - Prefer immutable pathnames and keep
allowOverwritedisabled unless you explicitly need mutation. - If overwrite is enabled, cached clients may still observe stale content until cache expiry (
cacheControlMaxAge).