v1.16.0
What's New
This release introduces a complete linting system for OpenAPI specifications, including a custom rules runtime and a config converter for migrating from existing setups.
Key Features
- Linter Framework: Configurable rule system with severity levels (error, warning, hint)
- 63 Linting Rules: Comprehensive coverage across style, semantic, and OWASP security categories
- CLI Integration: New
openapi lintcommand for validating specifications - Custom Rules Runtime: Write rules in TypeScript, transpiled by esbuild, executed in goja — no Node.js dependency
- Config Converter: Migrate Spectral/Vacuum/legacy configs to native format via
openapi spec lint convert-rules - Auto-documentation: Automatic generation of rule documentation
Rule Categories
- Style Rules (26): Documentation and naming conventions (descriptions, contact info, kebab-case paths, tag ordering)
- Semantic Rules (11): Structural correctness (path parameters, enum consistency, unused components, schema constraints)
- OWASP Security Rules (26): Security best practices (auth validation, size limits, rate limiting, credential exposure prevention)
Custom Rules Runtime
Write linter rules in TypeScript using the @speakeasy-api/openapi-linter-types package:
- Typed access to the full OpenAPI document model
- Source map support for readable error locations
- Configurable timeouts and structured logging
Config Converter
- Two-stage pipeline:
Parse()→ IntermediateConfig →Generate()→lint.yaml+.tsfiles - Supports Spectral, Vacuum, and legacy Speakeasy config formats
- Maps 33 Spectral built-in rules to native equivalents
- CLI:
openapi spec lint convert-rules <config-file>with--output,--rules-dir,--dry-run,--forceflags
Notes
- No breaking changes to existing APIs
- Linter is opt-in via CLI command
Full Changelog: v1.15.1...v1.16.0
OpenAPI CLI v1.16.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.
Full Changelog: v1.15.1...v1.16.0
Released by GoReleaser.