Release notes
0.81.0
New features and improvements
- Stack improvements: Stack descriptions are now correctly stored and updated when reapplying. Stacks are automatically deleted when their last resource is removed.
- New
formae inventory stackscommand to query and list all stacks managed by formae. See the CLI documentation for details. - Aurora Data API datastore: New datastore option for AWS deployments using AWS RDS Data API. See the configuration documentation for details.
- Empty targets can now be deleted using
formae destroy. See the target documentation for details. - Non-interactive plugin init: The
formae plugin initcommand now supports non-interactive mode for automation, CI pipelines, and LLM-assisted workflows. Use the--no-inputflag with CLI flags to provide all required values. See the plugin tutorial for details. - Plugin dashboard: A new Grafana dashboard for monitoring plugin metrics is available in the formae-grafana-dashboards repository.
- Plugin log messages now show the plugin name instead of the namespace.
Bug fixes
- FIXED: Resources with fields that are arrays of resolvables are now handled properly.
- FIXED: Plugin shutdown no longer produces spurious error messages.
- FIXED: Improved import declaration generation when using
formae extract.
0.80.1
Bug fixes
- FIXED: The
extractcommand would fail for plugins where the plugin name differed from the namespace.
0.80.0
Breaking Changes
- Plugin SDK: Complete overhaul of the
ResourcePlugininterface, the formae Pkl schema and plugin distribution. See the plugin SDK documentation for details. - Formae Pkl schema:
nonprovisionableandpersistresource annotations have been removed. Tags are no longer a first-class citizen in formae and will be superseded by plugin-specific implementations. For AWS,formae.Tagwill be supported for three more releases before being removed. Please update tag definitions in your AWS Pkl files to useaws.Taginstead offormae.Tag.
New features and improvements
- Official Release of the Plugin SDK: formae now has a plugin SDK for building custom resource plugins. See the plugin SDK documentation for details.
- Beta support for Azure: Initial open source release of the Azure plugin. See the Azure documentation for supported resources.
- Beta support for GCP: Initial open source release of the Google Cloud plugin. See the GCP documentation for supported resources.
- Beta support for OCI: Initial open source release of the Oracle Cloud plugin. See the OCI documentation for supported resources.
- Beta support for OVH: Initial open source release of the OVH/OpenStack plugin. See the OVH documentation for supported resources.
- Local schema support for project init command: The
formae project initcommand now supports initializing projects with local schemas for plugin developers using the@localsuffix. See the CLI documentation for details.
0.76.5
Bug fixes
- FIXED: In some cases updates for AWS Tags were generated incorrectly, causing commands to fail.
- FIXED: If there were unfinished commands on agent startup, the agent would some times try to resume those commands before the plugins were fully initialized.
- FIXED: Commands would fail when a read operation failed with a recoverable error (like a rate limit).
- FIXED: AWS::EC2::TaskSet was incorrectly marked as discoverable causing noise in the logs during discovery.
0.76.0
Breaking Changes
- Plugin Architecture Migration: Plugins must now be built as standalone
executables instead of shared libraries (
.sofiles). Existing custom plugins need to be updated with amain()function that callsplugin.Run(). See the AWS plugin implementation for reference.
New features and improvements
- Plugin Architecture Overhaul: Plugins now run as separate executables in their own processes rather than as shared libraries, enabling independent dependency graphs and multi-host deployment.
- Major Performance Improvements: Significantly improved command processing performance. Previously limited to around 500 resources, the agent now handles up to 20,000 resources. See the agent sizing recommendations for resource requirements.
- Enhanced Observability: The agent now exports comprehensive telemetry via OpenTelemetry including metrics, structured logs with trace correlation, and distributed traces for API requests, resource operations, and database queries.
- Grafana Dashboards: Pre-built Grafana dashboards for monitoring formae are now available in the new formae-grafana-dashboards repository.
- New
temporalityconfiguration option for OTLP metrics export, supporting both delta (OTel-native) and cumulative (Prometheus/Mimir) temporality.
Bug fixes
0.75.5
New features and improvements
- Shell auto-completion is now supported for
formaecommands in bash and zsh. The installer can now install the necessary completion scripts - Sync commands that did not pull in any changes are now automatically removed from the database
Bug fixes
- FIXED: AWS::IAM::RolePolicy was missing Resolvable in the Pkl schema
- FIXED: Resources resolving a property of an unmanaged resource were rendered incorrectly
0.75.4
Bug fixes
0.75.3
Bug fixes
0.75.2
New features and improvements
- Watch output prints useful hints at the end of the output
- Targets are now discoverable by default
- When creating a target, discovery is automatically initiated
- Discovery now traverses multuple levels of parent-child relationships in resource hierarchies
- Discovery can now handle multiple namespaces
- Discovery creates resolvables to parent properties in child resources
- Destroy queries no longer accept "managed" as a field parameter, as it does not apply to destroy operations
Bug fixes
- FIXED: Bringing resources under management that do not support tags does not work
- FIXED: Nested resources are not being discovered when no new parent resource is found
- FIXED: Extracted targets do not contain the discoverable property
- FIXED: Deletion of certain resources in the cloud fails to propagate to the inventory
- FIXED: Multiple race conditions where resources were discovered or synchronized during an apply operation (with very aggressive discovery and sync intervals configured)
0.75.1
New features and improvements
- Implemented database migration for future changes
- Discovery is enabled now by default in the configuration
- Targets are now discoverable by default
- Default discovery interval is now at 10 minutes instead of previously 1 hour
Bug fixes
0.75.0
New features and improvements
- New
formae cancelcommand that allows to cancel any apply or destroy command already being executed by the agent. - New
formae inventory targetscommand to query and list targets with filtering by label, namespace, and discoverability. - Targets now support a
discoverablefield for granular control over which targets participate in discovery scans. - Pkl: Nested fields are now being parsed.
- The
lifelineexample now uses more idiomatic PKL code.
Breaking changes
- We are deprecating configuration of discovery targets through the agent config. Instead, targets need to be configured through forma application now.
Bug fixes
0.74.0
Public launch.