Merged pull requests:
- [INF-6939] Migrate client into this repo and switch provider to it #229
Note:
This release brings the Ably Control API Go client in-repo, replacing the external ably-control-go dependency. The previous client had diverged significantly from the actual Control API surface, causing persistent bugs and requiring workarounds throughout the provider. Rather than continuing to patch the misalignment across two repositories, the client has been rewritten from scratch and embedded directly as a Go sub-module.
New in-repo client: The client lives under control/ (module path github.com/ably/terraform-provider-ably/control, package name control) and covers the full Control API surface: apps, keys, namespaces, queues, stats, reactor/integration rules (HTTP, AMQP, Kafka, Kinesis, Lambda, SQS, Pulsar, IFTTT, Zapier, Cloudflare Workers, Google/Azure Functions), ingress rules (MongoDB, Postgres Outbox), and before-publish/moderation rule types (Hive, Bodyguard, Tisane, Azure). All endpoints have comprehensive unit tests plus integration test scaffolding gated behind ABLY_ACCOUNT_TOKEN. The client is publicly importable for use outside this provider.
Provider migration: Every resource and data source has been rewritten to use the new client. This includes tighter error handling, read-back verification after create/update to catch silent failures, pointer-based patch types to avoid overwriting values during partial updates, and improved schema descriptions. An end-to-end acceptance test exercises the full Terraform lifecycle (create, update, read-back, import, destroy) for every resource type against the real Control API.
Release automation: The release workflow has been rebuilt to handle both components from a single workflow_dispatch trigger. It discovers what to release from git tags (v<semver> for the provider, control/v<semver> for the client) and runs both release jobs in parallel. Provider releases go through GoReleaser as before. Control release notes are scoped to PRs that touch control/ paths, matching the format used by the old standalone repo. Both produce draft releases for review before publishing.
Documentation: Terraform resource docs have been regenerated to reflect the updated schemas. The control client has public-quality godoc comments and a standalone reference doc under control/docs/. CI has been updated to account for the sub-module. CONTRIBUTING.md documents the new release process.
Closed issues:
- Status code: 0, that resolves on retry #217
Merged pull requests:
- [INF-6633] Bump API client to v0.8.0 #221
- Bump the terraform-plugin group across 1 directory with 4 updates #216
Closed issues:
- Capabilities ordering causes inconsistent results #211
Merged pull requests:
- Use types.Set rather than []types.String #212
- Bump github.com/hashicorp/terraform-plugin-docs from 0.18.0 to 0.22.0 #210
- Bump github.com/hashicorp/terraform-plugin-framework from 1.14.1 to 1.15.1 #209
- Bump github.com/hashicorp/terraform-plugin-testing from 1.11.0 to 1.13.3 #208
- Bump github.com/hashicorp/terraform-plugin-go from 0.26.0 to 0.28.0 #207
Merged pull requests:
Closed issues:
- Upgrade to latest terraform-plugin-framework #195
- Error Creating Namespace: batchingPolicy Property Not Defined (40000) #194
- Replace use of snake_case with camelCase #183
Merged pull requests:
- Various syntax changes #200 (surminus)
- Bump golang.org/x/net from 0.36.0 to 0.38.0 #199 (dependabot[bot])
- Upgrade terraform-plugin-framework #198 (surminus)
Implemented enhancements:
- Upgraded
ably-control-goto the latest version #196
Merged pull requests:
- Upgrade to ably-control-go 0.6.0 #196 (surminus)
- Bump golang.org/x/net from 0.33.0 to 0.36.0 #193 (dependabot[bot])
- docs(api_key): recent links path #192 (guspan-tanadi)
- Bump golang.org/x/net from 0.23.0 to 0.33.0 #191 (dependabot[bot])
- docs(README): intended terraform links #190 (guspan-tanadi)
Implemented enhancements:
- Expose LiveSync to the terraform provider #180
Closed issues:
- Following instructions for importing configuration doesn't work #181
Merged pull requests:
- Bump golang.org/x/crypto from 0.21.0 to 0.31.0 #188 (dependabot[bot])
- [INF-5307] - Add the MongoDB & PostgreSQL Outbox Ably Ingress Rules #187 (graham-russell)
- Update documentation for importing existing apps to use app id instead of a name #186 (kavalerov)
- Update goreleaser #185 (surminus)
Merged pull requests:
Merged pull requests:
- [INF-3250] - Update Contributing and Provider documentation #176 (graham-russell)
Merged pull requests:
- Bump google.golang.org/grpc from 1.53.0 to 1.56.3 #175 (dependabot[bot])
- Bump golang.org/x/crypto from 0.0.0-20220817201139-bc19a97f63c8 to 0.17.0 #174 (dependabot[bot])
- Bump golang.org/x/net from 0.5.0 to 0.17.0 #173 (dependabot[bot])
- [INF-3250] - Add
revocable_tokensparameter toably_api_keyresource #171 (graham-russell) - Add
exchangeparameter to AMQP External Rule #170 (graham-russell) - docs: bump readme version #169 (AndyTWF)
- Bump google.golang.org/grpc from 1.51.0 to 1.53.0 #165 (dependabot[bot])
Merged pull requests:
Bugfixes:
- The provider now honours "enveloped" settings for HTTP rules in single publish mode
Merged pull requests:
- Append 'terraform-provider-ably/VERSION' to the Ably-Agent HTTP header #156 (lmars)
- add credit to CHANGELOG for external contribution #155 (owenpearson)
Bugfixes:
- Fix importing of rules
- Fix channel filter being required
Bugfixes:
- Fix rules not updating correctly
- Fix resources being recreated when anything changes in app
- Fix terraform plan saying unknown app.id and app.account_id when they are known
- Fix description for apns_use_sandbox_endpoint
- Fix error when TTL is null in amqp/external
- Fix error when setting multiple capabilities
Bugfixes:
- Fixes key not being read from the control API (tete17)
- Fixes reads not regestering when a resource had been deleted outside of terraform
- Fixes deletes failing when a resource had been deleted outside of terraform
This release adds:
- Ably Zapier integration rule via
ably_rule_zapierresource - Ably AWS Lambda integration rule via
ably_rule_lambdaresource - Ably Google Cloud Function integration rule via
ably_rule_google_functionresource - Ably IFTTT integration rule via
ably_rule_iftttresource - Ably Azure Functions integration rule via
ably_rule_azure_functionresource - Ably HTTP integration rule via
ably_rule_httpresource - Ably Kafka integration rule via
ably_rule_kafkaresource - Ably Pulsar integration rule via
ably_rule_pulsarresource - Ably AMQP and external AMQP integration rules via
ably_rule_amqpandably_rule_amqp_externalresources - Updated documentation
Bugfixes:
- Fixes issues with certain fields (including API Key) being available only on the first apply
- Fixes issue with some optional fields not really being optional
The release also includes additional code quality improvements.
This release adds:
- Ably SQS integration rule via
ably_rule_sqsresource - Ably Kinesis integration rule via
ably_rule_kinesisresource - Updated documentation
Bugfixes:
- Fixes issues with certain fields (including API Key) being available only on the first apply
- Fixes issue with some optional fields not really being optional
Initial release to Terraform Registry.
This version includes the following resources:
ably_appably_keyably_namespaceably-queue