跳到导航

3.85.2

(chore): Regenerate internal SDKs with the latest TypeScript SDK generator to pick up improvements and fixes.

3.85.0

(feat): Auto-correct incorrect fern-api/ Docker org prefix to fernapi/ in generator names. When a generator is specified with fern-api/ (the GitHub/npm org) instead of fernapi/ (the Docker Hub org), the CLI now automatically corrects it and prints a warning. This applies to CLI commands (--generator flag) and generators.yml configuration files.

3.84.0

(feat): Add workspace validation caching and skipValidation flag to improve toFernWorkspace() performance. A global validation cache eliminates redundant JSON schema validation and Zod parsing when the same files are processed by multiple workspace instances. The skipValidation option allows callers to bypass JSON schema validation for known-good files.

3.83.3

(fix): Preserve existing README.md during local SDK generation when the generator does not produce one. Previously, copyGeneratedFiles deleted all files before copying generator output, so if README generation failed silently the file was removed from the target repository. The file copy methods now skip deleting README.md when the generated output directory does not include it.

3.83.2

(chore): Improve CLI startup performance by loading workspace files concurrently.

3.83.1

(fix): Fix S3 signature mismatch for docs assets outside fern/ folder. Paths containing ”../” are now sanitized to prevent HTTP client URL normalization from breaking S3 presigned URLs.

3.83.0

(feat): Add webhook signature verification support. Webhooks can now declare a signature configuration with type: hmac or type: asymmetric, including algorithm, encoding, signature prefix parsing, payload format composition, and timestamp-based replay protection. Supported via Fern Definition signature field, OpenAPI x-fern-webhook-signature extension, and the IR WebhookSignatureVerification union.

OpenAPI example — set x-fern-webhook-signature at the document level so all webhooks inherit the same signature configuration:

openapi: 3.1.0
info:
title: My API
version: 1.0.0
x-fern-webhook-signature:
type: hmac
header: x-webhook-signature
algorithm: sha256
encoding: hex
signature-prefix: "sha256="
payload-format:
components:
- timestamp
- body
delimiter: "."
timestamp:
header: x-webhook-timestamp
format: unix-seconds
tolerance: 300
webhooks:
orderCreated:
post:
operationId: orderCreated
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderEvent'

Individual webhook operations can also override the document-level default by specifying their own x-fern-webhook-signature configuration inline.