How floci-io/floci-az works
Floci-Az is a local Azure emulator: clients send Azure SDK, CLI, or Terraform requests to its local endpoint and use the emulated services in place of Azure. Its documented surface spans data-plane services, identity, ARM resources and deployments, and container-backed runtimes. The graph preserves those major capability areas and the shared storage layer. Source excerpts are limited, so most service-to-service wiring is not asserted; edges show only documented relationships or connections visible in the source index.
Main entry points: AzureRequest.java Local emulator · StorageFactory.java Storage backends · AuthPipeline.java Request authentication · TlsProxyServer.java TLS proxy
Components 29
Request entry
- Local emulator
src/main/java/io/floci/az/core/AzureRequest.java
Shared platform
- Emulator config
src/main/java/io/floci/az/config/EmulatorConfig.java - Storage backends
src/main/java/io/floci/az/core/storage/StorageFactory.java - Cloud profiles
src/main/java/io/floci/az/core/cloud/CloudProfile.java - Azure directory
src/main/java/io/floci/az/core/directory/AzureDirectory.java - Request authentication
src/main/java/io/floci/az/core/auth/AuthPipeline.java - TLS proxy
src/main/java/io/floci/az/core/tls/TlsProxyServer.java - Web console
src/main/java/io/floci/az/core/ui/UiController.java
Data services
- Storage services
src/main/java/io/floci/az/services/blob/BlobServiceHandler.java - App Configuration
src/main/java/io/floci/az/services/appconfig/AppConfigHandler.java - Cosmos DB
src/main/java/io/floci/az/services/cosmos/CosmosHandler.java - Cosmos engines
src/main/java/io/floci/az/services/cosmos/engine/impl - Key Vault
src/main/java/io/floci/az/services/keyvault/KeyVaultHandler.java - Managed databases
src/main/java/io/floci/az/services/sql/SqlHandler.java
Compute and messaging
- Azure Functions
src/main/java/io/floci/az/services/functions/FunctionsServiceHandler.java - Event Hubs
src/main/java/io/floci/az/services/eventhub/EventHubHandler.java - Service Bus
src/artemis-amqp-patch/java/org/apache/activemq/artemis/protocol/amqp/proton/ServiceBusSessionSupport.java - Kubernetes service
src/main/java/io/floci/az/services/aks/AksClusterManager.java - Container services
src/main/java/io/floci/az/services/aci/AciContainerGroupManager.java
Azure management
- ARM resources
src/main/java/io/floci/az/core/arm/ArmResourceStore.java - Template deployments
src/main/java/io/floci/az/services/deployments/DeploymentEngine.java - Azure Policy
src/main/java/io/floci/az/services/policy/evaluation/PolicyEngine.java - Resource Graph
src/main/java/io/floci/az/services/resourcegraph/kql/KqlEngine.java - Entra identity
src/main/java/io/floci/az/services/entra/TokenEndpoint.java - Virtual networks
src/main/java/io/floci/az/services/network/NetworkService.java - Event Grid
src/main/java/io/floci/az/services/eventgrid/EventGridService.java - API Management
src/main/java/io/floci/az/services/apim/ApiManagementService.java - Monitor and logs
src/main/java/io/floci/az/services/monitor/MonitorHandler.java
Other components
- Azure clients
Connections 8
- Azure clients → Local emulator: send requests
README.md - Storage backends → Emulator config: reads settings
src/main/java/io/floci/az/core/storage/StorageFactory.java - Request authentication → Local emulator: resolves request auth
src/main/java/io/floci/az/core/auth/AuthPipeline.java - Cosmos engines → Cosmos DB: Cosmos engine APIs
README.md - Azure Functions → Azure clients: runs uploaded functions
README.md - Event Hubs → Azure clients: AMQP and Kafka access
README.md - TLS proxy → Local emulator: serves HTTPS
README.md - Web console → Local emulator: console endpoint
README.md