Skip to content

0.10.0

Choose a tag to compare

@hectorvent hectorvent released this 31 Jul 05:55
· 70 commits to main since this release
7f58dad

🎉 Highlights

This release adds MySQL, MariaDB, and diagnostic settings, expands Cosmos DB with custom indexing policies and composite-index enforcement, brings Service Bus subscription rules and topic filters, and lands ADLS user delegation key vending. Blob storage sees a coordinated conformance pass and the ARM plumbing gets a substantial refactor for cleaner service dispatch. Welcome to the 5 first-time contributors.

🆕 New: MySQL and MariaDB

Azure Database for MySQL and MariaDB support lands (#150), extending the PostgreSQL Flexible Server story from 0.9.0. All three major open-source database engines are now emulated on the Azure side, matching what real Azure PaaS offers.

📊 New: Diagnostic settings

Diagnostic settings emulation ships alongside MySQL/MariaDB (#150). IaC and applications that wire up log routing to Log Analytics, Storage, or Event Hubs can now be tested locally.

🌐 New: LB, NSG, Application Gateway shapes

Synthesized network resource shapes for Load Balancers, Network Security Groups, and Application Gateway (#153), unblocking azurerm Terraform patterns that provision these resources. Combined with the Private Endpoint / Private DNS work from 0.9.0, the Azure networking IaC story is meaningfully more complete.

🗃️ Cosmos DB: custom indexing policies

Cosmos DB gains custom indexing policies with composite-index ORDER BY enforcement (#129). Applications with real-world query patterns that depend on composite indexes for correctness now behave the way real Cosmos does — enforcing index requirements rather than silently ignoring them.

🚌 Service Bus: subscription rules and topic filters

Subscription rules with CorrelationFilter, SqlFilter, and $Default filters support (#130). Real Service Bus fan-out patterns using content-based routing are now testable end to end.

🔐 ADLS user delegation keys

User delegation key vending for Azure Data Lake Storage (#122). Applications that use user delegation SAS instead of account keys — the recommended pattern for Entra ID-authenticated access — now work locally.

🪣 Blob storage conformance pass

Four coordinated Blob storage improvements this cycle:

🧱 ARM plumbing refactor

Two coordinated internals improvements:

  • Handlers describe their own routes and enablement (#115)
  • ARM provider dispatch unified with strict ARM body parsing (#118)

Groundwork for consistent behavior as the service catalog continues to grow. Also lands: bare Key Vault deleted- collections* correctly routed, and disabled services report 503 instead of confusing fall-through errors (#114).

🐳 Docker labeling

Emulator containers and volumes are now labeled with a centralized floci-az prefix (#157). Easier cleanup, debugging, and multi-tenant orchestration.

🪟 Windows TLS fix

TLS certificate paths now use forward slashes so TLS starts on Windows (#142). Windows users can now use HTTPS locally without the path-separator mismatch that previously broke certificate loading.

📧 ACS Email SDK contract fix

ACS Email operation contract now matches what the SDKs expect (#148), so real SDKs can complete a send end to end rather than getting stuck partway through the operation.

✨ New Features

New services

  • feat(mysql, mariadb, diagnostic-settings): add MySQL, MariaDB, and diagnostic settings emulation by @hectorvent in #150
  • feat(network): synthesize LB, NSG, and Application Gateway shapes for azurerm by @hectorvent in #153

Service expansions

  • feat(cosmos): custom indexing policies with composite-index ORDER BY enforcement by @thomhurst in #129
  • feat(servicebus): subscription rules and topic filters (CorrelationFilter, SqlFilter, $Default) by @thomhurst in #130
  • feat(adls): add user delegation key vending by @snazy in #122

Docker

  • feat(docker): label emulator containers and volumes, centralize the floci-az name prefix by @hectorvent in #157

🐛 Bug Fixes

Blob storage

Service Bus / Email / TLS

  • fix(servicebus): stop the CBS responder from exhausting file descriptors by @hectorvent in #154
  • fix(email): match the ACS operation contract so the SDKs can complete a send by @jogerj in #148
  • fix(tls): emit forward-slash certificate paths so TLS starts on Windows by @Ali-Shaikh in #142

Core

  • fix(core): route bare Key Vault deleted-* collections and report disabled services as 503 by @hectorvent in #114
  • fix(core): unify ARM provider dispatch and parse ARM bodies strictly by @hectorvent in #118

🧰 Refactors

  • chore(core): let handlers describe their own routes and enablement by @hectorvent in #115

🧪 Tests

  • chore(test): merge duplicate service-properties test methods from #133 / #144 by @hectorvent in #152
  • chore(test): compare delegation-key expiry as instants, not strings by @hectorvent in #156

🧰 CI

  • chore(ci): welcome first-time contributors on their first issue or PR by @hectorvent in #151

📚 Documentation

  • docs(services): flesh out blob / queue / table docs and add ARM reference by @hectorvent in #117
  • chore(config): document Postgres and SQL storage defaults in application.yml by @hectorvent in #116

👋 New Contributors

A warm welcome to everyone making their first contribution to floci-az:

Full Changelog: 0.9.0...0.10.0