Skip to content

feat: implement unified multi-cloud routing, Azure/GCP core services, and workload runtime - #194

Merged
skyoo2003 merged 4 commits into
mainfrom
feat/unified-multicloud-and-workload-runtime
Oct 12, 2026
Merged

skyoo2003 merged 4 commits into
mainfrom
feat/unified-multicloud-and-workload-runtime

Conversation

@skyoo2003

Copy link
Copy Markdown
Owner

Summary

This PR completes the multi-cloud architecture expansion inspired by the Floci family (floci, floci-az, floci-gcp), adhering to three core engineering principles:

  1. Single Unified Port (4747) Transparent Routing: Complete elimination of multi-port binding (4566, 4577, 4588) by routing AWS, Azure, and GCP transparently over port 4747 via header, path, and auth detection.
  2. Universal Workload Runtime Abstraction: Decoupling serverless execution from a hardcoded Docker daemon dependency by introducing internal/shared/workload supporting standard OCI container runtimes (podman, docker, nerdctl), WebAssembly (wasmtime, wasmer, wazero), and local process sandboxing (Zero-Daemon).
  3. 100% Client Compatibility Verification: Automated smoke tests and lifecycle verification across 100% of registered Azure (6) and GCP (3) services on port 4747.

Key Changes

1. Gateway Routing (internal/gateway/protocol.go)

  • Enhanced DetectProtocol and isAzureRequest to transparently classify and dispatch Azure Key Vault (*.vault.azure.net, /secrets), Azure App Configuration (azconfig.io, /kv), GCP Secret Manager (/v1/projects/*/secrets), and GCP Pub/Sub (/v1/projects/*/topics, /subscriptions).

2. GCP Core Services

  • GCP Secret Manager (internal/services/gcpsecrets): Secret CRUD, secret versioning (versions/latest, addVersion), payload access (:access), and destruction (:destroy).
  • GCP Cloud Pub/Sub (internal/services/gcppubsub): Topic management, message publishing (:publish), subscription management, and pull/ack delivery (:pull, :acknowledge).

3. Azure Core Services

  • Azure Key Vault (internal/services/azurekeyvault): Secret version management, RSA cryptographic key generation, retrieval, and deletion.
  • Azure App Configuration (internal/services/azureappconfig): Key-Value management, ETag, tags, and label filtering (?label=...).

4. Universal Workload Runtime (internal/shared/workload)

  • Defined WorkloadDriver, ContainerRunner, WASMRunner, and ProcessRunner interfaces and global Manager.
  • Implemented OCI driver with auto-detection of podman, docker, and nerdctl.
  • Implemented WebAssembly runner abstraction for zero-daemon serverless functions.
  • Integrated workload.DefaultContainerRunner() with AWS Lambda runtime (internal/services/lambda/runtime_docker.go).

5. Compatibility Verification & Documentation Gates

  • Added multi-cloud smoke test suites: test_azure_smoke.py (6 services), test_gcp_smoke.py (3 services).
  • Added lifecycle integration test suites: test_azure_keyvault.py, test_azure_appconfig.py, test_gcp_secrets.py, test_gcp_pubsub.py.
  • Synchronized fidelity manifest, imports (cmd/devcloud/imports.go), and docs coverage gates to 441 registered services.

Test Results

  • go test ./internal/... ./cmd/...: 100% PASS
  • pytest test/compatibility/test_azure_*.py test/compatibility/test_gcp_*.py test/compatibility/test_federated_identity.py: **28 / 28 PASSED (100%)`

… and workload runtime

- Gateway: support single unified port (4747) transparent routing across AWS, Azure, and GCP via header/path/auth detection
- GCP: implement Secret Manager and Cloud Pub/Sub with REST lifecycle operations
- Azure: implement Key Vault (secrets/keys) and App Configuration (key-values/labels)
- Workload: introduce universal WorkloadDriver abstraction supporting OCI (Docker/Podman/nerdctl), WASM (wazero/wasmtime), and local process sandboxing
- Lambda: decouple from hardcoded docker CLI and wire to standard WorkloadDriver
- Codegen & Registry: update fidelity manifest, imports, and docs coverage gates to 441 registered services
- Compatibility: add 100% smoke test coverage harnesses and lifecycle test suites for all registered Azure and GCP services
@github-actions github-actions Bot added documentation Improvements or additions to documentation tests Test code and test infrastructure services AWS service implementations labels Oct 12, 2026
- Update README.md, docs/README.md, architecture.md, and configuration.md for unified single-port (4747) multi-cloud routing and workload runtime abstraction
- Add Azure and GCP service documentation covering Table, Cosmos, Queue, App Config, Key Vault, Event Grid, GCS, PubSub, and Secret Manager
- Refactor azureappconfig provider routing to match AST handverified scanner expectations
- Standardize character encoding and typography across documentation and scripts
- Polish technical English phrasing and ensure documentation integrity across docs/ and changes/
@skyoo2003
skyoo2003 force-pushed the feat/unified-multicloud-and-workload-runtime branch from 9f044ba to 4218fcd Compare October 12, 2026 22:14
…y exclusions

- Register azureappconfig, azurekeyvault, gcppubsub, and gcpsecrets in compatibility exclusions (noBoto3Client)
- Align docs/coverage.md compatibility-tested and manifest tier operation counts
- Remove unused randomID helper and imports from gcpsecrets store to satisfy golangci-lint
- Commit generated manifest and compatibility service definitions from codegen
…success

- Guard function sub-routes with strings.HasPrefix(path, lambdaAPIPrefix)
- Fall through to ResourceNotFoundException for non-lambda requests
- Resolve test_unserved_operation_declines failure in compatibility tests
@skyoo2003
skyoo2003 merged commit a935d65 into main Oct 12, 2026
11 checks passed
@skyoo2003
skyoo2003 deleted the feat/unified-multicloud-and-workload-runtime branch October 12, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation services AWS service implementations tests Test code and test infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant