Kvindo™ Cloud Docs


Language

Design ideas

The Terraform provider follows the same philosophy as the CLI.

Thin provider — all logic is server-side

The provider is a thin client: each kvindo_<type> resource maps one-to-one to an API resource, and all validation and reconciliation happen on the server. The provider sends your desired spec and reads back status; it contains no business logic of its own. As a result the same rules apply as everywhere else — creation is asynchronous and a background reconciler drives each resource to its desired state (see Concepts).

The same metadata / spec shape

Every resource is a metadata = { … } block plus a spec = { … } block, mirroring the API envelope exactly. status is computed and read-only. This is the same shape shown on each resource's page under the Terraform name column, so you can copy field names straight from there.

Reference resources, don't hardcode IDs

You never paste ULIDs between resources. Give each resource a Terraform-local name and reference its computed id — Terraform fills in the real ULID and tracks the dependency order for you:

Unlike the CLI, the Terraform provider does not resolve resource names — references are real IDs. Reference resources you create with .metadata.id, and look up pre-existing ones (a folder, a hosting provider) with their datasource.


Related pages

More in this section

Reference

An unhandled error has occurred. Reload 🗙