5.24.0
(feat): Add an opt-in optional-auth config flag. When enabled, client auth
parameters (bearer token, basic auth username/password, header auth) are
made optional even when the API spec mandates auth on all endpoints
(isAuthMandatory=true). Auth headers are only sent when credentials are
provided. Useful for hand-maintained wrapper clients that authenticate via
external means (e.g. cloud provider credentials). Defaults to false, so
existing behavior is unchanged.
5.23.0
(feat): Add an opt-in runtime_version config flag. When enabled, the SDK version
reported in the telemetry headers (X-Fern-SDK-Version and the version segment
of User-Agent) is resolved at runtime via importlib.metadata.version(<dist>)
instead of being baked in as a literal at generation time. This lets the reported
version track the actually-installed package version — for example when an
external tool such as release-please sets the published version after generation —
rather than a version the SDK may never publish. Falls back to the generation-time
version when the distribution is not installed (e.g. running from source). Disabled
by default, so existing generated output is unchanged, and subject to
omit_fern_headers.
5.22.2
(fix): Fix multipart form list-of-primitive body properties being sent as a single
JSON-encoded field instead of repeated form fields. A property such as
Optional[List[str]] was serialized as json.dumps(jsonable_encoder(value)),
producing one field whose value was the whole JSON array (e.g.
keyterms=["a","b"]); servers that validate each item then rejected it. Such
properties are now passed through jsonable_encoder and handed directly to
httpx’s data=, emitting repeated fields (keyterms=a, keyterms=b). Lists of
objects, maps, and other complex types remain JSON-encoded as before.