> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. ## 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. `fern check` now warns (`valid-base-url-env`) when `base-url-env` is set but no environments are declared, since the variable only overrides the default environment and would otherwise be dropped silently. ## 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. ```yaml products: - display-name: Ferns path: products/ferns.yml - display-name: Cacti path: products/cacti.yml changelog: changelog: ./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. **`(internal):`** Local generation can now run the generator container with a specific network mode, set with the FERN\_GENERATOR\_NETWORK environment variable. Setting it to `none` runs the generator with no network access, which air-gapped environments require. Unset, container networking is unchanged. **`(internal):`** A generator image can now be pinned by digest in generators.yml, for example `name: fern-python-sdk@sha256:...`. The digest is passed through to the container runtime unchanged so the exact pinned image runs, while the generator name used for IR version resolution is unaffected. A malformed digest is rejected with an error naming generators.yml. Tag-based references are unchanged. **`(internal):`** Setting the USE\_FERN\_RC environment variable runs the on-prem adapter's current pre-release instead of the version the workspace asks for, for following the adapter internally before its release versions exist. It applies only to an invocation that already resolves to the adapter, and a digest-pinned image still wins. Unset, the version in generators.yml is what runs. **`(internal):`** The on-prem adapter cutover check now compares versions with semver rather than a hand-rolled parser, so a partial version like `6` or `v6.1` is read correctly. A version semver cannot read at all, such as the `latest` that local generation defaults to, means Fern's own generator: selecting the adapter is done by naming its version. **`(internal):`** When a generator image is pinned by digest, the generation log now also reports the version declared in generators.yml. A digest identifies the artifact but not which generator release it is, which made a pinned run hard to correlate back to a version. **`(internal):`** FERN\_RC\_NAMESPACE overrides the namespace the on-prem adapter's pre-release is pulled from, defaulting to `fernenterprise`, for pointing a run at a staging or personal namespace without editing generators.yml. Only applies when USE\_FERN\_RC is set.