Service support

LocalCloud compatibility and limitations

A service can be available without supporting every Google Cloud operation. Check the operation-level support and limitations before relying on a local result.

ServiceSupport levelStarts by defaultTierPersistenceDocumented operationsKnown limitations
Cloud Storage
HTTP/REST :24081
Verified local workflows Yes community service-data
verified
  • verified — buckets.create/list/delete
  • verified — objects.upload/download/list/delete
  • unsupported — iam, lifecycle policies, notifications: Production-only control-plane behavior; not applicable to local development.
  • [prod_only] IAM, lifecycle policies, and notifications not emulated in LocalCloud.
Pub/Sub
gRPC :24082
Partial local emulation Yes community volatile
verified
  • verified — topics.create/get/list/delete
  • verified — subscriptions.create/get/list/delete
  • verified — publish/pull/ack/modifyAckDeadline
  • unsupported — schemas, snapshots, seek, dead-letter policy: The configured Pub/Sub gRPC endpoint fails unsupported schemas, snapshots, seek, and advanced subscription fields explicitly with UNIMPLEMENTED.
  • Schemas, snapshots, seek, dead-letter policy, filters, and other advanced subscription fields are not implemented on the configured endpoint.
  • gcloud and console paths remain partial for advanced Pub/Sub workflows.
Firestore
gRPC :24083
Partial local emulation No community volatile
verified
  • partial — documents.create/read/update/delete: External emulator is available; seed and browser parity needs hardening.
  • partial — queries/index behavior: Complex query/index parity is unverified.
  • Seed and browser parity is not fully hardened.
  • Index/query behavior is unverified.
Bigtable
gRPC :24084
Verified local workflows Yes pro service-data
release-unverified
  • verified — instances/tables/families
  • verified — row mutations and reads
  • verified — cbt CLI compatibility
  • verified — localcloud console data browser
  • verified — data survives emulator restart
  • verified — materialized views (CMVs)
  • unsupported — snapshots and backups: All 10 snapshot/backup RPCs return codes.Unimplemented: SnapshotTable, GetSnapshot, ListSnapshots, DeleteSnapshot, CreateBackup, GetBackup, UpdateBackup, DeleteBackup, ListBackups, RestoreTable. Also: CreateTableFromSnapshot, UndeleteTable.
  • unsupported — IAM policy management: GetIamPolicy, SetIamPolicy, TestIamPermissions return codes.Unimplemented.
  • verified — new proto methods return Unimplemented (no panics)
  • [prod_only] Single-node emulator by design; clusters, multi-region, replication require Google infrastructure.
  • GoogleSQL queries (ExecuteQuery/PrepareQuery) not supported — data-plane uses HBase-style API only.
  • Change streams, app profiles, and logical views are not implemented in the emulator.
  • Session protocol (OpenTable/OpenAuthorizedView/OpenMaterializedView) not implemented — not needed for correctness.
Spanner
gRPC :24085 · HTTP/REST :24086
Partial local emulation Yes pro service-data
release-unverified
  • unknown — Native SQL, read, and streaming read: Change-stream reads use native ExecuteStreamingSql. Unary ExecuteSql intentionally retains the emulator's rejection of change-stream queries.
  • unknown — Sessions, transactions, and batch DML: Existing native transaction and session behavior remains authoritative.
  • unknown — Partition query/read and batch write: Existing native partition and batch-write behavior remains authoritative.
  • unknown — Instance, configuration, and instance-partition administration: Existing native instance-admin behavior remains authoritative.
  • unknown — Database administration and DDL: Existing native database-admin behavior remains authoritative.
  • unknown — Instance and database IAM policies: Policies are stored durably and returned through native endpoints. Authorization remains intentionally permissive and TestIamPermissions returns requested permissions.
  • unknown — Backup, copy, restore, and backup schedules: Backups and schedules use LevelDB-backed metadata and compatible long-running operations.
  • unknown — Long-running operation lifecycle: Native operation polling and lifecycle behavior is shared by instance, database, backup, copy, and restore calls.
  • Pinned extended Spanner emulator image; the exact image and immutable digest come from `SPANNER_EMULATOR_IMAGE` in the root Dockerfile.
  • Change-stream support matrix — native gRPC/REST ExecuteStreamingSql supported; official SDK clients through SPANNER_EMULATOR_HOST supported; LocalCloud SQL Editor through managed run APIs or cancellable /query/stream NDJSON supported; gcloud spanner databases execute-sql unsupported for change streams because it uses unary ExecuteSql.
