Skip to content

v1.16.0

Choose a tag to compare

@TristanSpeakEasy TristanSpeakEasy released this 06 Feb 12:32
792c2b5

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 lint command 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 + .ts files
  • 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, --force flags

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.