Google CloudStatic-verified

A Database whose Irreversible Choices Are Made Deliberately

Type, location and CMEK cannot be changed after creation - getting one wrong means exporting every document into a new database and repointing every client. delete_protection defaults OFF, and Firestore has no snapshots: point-in-time recovery is the only way back and only covers incidents after it was enabled.

terraformGoogle Cloudgcp

Compare Managed NoSQL Database across clouds →

gcp-firestorevizier v1.2.0

Verification

Static-verified

Passed: validated and lint-clean (provider-schema-validated for AWS/Azure/GCP; Terraform-language lint elsewhere).

Conformance

  • Static validation (fmt · validate · tflint)
  • No applicable security policies for this provider
  • Plan tests (mocked: validation rules · outputs)

Provenance

  • SHA-256 checksum
  • Signature (pending)

Functional

  • Live test pending (no cloud run yet)

Last verified 2026-09-13 · how we verify

Use it from the registry

terraform · opentofu
module "firestore" {
  source  = "www.iac-bazaar.com/iac-bazaar/gcp-firestore/gcp"
  version = "1.0.0"
}

Needs a registry token from /account/tokens. The module itself is free; the account is what identifies you. Full setup: registry docs.

Cite it in your README

badge · attribution

Paste this beside the module in the repository that uses it. The badge is rendered from this artifact's verification record, so it reads static-verified because the record says so, and the link lands on this page.

README.md, GitLab, Gitea
[![IaC Bazaar: static-verified](https://www.iac-bazaar.com/api/artifacts/gcp-firestore/badge)](https://www.iac-bazaar.com/catalog/gcp-firestore?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

Terraform module 1.0.0, static-verified on IaC Bazaar: [A Database whose Irreversible Choices Are Made Deliberately](https://www.iac-bazaar.com/catalog/gcp-firestore?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

```hcl
module "firestore" {
  source  = "www.iac-bazaar.com/iac-bazaar/gcp-firestore/gcp"
  version = "1.0.0"
}
```

Preview:IaC Bazaar: static-verified

Inputs & outputs

Create a free account to read this module's contract

The declared contract - every input name, type, default and description, plus every output - is shown to signed-in accounts, not to anonymous visitors.

A free account sees the contract of every module in the catalogue. There is no subscription and nothing to buy - the modules are free to download, and they run under Vizier.

Documentation

gcp-firestore

A Firestore database whose irreversible choices are made deliberately. Works with Terraform and OpenTofu (>= 1.6), google provider >= 6.0, < 7.0.

Three things here cannot be changed after creation: the database type (Native or Datastore mode), the location, and whether it uses your own encryption key. Getting any of them wrong means exporting every document into a new database and repointing every client, so permanent_choices is an output

  • it belongs somewhere a person will read it before the next database is made.

delete_protection_state defaults to disabled. A terraform destroy, or simply removing the module, deletes the entire database. Firestore has no snapshots: point-in-time recovery is the only way back, it retains seven days at most, and it only helps if it was already on before the thing you want to recover from. There is no "restore from last night" unless you decided that last week.

deletion_policy is a Terraform-level setting, not a Firestore one. ABANDON leaves the real database in place when the resource leaves state, which is the right default for a database another application reads. DELETE plus no delete protection is two safeties off at once, and a precondition says so.

Smaller things: "(default)" is a real database name, not a placeholder, so the name validation accepts it specially; and concurrency_mode is surfaced because PESSIMISTIC holds locks for the length of a transaction, which only matters under contention and matters a lot there.

Verification

Static validation runs tofu fmt, init, validate, tflint and checkov. This module has not yet had a live test, so it is published as statically validated with its live test pending and does not carry the live-tested mark.

Usage code & full reference need an account

The complete copy-paste usage, the full input/output reference, and operational notes are free with an account - shown here and bundled in the download. Sign in and this section fills in.

  • Usage

Related modules

Static validatedLive test pending

gcp-datastream

A stream is created NOT_STARTED and replicates nothing until somebody starts it; the source password is a literal in state unless it is a Secret Manager reference; public connectivity means the database admits Google's published ranges; and backfill_none is change capture with no history. Running from apply, private connection peered into your VPC, secret required, backfill on.

View module
Static validatedLive test pending

gcp-looker

A Looker (Google Cloud core) instance reachable over Private Service Connect from the VPCs you allow, no public address, sign-in limited to your email domains, encrypted with your Cloud KMS key, in a maintenance window you chose. The OAuth client secret is sensitive and never output; the edition has no default because the annual editions commit for a year.

View module
Live-tested

gcp-alloydb

AlloyDB cluster with primary + read-pool instances, PSC connectivity, automated backups and columnar/vector engine flags.

View module
Live-tested

gcp-bigquery-dataset

Datasets with partitioned/clustered tables, authorized views, CMEK and dataset-level access controls.

View module
Live-tested

gcp-bigtable

A single-cluster Cloud Bigtable instance (one 1-node SSD cluster, the smallest footprint) plus a table with column families, IAM-only access, optional CMEK, and deletion protection on.

View module
Live-tested

gcp-cloud-sql

Regional-HA Cloud SQL with private IP (PSA/PSC), automated backups, PITR, read replicas and IAM database auth.

View module