Azure Blob Datastore Bootstrap
One-shot bootstrap for @webframp/azure-blob-datastore. Creates an Azure Storage account with a blob container, then switches the current swamp repository to use Azure Blob Storage as the datastore backend.
Prerequisites
- Azure CLI (
az) authenticated (az login) - An Azure subscription
- Permissions to create resource groups, storage accounts, and containers
What it does
provisioncreates a resource group (if needed), a storage account (StorageV2, LRS, blob-only public access disabled), and a blob container, then retrieves the connection string.- A final
command/shellstep runsswamp datastore setup extension @webframp/azure-blob-datastore --config ...to flip the repo's datastore to Azure Blob.
Running
swamp extension pull @webframp/azure-blob-datastore-bootstrap
swamp model create @webframp/azure-blob-datastore-bootstrap/provisioner \
swamp-azure-blob-provisioner
swamp model create command/shell swamp-azure-blob-setup
swamp workflow run @webframp/bootstrap-azure-blob-datastore \
--input location=eastus
swamp datastore statusSee the bundled README for optional inputs and idempotency notes.
2026.08.28.1
Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.
Upgrade note: License text only. No API, schema, or runtime behavior changed.
2026.08.27.1
Changed: Test suite now builds its method context from the shared
createModelTestContext factory in @systeminit/swamp-testing instead of a
hand-rolled context, wrapping writeResource to preserve the existing assertion
API. No behavioral, schema, or method changes — the published provisioner is
unchanged. The deno.json gains a dev-only @systeminit/swamp-testing
import-map entry and its check task now type-checks the test file.
2026.08.26.3
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
Resources
Provision an Azure Storage account with a blob container for @webframp/azure-blob-datastore, then switch the current repo to use Azure Blob Storage.
2026.08.27.1
Changed: Test suite now builds its method context from the shared
createModelTestContext factory in @systeminit/swamp-testing instead of a
hand-rolled context, wrapping writeResource to preserve the existing assertion
API. No behavioral, schema, or method changes — the published provisioner is
unchanged. The deno.json gains a dev-only @systeminit/swamp-testing
import-map entry and its check task now type-checks the test file.
2026.08.26.3
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.26.3
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.26.1
Changed: Normalized deno.json configuration for repo-wide consistency:
added explicit compilerOptions.strict and migrated zod dependency to the
import map (bare "zod" specifier instead of inline npm:zod@4.4.3). No
behavioral changes — runtime resolution is identical.
2026.08.25.1
Changed: Updated labels for improved extension discoverability. Added cross-cutting category labels (security, observability, finops, infrastructure, networking, compliance, devops, ai, incident-response) where applicable.
updated labels
2026.08.24.1
Added: Output metadata attributes for observability.
durationMs: Method execution duration in milliseconds.collectedBy: Extension name that produced the data.fetchedAt: ISO 8601 timestamp when data was fetched (added to resources that previously lacked it).
2026.08.23.1
Changed: Documentation only — no code changes. Added a ## Troubleshooting
section covering storage-account name collisions (global uniqueness isn't
checked against other tenants), AuthorizationPermissionMismatch errors from
mixing --auth-mode login (Azure AD RBAC, used only by container operations)
with ARM permissions used elsewhere, stale/expired az login sessions
masquerading as "not found" because exists-checks match error substrings, and
the explicit getConnectionString failure mode.
2026.08.02.1
Fixed: The configure job in @webframp/bootstrap-azure-blob-datastore
failed with Invalid expression: No such key: attributes. The workflow queried
data.latest("swamp-azure-blob-provisioner", "state"), but the provisioner
writes its resource under the instance name "main" (via
writeResource("state", "main", ...)) — data.latest()'s second argument
matches the resource's instance name, not its spec name. The configure job now
queries data.latest("swamp-azure-blob-provisioner", "main"), which resolves
correctly.
Changed: The run-setup step now passes the provisioner's datastoreConfig
through a DATASTORE_CONFIG environment variable instead of interpolating it
directly into a single-quoted shell string. The prior pattern could allow a
config value containing a single quote to break out of shell quoting.
Upgrade note: No action needed beyond swamp extension pull — the workflow
file is re-pulled with the extension.
2026.07.27.1
Fixed: The fmt task ran deno fmt --check, so deno task fmt verified
formatting instead of applying it and there was no way to format the extension
through its own task. fmt now formats and a new fmt:check verifies, matching
every other extension in the repository.
Changed: Reformatted files that had drifted from deno fmt. No code
behavior changes.
Fixed: deno fmt no longer inspects CLAUDE.md / AGENTS.md. Those files
are gitignored and never present in CI, but deno fmt does not read .gitignore,
so deno task fmt:check could fail locally on a file CI does not have.
Upgrade note: Tooling and formatting only. No model, method, schema, or behavior change — nothing to do on upgrade.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned