Skip to main content
Version: v1.6 (stable)

Supported services

Depending on the version of Topaz a different set of Azure services is supported for emulation. The table below presents the current state of emulation and maturity of certain features.

Best practice

Make sure you're using the most recent version of Topaz to benefit from the bugfixes and newest features.

Service NameControl PlaneData Plane
SubscriptionsN/A
Resource GroupsN/A
Azure Storage🚧
Table Storage
Blob Storage🚧
Queue Storage
Key Vault🚧
Event Hub🚧🚧
Service Bus🚧🚧
Virtual Network🚧N/A
Network InterfaceN/A
Azure Resource Manager🚧N/A
Managed IdentityN/A
Container Registry🚧
Azure SQL
Azure App Service🚧N/A
Azure Virtual Machines🚧N/A
Entra IDN/A🚧
RBAC🚧N/A
Monitor🚧
Cosmos DB🚧🔜
Azure Disk🚧🚧

✅ - fully supported (stable)

🚧 - partially supported (unstable)

🔜 - coming soon

- not supported

N/A - not provided by Azure

Looking for a detailed breakdown?

The API Coverage section lists every REST operation for each service and shows exactly which ones are implemented in Topaz. Coverage for Subscriptions and Resource Groups is tracked under the Azure Resource Manager page.

Used ports

The ports used by Topaz can be divided into two groups:

  • common port for Azure Resource Manager operations
  • service-specific port for data plane

You can find which service uses which port below:

Service NamePortProtocol
Resource Manager8899, 443HTTPS
Blob Storage8891HTTPS
Table Storage8891HTTPS
Queue Storage8891HTTPS
Azure Key Vault8898, 443HTTPS
Azure Event Hub8897HTTPS
Azure Event Hub (AMQP)8888AMQP
Azure Service Bus8887, 8899HTTPS
Azure Service Bus (AMQP)8889, 5671AMQP, AMQP/TLS
Container Registry (control plane)8899HTTPS
Container Registry (data plane)8892HTTPS
Unified storage port

All Azure Storage sub-services (Blob, Table, Queue, File) share a single port (8891). Requests are routed to the correct sub-service by the second DNS label in the Host header (e.g. {account}.**blob**.storage.topaz.local.dev, {account}.**table**.storage.topaz.local.dev).

For HTTPS endpoints, if you're running Topaz as a standalone application, you need to install and trust the certificates provided along with the main package.

No sudo required — HTTP CONNECT proxy handles port 443

When running Topaz as a standalone executable on Linux and macOS, you don't need sudo to start the host. Topaz launches a built-in HTTP CONNECT proxy on port 44380 that intercepts Azure CLI requests bound for port 443 and routes them through the emulator.

This is automatic — just set the HTTPS_PROXY environment variable before running Azure CLI commands:

export HTTPS_PROXY=http://127.0.0.1:44380
az login --username alice@mytenant.onmicrosoft.com --password P@ssw0rd!

The proxy passes through all non-Topaz requests to the internet unchanged. If you are only using the Azure SDK (not the Azure CLI), you can point your SDK client directly at port 8898 and skip port 443 entirely.

Ready to try it?

Get Topaz running in minutes — no account or registration needed.

brew install topaz

Or pull the Docker image:

docker pull thecloudtheory/topaz-host:latest

See the Getting Started guide for full setup instructions, including certificate installation and Azure CLI integration.

Missing a service?

If a service you need isn't listed above or the coverage isn't deep enough for your use case, open a GitHub Discussion — your workflow will directly influence what gets built next.

Star on GitHub