BigQuery
HTTP/REST :24087 · gRPC :24088
Partial local emulation Yes community service-data
release-unverified
  • verified — datasets.create/list/delete
  • verified — tables.create/list/delete
  • partial — SELECT, JOIN, window functions, CTEs, PIVOT/UNPIVOT, MERGE: DuckDB-backed via SQLGlot transpiler. ~96% BigQuery SQL coverage, 175+ functions. 958 tests passing. Key gaps: GROUP BY ROLLUP/CUBE/GROUPING SETS, SEMI/ANTI JOIN, BQML (clear error), AEAD encryption, KLL quantiles, graph queries, continuous queries. ⚠ Type coercion risk: DuckDB is permissive where BigQuery is strict — queries that work locally may error in production. Division by zero returns Inf instead of error. GEOGRAPHY: 12 ST_* functions with haversine approximation (not true geodesic).
  • partial — DECLARE, SET, IF/WHILE/LOOP, BEGIN/EXCEPTION, CALL, EXECUTE IMMEDIATE: Full scripting interpreter with variable scoping, BREAK/CONTINUE, RAISE, transactions.
  • partial — CREATE MATERIALIZED VIEW, auto-refresh: Supported in emulator with PARTITION BY, CLUSTER BY, OPTIONS.
  • partial — query Parquet/CSV/JSON files (local + GCS): CREATE EXTERNAL TABLE with format/uris options. Object tables not supported.
  • partial — gRPC Storage Read/Write API (AVRO + Arrow): gRPC endpoint on port 24088. ReadRows with streaming support.
  • partial — INFORMATION_SCHEMA views: 11 views: COLUMNS, TABLES, SCHEMATA, PARTITIONS, VIEWS, ROUTINES, TABLE_OPTIONS, TABLE_STORAGE, JOBS_BY_*, COLUMN_FIELD_PATHS.
  • DuckDB type coercion is permissive where BigQuery is strict — queries accepted locally may error in production.
  • Division by zero returns Inf/NaN instead of error; integer division returns int instead of FLOAT64.
  • GROUP BY ROLLUP/CUBE/GROUPING SETS not supported.
  • SEMI/ANTI JOIN syntax not supported (rely on EXISTS/NOT EXISTS transpile).
  • BQML (CREATE MODEL, ML.PREDICT, ML.EVALUATE, etc.) returns clear error.
  • AEAD encryption functions and KLL quantile functions not implemented.
  • GEOGRAPHY functions use haversine approximation, not true WGS84 geodesic.
  • BIGNUMERIC truncated to DECIMAL(38,9); FARM_FINGERPRINT requires pyfarmhash for correct values.
  • Time travel (FOR SYSTEM_TIME AS OF), continuous queries, graph queries, search/vector indexes not supported.
  • External object tables (OBJ.* functions) not supported.
Google Sheets
HTTP/REST :24080
Partial local emulation Yes community metadata
verified
  • partial — spreadsheets.values.get: Returns durable row-major values for one exact A1 range.
  • partial — spreadsheets.values.batchGet: Returns durable values for repeated exact ranges query parameters.
  • Spreadsheet metadata, writes, formulas, range evaluation, OAuth, and production Sheets access are not emulated.
  • Values are selected by exact stored A1 range and project scope.
Secret Manager
gRPC :24080
Partial local emulation Yes community service-data
verified
  • verified — secrets.create/list/get/delete
  • verified — versions.add/access/list
  • unsupported — rotation, CMEK, per-secret IAM: Rotation policies, customer-managed encryption keys, and per-secret IAM are not implemented.
  • [prod_only] Rotation and CMEK (customer-managed encryption keys).
  • Per-secret IAM is not complete.
Cloud Tasks
gRPC :24080
Partial local emulation Yes community service-data
verified
  • partial — queues.create/list/delete: Facade-backed queue lifecycle exists.
  • partial — tasks.create/list/delete: Dispatch and scheduling parity remain limited.
  • App Engine tasks and OAuth token generation are not complete.
Cloud Scheduler
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — jobs.create/list/get/delete/pause/resume: Cron scheduling and HTTP/Pub/Sub/App Engine targets exist for local workflows.
  • Timezone rules beyond cron-utils support are not fully verified.
Cloud Functions (2nd Gen)
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — functions.create/list/get/delete/update: Metadata CRUD and trigger routing exist; build/container execution is not emulated.
  • Build and container execution are metadata-only; use Functions Framework locally.
AlloyDB
gRPC :24080
Partial local emulation Yes community metadata
verified
  • verified — clusters/instances.create/list/get/delete
  • [prod_only] PSC (Private Service Connect) and cross-region replication.
  • Backup/restore is not complete.
Dataproc
gRPC :24080
Partial local emulation Yes community metadata
verified
  • verified — clusters.create/list/get/delete
  • partial — jobs submit/list/get: Cluster jobs run in the Dataproc runtime container; jobs without a cluster use ephemeral serverless containers. Execution requires Docker socket access and a compatible runtime image; otherwise only metadata paths are available.
  • Autoscaling and Kubernetes cluster mode are not complete.
  • Runtime execution requires Docker socket access; without it, cluster metadata remains available but Spark/Hadoop processes are not started.
Cloud IAM
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — getIamPolicy/setIamPolicy/testIamPermissions: Permissive policy stub with local policy storage.
  • Role validation, conditions, and deny policies are not complete.
