Services Overview
Floci-AZ provides emulation for several core Azure services.
| Service | Endpoint | Implementation Status |
|---|---|---|
| Blob Storage | /{account}/ |
✅ Full CRUD |
| Queue Storage | /{account}-queue/ |
✅ Full CRUD |
| Table Storage | /{account}-table/ |
✅ Full CRUD |
| Azure Functions | /{account}-functions/ |
✅ HTTP Triggers, Docker runtimes |
| App Configuration | /{account}-appconfig/ |
✅ Key-values, labels, feature flags, snapshots, revisions, locks, pagination, $select, tags filtering, Accept-Datetime, Sync-Token |
| Cosmos DB (SQL API) | /{account}-cosmos/ |
✅ Databases, containers, documents CRUD, SQL queries, partition keys |
| Cosmos DB multi-API | (engine sidecars) | ✅ MongoDB, PostgreSQL, Cassandra, Gremlin, Table, NoSQL (opt-in Docker engines) |
| Key Vault | /{account}-keyvault/ |
✅ Secrets CRUD, versioning, soft-delete, properties update |
| Event Hubs | AMQP :5672 / Kafka :9093 |
✅ AMQP 1.0 (Artemis), Kafka-compatible (Redpanda, opt-in) |
| Service Bus | /{account}-servicebus/ + AMQP :5673 |
✅ Queues, topics, subscriptions (dynamic); AMQP 1.0 via Artemis sidecar or mocked |
| Azure SQL Database | ARM path + /{account}-sql/ |
✅ Servers, databases, firewall rules; Docker-backed SQL Server containers |
| Azure Kubernetes Service | ARM path (Microsoft.ContainerService) |
✅ Clusters, agent pools, credentials; real k3s containers or mocked |
| API Management | ARM path (Microsoft.ApiManagement) + /{account}-apim/ |
✅ APIs, operations, products, subscriptions, named values, backends, OpenAPI import; gateway routing + policy subset |
| Virtual Network | ARM path (Microsoft.Network) |
✅ VNets, subnets, NICs, public IPs, NSGs; in-process ARM state for Terraform/OpenTofu and VM dependencies |
| Virtual Machines | ARM path (Microsoft.Compute) |
✅ VM lifecycle (create/start/stop/deallocate/restart/delete/list), instanceView; mocked (Docker backing planned) |
| Azure Cache for Redis | ARM path (Microsoft.Cache) |
✅ Cache CRUD, listKeys/regenerateKey; real Redis containers (data plane) or mocked |
| Azure Container Registry | ARM path (Microsoft.ContainerRegistry) |
✅ Registry CRUD, admin credentials, checkNameAvailability; one shared registry:2 (Docker Registry V2 push/pull) or mocked |
| Microsoft Entra ID | /{tenant}/oauth2/... + /.well-known/openid-configuration |
✅ OpenID Connect provider — RS256-signed tokens, JWKS, discovery; client-credentials + ROPC grants (app registration, Graph, interactive flows planned) |
| Event Grid | ARM path (Microsoft.EventGrid) + /{topic}-eventgrid/api/events |
✅ Custom Topics, access keys, webhook event subscriptions with filters, publish (Event Grid + CloudEvents 1.0), async delivery with retry, subscription validation handshake |
| Azure Monitor / Log Analytics | ARM path (Microsoft.OperationalInsights / Microsoft.Insights) + /dataCollectionRules/... + /v1/workspaces/... |
✅ Workspaces, Data Collection Endpoints/Rules; Logs Ingestion API; Log Analytics query with a KQL subset (where/project/take/limit, timespan) |
| Communication Services Email | /emails:send + /emailMessages + ARM path (Microsoft.Communication) |
✅ ACS Email send + status polling; in-memory inspection mailbox (Mailpit-style); ARM communication/email services + domains. No real delivery |
Unified Endpoint
All services are accessible through a single port (4577). The routing is handled by inspecting the request path and headers.
Docker-backed services
The following services spin up Docker containers on demand and require the Docker socket:
| Service | Docker image | Data plane |
|---|---|---|
| Azure Functions | User-provided image | HTTP to container |
| Azure SQL Database | mcr.microsoft.com/azure-sql-edge:latest |
TDS direct to container port |
| Cosmos DB engines | Various (mongo, postgres, cassandra, …) | Protocol direct to container port |
| Azure Kubernetes Service | rancher/k3s:latest |
kubectl direct to k3s API server port |
These services must have access to the Docker daemon (
/var/run/docker.sockmount in Docker Compose).