Skip to main content
Version: v1.2 (deprecated)

Roadmap

This page tracks what is planned for upcoming Topaz releases. The roadmap is derived from the BACKLOG.md file in the repository; each item there is automatically converted to a GitHub issue when committed.

info

The roadmap reflects current intentions and may change. Watch the GitHub repository or join Discord to stay up to date.


v1.3-beta

Management Groups — extended operations

FeatureDescription
PreviewGet DescendantsList all child management groups and subscriptions under a group
PreviewManagement Group SubscriptionsAssociate, disassociate, and get subscriptions under a management group
PreviewHierarchy SettingsCreate, update, get, list, and delete tenant-level hierarchy settings
PreviewEntities listGET /providers/Microsoft.Management/getEntities — list all accessible entities

Resource Providers — operations support

FeatureDescription
List, Register, UnregisterFull provider lifecycle alongside the existing get-by-namespace operation. Registration state persisted per subscription and enforced in the router.

Virtual Networks — full control plane

FeatureDescription
StableDelete, List, Update TagsComplete the VNet control plane beyond create and get
StableCheck IP Address AvailabilityValidate whether an IP is available within a VNet's address space
StableSubnets — full CRUDCreate, get, delete, and list subnets within a VNet
PreviewNetwork Security GroupsFull NSG control plane: create, get, delete, list, update tags

Entra ID authentication for Azure Storage

Implemented in v1.3-beta.

FeatureDescription
Entra ID bearer-token auth on Blob, Queue & Table data planeAccept Authorization: Bearer tokens with full RBAC check; returns 401 + WWW-Authenticate challenge when no Authorization header is present
SharedKey HMAC for Blob & Queue (13-field format)Blob and Queue now validate SharedKey signatures using the full 13-field Blob/Queue StringToSign (same algorithm as real Azure Storage)
Consistent Authorize override patternStorage base classes override IEndpointDefinition.Authorize to bypass the Router's ARM RBAC check; per-request auth is handled in IsRequestAuthorized

Azure Virtual Machines — initial control plane

FeatureDescription
StableNew service scaffoldTopaz.Service.VirtualMachine project with models, resource provider, and service registration
PreviewCore control planeCreate/update, get, delete, list VMs — emulated only (no actual boot)

Key Vault — full certificate operations support

FeatureDescription
PreviewCore CRUDCreate, import, get, update, delete certificates; list certificates and versions
PreviewBackup & RestoreExport and restore opaque certificate backup blobs
PreviewCertificate contactsGet, set, and delete the vault-level certificate administrator contacts
PreviewCertificate issuersCreate, get, update, delete, and list certificate issuers
PreviewPending operationsGet, update, and cancel in-flight certificate creation operations
PreviewMerge certificateMerge a certificate from external PKI with a pending Key Vault CSR
PreviewSoft-delete surfaceList, get, recover, and purge deleted certificates

MCP Server — resource provisioning and tooling

FeatureDescription
PreviewResource provisioning toolsCreateResourceGroup, CreateKeyVault, CreateServiceBusNamespace/Queue/Topic, CreateStorageAccount/BlobContainer — thin wrappers over TopazArmClient following the SubscriptionTool.cs pattern
PreviewEvent Hub and Container Registry toolsCreateEventHubNamespace, CreateEventHub, CreateContainerRegistry
PreviewGetConnectionStrings toolReturns ready-to-use connection strings and URIs for all provisioned resources in a subscription — closes the provisioning workflow
PreviewGetTopazStatus diagnostics toolWraps the Topaz health-check endpoint; returns running version, live services, and bound ports
PreviewPre-defined MCP promptsGuided multi-step setup scenarios ("microservice environment", "CI bootstrap") that compose the provisioning tools into a single natural-language command

v1.4-beta

Azure Storage — SAS validation and public access

FeatureDescription
PreviewAccount SAS query-string validationValidate ?sv=…&sig=… Account SAS tokens in Blob, Queue, and Table security providers; checks signature, expiry, service/resource-type/permission letters
PreviewService SAS query-string validationValidate per-service SAS tokens (with per-service StringToSign for Blob, Queue, Table); includes si= stored-policy reference resolution
PreviewStored Access Policy enforcementLook up named <SignedIdentifier> from Container/Queue/Table ACL XML at request time when si= is present; support policy revocation (403 when policy removed)
PreviewAnonymous / public-access Blob readsAllow unauthenticated GET/HEAD requests against containers created with x-ms-blob-public-access: container or blob; return the level in container property responses

Topaz Portal — tag editing

FeatureDescription
PreviewInline tag value editing in portalEdit button per tag row in the Tags panel turns the value cell into an input field; supports all tag-capable resources

Key Vault — AES symmetric key (oct) cryptographic operations

FeatureDescription
PreviewAES encrypt/decrypt/wrap/unwrap for oct keysExtend KeyBundle with the k field for raw key material; implement AES-GCM and AES-CBC(PAD) in the data plane so az keyvault key encrypt/decrypt --algorithm A256GCM (and SDK equivalents) work against symmetric keys

