Skip to navigation

Changelog

5.126.0

(feat): Every entry of a schema-level examples array on an OpenAPI request or response body schema now becomes a separate, selectable example in the API reference (labelled Example 1, Example 2, …) whenever the media type object does not define its own example/examples. Previously only the first schema-level example was used.

5.125.3

(fix): Preserve OpenAPI top-level tags[].description as the package description when importing OpenAPI specs with the default parser, so tag descriptions reach the docs API definition.

5.125.2

(chore): No functional changes. Verifies the CLI release pipeline after the beta publish step was added.

5.125.1

(fix): dynamic IR now sets wrapperProperty on auth schemes when the API has multiple auth schemes so snippet generators can nest constructor options the way generated SDKs expect.

5.125.0

(feat): Add base-url-env to the api.yml environments configuration and the root-level x-fern-base-url-env OpenAPI extension. The value is the name of an environment variable (e.g. MY_API_BASE_URL) that generated SDKs read to override the base URL, mirroring how auth credentials can already be sourced from environment variables. When both are present, base-url-env in generators.yml wins over the spec’s x-fern-base-url-env; overriding api.environments alone does not discard the spec’s value. The setting is carried through to the IR as environments.baseUrlEnvVar; SDK generators must be updated to honor it.

5.124.0

(feat): Add a top-level changelog key to docs.yml for multi-product sites. The changelog is shared by every product, served at the site root (e.g. /changelog) instead of under a product slug, and does not appear in the product switcher.

products:
- display-name: Ferns
path: products/ferns.yml
- display-name: Cacti
path: products/cacti.yml
changelog:

5.123.1

(fix): The OpenAPI importer now unions required across all allOf branches. Previously, when a child allOf branch redeclared a property that a parent branch marked as required (without listing it in its own required), the property was imported as optional. Required nullable properties are now correctly represented as nullable in the IR rather than optional.

5.123.0

(feat): Configure Postman’s on-prem SDK generators from sdk-config.yml on local generation. A generator at or above its language’s cutover version reads the migrated configuration written by fern sdk migrate, and an unmigrated workspace is told how to migrate rather than generated from generators.yml. Generators below the cutover continue to run from generators.yml unchanged.

5.122.0

(feat): Preserve OpenAPI xml metadata when importing object schemas. Schemas with an xml object are emitted with encoding.xml (name, namespace, prefix) in the IR, and their properties carry ObjectProperty.xml describing whether they serialize as an attribute, text body, or child element (including wrapped lists and the new x-fern-xml-list-separator / x-fern-xml-text extensions). The same metadata can be expressed in Fern Definition files via encoding.xml.

5.121.2

(fix): Autogenerated examples now include required nullable properties with an explicit null instead of omitting them. Previously these properties were treated as optional, so generated SDK examples and wire tests could omit a key that the serialization layer requires.

5.121.1

(fix): fern generate --local without a FERN_TOKEN (and air-gapped remote generation) now enables pagination and OAuth client generation by default instead of silently disabling them. Previously the Python SDK’s paginated endpoints returned a plain response object while the README documented a pager, because the org lookup that enables these features was skipped.

5.121.0

(feat): Add an optional disclaimer field to the ai-search/ai-chat docs.yml config. It overrides the disclaimer shown in the Ask Fern chat (default: “Responses are generated using AI and may contain mistakes.”).

5.120.5

(fix): Fix theme.tabs.placement / theme.tabs.alignment being sent to the docs publishing API in lowercase, which caused fern generate --docs to fail with config.theme.tabs: Invalid input even though fern check passed.

5.120.4

(fix): Honor required on OpenAPI response headers: header value types are only wrapped in optional when the Header Object does not declare required: true, matching the request-parameter behavior.

5.120.3

(fix): fern check now validates changelogs inside a product’s nested versions against their full /product/version/... URL, so a changelog made servable by either the product or version slug (e.g. /platform/release-notes/updates) is no longer rejected by the valid-changelog-slug rule. Previously the docs validator never traversed product.versions files.

5.120.2

(fix): fern check no longer rejects a changelog whose feed URL is made servable by its parent product or version slug (e.g. a “Release Notes” product with an “Updates” changelog tab at /release-notes/updates). The valid-changelog-slug rule now includes the product/version URL segment when checking for an allowlisted segment and reports the full resolved path.

5.120.1

(fix): Support sdk-gen-api generation for Fern Definition workspaces with no source specs.

(fix): Allow sdk-gen-api runtime bundles up to the existing 100 MiB decoded payload budget.

5.120.0

(feat): Add an opt-in OpenAPI setting respect-operation-id-word-boundaries. When enabled, operation ids are split on every word boundary (camelCase transitions and digits) when deriving endpoint names, so a redundant tag prefix is stripped and the remaining words are preserved: with tag sharing, Sharing_ListFolderMembers becomes listFolderMembers instead of listfoldermembers, and with tag files, filesGetThumbnailV2 becomes getThumbnailV2 instead of keeping the tag prefix. This applies to the v3 OpenAPI parser, so it affects generated API reference URLs. Defaults to false, since enabling it changes the URLs of already published pages.

5.119.2

(fix): Convert OpenAPI response header schemas (including header content schemas when respect-parameter-content is enabled) into typed references instead of collapsing them to optional<string>. Object, enum, array, and $ref response headers now carry their schema into IR, so docs render expandable schema properties on response headers just like request headers.

5.119.1

(fix): Use schema-level example/examples for OpenAPI parameters (including JSON-encoded object headers resolved via respect-parameter-content) when the parameter itself has no example, instead of autogenerating one from property types.