Background image
Featured blog post image

UI Enhancements & deepObject Query Support for Terraform

We've made UI improvements across the platform and added support for deepObject query parameters in Terraform.

πŸ§‘β€πŸŽ¨ UI Enhancements
The API Registry and Speakeasy Studio have been refined for better organization and usability, making it easier to track OpenAPI document revisions, navigate SDK structures, and manage OpenAPI specifications.

πŸ—οΈ DeepObject Query Parameter Support for Terraform
Terraform generation now includes basic support for style: deepObject query parameters, allowing for structured API queries with greater flexibility.


πŸ§‘β€πŸŽ¨ UI Enhancements

API Registry redesign

The API Registry page has been updated with improved artifact grouping and a more structured spec representation, making it easier to:

  • Track OpenAPI document revisions, SDK dependencies, and API history at a glance.
  • Share API specs by turning any revision into a public URL.
  • Manage deprecated or inactive APIs with namespace archiving.

Improved README & OpenAPI spec experience

Speakeasy Studio now provides a more structured and accessible outline for SDK README files and OpenAPI spec, improving discoverability and management. You can now jump between key sections like servers, security settings, and paths with ease.


πŸ—οΈ deepObject Query Parameter Support for Terraform

Terraform generation will now begin including parameters with style: deepObject as configurable attributes in (typically data) resources.

This initial support should be considered basic, as union types (such as those in Kong’s API definitions) are currently overly verbose when translated into Terraform attributesβ€”each union Go type appears as an additional attribute nesting layer.

How it works in Terraform

Structured filters like this:

?filter[status]=active&filter[type]=premium

Can now be represented in Terraform like this:

data "example_resource" "query" {
filter = {
status = "active"
type = "premium"
}
}

Why this matters

  • Improves Terraform compatibility with modern API designs.
  • Eliminates manual workarounds for structured query parameters.
  • Lays the groundwork for future enhancements, including better support for union types.

πŸ› οΈ New Features and Bug Fixes πŸ›

Platform

  • πŸ› Fix: Prevented compilation errors caused by special characters in operationId.
  • πŸ› Fix: Fixed handling of null values in maps and arrays for better representation.

PHP

  • 🐝 Feat: Added support for deepObject query parameters.
  • πŸ› Fix: Improved query and path parameter handling.

Go

  • πŸ› Fix: Resolved issues with circular references in Go usage snippets.
  • πŸ› Fix: Prevented Go panics related to const query parameters.

TypeScript

  • πŸ› Fix: Reordered standalone function code for better readability.
  • 🐝 Feat: Introduced APIPromise, a custom thenable type that exposes $inspect() for SDK functions.

Terraform

  • 🐝 Feat: Improved float/int32 number format handling.
  • 🐝 Feat: Enabled custom HTTP headers via provider configuration.
  • πŸ› Fix: Added support for nullable array types in Terraform SDKs.

Java

  • 🐝 Feat: Removed Apache httpclient as a dependency, reducing SDK size and improving maintainability.