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:

1openapi: 3.1.0
2info:
3 title: My API
4 version: 1.0.0
5x-fern-webhook-signature:
6 type: hmac
7 header: x-webhook-signature
8 algorithm: sha256
9 encoding: hex
10 signature-prefix: "sha256="
11 payload-format:
12 components:
13 - timestamp
14 - body
15 delimiter: "."
16 timestamp:
17 header: x-webhook-timestamp
18 format: unix-seconds
19 tolerance: 300
20webhooks:
21 orderCreated:
22 post:
23 operationId: orderCreated
24 requestBody:
25 required: true
26 content:
27 application/json:
28 schema:
29 $ref: '#/components/schemas/OrderEvent'

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