Key Vault — automated soft-delete purging

FeatureDescription
PreviewAuto-purge soft-deleted vaultsBackground scheduler permanently removes soft-deleted vaults once their scheduledPurgeDate has elapsed
PreviewAuto-purge soft-deleted secretsBackground scheduler permanently removes soft-deleted secrets once their scheduledPurgeDate has elapsed

Storage Account — geo-replication semantics

FeatureDescription
PreviewSecondary endpoint DNS & ARM responseRegister {accountName}-secondary.* hostnames and populate secondaryEndpoints in the ARM response for RA-GRS/RA-GZRS accounts
PreviewGetServiceStats on secondary endpointsReturn a realistic GeoReplicationStats payload (status: live, lastSyncTime: now) for Blob, Table, and Queue secondary endpoints
PreviewFeatureNotSupported for non-RA-GRS statsReturn 403 on stats requests for LRS/ZRS accounts across all storage services (Table already done; extend to Blob and Queue)
PreviewRead-only enforcement on secondaryMutating operations (PUT, DELETE, POST) on secondary endpoints return 403 WriteOperationNotSupportedOnSecondary

Virtual Network — subnets and NICs

FeatureDescription
PreviewSubnet CRUDPUT/GET/DELETE/LIST subnets within a VNet (/virtualNetworks/{vnetName}/subnets/{subnetName})
PreviewNetwork Interface (NIC) CRUDPUT/GET/DELETE/LIST network interfaces (/networkInterfaces/{nicName}) so az vm create can be used without manual ARM calls

v1.5-beta

Azure Storage — User Delegation SAS for Blob

FeatureDescription
PreviewgenerateUserDelegationKey ARM endpointPOST .../storageAccounts/{name}/providers/Microsoft.Storage/userDelegationKey — returns a time-bounded user delegation key signed with Topaz's account-key HMAC chain
PreviewUser Delegation SAS validation on BlobValidate skoid/sktid/skt/ske/sks/skv/sig SAS query parameters on Blob endpoints; recompute the delegation key and verify signature, expiry, and scope

ARM Deployments — full tenant-scope surface

FeatureDescription
PreviewCreate Or Update At Tenant ScopePUT /providers/Microsoft.Resources/deployments/{name} — deploy resources at tenant scope
PreviewGet At Tenant ScopeGET /providers/Microsoft.Resources/deployments/{name}
PreviewDelete At Tenant ScopeDELETE /providers/Microsoft.Resources/deployments/{name}
PreviewValidate At Tenant ScopePOST /providers/Microsoft.Resources/deployments/{name}/validate
PreviewCancel At Tenant ScopePOST /providers/Microsoft.Resources/deployments/{name}/cancel
PreviewCheck Existence At Tenant ScopeHEAD /providers/Microsoft.Resources/deployments/{name}
PreviewExport Template At Tenant ScopePOST /providers/Microsoft.Resources/deployments/{name}/exportTemplate
PreviewWhat If At Tenant ScopePOST /providers/Microsoft.Resources/deployments/{name}/whatif

Container Registry — ACR Tasks

FeatureDescription
PreviewTask CRUD control planeCreate, get, update, delete, and list ACR tasks via the ARM surface (Microsoft.ContainerRegistry/registries/tasks)
PreviewTask runs and triggersManually trigger runs, list and get run details, cancel runs, retrieve log URL — runs complete immediately without executing real workloads

Azure SQL — initial control plane

FeatureDescription
StableNew service scaffoldTopaz.Service.Sql project with models, resource provider, control plane, and host registration
PreviewSQL Server control planeCreate, get, update, delete, and list SQL Server resources; emulated server with {name}.database.topaz.local.dev as FQDN
PreviewSQL Database control planeCreate, get, update, delete, and list databases under a server — persisted as child resources on disk

v1.6-beta

Azure Storage — unified data-plane port

FeatureDescription
StableUnified storage portConsolidate blob, table, queue, and file data-plane services onto a single HTTPS port with subdomain-based routing, matching real Azure's port topology and removing per-service port constants

ARM Deployments — mid-flight cancellation

FeatureDescription
PreviewCancel running deploymentsIntroduce cooperative cancellation into the orchestrator so that a cancel request against a Running deployment stops provisioning further resources after the current one completes, matching real Azure mid-flight cancellation semantics

ACE (Azure Cost Estimator) integration

FeatureDescription
PreviewCost estimation backend endpointGET /subscriptions/{sub}/providers/Microsoft.CostManagement/estimatedCosts — uses ACE to return monthly cost estimates for all provisioned resources in a subscription; supports 17 currencies
Previewtopaz estimate CLI commandNew Topaz CLI sub-command that queries the Host's cost estimation endpoint and prints a formatted cost breakdown table; supports --subscription, --currency, and --output (table/json/csv) options
PreviewCost Analysis portal pageDedicated Cost Analysis page in Topaz Portal showing per-resource-type estimated costs for the selected subscription, with currency selector and auto-refresh

