Releases: speakeasy-api/openapi
v1.11.1
OpenAPI CLI v1.11.1
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Bug fixes
- ee23a08 fix: correct array sync to preserve identity matching during subset operations
Others
- 6efa364 Merge pull request #78 from speakeasy-api/subomi/fix/fix-syncing-array
- 991c710 refactor: clean up array subset sync test
Full Changelog: v1.11.0...v1.11.1
Released by GoReleaser.
v1.11.0
What's New
Swagger 2.0 Support
This release adds comprehensive support for Swagger 2.0 specifications including full parsing, validation, walking, and an upgrade utility to convert to OpenAPI 3.0.
Core Features:
- Complete Swagger 2.0 data models with marshalling support
- Full validation against Swagger 2.0 specification
- Walking API to traverse Swagger documents with the same pattern as OpenAPI
- Comprehensive test coverage with 227 tests including round-trip testing with real-world specs (Petstore, DocuSign, Docker Engine API)
Upgrade Utility
Automatic conversion from Swagger 2.0 to OpenAPI 3.0 with proper schema mapping:
swagger: "2.0"→openapi: "3.0.0"host/basePath/schemes→serversdefinitions→components.schemasparameters(body) →components.requestBodiessecurityDefinitions→components.securitySchemes- Request/response schema wrapping in
contentobjects - Reference rewriting (
#/definitions/→#/components/schemas/) - 17 upgrade tests covering common and edge case scenarios
CLI Commands
openapi swagger upgrade- Convert Swagger 2.0 to OpenAPI 3.0openapi swagger validate- Validate Swagger 2.0 documents
Additional Improvements
- JSON marshalling: Fixed nul character handling to use proper JSON Unicode escapes (
\u0000) instead of Go-style hex escapes (\x00) - Code quality: Resolved all linting issues (gocritic, staticcheck, unparam, gosec, nilaway)
- Test improvements: All tests use
t.Context()for better lifecycle management
Testing
- ✅ All 227 swagger tests pass
- ✅ All 513 total tests pass (including JSON Schema test suite)
- ✅ Linting passes with 0 issues
- ✅ Round-trip testing with real-world Swagger specs validates correctness
Breaking Changes
None - this is purely additive functionality.
Full Changelog: v1.10.1...v1.11.0
OpenAPI CLI v1.11.0
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Features
Full Changelog: v1.10.1...v1.11.0
Released by GoReleaser.
v1.10.1
Release Notes
Fixes
- Snip TUI select-all/deselect bug
- Clean reachability and tag cleanup
- Documentation updates
Related Pull Request
OpenAPI CLI v1.10.1
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Bug fixes
Others
Full Changelog: v1.10.0...v1.10.1
Released by GoReleaser.
v1.10.0
🎉 New Features
Interactive Commands
This release adds two new powerful interactive commands for working with OpenAPI specifications:
📖
- Browse all API operations in an interactive terminal UI
- vim-style navigation (j/k, gg/G, Ctrl-D/U)
- Color-coded HTTP methods (GET=green, POST=blue, DELETE=red, etc.)
- Fold/unfold operation details with Enter
- View parameters, request bodies, and responses
- Help modal with
?
✂️ openapi spec snip
- Remove operations interactively or via CLI flags
- Interactive mode: Browse and select operations with Space key
- CLI mode:
--operationId ID1,ID2or--operation /path:METHOD - Automatic cleanup of unused components
- Visual feedback with dual-icon system
Library Additions
- New function:
openapi.Snip()- Programmatically remove operations from OpenAPI documents - Reusable TUI framework - Extensible terminal UI system for future commands
Infrastructure Improvements
- Go workspace support (
go.work) - Multi-module build system - TUI dependencies isolated in
cmd/openapi/go.mod - Enhanced test script with summary statistics display
📦 What's Changed
Full Changelog: v1.9.0...v1.10.0
🙏 Credits
Special thanks to the oq project for design inspiration!
OpenAPI CLI v1.10.0
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Features
Full Changelog: v1.9.0...v1.10.0
Released by GoReleaser.
v1.9.0
🔄 Refactor: Extension Pattern Filtering
This release refactors the sanitize functionality's extension filtering to support whitelist (Keep) and blacklist (Remove) modes, making it much easier to maintain sanitization configurations.
🌟 Highlights
Addresses Community Feedback: #62 (comment)
"sanitization works only by excluding something, not including. If so, for many cases it will be harder to maintain... Including will be much easier than excluding" - @zdunecki
Now you can use whitelist mode to keep only specific extensions, making configs much easier to maintain!
✨ New Filtering Modes
- Whitelist mode - Keep only matching extensions
- Blacklist mode - Remove only matching extensions (existing behavior, new format)
- Combined mode - Whitelist overrides blacklist for precise control
- Default - Remove all extensions (unchanged)
📝 Configuration Examples
Whitelist (easier to maintain):
extensionPatterns:
keep:
- "x-speakeasy-*" # Keep only Speakeasy extensionsBlacklist:
extensionPatterns:
remove:
- "x-go-*"
- "x-internal-*"Combined (whitelist overrides blacklist):
extensionPatterns:
keep:
- "x-speakeasy-schema-*" # Keep only schema extensions
remove:
- "x-speakeasy-*" # Remove all other Speakeasy extensions⚠️ Breaking Changes
Configuration format changed from:
extensionPatterns:
- "x-go-*"To:
extensionPatterns:
remove:
- "x-go-*"Note: This is a fast follow after v1.8.0 (released 3 hours ago), so impact should be minimal.
🔗 Pull Request
- #63 - Full details and implementation
📦 What's Changed
- Refactored extension filtering architecture with
ExtensionFilterstruct - Added whitelist (Keep) and blacklist (Remove) pattern support
- Whitelist takes precedence in combined mode
- Updated all documentation and examples
- Added comprehensive test coverage (6 new tests)
- Fixed linter issues (gocritic, nilaway)
Full Changelog: v1.8.0...v1.9.0
OpenAPI CLI v1.9.0
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Others
Full Changelog: v1.8.0...v1.9.0
Released by GoReleaser.
v1.8.0
🧹 New Feature: Sanitize Command
This release introduces a new sanitize command that removes non-standard extensions and unknown properties from OpenAPI specifications, helping you create clean, standards-compliant API documentation.
✨ Key Features
- Extension Removal: Automatically removes all
x-*extensions and other non-standard properties - Pattern Matching: Keep specific extensions using glob patterns (e.g.,
x-speakeasy-*) - Flexible Configuration: Use command-line flags or YAML config files
- Component Cleanup: Optional removal of unused component schemas
- JSON Schema Support: Also cleans non-standard properties from JSON Schema definitions
📖 Usage
Basic usage - remove all extensions:
openapi sanitize openapi.yamlKeep specific extensions:
openapi sanitize openapi.yaml --keep-extensions "x-speakeasy-*,x-internal-*"Use configuration file:
openapi sanitize openapi.yaml --config sanitize-config.yamlExample config file:
extensions:
keep:
- x-speakeasy-*
- x-internal-*
components:
removeUnused: true📚 Documentation
Full documentation and examples are available in openapi/cmd/README.md.
🔧 Implementation Details
- Added
Sanitize()function inopenapi/sanitize.go - Added CLI command in
openapi/cmd/sanitize.go - 10 comprehensive test cases with various scenarios
- Integrated with CI pipeline
🙏 Credits
This feature was requested and inspired by @zdunecki in Issue #46.
Full Changelog: v1.7.12...v1.8.0
OpenAPI CLI v1.8.0
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Features
Bug fixes
Full Changelog: v1.7.12...v1.8.0
Released by GoReleaser.
v1.7.12
What's Changed
Bug Fixes
- Fixed parent directory references (
../) not being bundled correctly during the bundling process (#58) - References now properly converted to absolute paths for consistent deduplication and proper bundling
- Fixed issue where
../references remained in bundled output instead of being resolved
Code Quality Improvements
- Added helper functions to eliminate code duplication:
isInternalReference()- eliminates ~22 lines of duplicationextractSimpleNameFromReference()- eliminates ~60 lines of duplicationfindCircularReferenceMatch()- eliminates ~26 lines of duplication
- Removed unused
parentLocationparameter (~110 lines total reduction)
Tests
- Added comprehensive test case for issue #50 with parent directory references
- All bundle and inline tests passing (8/8)
Full Changelog: v1.7.11...v1.7.12
Fixes #50
OpenAPI CLI v1.7.12
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Bug fixes
- 70b4b68 fix: convert references to absolute paths for proper parent directory handling and deduplication (#58)
Others
Full Changelog: v1.7.11...v1.7.12
Released by GoReleaser.
v1.7.11
Changes
- chore(jsonschema): Add convenience methods for schema and boolean value access (#57)
- Added semantic methods
IsSchema(),GetSchema(),IsBool(),GetBool()to replace less intuitiveLeft/Rightterminology - Updated internal usage throughout the
jsonschema/oas3package - Improved API clarity and developer experience
- Added semantic methods
Full Changelog
OpenAPI CLI v1.7.11
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Others
Full Changelog: v1.7.10...v1.7.11
Released by GoReleaser.
v1.7.10
Full Changelog: v1.7.9...v1.7.10
OpenAPI CLI v1.7.10
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Bug fixes
- c42a384 fix: use model's RootNode instead of parameter for consistency in GetMapKeyNodeOrRoot methods
Full Changelog: v1.7.9...v1.7.10
Released by GoReleaser.
v1.7.9
Full Changelog: v1.7.8...v1.7.9
OpenAPI CLI v1.7.9
This release includes binaries for Linux, macOS, and Windows on both x86_64 and ARM64 architectures.
Installation
Download the appropriate binary for your platform from the assets below, extract it, and add it to your PATH.
Changes
Changelog
Bug fixes
- b1bc1fe fix: introduced methods for accessing map key nodes for getting line numbers and improved agent testing behaviour
Full Changelog: v1.7.8...v1.7.9
Released by GoReleaser.