5.117.0

(feat): Add support for playground-specific auth documentation. Set x-fern-playground-description on an OpenAPI security scheme (or playground-docs on a Fern definition auth scheme) to render text below that scheme’s input in the API playground, leaving the API reference’s authorization description (description/docs) untouched. Applies to bearer, basic, header, and OAuth client-credentials schemes. Supports a markdown subset: [label](url) links (absolute or relative), bare URLs, inline code, and blank-line-separated paragraphs.

(feat): Write fern sdk migrate output as sparse YAML and default to sdk-config.yml beside the selected generators.yml when --output is omitted, without modifying the existing Fern project files. Source-derived environments and authentication remain in the referenced API specifications instead of being duplicated in SDK Config, empty global configuration blocks are omitted, and explicit Fern overrides are preserved.

5.116.0

(feat): Add github.workflows: false to generators.yml (defaults to true). When disabled, generated .github/workflows/* files are not committed to the SDK repository: existing workflow files are left untouched and newly generated ones are skipped. Useful when the GitHub App used to push does not have the workflows permission.

5.115.0

(feat): fern generate --local now supports FERN_CA_BUNDLE: set it to a PEM CA bundle on the host and the file is mounted read-only into the generator container with NODE_EXTRA_CA_CERTS, SSL_CERT_FILE and GIT_SSL_CAINFO pointing at it. This lets network calls made inside the generator container succeed behind a corporate TLS-interception proxy: pnpm install (TypeScript), go mod tidy (Go), and dotnet format’s implicit NuGet restore (C#).

SSL_CERT_FILE/GIT_SSL_CAINFO replace rather than extend the trust store, so the file must be a complete bundle — the public roots plus your corporate CA. On Linux the system maintains one at /etc/ssl/certs/ca-certificates.crt; elsewhere you can build one from the roots Node already ships:

node -e ‘console.log(require(“tls”).rootCertificates.join(“\n”))’ > ~/certs/fern-ca-bundle.crt cat corp-root.pem >> ~/certs/fern-ca-bundle.crt

The path is a bind-mount source resolved by the container runtime rather than by the CLI, so it has to be visible to that runtime. Before generating, the CLI now starts a short-lived probe container to confirm the bundle is really visible inside it, and fails with guidance for your platform when it is not — this catches Colima, podman machine and Docker-in-Docker, where an unresolvable bind source is silently replaced with an empty directory instead of raising an error.

The JVM ignores these variables, so the CLI warns for Java generators, whose Gradle steps need FERN_JAVA_SKIP_FORMATTING=true on such networks.

(fix): Environment variables passed to local generator containers are no longer wrapped in literal quote characters (-e KEY="value"), which previously leaked the quotes into the value seen by the generator.