Cloud Resource Manager
HTTP/REST :24080
Verified local workflows Yes community metadata
verified
  • verified — projects.create/list/get/update/delete
  • [prod_only] Organization/folder hierarchy not modeled in LocalCloud.
Service Usage
HTTP/REST :24080
Partial local emulation Yes community stateless
verified
  • partial — services.enable/disable/list: Local service toggles are available; quota billing semantics are not complete.
  • Quotas and service entitlement behavior are stubs.
Cloud Billing
HTTP/REST :24080
Partial local emulation Yes community metadata
verified
  • partial — billing accounts and budgets CRUD: Local REST facade covers selected Terraform-oriented paths.
  • Real billing, budget enforcement, and cost export are not implemented.
Cloud Logging
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — write log entries and list/filter entries: Local ingestion exists; query/filter parity is limited.
  • Metrics, exclusions, audit logs, and production sink behavior are limited.
Cloud Monitoring
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — create/list time series and descriptors: Local metric storage exists; query parity is limited.
  • Alerting, uptime checks, and dashboards are partial.
GKE
gRPC :24080 · k3d :24092
Partial local emulation No pro metadata
verified
  • partial — clusters CRUD: Local facade exists for cluster metadata and k3d-oriented workflows.
  • unsupported — node pools, autoscaling, upgrades: Production cluster management; local k3d provides the runtime cluster.
  • Kubernetes runtime parity depends on host runtime/k3d integration.
  • [prod_only] Node pools, autoscaling, and upgrades (GCP-managed cluster autoscaler, regional instance groups).
Compute Engine
HTTP/REST :24080
Partial local emulation No pro metadata
verified
  • partial — instances.create/get/list/start/stop/delete: Docker-backed instance approximation exists when container runtime is available.
  • unsupported — disks, snapshots, templates, networking: This operation is not available in LocalCloud.
  • [prod_only] Persistent disks and live migration (hypervisor-level storage/VM management).
  • Snapshots, instance templates, and VPC networking are not yet emulated.
Cloud Run
gRPC :24080
Partial local emulation No pro metadata
verified
  • partial — services/revisions: Local facade exists for service metadata.
  • unsupported — jobs: This operation is not available in LocalCloud.
  • unsupported — custom domains, production routing: Production-only DNS and load-balancing features.
  • Container execution and routing require host runtime architecture.
  • [prod_only] Custom domains and production routing (Google Front End load balancers, managed TLS).
Memorystore (Redis/Valkey)
RESP :24089
Partial local emulation Yes community service-data
verified
  • partial — RESP commands: Redis/Valkey-compatible data path is available.
  • unsupported — Cloud Redis admin API: Cloud Redis Admin API is production control-plane; local Redis/Valkey data path is fully functional.
  • Pub/Sub, Lua, streams, and MULTI/EXEC are not supported.
Cloud Workflows
gRPC :24080
Partial local emulation Yes community metadata
verified
  • partial — workflow deploy/list/get/delete: Local facade and seed paths exist.
  • partial — executions: Execution engine exists but connector/runtime parity needs expansion.
  • In-flight execution checkpointing is not durable across restart.
Vertex AI
HTTP/REST :24080
Partial local emulation No pro metadata
verified
  • partial — generateContent, streamGenerateContent, embedContent, countTokens: Deterministic local GenAI REST facade exists for selected flows.
  • unsupported — models, tuning, batch prediction: This operation is not available in LocalCloud.
  • [prod_only] Model training and tuning (requires TPU/GPU clusters).
  • Prediction endpoints and model management are out of current scope.
Cloud KMS
HTTP/REST :24080
Partial local emulation No pro metadata
verified
  • partial — key rings, crypto keys, versions: Local REST facade exists.
  • partial — encrypt/decrypt/sign/verify: Crypto operation parity needs SDK and IAM tests.
  • [prod_only] HSM (physical FIPS 140-2 Level 3 hardware) and EKM (external key manager providers).
  • Import jobs and Cloud HSM level enforcement are not implemented.
Cloud SQL
HTTP/REST :24080 · PostgreSQL :24090 · MySQL :24091
Partial local emulation Yes community service-data
release-unverified
  • partial — instances/databases/users: Local REST facade with PostgreSQL and MySQL 8.4 data planes.
  • partial — MySQL 8.4 data plane: Shared, on-demand mysqld with logical schema isolation on port 24091.
  • unsupported — replicas, backups, PSC: This operation is not available in LocalCloud.
  • [prod_only] Read replicas (cross-region replication) and PSC (Private Service Connect).
  • MySQL instances share one on-demand MySQL 8.4.11 server; schemas and physical wire logins are deterministically isolated by project and instance.
  • Backup/restore execution is not implemented.
Verified

Implemented for the documented bounded workflow. This is not complete Google Cloud parity.

Partial

Implemented with limitations adjacent to the operation claim.

Release-unverified

The behavior may exist, but it has not been confirmed for an identified LocalCloud image release.