Skip to content

Azure Blob Storage

Open a namespace

import os
os.environ["AZURE_STORAGE_ACCOUNT_NAME"] = "myacct"
os.environ["AZURE_STORAGE_ACCESS_KEY"] = "..."
import namidb as tg
client = tg.Client("az://myacct/mycontainer?ns=prod")

URI form: az://<storage-account>/<container>[/<prefix>]?ns=<namespace>.

Managed Identity (AKS / VMSS / App Service)

When NamiDB runs inside Azure, prefer Managed Identity over a long-lived access key. The Rust object_store crate picks up the managed identity through the standard credential chain — no NamiDB-specific config needed.

Azurite (local emulator)

For development and CI:

Terminal window
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite
client = tg.Client(
"az://devstoreaccount1/mycontainer?ns=test&use_emulator=true"
)

The use_emulator=true flag rewrites the endpoint to http://127.0.0.1:10000/devstoreaccount1.

Conditional writes

Azure Blob supports If-Match on PutBlob, which object_store maps to NamiDB’s CAS protocol. Single-writer-per-namespace + epoch-CAS invariants apply identically.

See also