Skip to main content
A resource is an infrastructure component: a bucket, a compute instance, a database, or any other cloud service. Resources are what formae ultimately creates, updates, and deletes on your behalf. Every resource formae knows about is either managed or unmanaged. The distinction is simply whether formae controls the resource or only observes it.

Managed resources

A resource is managed once formae controls it. When you apply a forma, formae reconciles each declared resource so its actual state matches what the forma says it should be. A resource becomes managed in one of two ways:
  • You declare it in a forma and apply it.
  • An existing resource is discovered and you bring it under management.
Managed resources can reference one another with .res, which declares a dependency: formae waits for the referenced value to exist before applying the resource that needs it, so you never order resources by hand. See Resolvable for how this works.

Unmanaged resources

An unmanaged resource exists in your cloud but was not created through formae. formae tracks it so you have visibility, but does not modify it. Unmanaged resources are read-only: formae will not update or delete them until you choose to manage them. Unmanaged resources are surfaced by Discovery, which periodically scans your cloud accounts for resources that are not yet in formae’s inventory. You can then decide which ones to bring under management.

Why the distinction exists

Keeping unmanaged resources visible without touching them lets formae fit into an environment you already run:
  • Adopt formae gradually in an existing account.
  • Operate alongside Terraform, Pulumi, or other tools.
  • Keep visibility across everything, including resources you have not chosen to manage.
  • Transition resources to managed selectively, on your own timeline.
Discovery identifies resources; you decide which ones to manage.

See also

  • Discovery: how formae finds resources that were not created through it.
  • Resolvable: the .res mechanism behind resource references.
  • Stack: how resources are grouped for lifecycle management.