Azure Cosmos DB — initial control plane

FeatureDescription
StableNew service scaffoldTopaz.Service.CosmosDb project with models, resource provider, control plane, and host registration
PreviewDatabaseAccount CRUDCreate, get, update, delete, list Microsoft.DocumentDB/databaseAccounts; emitted documentEndpoint follows https://{name}.documents.topaz.local.dev:<port>/
PreviewKeys and connection stringslistKeys, readonlykeys, regenerateKey, and listConnectionStrings ARM actions; keys persisted and regeneratable
PreviewSQL API — Database CRUDCreate, get, delete, list SQL databases and their throughput settings via databaseAccounts/{name}/sqlDatabases
PreviewSQL API — Container CRUDCreate, get, update, delete, list SQL containers (with partitionKey, indexingPolicy, defaultTtl) and throughput settings via sqlDatabases/{db}/containers

v1.7-beta

Azure Cosmos DB — SQL API data plane

FeatureDescription
PreviewData plane scaffold and master-key authDedicated port; HMAC-SHA256 master-key signature validation (verb/resourceType/resourceLink/date StringToSign); 401 on invalid or expired signatures
PreviewDatabase operationsPOST /dbs, GET /dbs/{db}, DELETE /dbs/{db}, GET /dbs — full resource lifecycle with _rid, _self, _etag, _ts and x-ms-request-charge header
PreviewCollection operationsPOST/GET/PUT/DELETE /dbs/{db}/colls/{coll}, GET /dbs/{db}/colls — create, replace, and delete collections including indexingPolicy and partitionKey
PreviewDocument CRUDPOST/GET/PUT/PATCH/DELETE /dbs/{db}/colls/{coll}/docs/{id} — full item lifecycle with partition key enforcement, ETag optimistic concurrency (If-Match / 412), and JSON Patch partial updates
PreviewSQL query executionPOST /dbs/{db}/colls/{coll}/docs with x-ms-documentdb-isquery: true — parameterised SQL subset: SELECT, FROM, WHERE, ORDER BY, OFFSET/LIMIT, aggregates (COUNT, SUM, MIN, MAX, AVG); continuation-token pagination
PreviewMCP Server toolsCreateCosmosDbAccount, CreateCosmosDbDatabase, CreateCosmosDbContainer; GetConnectionStrings extended with Cosmos DB endpoint and key

✅ Completed

v1.2

Queue Storage

FeatureDescription
StableQueue CRUDCreate, delete, list queues ✅
StableMessage operationsEnqueue, dequeue, peek, update, delete ✅
StableQueue metadata & ACLGet/set metadata and ACL per queue ✅
StableService-level operationsGet/set service properties, get stats ✅

Key Vault — keys support

FeatureDescription
StableCore CRUDCreate, import, get, update, delete keys; list keys and versions
StableBackup & RestoreExport and restore opaque key backup blobs
StableCryptographic operationsEncrypt, decrypt, sign, verify, wrap key, unwrap key, release
PreviewKey rotationRotate key, get/update rotation policy

Azure PowerShell integration

FeatureDescription
StableCertificate trust scriptconfigure-azure-powershell-cert.ps1 — trust the Topaz certificate in the Az module
StableCloud environment registrationAdd-AzEnvironment + Connect-AzAccount setup script and example
StableTest suiteTopaz.Tests.AzurePowerShell project with a Testcontainers fixture and smoke tests

Management Groups — basic CRUD

FeatureDescription
PreviewCore CRUDCreate, update, get, delete, and list management groups

ARM Deployments — full support

FeatureDescription
StableCancelMark an in-progress deployment as cancelled
StableExport TemplateReturn the ARM template used for a deployment
PreviewWhat-IfPreview resource changes without applying them
StableList at all scopesList deployments at subscription, management-group, and tenant scope ✅

Packaging — CLI and Host split

FeatureDescription
PreviewSeparate CLI and Host artifactsSplit the monolithic binary into topaz-host (service process) and topaz-cli (thin client) — ⚠️ Breaking change: existing invocations and Docker image references must be updated

v1.1-beta

Key Vault — full secrets support

FeatureDescription
StableGet Secret VersionsGET {vaultBaseUrl}/secrets/{name}/versions — paged list of all versions for a secret
StableBackup & RestorePOST .../backup and POST .../restore for opaque secret backup blobs
StableDeleted secrets operationsSoft-delete surface: list, get, recover, and purge deleted secrets

Container Registry — data plane preview

FeatureDescription
StableACR OAuth2 token endpointPOST /oauth2/token — completes the three-step ACR authentication flow
PreviewRepositories & TagsList repositories (/v2/_catalog), list tags, delete tag via manifest reference
PreviewManifest operationsGET, PUT, DELETE, HEAD for OCI manifests per registry
PreviewBlob operationsFull OCI blob upload/download: start session, stream chunks, complete, download, delete
Star on GitHub