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
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.

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