# Fern > Documentation for Fern ## Pages - [Fern Documentation](fern-documentation.md) - [Build with Fern](build-with-fern.md): Build better developer experiences. Generate SDKs in TypeScript, Python, Go, Java, C#, PHP, Ruby, Swift & Rust. Creat... - [SDKs overview](sdks-overview.md): Build multi-language SDKs with Fern's generator platform. Support TypeScript, Python, Go, Java, .NET, PHP, Ruby, Swif... - [How SDKs work](how-sdks-work.md): Understand Fern's SDK generation process. Cloud-based workflow transforms API specifications into production-ready cl... - [Quickstart](quickstart.md): Learn how to generate SDKs with Fern. Install the CLI, initialize your project with OpenAPI or Fern Definition, and s... - [Project structure](project-structure.md): Learn how to structure your SDK project with Fern. Set up multi-repo architecture, configure generators.yml, and orga... - [Adding custom code](adding-custom-code.md): Extend Fern-generated SDKs with custom methods, logic, and dependencies. Use .fernignore to protect your code from be... - [Custom workflows](custom-workflows.md): .github/workflows/test.yml - [Custom code](custom-code.md): src/CustomClient.ts - [Capabilities](capabilities.md): Fern SDK capabilities include type safety, auto-pagination, OAuth token refresh, retries with backoff, webhook verifi... - [Fern Autorelease](fern-autorelease.md): Automate SDK releases with Fern Autorelease. Detects API spec changes, regenerates SDKs, determines version bumps, an... - [TypeScript quickstart](typescript-quickstart.md): Create TypeScript client libraries with Fern SDK generator. Quick guide to configuring generators.yml and generating ... - [TypeScript configuration](typescript-configuration.md): Configure TypeScript SDK generation with Fern. Customize namespaces, enable serde layer, manage dependencies, and con... - [Publishing to npm](publishing-to-npm.md): Learn how to publish your Fern TypeScript SDK to npm using OIDC or token-based authentication. Complete guide with Gi... - [Adding custom code](adding-custom-code-2.md): Learn how to add custom logic, methods, and dependencies to your TypeScript SDK with Fern. Extend generated clients e... - [Dynamic authentication](dynamic-authentication.md): Implement dynamic authentication patterns like short-lived JWT signing in TypeScript SDKs using custom fetcher middle... - [TypeScript serde layer](typescript-serde-layer.md): Learn how to enable the TypeScript serde layer in Fern SDK generator to transform API field names to camelCase and va... - [January 30, 2026](january-30-2026.md): **`(chore):`** Update oxfmt to 0.27.0, oxlint to 1.42.0, and oxlint-tsgolint to 0.11.4. - [January 29, 2026](january-29-2026.md): **`(fix):`** Fix`outputSrcOnly`not working with`local-file-system`output mode when the organization has - [January 26, 2026](january-26-2026.md): **`(fix):`** Remove check if body is`null`or`undefined`. If`null`, it is valid JSON`null`, and if`undefined`, i... - [January 22, 2026](january-22-2026.md): **`(fix):`** Fix optional query parameters with date/datetime types throwing serialization errors when - [January 21, 2026](january-21-2026.md): **`(feat):`** Enable forward compatible enums when the serde layer is enabled. Previously, the - [January 14, 2026](january-14-2026.md): **`(fix):`** Fix nullable enum query parameters to be dropped when undefined is passed instead of being - [January 13, 2026](january-13-2026.md): **`(chore):`** Update linters and formatters to latest versions. - [January 9, 2026](january-9-2026.md): **`(fix):`** Fix wire test mock server to ignore cursor mismatches in pagination tests. - [January 8, 2026](january-8-2026.md): **`(fix):`** Fix fetcher tests to use`.trim()`for platform-agnostic line ending comparisons. - [January 7, 2026](january-7-2026.md): **`(fix):`** Fix GitHub repository URL format in package.json to use`git+ format, - [January 6, 2026](january-6-2026.md): **`(fix):`** Fix export of inline enum const values from request types. Previously, request types with inline enums - [January 5, 2026](january-5-2026.md): **`(fix):`** Fix repository URL format in package.json for self-hosted GitHub configurations to use full https URL - [December 22, 2025](december-22-2025.md): **`(chore):`** Simplify optional query parameter handling by removing unnecessary null/undefined checks. - [December 19, 2025](december-19-2025.md): **`(feat):`** Add support for endpoint-level security configuration via new`endpoint-security`auth requirement type. - [December 18, 2025](december-18-2025.md): **`(fix):`** Fix wire test generation for paginated endpoints. The test generator now correctly uses wire format - [December 17, 2025](december-17-2025.md): **`(fix):`** Fix wire test generation for OAuth endpoints with reference request bodies. - [December 16, 2025](december-16-2025.md): **`(fix):`** Fix bug where request wrapper was set as body when the body property inside the request wrapper should'v... - [December 15, 2025](december-15-2025.md): **`(feat):`** Improve the custom pagination code. - [December 12, 2025](december-12-2025.md): **`(feat):`** Run`npm pkg fix`after saving package.json to disk to normalize the package.json file. - [December 10, 2025](december-10-2025.md): **`(fix):`** Fix reference.md generation for APIs with multiple root-level endpoints. - [December 9, 2025](december-9-2025.md): **`(feat):`** Add support for custom pagination with a dedicated`CustomPager`class, similar to the C# SDK generator. - [December 8, 2025](december-8-2025.md): **`(chore):`** The README now demonstrates how to pass custom headers to both the client constructor and individual e... - [December 5, 2025](december-5-2025.md): **`(feat):`** Refactor auth options to be defined in individual AuthProvider classes instead of directly in BaseClien... - [December 4, 2025](december-4-2025.md): **`(feat):`** Add support for OAuth token override, allowing users to skip the OAuth flow by providing a pre-generate... - [In generators.yml](in-generatorsyml.md): groups: - [December 2, 2025](december-2-2025.md): **`(chore):`** Added`writeUnitTests`config option to control unit test generation. Both`writeUnitTests`and`gener... - [December 1, 2025](december-1-2025.md): **`(fix):`** Fix WebSocket client to only generate auth code when the channel has`auth: true`. - [November 30, 2025](november-30-2025.md): **`(fix):`** Improve React Native compatibility in the SDK runtime and fetcher: - [November 26, 2025](november-26-2025.md): **`(fix):`** Avoid infinite recursion when an auth client is incorrectly configured to use itself for authentication. - [November 23, 2025](november-23-2025.md): **`(feat):`** Implement auth provider architecture for all auth schemes, replacing inline auth logic. - [November 21, 2025](november-21-2025.md): **`(fix):`** Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local work... - [November 20, 2025](november-20-2025.md): **`(fix):`** Fix validateAndTransformExtendedObject to add null/undefined guard. - [November 19, 2025](november-19-2025.md): **`(feat):`** Add support for OAuth and inferred auth in generated wire tests. - [November 18, 2025](november-18-2025.md): **`(fix):`** Default to mock an endpoint once when using`msw`for wire tests. - [November 17, 2025](november-17-2025.md): **`(fix):`** Fix generator to not generate CONTRIBUTING.md file if config.whitelabel is true. - [In generators.yml](in-generatorsyml-2.md): groups: - [November 14, 2025](november-14-2025.md): **`(feat):`** Add`offsetSemantics`flag, which changes how the`step`attribute in`x-fern-pagination`is interpreted. - [November 13, 2025](november-13-2025.md): **`(fix):`** Improve SDK generation performance. - [November 11, 2025](november-11-2025.md): **`(feat):`** Add`parameterNaming`configuration option to control how parameter names are generated in the SDK. - [November 10, 2025](november-10-2025.md): **`(fix):`** Set`Accept`header for JSON (`application/json`), text (`text/plain`), and other (`*/*`) response types. - [November 8, 2025](november-8-2025.md): **`(fix):`** Fix circular type alias errors (TS2456) in undiscriminated unions containing self-recursive Record types... - [November 7, 2025](november-7-2025.md): **`(fix):`** Fix circular type alias errors (TS2456) in undiscriminated unions containing self-recursive Record types. - [November 6, 2025](november-6-2025.md): **`(fix):`** Fix issue where logs were logged even when the respective log level was disabled. - [November 5, 2025](november-5-2025.md): **`(fix):`** Always use vitest.config.mts for consistency across all generated SDKs. This ensures Vitest v3 can load ... - [November 4, 2025](november-4-2025.md): **`(feat):`** Added Generation Metadata file to output. - [November 3, 2025](november-3-2025.md): **`(feat):`** Add support for forward-compatible enums. - [In generators.yml](in-generatorsyml-3.md): groups: - [October 31, 2025](october-31-2025.md): **`(fix):`**`hasNextPage()`now factors in`offset.step`if provided for offset-based pagination - [October 29, 2025](october-29-2025.md): **`(feat):`** Add`Page`to the top-level`exports.ts`files, which allows for`import { Page } from '...';`to work. - [October 28, 2025](october-28-2025.md): **`(feat):`** Improve pnpm and yarn caching in generator Docker images. - [October 21, 2025](october-21-2025.md): **`(feat):`** Add support for [publishing to npmjs.org using OIDC from GitHub Actions](https://docs.npmjs.com/trusted... - [October 20, 2025](october-20-2025.md): **`(feat):`** Generate file upload section in README.md for multipart-form file uploads. - [October 17, 2025](october-17-2025.md): **`(fix):`** Fix a compilation error when a path parameter is nullable or optional. - [October 16, 2025](october-16-2025.md): **`(fix):`** Improve the performance of JSON serialization and parsing when`useBigInt`is enabled. - [October 14, 2025](october-14-2025.md): **`(feat):`** Add support for the`Uploadable.FromPath`and`Uploadable.WithMetadata`types to upload files with meta... - [October 13, 2025](october-13-2025.md): **`(fix):`** Fix default request parameter value unwrapping for`nullable<>`. - [October 10, 2025](october-10-2025.md): **`(fix):`** Include`extra-properties`(aka.`additionalProperties`) when generating examples for objects and inline... - [October 9, 2025](october-9-2025.md): **`(fix):`** Filter out`undefined`from lists, maps, sets, and object properties when generating examples. - [October 8, 2025](october-8-2025.md): **`(feat):`** Use Biome for formatting instead of Prettier, and also use Biome to check (fix) the generated code. - [October 7, 2025](october-7-2025.md): **`(feat):`** Enable`verbatimModuleSyntax`in *tsconfig.esm.json* to increase TypeScript performance for the ESM bui... - [October 3, 2025](october-3-2025.md): **`(fix):`** Use`// ... file header ...`file header instead of`/** ... file header ... */`. - [October 1, 2025](october-1-2025.md): **`(feat):`** Log error when`testFramework: vitest`is used alongside`useBigInt: true`,`streamType: wrapper`, or`... - [September 30, 2025](september-30-2025.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 29, 2025](september-29-2025.md): **`(fix):`** If`useLegacyExports`is`true`, reference`../tsconfig.json`instead of`../tsconfig.base.json`in`tes... - [September 26, 2025](september-26-2025.md): **`(fix):`** Format GitHub Actions workflow files using prettier. - [September 25, 2025](september-25-2025.md): **`(fix):`** Fix`bundle: true`mode - [September 24, 2025](september-24-2025.md): **`(feat):`** Add`generateEndpointMetadata`configuration to generate endpoint metadata for each endpoints. - [In generators.yml](in-generatorsyml-4.md): groups: - [September 23, 2025](september-23-2025.md): **`(fix):`** Rely on the version of pnpm in *package.json* instead of hardcoding the version in GitHub workflows. - [September 19, 2025](september-19-2025.md): **`(feat):`**`consolidateTypeFiles`consolidates all folders of type files into a single file. - [September 18, 2025](september-18-2025.md): **`(fix):`** Fix incorrect pnpm commands inside of ci.yml - [September 17, 2025](september-17-2025.md): **`(feat):`** Use Vitest instead of Jest for running tests. - [September 16, 2025](september-16-2025.md): **`(fix):`** Generate correct types for pagination with inline types. - [September 15, 2025](september-15-2025.md): **`(fix):`** The`_getAuthorizationHeader`method now returns`Promise`when oauth is enabled. - [September 12, 2025](september-12-2025.md): **`(feat):`** Use cached`prettier`to format project instead of yarn/pnpm installing all dependencies during generat... - [September 9, 2025](september-9-2025.md): **`(feat):`** Retries now check`Retry-After`and`X-RateLimit-Reset`before defaulting to exponential backoff. - [September 5, 2025](september-5-2025.md): **`(fix):`** Allow`null`values in headers in addition to`undefined`to explicitly unset a header. - [September 3, 2025](september-3-2025.md): **`(fix):`** Use autogenerated error examples if user does not provide error examples for generating wire tests. - [September 2, 2025](september-2-2025.md): **`(feat):`** Introduce a custom configuration called`exportAllRequestsAtRoot`which exposes all request - [August 28, 2025](august-28-2025.md): **`(fix):`** Grab overrideable root header value from Client as default. - [August 27, 2025](august-27-2025.md): **`(feat):`** Add support for autogenerating simple tests for pagination endpoints. - [August 26, 2025](august-26-2025.md): **`(feat):`** Generator passes readme configs apiName, disabledSections, and whiteLabel - [August 22, 2025](august-22-2025.md): **`(fix):`** Introduce a custom configuration called`flattenRequestParameters`which collapses referenced bodies int... - [August 21, 2025](august-21-2025.md): **`(feat):`** Add`flattenRequestParameters`to the SDK generator config. - [In generators.yml](in-generatorsyml-5.md): groups: - [August 15, 2025](august-15-2025.md): **`(feat):`** Log warning when`noSerdeLayer`is`false`and`enableInlineTypes`is`true`. - [August 13, 2025](august-13-2025.md): **`(feat):`** Choose to use`pnpm`or`yarn`as the package manager for the generated SDK. - [In generators.yml](in-generatorsyml-6.md): groups: - [August 12, 2025](august-12-2025.md): **`(feat):`** Implement inferred bearer authentication. - [August 6, 2025](august-6-2025.md): **`(fix):`** Export BinaryResponse using`export type { BinaryResponse } ...`syntax to fix an issue with the SWC com... - [August 4, 2025](august-4-2025.md): **`(fix):`** Requests and responses with no body should not be asserted as JSON in wire tests. - [August 1, 2025](august-1-2025.md): **`(feat):`** Improve logging inside of wire tests for when a JSON body fails to parse to JSON. - [July 30, 2025](july-30-2025.md): **`(fix):`** Fix inline types inside of multipart-form requests - [July 25, 2025](july-25-2025.md): **`(fix):`** Include root variables in code snippet generation for client instantiation. - [July 24, 2025](july-24-2025.md): **`(chore):`** Update form-data version to 4.0.4 to avoid vulnerability. - [July 23, 2025](july-23-2025.md): **`(chore):`** Add additional query string parameters section to the generated README.md file. - [July 22, 2025](july-22-2025.md): **`(chore):`** Update README.md generation to be more accurate - [July 18, 2025](july-18-2025.md): **`(chore):`** Bump the docker image for the generator to node:22.12-alpine3.20 - [July 17, 2025](july-17-2025.md): **`(feat):`** Support uploading file-like types for binary upload endpoints (not multipart-form): - [July 15, 2025](july-15-2025.md): **`(fix):`** Escape strings containing`*/`inside of JSDoc comments to avoid premature JSDoc block ending. - [July 10, 2025](july-10-2025.md): **`(fix):`** Fix ts readme snippet where const was reassigned. Changed to let. - [July 9, 2025](july-9-2025.md): **`(fix):`** Parse HTTP error bodies as JSON if the response content-type header is JSON, otherwise fallback to text. - [July 8, 2025](july-8-2025.md): **`(fix):`** Fix an issue where a property set to`undefined`would not match with a property that is missing in the ... - [July 4, 2025](july-4-2025.md): **`(fix):`** Fixes a compile issue when WebSocket connect methods require query parameters with special characters. - [July 3, 2025](july-3-2025.md): **`(fix):`** Fixes bug with query parameter and path parameter serialization in URL for WebSocket channels. - [In generators.yml](in-generatorsyml-7.md): groups: - [July 2, 2025](july-2-2025.md): **`(feat):`** Split up Jest configuration into multiple projects. - [July 1, 2025](july-1-2025.md): **`(fix):`** Add`omitFernHeaders`configuration to omit Fern headers from the generated SDK. - [June 30, 2025](june-30-2025.md): **`(feat):`** Add default values to request parameters. - [In generators.yml](in-generatorsyml-8.md): groups: - [June 27, 2025](june-27-2025.md): **`(feat):`** Add`fetchSupport`configuration which lets you choose between`node-fetch`and`native`. - [June 22, 2025](june-22-2025.md): **`(feat):`** Add`formDataSupport`configuration which lets you choose between`Node16`and`Node18`. - [June 19, 2025](june-19-2025.md): **`(feat):`** You can now specify whether to return the`BinaryResponse`type for binary response endpoints. - [June 18, 2025](june-18-2025.md): **`(fix):`** **jest.config.mjs** now only maps relative path modules that end on`.js`to their`.ts`equivalent. - [June 16, 2025](june-16-2025.md): **`(feat):`** Allow users to specify the path they'd like to generate the SDK to. - [In generators.yml](in-generatorsyml-9.md): groups: - [June 13, 2025](june-13-2025.md): **`(feat):`** You can now specify whether to return streams using the stream wrapper, or return the web standard stream. - [June 11, 2025](june-11-2025.md): **`(feat):`** Add support for websocket connect methods with path parameters in the TypeScript generator - [June 5, 2025](june-5-2025.md): **`(feat):`** You can now pass in headers to the root client. These headers will be merged with service and endpoint ... - [June 4, 2025](june-4-2025.md): **`(feat):`** Add support for generating the full project when using the filesystem output mode. - [June 3, 2025](june-3-2025.md): **`(feat):`** Generate tests to verify the SDK sends and receives HTTP requests as expected. - [May 14, 2025](may-14-2025.md): **`(fix):`** Fix property lookup in inherited schemas during snippet generation for object schemas. - [May 13, 2025](may-13-2025.md): **`(fix):`** Add support for the custom introduction setting in the generated README.md. - [May 3, 2025](may-3-2025.md): **`(fix):`** Fixed an issue with ts-morph where creating an ifStatement with empty conditions array caused errors in ... - [April 22, 2025](april-22-2025.md): **`(fix):`** Fix issue where the *runtime.ts* file was missing when other files were trying to import it. - [April 21, 2025](april-21-2025.md): **`(fix):`** Fix minor type issue for polyfilling Headers in Node 16 and below. - [April 14, 2025](april-14-2025.md): **`(feat):`** Add`rawResponse`property to JavaScript errors. - [April 8, 2025](april-8-2025.md): **`(feat):`** Add`"packageManager": "yarn@1.22.22"`to *package.json*. - [April 7, 2025](april-7-2025.md): **`(feat):`** All endpoint functions now return an`HttpResponsePromise`instead of a`Promise`. - [March 27, 2025](march-27-2025.md): **`(fix):`** Significantly improve performance of SDK generation when the`useLegacyExports`config is`false`. For a... - [March 19, 2025](march-19-2025.md): **`(fix):`** Increase the timeout used in the generated`webpack.test.ts`file. - [March 18, 2025](march-18-2025.md): **`(fix):`** Fix issue where IdempotentRequestOptions is not generated in the client namespace. - [March 10, 2025](march-10-2025.md): **`(fix):`** This PR includes several fixes to the generated`Socket.ts`file when websocket client code generation i... - [March 6, 2025](march-6-2025.md): **`(feat):`** This PR enables the Typescript generator to produce Websocket SDK endpoints. This can be enabled by add... - [January 28, 2025](january-28-2025.md): **`(fix):`** Form data encoding now correctly handles array and object values by encoding each property value as a se... - [January 21, 2025](january-21-2025.md): **`(fix):`** When custom config`useBigInt`is`true`, generate examples and snippets with`BigInt("123")`. - [January 16, 2025](january-16-2025.md): **`(fix):`** The SDK now supports reading the basic auth username and password values from environment variables. - [January 15, 2025](january-15-2025.md): **`(fix):`** Resolves an issue where nullable query parameters were not null-safe in their method invocations. The - [January 14, 2025](january-14-2025.md): **`(feat):`** Add support for`nullable`properties. Users can now specify explicit`null`values - [January 13, 2025](january-13-2025.md): **`(fix):`** Expose`baseUrl`as a default Client constructor option and construct URL correctly. - [January 9, 2025](january-9-2025.md): **`(fix):`** Simplify runtime detection to reduce the chance of using an unsupported API like`process.`Detect Edge ... - [January 8, 2025](january-8-2025.md): **`(fix):`** ESModule output is fixed to be compatible with Node.js ESM loading. - [January 6, 2025](january-6-2025.md): **`(feat):`** SDKs are now built and exported in both CommonJS (legacy) and ESModule format. - [December 31, 2024](december-31-2024.md): **`(fix):`** TS generated snippets now respect proper parameter casing when noSerdeLayer is enabled. - [December 27, 2024](december-27-2024.md): **`(fix):`** Export everything inside of TypeScript namespaces that used to be ambient. - [December 26, 2024](december-26-2024.md): **`(feat):`** Update dependencies of the generated TS SDK and Express generator. TypeScript has been updated to 5.7.2... - [December 23, 2024](december-23-2024.md): **`(fix):`** Fix a bug where we attempt to parse an empty terminator when receiving streaming JSON responses. - [December 20, 2024](december-20-2024.md): **`(feat):`** Use specified defaults for pagination offset parameters during SDK generation. - [December 18, 2024](december-18-2024.md): **`(fix):`** Fix a bug where client would send request wrapper instead of the body of the request wrapper, when the r... - [December 17, 2024](december-17-2024.md): **`(fix):`** Inline path parameters will use their original name when`retainOriginalName`or`noSerdeLayer`is enabled. - [December 16, 2024](december-16-2024.md): **`(fix):`** When there is an environment variable set, you do not need to pass in any parameters to the client const... - [December 13, 2024](december-13-2024.md): **`(feat):`** Inline path parameters into request types by setting`inlinePathParameters`to`true`in the generator ... - [December 11, 2024](december-11-2024.md): **`(fix):`** When`noSerdeLayer`is enabled, streaming endpoints were failing to compile because they assumed that th... - [December 3, 2024](december-3-2024.md): **`(feat):`** Support`additionalProperties`in OpenAPI or`extra-properties`in the Fern Defnition. Now - [November 23, 2024](november-23-2024.md): **`(fix):`** Remove the generated`APIPromise`since it is not compatible on certain node versions. - [November 22, 2024](november-22-2024.md): **`(fix):`** Fixed issue with snippets used for pagination endpoints. - [November 21, 2024](november-21-2024.md): **`(fix):`** Improve`GeneratedTimeoutSdkError`error to include endpoint name in message. - [November 20, 2024](november-20-2024.md): **`(feat):`** Added support for passing additional headers in request options. For example: - [November 18, 2024](november-18-2024.md): **`(fix):`** Actually remove`jest-fetch-mock`from package.json. - [November 15, 2024](november-15-2024.md): **`(feat):`** Added support for`.asRaw()`which allows users to access raw response data including headers. For exam... - [November 2, 2024](november-2-2024.md): **`(fix):`** Remove dev dependency on`jest-fetch-mock`. - [October 8, 2024](october-8-2024.md): **`(feat):`** Add a variable jitter to the exponential backoff and retry. - [September 28, 2024](september-28-2024.md): **`(fix):`** File array uploads now call`request.appendFile`instead of`request.append`which was causing form data... - [September 18, 2024](september-18-2024.md): **`(fix):`** The TypeScript SDK now supports specifying a custom contentType if one is specified. - [September 12, 2024](september-12-2024.md): **`(fix):`** Upgrades dependency`stream-json`which improves the performance when reading large API specs. This vers... - [September 11, 2024](september-11-2024.md): **`(fix):`** The generated enum examples now reference the value of the enum directly instead - [August 27, 2024](august-27-2024.md): **`(chore):`** The SDK now produces a`version.ts`file where we export a constant called`SDK_VERSION`. - [August 20, 2024](august-20-2024.md): **`(fix):`** If`noSerdeLayer`is enabled, then the generated TypeScript SDK snippets and wire tests - [August 16, 2024](august-16-2024.md): **`(fix):`** Multipart form data unit tests only get generated if the SDK has multipart form uploads. - [August 7, 2024](august-7-2024.md): **`(feat):`** The SDK now supports looking directly at a`hasNextPage`property for offset pagination if configured. - [August 4, 2024](august-4-2024.md): **`(fix):`** Literal templates are generated if they are union members - [August 2, 2024](august-2-2024.md): **`(fix):`** Adds async iterable to StreamWrapper implementation for easier use with downstream dependencies. - [August 1, 2024](august-1-2024.md): **`(fix):`** Refactors the`noScripts`feature flag to make sure that no`yarn install`commands can be accidentally ... - [July 31, 2024](july-31-2024.md): **`(internal):`** Upgrade to IRv53. - [July 29, 2024](july-29-2024.md): **`(feat):`** The business plan Typescript SDK will now generate wire tests if the feature flag in the configuration ... - [July 26, 2024](july-26-2024.md): **`(fix):`** Now, import paths are correctly added to stream wrapper tests. - [July 16, 2024](july-16-2024.md): **`(fix):`** Now, there are generated unit tests for the`auth`and`fetcher`core directory which makes sure that Fe... - [July 15, 2024](july-15-2024.md): **`(feat):`** The`reference.md`is now generated for every SDK. - [July 12, 2024](july-12-2024.md): **`(feat):`** Add`omitUndefined`generator option. This is enabled with the following config: - [July 11, 2024](july-11-2024.md): **`(feat):`** Client-level`Options`now supports overriding global headers like version. - [July 10, 2024](july-10-2024.md): **`(fix):`** Fix serialization of types with circular references - [July 9, 2024](july-9-2024.md): **`(internal):`** Upgrade to IRv48. - [July 8, 2024](july-8-2024.md): **`(fix):`** The generated readme now moves the sections for`AbortController`,`Runtime Compatibility`and`Custom F... - [Version 1.0.0-beta](version-100-beta.md): npm publish --tag beta - [June 30, 2024](june-30-2024.md): **`(fix):`** The typescript generator now returns all`FormData`headers and Fetcher no longer stringifies stream.Rea... - [June 27, 2024](june-27-2024.md): **`(feat):`**`RequestOptions`now supports overriding global headers like authentication and version. - [June 26, 2024](june-26-2024.md): **`(internal):`** The generator is now upgraded to`v46.2.0`of the IR. - [June 20, 2024](june-20-2024.md): **`(fix):`** The generator now removes`fs`,`path`, and`os`dependencies from the browser runtime. - [June 19, 2024](june-19-2024.md): **`(fix):`** The generator now generates snippets for streaming endpoints. There is also a fix where literals are exc... - [June 18, 2024](june-18-2024.md): **`(fix):`** The generator only adds a publish step in github actions if credentials are specified. - [June 17, 2024](june-17-2024.md): **`(fix):`** The NPM publish job is *not* generated if the token environment variable is not specified. - [June 14, 2024](june-14-2024.md): **`(fix):`** Client constructor snippets now include an`environment`property whenever it's required. - [June 13, 2024](june-13-2024.md): **`(fix):`** Undiscriminated unions used as map keys examples no longer return an error. - [June 12, 2024](june-12-2024.md): **`(fix):`** The latest version of the`generator-cli`(used to generate`README.md`files) is always installed. - [June 11, 2024](june-11-2024.md): **`(fix):`** Introduce a custom configuration for arbitrary package json field. Now you can specify - [June 7, 2024](june-7-2024.md): **`(fix):`** Union snippet templates are fixed in 2 ways: - [June 5, 2024](june-5-2024.md): **`(feat):`** Detect`workerd`(Cloudflare) environments in`Runtime.ts`. The`Stream`class which is used for Server... - [June 2, 2024](june-2-2024.md): **`(fix):`** TypeScript generator outputs code snippets that have`example-identifier`embedded. - [May 31, 2024](may-31-2024.md): **`(fix):`** Simplify the error handling introduced in`0.20.6`so that it more easily handles endpoints that include... - [May 30, 2024](may-30-2024.md): **`(feat):`** Support setting`extraPeerDependencies`and`extraPeerDependenciesMeta`as - [May 29, 2024](may-29-2024.md): **`(fix):`** Functionality to generate integration tests against a mock server has been disabled. - [May 24, 2024](may-24-2024.md): **`(fix):`** Pass`abortSignal`to`Stream`for server-sent-events and JSON streams so that the user can opt out and ... - [May 20, 2024](may-20-2024.md): **`(feat):`** Add`inlineFileProperties`configuration to support generating file upload properties - [May 17, 2024](may-17-2024.md): **`(internal):`** The generator now uses the latest FDR SDK. - [May 15, 2024](may-15-2024.md): **`(fix):`** If OAuth is configured, the generated`getAuthorizationHeader`helper now treats the - [May 14, 2024](may-14-2024.md): **`(fix):`** If OAuth environment variables are specified, the`clientId`and`clientSecret`parameters - [May 13, 2024](may-13-2024.md): **`(feat):`** Add support for the OAuth client credentials flow. The new`OAuthTokenProvider`automatically - [May 6, 2024](may-6-2024.md): **`(fix):`** Multipart form data requests are now compatible across browser and Node.js runtimes. - [April 30, 2024](april-30-2024.md): **`(feat):`** The SDK generator now supports`@param`JSDoc comments for endpoint parameters. - [April 25, 2024](april-25-2024.md): **`(fix):`** fixes to styling of the SDK code snippet templates. - [April 24, 2024](april-24-2024.md): **`(feat):`** The generator now registers snippet templates which can be used for dynamic SDK code snippet generation. - [April 22, 2024](april-22-2024.md): **`(feat):`** plain text responses are now supported in the TypeScript generator. - [April 19, 2024](april-19-2024.md): **`(feat):`** Bump to v38 of IR and support server-sent events where the events are sent - [April 17, 2024](april-17-2024.md): **`(fix):`** Code snippets are generated for file upload endpoints using`fs.readStream`. Previously, generation for ... - [April 9, 2024](april-9-2024.md): **`(internal):`** Support V37 of the IR. - [April 2, 2024](april-2-2024.md): **`(feat):`** Add`retainOriginalCasing`option to preserve the naming convention expressed in the API. - [March 22, 2024](march-22-2024.md): **`(fix):`** The generator stopped working for remote code generation starting in`0.12.7`. This is now fixed. - [March 18, 2024](march-18-2024.md): **`(feat):`** Enhance serde performance by reducing reliance on async behavior and lazy async dynamic imports. - [March 14, 2024](march-14-2024.md): **`(feat):`** the SDK will now leverage environment variable defaults, where specified, for authentication variables,... - [February 27, 2024](february-27-2024.md): **`(fix):`** In Node.js environments the SDK will default to using`node-fetch`. The - [February 26, 2024](february-26-2024.md): **`(feat):`** support deep object query parameter serialization. If, query parameters are - [February 15, 2024](february-15-2024.md): **`(fix):`** Previously`core.Stream`would not work in the Browser. Now the generated Fern SDK - [February 13, 2024](february-13-2024.md): **`(fix):`** ensure SDK generator always uses`node-fetch`in Node.js environments. There is an experimental - [February 11, 2024](february-11-2024.md): **`(feat):`** The SDK generator now supports whitelabelling. When this is turned on, - [Python quickstart](python-quickstart.md): Learn how to generate a Python SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and ... - [Python configuration](python-configuration.md): Configuration options for the Fern Python SDK. - [Publishing to PyPI](publishing-to-pypi.md): How to publish the Fern Python SDK to PyPI. - [Adding custom code](adding-custom-code-3.md): Learn how to add custom logic, methods, and dependencies to your Python SDK. Extend Fern-generated clients with custo... - [Dynamic authentication](dynamic-authentication-2.md): Implement dynamic authentication patterns like short-lived JWT signing in Python SDKs using method overrides. - [January 29, 2026](january-29-2026-2.md): **`(fix):`** Generate CI workflow Python versions and PyPI trove classifiers dynamically based on the - [January 28, 2026](january-28-2026.md): **`(fix):`** Fix literal and enum types being incorrectly JSON-serialized in multipart file upload requests. - [January 27, 2026](january-27-2026.md): **`(fix):`** Fix WebSocket methods and iterators to avoid parsing binary messages as JSON. - [January 26, 2026](january-26-2026-2.md): **`(feat):`** Add`import_paths`config option to auto-load user-defined files when the SDK is imported. - [January 25, 2026](january-25-2026.md): **`(feat):`** Add`wire_tests`config group with`enabled`and`exclusions`options. The`exclusions`option allows e... - [January 20, 2026](january-20-2026.md): **`(feat):`** Add`mypy_exclude`custom config option to exclude directories from mypy type checking. - [January 14, 2026](january-14-2026-2.md): **`(fix):`** Fix WireMock stub generation for streaming endpoints. When an endpoint has both streaming - [January 13, 2026](january-13-2026-2.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 10, 2026](january-10-2026.md): **`(fix):`** Fix Python wire test generation/runtime robustness for missing examples, OMIT handling, client setup, an... - [January 9, 2026](january-9-2026-2.md): **`(fix):`** Fixes Python SDK import generation to avoid invalid`._`module segments by deriving type paths from can... - [January 8, 2026](january-8-2026-2.md): **`(fix):`** Fix wire test generation to use endpoint ID for lookup instead of path matching. - [January 7, 2026](january-7-2026-2.md): **`(fix):`** Bump version to remove rc from version tag. - [January 5, 2026](january-5-2026-2.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [December 23, 2025](december-23-2025.md): **`(chore):`** Skip installation of generator-cli in Python SDK generator as it is already installed in the base image. - [December 19, 2025](december-19-2025-2.md): **`(fix):`** Support custom`x-fern-sdk-method-name`on AsyncAPI operations. - [December 18, 2025](december-18-2025-2.md): **`(feat):`** Add opt-in`pydantic_config.positional_single_property_constructors`to allow`Wrapper("value")` - [December 17, 2025](december-17-2025-2.md): **`(fix):`** Fix empty request body issue where endpoints with all-optional fields would send an empty - [December 16, 2025](december-16-2025-2.md): **`(fix):`** Fix URL path stripping when base URL contains path prefixes. - [December 15, 2025](december-15-2025-2.md): **`(fix):`** Fix retry logic "off-by-two" error. The internal`retries`counter now starts at 0 - [December 12, 2025](december-12-2025-2.md): **`(fix):`** Fix empty query params stripping existing URL query strings. When`params`and - [December 11, 2025](december-11-2025.md): **`(fix):`** Fix failing wire tests under`pytest-xdist`by using a single shared WireMock plugin. - [December 10, 2025](december-10-2025-2.md): **`(fix):`** Add return types to reference.md method signatures for consistency with other SDK generators. - [December 9, 2025](december-9-2025-2.md): **`(feat):`** Add`coerce_numbers_to_str`option to`pydantic_config`. When enabled, numeric types (int, float, Decimal) - [December 8, 2025](december-8-2025-2.md): **`(feat):`** Add Python 3.11+ StrEnum compatibility. Generated enums now use StrEnum for Python >= 3.11 - [December 6, 2025](december-6-2025.md): **`(feat):`** Add OAuth token override support. When`oauth-token-override: true`is configured, users can authenticate - [December 5, 2025](december-5-2025-2.md): **`(fix):`** Fix OAuth flow regression where`SyncClientWrapper`and`AsyncClientWrapper`required a`token`parameter. - [December 4, 2025](december-4-2025-2.md): **`(fix):`** Fix backslash escaping in endpoint and websocket docstrings. OpenAPI descriptions containing - [December 3, 2025](december-3-2025.md): **`(fix):`** Fix duplicate field names in discriminated union types. - [November 28, 2025](november-28-2025.md): **`(feat):`** Add async support for OAuth token provider. The generated SDK now includes an AsyncOAuthTokenProvider - [November 26, 2025](november-26-2025-2.md): **`(fix):`** More fixes and improvements to wire tests. - [November 25, 2025](november-25-2025.md): **`(feat):`** Add support for X-RateLimit-Reset header - [November 24, 2025](november-24-2025.md): **`(fix):`** Fix discriminated union Field(discriminator=...) and UnionMetadata(discriminant=...) to use Python field... - [November 21, 2025](november-21-2025-2.md): **`(fix):`** Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local work... - [November 20, 2025](november-20-2025-2.md): **`(feat):`** Add wire test generation behind`enable_wire_tests`flag. - [November 19, 2025](november-19-2025-2.md): **`(feat):`** Add pytest-xdist for parallel test execution and upgrade CI Python version to 3.9 in generated SDKs. - [November 17, 2025](november-17-2025-2.md): **`(feat):`** Pagination:`page.response`is the typed API response object for each page (e.g.,`ListUsersPaginationR... - [Iterate pages and access the typed response per page](iterate-pages-and-access-the-typed-response-per-page.md): pager = client.users.list(...) - [November 14, 2025](november-14-2025-2.md): **`(fix):`** Fix circular reference issue for recursive types and unions. - [November 12, 2025](november-12-2025.md): **`(fix):`** Resolve PydanticUserError for mutually recursive models in Pydantic v2. - [November 11, 2025](november-11-2025-2.md): **`(feat):`** Add custom license file copying and GitHub installation token population for local generation workflows - [November 10, 2025](november-10-2025-2.md): **`(fix):`** Add back F401-ignored imports for circular references. - [November 7, 2025](november-7-2025-2.md): **`(fix):`** Fix websocket response type generation to use typing.Any when no server-to-client messages are defined, ... - [November 5, 2025](november-5-2025-2.md): **`(feat):`** Add support for disabling retries on endpoints - [November 4, 2025](november-4-2025-2.md): **`(feat):`** Added Generation Metadata file to output - [October 30, 2025](october-30-2025.md): **`(feat):`** Added logging to debug 4.32.3-rc0 - [October 29, 2025](october-29-2025-2.md): **`(chore):`** Update pyproject.toml headers to propagate project urls to pypi metadata generation - [October 27, 2025](october-27-2025.md): **`(fix):`** Fix pydantic model alias generator to correctly serialize wrapped aliases in pydantic v2. - [October 24, 2025](october-24-2025.md): **`(feat):`** Add support for setting the recursion limit above the default of 1000. - [October 23, 2025](october-23-2025.md): **`(fix):`** Fix union type deserialization to properly match discriminated unions based on literal field values (e.g... - [October 17, 2025](october-17-2025-2.md): **`(fix):`** Escape backslashes in docstrings to prevent SyntaxWarning for invalid escape sequences. - [October 6, 2025](october-6-2025.md): **`(feat):`** - Removed external dependency on httpx-sse by bringing SSE handling in-house. - [October 2, 2025](october-2-2025.md): **`(fix):`** Cleared CVE-2025-27210 - [September 29, 2025](september-29-2025-2.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 27, 2025](september-27-2025.md): **`(fix):`** Fix enum generation to properly escape quotes and backslashes in enum values. - [September 25, 2025](september-25-2025-2.md): **`(fix):`** Fix sdk`v1_on_v2`export of non-existent`IS_PYDANTIC_V2`variable. - [September 23, 2025](september-23-2025-2.md): **`(chore):`** Added a note to the README on constructing Async httpx objects to pass into main Async clients. - [September 22, 2025](september-22-2025.md): **`(fix):`** Exports in init files always reference the submodule instead of the current module. - [September 18, 2025](september-18-2025-2.md): **`(fix):`** Fixes issue where colliding classes were not lazily imported correctly. - [September 16, 2025](september-16-2025-2.md): **`(fix):`** Generator no longer fails on failed generator-cli installation - [September 12, 2025](september-12-2025-2.md): **`(fix):`** Fix python sdk serialization to use dict instead of model\_dump. - [September 10, 2025](september-10-2025.md): **`(fix):`** Never duplicate parameters in client constructors - [September 9, 2025](september-9-2025-2.md): **`(fix):`** Nit in custom client snippet generation. - [September 5, 2025](september-5-2025-2.md): **`(fix):`** Union member self-referencing dependencies are now correctly imported and forward referenced. - [August 29, 2025](august-29-2025.md): **`(feat):`** Generator passes readme configs apiName, disabledSections, and whiteLabel. - [August 27, 2025](august-27-2025-2.md): **`(feat):`** Client imports are now lazy loaded by default. This will greatly reduce memory footprint when using a s... - [August 26, 2025](august-26-2025-2.md): **`(fix):`** Upgrade docker image to use python 3.11.13 so that users can depend on packages that require python 3.11. - [August 20, 2025](august-20-2025.md): **`(chore):`** Additional handling of inferred auth - [August 5, 2025](august-5-2025.md): **`(feat):`** Fix: allow setting of package name and version in local docker generation - [August 4, 2025](august-4-2025-2.md): **`(feat):`** Enforce nested folders for package names with a "." in them. - [July 22, 2025](july-22-2025-2.md): **`(feat):`** Removed snippet generation - [July 17, 2025](july-17-2025-2.md): **`(feat):`** Enabled "ignore" as an option for extra fields - [July 15, 2025](july-15-2025-2.md): **`(fix):`** Updated construct\_type function to handles undiscriminated unions with lists, sets, and dictionaries of... - [July 14, 2025](july-14-2025.md): **`(fix):`** Fix websocket connect method generation for single base URL environments. - [July 11, 2025](july-11-2025.md): **`(fix):`** Generator fix: automatically switch tabs to spaces, following PEP8 standards. - [July 10, 2025](july-10-2025-2.md): **`(fix):`** Correctly import websockets exceptions. - [July 9, 2025](july-9-2025-2.md): **`(feat):`** Support async functions as websocket callback handlers. - [July 7, 2025](july-7-2025.md): **`(fix):`** Parse websocket messages as JSON before Pydantic parsing. - [July 3, 2025](july-3-2025-2.md): **`(feat):`** Add support for path parameters backed by variables supplied to the client constructor. - [June 25, 2025](june-25-2025.md): **`(chore):`** Bump websockets dependency to >=12.0.0 to ensure compatibility with newer websocket implementations an... - [June 24, 2025](june-24-2025.md): **`(chore):`** Bump pydantic-core dependency to >=2.18.2 to ensure compatibility with newer pydantic versions and imp... - [June 20, 2025](june-20-2025.md): **`(feat):`** Lazily validate model serialization to reduce memory consumption. Pydantic 2.11.0 introduced an issue w... - [June 11, 2025](june-11-2025-2.md): **`(feat):`** Support wrapped aliases in python for pydantic v2. - [June 5, 2025](june-5-2025-2.md): **`(feat):`** Add support for HEAD HTTP method in the generated client. - [June 4, 2025](june-4-2025-2.md): **`(fix):`** Fix an issue where the websocket connect method did not correctly yield the websocket client. - [May 27, 2025](may-27-2025.md): **`(chore):`** Handle HEAD HTTP method gracefully by treating it as a POST method when constructing the snippet regis... - [May 20, 2025](may-20-2025.md): **`(fix):`** Fix handling of optional and unknown response types by not throwing errors when the response is empty. - [May 13, 2025](may-13-2025-2.md): **`(fix):`** Support formatting the generated README.md and python code snippets. - [May 11, 2025](may-11-2025.md): **`(fix):`** Fix mypy errors related to automatic pagination in the python client. - [May 9, 2025](may-9-2025.md): **`(fix):`** Fix pagination support in raw clients by properly indexing into response data, ensuring that raw client ... - [May 8, 2025](may-8-2025.md): **`(fix):`** Fix string enum generation to properly handle enum values containing quotes by automatically escaping them, - [May 6, 2025](may-6-2025.md): **`(fix):`** Fix README g - [May 5, 2025](may-5-2025.md): **`(fix):`** Fix an issue where response`headers`were not available in the strongly typed error classes. - [May 1, 2025](may-1-2025.md): **`(fix):`** Install the generator-cli at build time as a fallback if runtime installation fails. - [April 30, 2025](april-30-2025.md): **`(feat):`** Add support for retrieving response headers for each page of paginated responses, instead of just the f... - [April 29, 2025](april-29-2025.md): **`(fix):`** Fixed an issue introduced in 4.14.0, where`bytes`and`text`responses were not handled correctly. - [April 25, 2025](april-25-2025.md): **`(internal):`** Fixes an internal release issue in`4.16.0`. - [April 24, 2025](april-24-2025.md): **`(feat):`** Add support for offset step pagination, where the offset position represents the element's index rather - [April 23, 2025](april-23-2025.md): **`(fix):`** Fixed an issue introduced in 4.14.0, where SSE streaming responses were not yielded correctly. - [April 22, 2025](april-22-2025-2.md): **`(fix):`** Fixed an issue where filename and plain text content-type parameters were being incorrectly serialized. - [April 13, 2025](april-13-2025.md): **`(fix):`** Fix an issue where TypedDicts with circular references were not correctly serialized. - [April 10, 2025](april-10-2025.md): **`(fix):`** The generated GitHub workflow now uses`ubuntu-latest`instead of`ubuntu-20.04` - [April 9, 2025](april-9-2025.md): **`(feat):`** Adds support for overriding literal global headers in the client constructor (e.g.`version`). - [April 8, 2025](april-8-2025-2.md): **`(fix):`** Always represent nullable as Optional rather than NotRequired, only use - [April 7, 2025](april-7-2025-2.md): **`(feat):`** Add support for using TypedDicts for file upload request parameters. This flag should - [April 3, 2025](april-3-2025.md): **`(feat):`** Add support for user-agent header - [April 1, 2025](april-1-2025.md): **`(feat):`** Add support for generating legacy wire tests, and disable them by default. These tests will be restored... - [March 28, 2025](march-28-2025.md): **`(feat):`** Add support for websocket code generation. - [March 25, 2025](march-25-2025.md): **`(feat):`** Add support for raw bytes responses. - [March 24, 2025](march-24-2025.md): **`(fix):`** Fix an issue where the default`timeout`was not being respected when a custom`httpx_client`was provided. - [March 19, 2025](march-19-2025-2.md): **`(fix):`** Update formatting across all generated files. There are no behavioral changes, but large diffs are expec... - [March 18, 2025](march-18-2025-2.md): **`(internal):`** Update the IR to v57. - [March 14, 2025](march-14-2025.md): **`(fix):`** Fix an issue where the`request_options`parameter name is now properly respected when it's - [March 13, 2025](march-13-2025.md): **`(fix):`** Fix an issue where parameter names that conflict with the`request_options`parameter are now properly d... - [March 6, 2025](march-6-2025-2.md): **`(fix):`** Fix an issue where GeneratorExit was unintentionally being swallowed by code blocks within the HttpClien... - [March 5, 2025](march-5-2025.md): **`(fix):`** Fix an issue where extraneous NameError-causing update\_forward\_refs invocations were being emitted. - [February 20, 2025](february-20-2025.md): **`(feat):`** Set the default number of retries to 2 (was 0) to align with the generated README. - [February 12, 2025](february-12-2025.md): **`(feat):`** The Python generator now supports conditioning dependencies on the Python version. - [February 10, 2025](february-10-2025.md): **`(feat):`** The Python generator now autogenerates a requirements.txt file. - [January 6, 2025](january-6-2025-2.md): **`(fix):`** pyproject.toml now has a`[project]`block making it Poetry v2 compatible. - [December 20, 2024](december-20-2024-2.md): **`(fix):`** Pagination correctly uses specified defaults to support custom schemes. - [December 8, 2024](december-8-2024.md): **`(fix):`** Fix indentation in generated README.md sections to ensure proper formatting and readability. - [November 20, 2024](november-20-2024-2.md): **`(fix):`** Include content-type headers when available as part of endpoint request generation. - [November 19, 2024](november-19-2024.md): **`(fix):`** Update multipart endpoint generation to propertly omit optional body parameters. - [November 15, 2024](november-15-2024-2.md): **`(fix):`** Fix README.md and reference.md generation. - [November 14, 2024](november-14-2024.md): **`(fix):`** Update README.md snippet builder to omit invalid snippets during readme config generation. - [November 13, 2024](november-13-2024.md): **`(fix):`** Update shared http\_client.py to remove omitted entries during file upload requests. - [October 21, 2024](october-21-2024.md): **`(fix):`** The generator now writes the reference.md configuration correctly, using`.dict()`instead of`.json()`. - [October 11, 2024](october-11-2024.md): **`(fix):`** The snippet writer now correctly handles base64 strings. - [September 28, 2024](september-28-2024-2.md): **`(fix):`** The generated README will now have a section that links to the generated - [September 26, 2024](september-26-2024.md): **`(fix):`** Generated readmes now include the parameter name required for the request options parameter within the e... - [September 23, 2024](september-23-2024.md): **`(fix):`** When leveraging the`include_union_utils`configuration flag, the Pydantic models will no longer include... - [September 20, 2024](september-20-2024.md): **`(fix):`** Serialization utilities (necessary when pydantic aliases are removed) now respects dictionaries as well. - [September 17, 2024](september-17-2024.md): **`(fix):`** Datetime examples are generated correctly once again. - [September 16, 2024](september-16-2024.md): **`(fix):`** The content type of file properties is now respected for multipart - [September 15, 2024](september-15-2024.md): **`(fix):`** When the generator runs bash commands such as`poetry install`and there is a failure, - [September 13, 2024](september-13-2024.md): **`(feat):`** Allow specifying arbitrary configuration to your packages`pyproject.toml`by adding a`pyproject_toml`... - [September 12, 2024](september-12-2024-2.md): **`(fix):`** All Pydantic V2 warnings have been resolved - [September 11, 2024](september-11-2024-2.md): **`(fix):`** Pydantic models that call`update_forward_refs`on non-union circular reference dependencies now pass in... - [September 10, 2024](september-10-2024.md): **`(fix):`** Pydantic models now call update forward refs on non-union circular references. This - [September 6, 2024](september-6-2024.md): **`(fix):`** Update .dict calls in Pydantic V2 to be back to pre-3.10.4 logic for SDKs that continue using Pydantic a... - [September 5, 2024](september-5-2024.md): **`(fix):`** Rerelease 3.11.0-rc0 as a major version, with a configuration flag to disable the behavior (`use_pydanti... - [September 4, 2024](september-4-2024.md): **`(chore):`** Remove Pydantic field aliases and leverage an internal representation. - [September 2, 2024](september-2-2024.md): **`(fix):`** Allow for fields prefixed with the name`model`, a silent break introduced in Pydantic V2. - [August 28, 2024](august-28-2024.md): **`(fix):`** When not leveraging mock integration tests, still run pytest over everything, not a specific directory. - [August 16, 2024](august-16-2024-2.md): **`(fix):`** Pagination utilities assume`""`is a terminal signal for pagination. - [August 14, 2024](august-14-2024.md): **`(chore):`** Improve performance of Pydantic`.dict`calls - [August 13, 2024](august-13-2024.md): **`(fix):`** Unions with utils now update forward refs again, a regression that was introduced in version 3.7.0 - [August 9, 2024](august-9-2024.md): **`(feat):`** Introduce forward compatible Python enums - [August 8, 2024](august-8-2024.md): **`(chore):`** Python circular referencing types are more robust. - [August 5, 2024](august-5-2024.md): **`(fix):`** Auto-completion for unions leveraging union utils now works as expected. - [August 4, 2024](august-4-2024-2.md): **`(chore):`** Literal templates are generated if they are union members - [August 2, 2024](august-2-2024-2.md): **`(internal):`** Generator code now uses Pydantic V2, no changes to generated code. - [August 1, 2024](august-1-2024-2.md): **`(fix):`** TypedDict snippets now include literals where available. - [July 31, 2024](july-31-2024-2.md): **`(internal):`** Upgrade to IR 53.1.0 - [July 29, 2024](july-29-2024-2.md): **`(fix):`** The generated README now imports`ApiError`as if it were from outside the module. - [July 25, 2024](july-25-2024.md): **`(feat):`** The Python SDK can now be generated with TypedDicts as inputs. - [July 24, 2024](july-24-2024.md): **`(chore):`** The root client is now exported from the main`__init__.py`. - [July 23, 2024](july-23-2024.md): **`(fix):`**`expected_types`within our test suite are now typed as`Tuple[typing.Any, typing.Any]`. - [July 17, 2024](july-17-2024.md): **`(fix):`** The generated python SDK now requires an environment be specified if a default is not provided. - [July 16, 2024](july-16-2024-2.md): **`(feat):`** The generated SDK now allows for specifying whether or not to generate`streaming`functions as overloa... - [July 10, 2024](july-10-2024-2.md): **`(fix):`** The generated python SDK now serializes bytes within JSON as a utf-8 encoded string. - [July 9, 2024](july-9-2024-2.md): **`(fix):`** The unchecked base model no longer coerces None to a type. - [July 3, 2024](july-3-2024.md): **`(feat):`** The generated python SDK now respects configured defaults from the API spec. - [July 1, 2024](july-1-2024.md): **`(fix):`** typing within the Sync and AsyncPagers is now correctly passed through to the BasePager. - [June 27, 2024](june-27-2024-2.md): **`(fix):`** The fix from 2.5.2 is now case-insensitive - [June 26, 2024](june-26-2024-2.md): **`(feat):`** The Python SDK now generates an accompanying SDK reference (`reference.md`) for users to review the SDK... - [June 25, 2024](june-25-2024.md): **`(feat):`** README generation now supports a section dedicated to streaming usage, as well as one for paginated end... - [June 20, 2024](june-20-2024-2.md): **`(fix):`** The Python SDK now does not send additional properties via JSON or data if the request is leveraging the... - [June 19, 2024](june-19-2024-2.md): **`(internal):`** The generator now consumes IRv46. - [June 18, 2024](june-18-2024-2.md): **`(chore):`** The python generator only adds a publish step in github actions if credentials are specified. - [June 12, 2024](june-12-2024-2.md): **`(fix):`** The unchecked base model stops special casing defaults and pydantic v2. - [June 11, 2024](june-11-2024-2.md): **`(fix):`** Offset based pagination is now 1-based, as opposed to 0 based - [June 10, 2024](june-10-2024.md): **`(fix):`** Unions with elements that specify no properties are generated correctly. - [June 7, 2024](june-7-2024-2.md): **`(fix):`** The unchecked base model now handles pulling the discriminant from a dict, not just a model/object. - [June 6, 2024](june-6-2024.md): **`(fix):`** Snippet templates for discriminated unions now specify the`template_input`property which is required t... - [June 5, 2024](june-5-2024-2.md): **`(fix):`** Snippets preserve trailing slashes - [June 4, 2024](june-4-2024.md): **`(chore):`** The Python generator now runs custom unit tests in CI if configured. - [June 3, 2024](june-3-2024.md): **`(chore):`** Endpoint function request logic has been abstracted into the request function of the wrapped httpx cli... - [May 31, 2024](may-31-2024-2.md): **`(internal):`** this adds a back door token getter function to OAuth clients to better test the functionality. - [May 30, 2024](may-30-2024-2.md): **`(internal):`** Improvement: The generator now outputs an`exampleId`alongside each generated snippet so that we c... - [May 29, 2024](may-29-2024-2.md): **`(chore):`** Literal values are now all defaulted such that users are not required to plug in a redundant value. - [May 28, 2024](may-28-2024.md): **`(internal):`** Add typing library for dateutils in testing lib to satisfy mypy errors. - [May 24, 2024](may-24-2024-2.md): **`(chore):`** Stops specifying custom licenses manually, lets poetry handle adding them. - [May 23, 2024](may-23-2024.md): **`(feat):`** Support`list`SDK method names instead of defaulting to`list_`. - [May 22, 2024](may-22-2024.md): **`(chore):`** Address`propogate`->`propagate`typo in python codegen. - [May 21, 2024](may-21-2024.md): **`(fix):`** The Python SDK generator now uses safe names wherever string concat is not used (like in client generati... - [May 20, 2024](may-20-2024-2.md): **`(fix):`** Inline request parameters now deconflict in naming with the unnamed path parameter arguments. - [May 17, 2024](may-17-2024-2.md): **`(internal):`** The generator now uses the latest FDR SDK. - [May 16, 2024](may-16-2024.md): **`(chore):`** The generated SDK will now correctly encode deep object query parameters - [May 15, 2024](may-15-2024-2.md): **`(chore):`** add enhanced snippet support for streaming endpoints. - [May 14, 2024](may-14-2024-2.md): **`(feat):`** Add support for cursor and offset pagination ("auto-pagination"). - [May 9, 2024](may-9-2024.md): **`(break):`** Release of the Python SDK generator version 2, updating default configuration. - [May 2, 2024](may-2-2024.md): **`(fix):`** the unchecked basemodel no longer tries to dereference an object if it's null. - [May 1, 2024](may-1-2024.md): **`(fix):`** Snippet templates now generate the correct imports for object types. - [April 30, 2024](april-30-2024-2.md): **`(feat):`** The generator now supports inlining top-level request parameters instead of requiring users create a re... - [April 29, 2024](april-29-2024.md): **`(feat):`** keyword arguments are now ordered such that required params are ordered before optional params - [April 26, 2024](april-26-2024.md): **`(fix):`** Discriminated union variants that are objects now have inlined properties instead of extending a base type. - [April 24, 2024](april-24-2024-2.md): **`(fix):`** pin mypy dependency to 1.9.0 to prevent introducing upstream bugs - [April 23, 2024](april-23-2024.md): **`(fix):`** Initialize the OAuth token provider member variables to their default values before they are set. - [April 22, 2024](april-22-2024-2.md): **`(feat):`** The python SDK generator now supports OAuth client generation for the client-credentials flow. - [April 21, 2024](april-21-2024.md): **`(feat):`** Beta: The generator now registers snippet templates which can be used for dynamic SDK code snippet gene... - [April 10, 2024](april-10-2024.md): **`(fix):`** The generator now correctly imports`json`when deserializing server sent events. - [April 4, 2024](april-4-2024.md): **`(fix):`** The skip validation code now works as expected. - [April 3, 2024](april-3-2024.md): **`(feat):`** The python SDK now includes a configuration option to skip pydantic validation. - [April 2, 2024](april-2-2024-2.md): **`(break):`** The python SDK now defaults new (breaking configuration) to introduce general improvements. - [March 28, 2024](march-28-2024.md): **`(fix):`** Github workflows for publishing now work again (previously the trigger was incorrect). - [March 26, 2024](march-26-2024.md): **`(feat):`** discriminant values in unions are now defaulted such that callers no longer need to specify the discrim... - [March 25, 2024](march-25-2024.md): **`(feat):`** the python SDK now exposes it's version through`__version__`to match module standards and expectations. - [March 22, 2024](march-22-2024-2.md): **`(fix):`** the python SDK uses the timeout provided to the top level client as the default per-request - [March 19, 2024](march-19-2024.md): **`(chore):`** Allow full forward compat with enums while keeping intellisense by unioning enum literals with`typing... - [March 18, 2024](march-18-2024-2.md): **`(feat):`** Allow bytes requests to take in iterators of bytes, mirroring the types allowed by HTTPX. - [March 14, 2024](march-14-2024-2.md): **`(chore):`** Improves example generation and snippets for union types, as well as multi-url environments. - [March 11, 2024](march-11-2024.md): **`(feat):`** Auto-generated unit and integration tests against a mock server. - [March 8, 2024](march-8-2024.md): **`(feat):`** Expose a feature flag to pass through additional properties not specified within your pydantic model fr... - [March 4, 2024](march-4-2024.md): **`(chore):`** use docstrings instead of Pydantic field descriptions. - [March 2, 2024](march-2-2024.md): **`(feat):`** Introduces a`max_retries`parameter to the RequestOptions dict accepted by all requests. - [February 27, 2024](february-27-2024-2.md): **`(feat):`** introduces additional configuration to customize the client class and file name. - [February 26, 2024](february-26-2024-2.md): **`(feat):`** You can now specify envvars to scan for headers, not just auth scheme headers. - [February 23, 2024](february-23-2024.md): **`(fix):`** Fix the usage of ApiError when leveraging auth envvars, when the schema for ApiError was changed, this u... - [February 22, 2024](february-22-2024.md): **`(fix):`** Transition from lists to sequences within function calls - [February 21, 2024](february-21-2024.md): **`(feat):`** introduce configuration to flatten the directory structure - [February 20, 2024](february-20-2024.md): **`(feat):`** Python now supports specifying files to auto-export from the root`__init__.py`file - [February 19, 2024](february-19-2024.md): **`(feat):`** Python now supports a wider range of types for file upload - [February 18, 2024](february-18-2024.md): **`(fix):`** The SDK always sends the enum wire value instead of the name of the enum. - [February 14, 2024](february-14-2024.md): **`(feat):`** Add support for a RequestOptions object for each generated function within Python SDKs - [February 13, 2024](february-13-2024-2.md): **`(break):`** The generator no longer supports Python 3.7 - [February 11, 2024](february-11-2024-2.md): **`(fix):`** Remove literals from SDK function signatures, as they are not modifiable for end users - [January 29, 2024](january-29-2024.md): **`(fix):`** Increase recursion depth to allow for highly nested and complex examples - [January 28, 2024](january-28-2024.md): **`(fix):`** The Python SDK better handles cyclical references - [January 26, 2024](january-26-2024.md): **`(feat):`** The generated SDK respects environment variables for authentication if specified - [January 25, 2024](january-25-2024.md): **`(fix):`** Enums in inlined requests send the appropriate value. - [January 21, 2024](january-21-2024.md): **`(internal):`** Initialize the changelog - [Go quickstart](go-quickstart.md): Learn how to generate a Go SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and crea... - [Go configuration](go-configuration.md): Configuration options for the Fern Go SDK. - [Publishing as a Go module](publishing-as-a-go-module.md): Learn how to publish your Fern-generated Go SDK to pkg.go.dev. Configure generators.yml and release versioned Go modu... - [Adding custom code](adding-custom-code-4.md): Learn how to add custom logic and methods to your Go SDK with Fern. Extend generated clients with helper functions an... - [January 26, 2026](january-26-2026-3.md): **`(fix):`** Fix unsafe pointer dereference in cycle.go. - [January 25, 2026](january-25-2026-2.md): **`(fix):`** Fix undiscriminated union type matching in dynamic snippets and wire tests. Previously, - [January 23, 2026](january-23-2026.md): **`(fix):`** Fix non-deterministic import ordering in generated Go files. Imports are now sorted - [January 21, 2026](january-21-2026-2.md): **`(chore):`** Update IR version to 61 to support Generation Metadata feature and maintain consistency with seed conf... - [January 14, 2026](january-14-2026-3.md): **`(fix):`** Fix internal v1-side failure to pass alwaysSendRequiredProperties when visiting inlined request bodies. - [January 13, 2026](january-13-2026-3.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 12, 2026](january-12-2026.md): **`(fix):`** Fix dynamic snippets for optional aliases to literal types. Previously, the generator - [January 8, 2026](january-8-2026-3.md): **`(fix):`** Fix wiremock port collisions when running wire tests in parallel. The docker-compose - [January 6, 2026](january-6-2026-2.md): **`(fix):`** Make OAuth wire tests dynamic to support different SDK structures. The OAuth test generator - [January 5, 2026](january-5-2026-3.md): **`(fix):`** Add 'v' prefix to sdkVersion in metadata.json to follow Go module versioning conventions. - [December 18, 2025](december-18-2025-3.md): **`(fix):`** Add request scoping to wire tests using X-Test-Id header. Each test now sends a unique - [December 17, 2025](december-17-2025-3.md): **`(fix):`** Fix multi-URL environment resolution to fall back to client-level environment when - [December 16, 2025](december-16-2025-3.md): **`(fix):`** Fix retry logic to reset request body before each retry attempt. - [December 15, 2025](december-15-2025-3.md): **`(feat):`** Add support for multi-URL environments via`x-fern-server-name`extension. APIs with multiple - [December 12, 2025](december-12-2025-3.md): **`(fix):`** Fix OAuth token fetching to use GetOrFetch instead of GetToken. - [December 11, 2025](december-11-2025-2.md): **`(feat):`** Add`errorCodes`config option with values`per-endpoint`or`global`. The`global`mode (default) - [December 10, 2025](december-10-2025-3.md): **`(feat):`** Add OAuth token fetching support. The SDK now automatically fetches and caches OAuth tokens - [December 2, 2025](december-2-2025-2.md): **`(fix):`** Fix snippet generation for object types with optional fields that have no example value. - [November 26, 2025](november-26-2025-3.md): **`(fix):`** Fix handling of reserved identifiers in field names and make dynamic snippets match. - [November 24, 2025](november-24-2025-2.md): **`(fix):`** Fix linting in test files - [November 21, 2025](november-21-2025-3.md): **`(feat):`** Add support for custom pagination (with particular implementation) - [November 19, 2025](november-19-2025-3.md): **`(feat):`** Provide Page.Response for accessing the full response type returned by the call to the relevant endpoint. - [November 18, 2025](november-18-2025-2.md): **`(fix):`** Ensure wire tests run in CI correctly with docker compose strategy. - [November 17, 2025](november-17-2025-3.md): **`(feat):`** Provide Page.Header and Page.StatusCode for accessing the headers and status codes of paginated responses; - [November 13, 2025](november-13-2025-2.md): **`(fix):`** Fix issue where unmarshaling optional bodies for requests with non-primitive query params tried to assig... - [November 11, 2025](november-11-2025-3.md): **`(feat):`** Add custom license file support for local generation and normalize version format with 'v' prefix follo... - [November 7, 2025](november-7-2025-3.md): **`(fix):`** - more flexible SSE parsing logic - [November 5, 2025](november-5-2025-3.md): **`(fix):`** - wire tests respect root package name as alias - [November 4, 2025](november-4-2025-3.md): **`(feat):`** Added Generation Metadata file to output - [October 29, 2025](october-29-2025-3.md): **`(fix):`** - expose raw paginated response - [October 21, 2025](october-21-2025-2.md): **`(chore):`** Refactor wire test generation to use the new mock utils. - [October 12, 2025](october-12-2025.md): **`(fix):`** Fix for default request values and nullable types. - [October 8, 2025](october-8-2025-2.md): **`(fix):`** final fix for embedded local packages - [October 6, 2025](october-6-2025-2.md): **`(fix):`** must pin wiremock dependencies to versions that still support go 1.23 - [October 3, 2025](october-3-2025-2.md): **`(fix):`** Fix code snippets in the README to alias root imports with the configured package name. - [October 2, 2025](october-2-2025-2.md): **`(fix):`** use correct port for wire tests in containerized environments (seed and CI) - [October 1, 2025](october-1-2025-2.md): **`(fix):`** Restructure wire tests into separate per-service packages. - [September 30, 2025](september-30-2025-2.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 29, 2025](september-29-2025-3.md): **`(fix):`** Added functionality to generated wire tests. - [September 25, 2025](september-25-2025-3.md): **`(fix):`** Stop generating go.mod file in go-v2 sdk generation. - [September 24, 2025](september-24-2025-2.md): **`(chore):`** Internal cleaning, cosmetic changes in dynamic snippet output. - [September 23, 2025](september-23-2025-3.md): **`(chore):`** Document setters and explicit null in`README.md`. - [September 18, 2025](september-18-2025-3.md): **`(feat):`** Add support for custom sections in the README.md via`customSections`config option. - [September 17, 2025](september-17-2025-2.md): **`(fix):`** Fixes an issue where the generated usage snippets in the README.md was not prioritizing - [September 16, 2025](september-16-2025-3.md): **`(feat):`** Adds setter methods for all objects; these also mark their respective fields as required, - [September 12, 2025](september-12-2025-3.md): **`(feat):`** Add config flag`gettersPassByValue`, which ensures that GetXYZ() methods on responses - [September 10, 2025](september-10-2025-2.md): **`(fix):`** Add back support for local filesystem output mode. - [September 9, 2025](september-9-2025-3.md): **`(feat):`** Retries now check`Retry-After`and`X-RateLimit-Reset`before defaulting to exponential backoff. - [August 29, 2025](august-29-2025-2.md): **`(feat):`** Add support for the`apiName`,`disabledFeatures`, and`whiteLabel`readme config options. - [August 27, 2025](august-27-2025-3.md): **`(fix):`** Removes legacy logic for flat package layout. - [August 26, 2025](august-26-2025-3.md): **`(fix):`** Fixes the ignoring of a default for`page`in pagination requests. - [August 25, 2025](august-25-2025.md): **`(fix):`** Fix certain instances of fmt.Sprintf'd values failing to be dereferenced. - [August 22, 2025](august-22-2025-2.md): **`(fix):`** Redesign the client to share RequestOptions across all subclients. - [August 21, 2025](august-21-2025-2.md): **`(fix):`** Update the dynamic snippet generator to handle list values in the request body. - [August 20, 2025](august-20-2025-2.md): **`(feat):`** Add reference.md doc generation - [August 7, 2025](august-7-2025.md): **`(fix):`** Fix go sse event stream handling. - [August 1, 2025](august-1-2025-2.md): **`(fix):`** If enum values contain a slash, the go generator now effectively escapes these and makes sure that the - [July 25, 2025](july-25-2025-2.md): **`(fix):`** Fix a regression where the`useReaderForBytesRequest`configuration option was not being respected after... - [July 21, 2025](july-21-2025.md): **`(fix):`** Make sure that optional headers and query params are properly dereferenced before being sent to the server. - [July 1, 2025](july-1-2025-2.md): **`(feat):`** Add support for receiving raw response headers from API calls with the new`WithRawResponse`client field - [June 26, 2025](june-26-2025.md): **`(feat):`** Add support for receiving raw response headers from API calls with the new`WithRawResponse`client field. - [June 3, 2025](june-3-2025-2.md): **`(feat):`** Add support for generating`README.md`when filesystem publishing is enabled. - [May 22, 2025](may-22-2025.md): **`(feat):`** Add support for HEAD method requests. These client methods return the raw`http.Header`type. - [May 20, 2025](may-20-2025-2.md): **`(feat):`** Major version release to update the generator's default set of configuration options. - [May 14, 2025](may-14-2025-2.md): **`(feat):`** Add support for the`useReaderForBytesRequest`configuration option, which generates - [May 13, 2025](may-13-2025-3.md): **`(fix):`** Add support for the custom introduction setting in the generated README.md. - [May 8, 2025](may-8-2025-2.md): **`(fix):`** Fix an issue where enum values containing double quotes were not properly escaped in generated code. - [May 1, 2025](may-1-2025-2.md): **`(fix):`** Install the generator-cli at build time as a fallback if runtime installation fails. - [March 13, 2025](march-13-2025-2.md): **`(fix):`** Fix an issue where the`go-v2`generator call prevented the`go`generator from succeeding in remote cod... - [February 17, 2025](february-17-2025.md): **`(fix):`** Fix an issue where`map`values were not correctly serialized as deep object query parameters. - [February 5, 2025](february-5-2025.md): **`(fix):`** Fix an issue where the`go-v2`generator call prevented the`go`generator from succeeding in remote cod... - [February 4, 2025](february-4-2025.md): **`(fix):`** Fix an issue where the version header specified by the user wasn't being used. - [January 26, 2025](january-26-2025.md): **`(fix):`** Fix cursor pagination stopping condition when the cursor types do not match (e.g. a`*string`cursor typ... - [January 23, 2025](january-23-2025.md): **`(fix):`** Fix offset pagination method generation for non-integer offset parameters (e.g.`float64`). - [January 22, 2025](january-22-2025.md): **`(feat):`** Adds support for a few new configuration options, all of which are shown below: - [January 17, 2025](january-17-2025.md): **`(fix):`** Fixes an issue where certain literal string values were incorrectly generated in undiscriminated unions. - [January 3, 2025](january-3-2025.md): **`(fix):`** Fixes an issue where the delimiter length was included during stream data read, even when the delimiter ... - [December 12, 2024](december-12-2024.md): **`(feat):`** Add runtime validation for discriminated unions to prevent users from accidentally sending the wrong ty... - [November 21, 2024](november-21-2024-2.md): **`(feat):`** Add support for the`inlinePathParameters`configuration option, which generates path parameters in the... - [November 20, 2024](november-20-2024-3.md): **`(internal):`** Improve the aesthetics of the generated code, and reduce the amount of repetition in each of the ge... - [November 18, 2024](november-18-2024-2.md): **`(feat):`** Add support for the`inlineFileProperties`configuration option, which generates file properties in the... - [November 15, 2024](november-15-2024-3.md): **`(internal):`** Add an`internal`package, which now contains the internal functionality previously included in the... - [November 14, 2024](november-14-2024-2.md): **`(feat):`** Improves type file layout with zero impact on backwards compatibility. - [November 8, 2024](november-8-2024.md): **`(feat):`** Add support for nil-safe getter methods. Callers can more easily access nested properties by chaining t... - [November 7, 2024](november-7-2024.md): **`(internal):`** Upgrade to IRv53. - [November 6, 2024](november-6-2024.md): **`(fix):`** Fix an issue where undiscriminated unions were not round-trippable whenever the union is the zero value ... - [October 29, 2024](october-29-2024.md): **`(fix):`** Fix an issue where optional, allow-multiple query parameter snippets were not rendered. - [October 25, 2024](october-25-2024.md): **`(feat):`** Add support for the exportedClientName configuration, which can be used to customize the generated clie... - [September 29, 2024](september-29-2024.md): **`(feat):`** Add support for SSE (Server-Sent Events) streaming responses. The user-facing interface for streaming r... - [September 26, 2024](september-26-2024-2.md): **`(feat):`** Add support for sending custom Content-Type header values defined in the API. - [September 9, 2024](september-9-2024.md): **`(feat):`** Add support for sending extra body properties and query parameters via`RequestOption`. - [September 8, 2024](september-8-2024.md): **`(feat):`** Add support for reading headers from environment variables (e.g.`X-API-Version`). - [September 6, 2024](september-6-2024-2.md): **`(fix):`** Fixes an issue where optional`unknown`values (typed as`interface{}`) were mistakenly dereferenced. - [September 5, 2024](september-5-2024-2.md): **`(internal):`** No changes. - [August 30, 2024](august-30-2024.md): **`(internal):`** No changes. - [August 26, 2024](august-26-2024.md): **`(internal):`** No changes. - [August 19, 2024](august-19-2024.md): **`(fix):`** Fix literal value deserialization. - [August 7, 2024](august-7-2024-2.md): **`(feat):`** Add support for always sending required properties. - [July 22, 2024](july-22-2024.md): **`(fix):`** Fix an issue where APIs that specify the`property-name`error discrimination strategy would receive JSO... - [July 4, 2024](july-4-2024.md): **`(fix):`** Request types set to`nil`no longer send an explicit`null`value. - [June 11, 2024](june-11-2024-3.md): **`(fix):`** Array of`deepObject`query parameters are correctly serialized. - [May 21, 2024](may-21-2024-2.md): **`(feat):`** Add support for retrieving extra properties from response objects. - [May 17, 2024](may-17-2024-3.md): **`(internal):`** The generator now uses the latest FDR SDK. - [May 7, 2024](may-7-2024.md): **`(fix):`** In-lined request body properties no longer include a non-empty`url`struct tag. - [April 29, 2024](april-29-2024-2.md): **`(fix):`** The Go generator now escapes path parameters that would previously create invalid URLs (e.g. "\example"). - [April 26, 2024](april-26-2024-2.md): **`(internal):`** Enhance extra property serialization performance. - [April 25, 2024](april-25-2024-2.md): **`(fix):`** The`omitempty`struct tag is now only used for nil-able types. - [April 24, 2024](april-24-2024-3.md): **`(feat):`** The Go generator now supports extra properties. - [April 16, 2024](april-16-2024.md): **`(feat):`** The Go generator now supports environment variable scanning. - [April 15, 2024](april-15-2024.md): **`(fix):`** Path parameters are now applied in the correct order. - [April 2, 2024](april-2-2024-3.md): **`(fix):`** Custom authorization header schemes had their values overridden by request options, which required using... - [March 12, 2024](march-12-2024.md): **`(fix):`** Go snippets correctly handle unknown examples. - [March 4, 2024](march-4-2024-2.md): **`(feat):`** Add support for simpler unions, which is configurable with`union: v1`(if omitted, the default`v0`ve... - [February 26, 2024](february-26-2024-3.md): **`(internal):`** No changes since previous release candidate. - [February 23, 2024](february-23-2024-2.md): **`(fix):`** Snippets for aliases to optional primitive values. - [February 21, 2024](february-21-2024-2.md): **`(fix):`** Package documentation is now generated into the correct package's`doc.go`. - [February 12, 2024](february-12-2024.md): **`(feat):`** The generator now supports whitelabelling. - [February 9, 2024](february-9-2024.md): **`(feat):`** Enforce RFC3339 for date\[time] serialization in request bodies. - [February 7, 2024](february-7-2024.md): **`(fix):`** Query parameter support for optional`time.Time`types. - [February 6, 2024](february-6-2024.md): **`(feat):`** Add support for`deepObject`query parameters. - [January 31, 2024](january-31-2024.md): **`(feat):`** Add`packageName`generator configuration. - [January 30, 2024](january-30-2024.md): **`(feat):`** Add support for`bytes`request bodies with`Content-Type`set to`application/octet-stream`. - [January 29, 2024](january-29-2024-2.md): **`(feat):`** Add automatic retry with exponential backoff. - [January 25, 2024](january-25-2024-2.md): **`(feat):`** Refactor`ClientOption`as`RequestOption`. - [January 10, 2024](january-10-2024.md): **`(fix):`** File upload requests that specify query parameters. - [December 4, 2023](december-4-2023.md): **`(fix):`** Optional query parameter dereferencing issue. - [November 30, 2023](november-30-2023.md): **`(fix):`** Append version suffix for modules tagged with major versions greater than`1.X.X`. - [November 8, 2023](november-8-2023.md): **`(fix):`** Support boolean literals. - [October 31, 2023](october-31-2023.md): **`(feat):`** Add support for streaming endpoints. - [Java quickstart](java-quickstart.md): Learn how to generate a Java SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and cr... - [Java configuration](java-configuration.md): Configure your Java SDK generator with custom client names, package prefixes, builder patterns, and Maven publishing ... - [Publishing to Maven Central](publishing-to-maven-central.md): Learn how to publish your Fern-generated Java SDK to Maven Central. Complete guide covering authentication, GPG signa... - [Adding custom code](adding-custom-code-5.md): Augment your Java SDK with custom utilities - [February 2, 2026](february-2-2026.md): **`(fix):`** Add pre-flight check for git availability when using self-hosted GitHub mode. The CLI now - [January 29, 2026](january-29-2026-3.md): **`(fix):`** Fix wire test generation importing types from the wrong package when multiple services have - [January 26, 2026](january-26-2026-4.md): **`(fix):`** Fix streaming endpoints incorrectly setting`Accept: application/json`header. Streaming - [January 23, 2026](january-23-2026-2.md): **`(fix):`** Fix Java SDK generation failure when an environment name is a Java reserved keyword - [January 22, 2026](january-22-2026-2.md): **`(fix):`** Fix`output-directory`config option to also apply to test files. When using`source-root`mode, - [January 21, 2026](january-21-2026-3.md): **`(feat):`** Add`output-directory`config option to control where Java files are written during local generation. - [January 20, 2026](january-20-2026-2.md): **`(feat):`** Generate body-only method overloads for endpoints with required body and optional headers/query params. - [January 15, 2026](january-15-2026.md): **`(feat):`** Add endpoint-level security support with routing auth providers. APIs can now define different - [January 14, 2026](january-14-2026-4.md): **`(feat):`** Add backward-compatible`builder()`method for OAuth client credentials authentication. - [January 13, 2026](january-13-2026-4.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 12, 2026](january-12-2026-2.md): **`(chore):`** Upgrade IR version to 63. - [January 6, 2026](january-6-2026-3.md): **`(feat):`** Generate overloads without request wrapper when all query parameters are optional. - [January 5, 2026](january-5-2026-4.md): **`(fix):`** Add fallback SDK name generation for X-Fern-SDK-Name header when no explicit maven config is provided. - [December 24, 2025](december-24-2025.md): **`(fix):`** Retry Publishing of rc2 - [December 23, 2025](december-23-2025-2.md): **`(fix):`** Install fast-content-type-parse dependency required by @octokit/request\@10.0.7 CVE patch. - [December 18, 2025](december-18-2025-4.md): **`(fix):`** Fix OAuth client credentials flow to include custom headers, timeouts, and retries in token requests by ... - [December 17, 2025](december-17-2025-4.md): **`(feat):`** Add`gradle-central-dependency-management`configuration option (boolean, default false). - [December 16, 2025](december-16-2025-4.md): **`(feat):`** Add`gradle-distribution-url`configuration option to allow overriding the Gradle wrapper - [December 15, 2025](december-15-2025-4.md): **`(fix):`** Pass full`ClientOptions`instead of just`httpClient()`to custom pagination`create()`method. - [December 11, 2025](december-11-2025-3.md): **`(fix):`** Fix Jackson deserialization conflict when a property starts with`with`(e.g.,`withLabel`) and - [December 9, 2025](december-9-2025-3.md): **`(feat):`** Add support for configuring the default timeout via`default-timeout-in-seconds`in generators.yml. - [December 8, 2025](december-8-2025-3.md): **`(fix):`** Fix OptionalNullable query parameters to correctly apply .orElse(default) for parameters with - [December 6, 2025](december-6-2025-2.md): **`(fix):`** Fix duplicate case label compilation errors when multiple error types map to the same HTTP - [December 5, 2025](december-5-2025-3.md): **`(feat):`** Add OAuth token override support with compile-time safe staged builder pattern. When - [December 4, 2025](december-4-2025-3.md): **`(fix):`** Fix header parameters with`x-fern-parameter-name`to use the correct HTTP header name (wire value) inst... - [December 2, 2025](december-2-2025-3.md): **`(fix):`** Improve generator logging by removing verbose "java v2 generator" status messages and adding per-file lo... - [November 27, 2025](november-27-2025.md): **`(fix):`** Fix StreamTest generator to use Java 8 compatible constructs. Replaced List.of() and Map.of() (Java 9+) ... - [November 26, 2025](november-26-2025-4.md): **`(fix):`** Update vulnerable dependencies. - [November 25, 2025](november-25-2025-2.md): **`(feat):`** Add wire test support for OAuth APIs and multi-URL environments. Wire tests now: - [November 24, 2025](november-24-2025-3.md): **`(fix):`** Fix Java dynamic snippets when use-local-date-for-dates is enabled. Snippets for date fields now generat... - [November 23, 2025](november-23-2025-2.md): **`(fix):`** Skip InputStream overload generation for file upload endpoints with inline path parameters. This prevent... - [November 22, 2025](november-22-2025.md): **`(fix):`** Skip InputStream overload generation for file upload endpoints with query parameters. This prevents comp... - [November 21, 2025](november-21-2025-4.md): **`(fix):`** Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local work... - [November 20, 2025](november-20-2025-3.md): **`(fix):`** Fix missing @JsonInclude header on certain instances of`OptionalNullable<>`. - [November 19, 2025](november-19-2025-4.md): **`(feat):`** Add support for custom bidirectional pagination. APIs using custom pagination (e.g., HATEOAS links) can... - [November 18, 2025](november-18-2025-3.md): **`(feat):`** Add InputStream-based method overloads for file upload endpoints. For each single-file upload endpoint,... - [November 14, 2025](november-14-2025-3.md): **`(feat):`** Add opt-in use-local-date-for-dates config flag to generate java.time.LocalDate instead of String for F... - [November 13, 2025](november-13-2025-3.md): **`(feat):`** Upgrade dependencies: - [November 12, 2025](november-12-2025-2.md): **`(fix):`** Fix wire test failures for numeric type mismatches and header serialization. Wire tests now use numeric ... - [November 11, 2025](november-11-2025-4.md): **`(fix):`** Fix inconsistent behavior between local and remote Java generation by ensuring license files are copied ... - [November 7, 2025](november-7-2025-4.md): **`(fix):`** Fix double-wrapping of Optional.empty() in request bodies. Wire tests and dynamic snippets now correctly... - [November 5, 2025](november-5-2025-4.md): **`(feat):`** Added Generation Metadata file to output. - [November 4, 2025](november-4-2025-4.md): **`(feat):`** Add support for API-level path parameters. Path parameters defined at the API level (e.g.,`/test/{path... - [November 3, 2025](november-3-2025-2.md): **`(fix):`** Fix`collapse-optional-nullable`config not being applied in download files mode. - [October 31, 2025](october-31-2025-2.md): **`(feat):`** Add support for three-state nullable fields in PATCH requests via`collapse-optional-nullable`config. - [October 30, 2025](october-30-2025-2.md): **`(fix):`** Revert support for three-state nullable fields in PATCH requests introduced in 3.10.0 (PR #10104). - [October 29, 2025](october-29-2025-4.md): **`(fix):`** Fix compilation errors when using boolean or long query parameters. - [October 28, 2025](october-28-2025-2.md): **`(fix):`** Fix sync client delegation causing array query parameter compilation errors. Generator was using - [October 27, 2025](october-27-2025-2.md): **`(fix):`** Retries now check`Retry-After`and`X-RateLimit-Reset`before defaulting to exponential backoff. - [October 23, 2025](october-23-2025-2.md): **`(fix):`** Fix nullable field serialization in PATCH requests with wrapped request bodies. Explicit null values - [October 21, 2025](october-21-2025-3.md): **`(feat):`** Add support for README example style configuration via`exampleStyle`field. When set to "minimal", - [October 20, 2025](october-20-2025-2.md): **`(fix):`** Fixed wire test generation for application/x-www-form-urlencoded requests. Wire tests now correctly - [October 16, 2025](october-16-2025-2.md): **`(fix):`** Fix Java SDK generator to preserve original environment names for multi-URL environments (e.g., "E2E" in... - [October 9, 2025](october-9-2025-2.md): **`(fix):`** Fixed inconsistent file placement for resource-based core files. All Java files now use standard - [October 8, 2025](october-8-2025-3.md): **`(fix):`** Fixed dynamic snippets incorrectly placing HTTP headers in request builders. Headers now correctly - [October 5, 2025](october-5-2025.md): **`(fix):`** Fix: Don't run spotlessApply if gradlew doesn't exist. - [October 4, 2025](october-4-2025.md): **`(fix):`** Fixed spotlessCheck in generated SDKs. - [October 2, 2025](october-2-2025-3.md): **`(fix):`** Fixed SSE stream terminator parsing for OpenAI-style`data: [DONE]`format. Terminators are now - [October 1, 2025](october-1-2025-3.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 30, 2025](september-30-2025-3.md): **`(fix):`** Fixed code generation for undiscriminated unions with optional types. Generated code now correctly - [September 29, 2025](september-29-2025-4.md): **`(feat):`** Add`getResponse()`method to`BasePage`for accessing pagination metadata like cursor tokens. - [September 28, 2025](september-28-2025.md): **`(fix):`** Fixed OAuth auth clients not receiving variables needed for token endpoints with path parameters. - [September 25, 2025](september-25-2025-4.md): **`(fix):`** Fixed SDK variable setters incorrectly referencing non-existent`clientOptionsBuilder`. - [September 24, 2025](september-24-2025-3.md): **`(fix):`** Fixed missing`java.util.Optional`import in dynamic snippets generation for wire tests. - [September 23, 2025](september-23-2025-4.md): **`(fix):`** Fixed wire test generation for union services and added automatic pagination package detection. - [September 22, 2025](september-22-2025-2.md): **`(fix):`** Fixed`NullPointerException`in builder setters when collections are null by adding null checks before`... - [September 20, 2025](september-20-2025.md): **`(fix):`** Fixed wire test compilation errors: pagination types now use raw responses, union factory methods use - [September 18, 2025](september-18-2025-4.md): **`(fix):`** Fixed wire test compilation errors by adding missing imports for request/response types and - [September 17, 2025](september-17-2025-3.md): **`(fix):`** Fixes an issue where the generated usage snippets in the README.md was not prioritizing - [September 16, 2025](september-16-2025-4.md): **`(feat):`** Enhanced wire testing framework with comprehensive SDK validation capabilities. Wire tests now include - [September 15, 2025](september-15-2025-2.md): **`(feat):`** Add support for custom sections in the README.md via`customSections`config option. - [September 11, 2025](september-11-2025.md): **`(feat):`** Add comprehensive request and response body validation to wire tests for Java SDKs. - [September 10, 2025](september-10-2025-3.md): **`(fix):`** Fix compilation errors in generated SDK snippets for collections with optional types and unknown size ar... - [September 9, 2025](september-9-2025-4.md): **`(break):`** The SDK generator now defaults to forward-compatible enums, providing resilience against new enum vari... - [September 3, 2025](september-3-2025-2.md): **`(fix):`** Bugfix to make sure that the Java SDK compiles when header based versioning with defaults is enabled. - [September 2, 2025](september-2-2025-2.md): **`(fix):`** Fix Maven Central signing configuration to correctly use 3-parameter useInMemoryPgpKeys() method. - [August 29, 2025](august-29-2025-3.md): **`(feat):`** Add support for the`apiName`and`disabledFeatures`readme config options. - [August 27, 2025](august-27-2025-4.md): **`(fix):`** Fix nullable fields incorrectly requiring non-null values in staged builders when - [August 25, 2025](august-25-2025-2.md): **`(feat):`** Add support for semantic distinction between`nullable`and`optional`types via`use-nullable-an... - [August 19, 2025](august-19-2025.md): **`(feat):`** Add convenient`addHeader()`method to SDK builders for adding custom headers without requiring - [August 15, 2025](august-15-2025-2.md): **`(fix):`** Fix integer overflow when processing OpenAPI specs with large integer values in examples. Values exceedi... - [August 14, 2025](august-14-2025.md): **`(feat):`** Add support for generating wire tests via`enable-wire-tests`flag. Wire tests verify HTTP protocol com... - [August 13, 2025](august-13-2025-2.md): **`(feat):`** Add support for client-side default parameter values via`use-default-request-parameter-values`flag. - [August 5, 2025](august-5-2025-2.md): **`(feat):`** Add opt-in extensible builder pattern via`enable-extensible-builders`flag. When enabled, builders use... - [August 4, 2025](august-4-2025-3.md): **`(fix):`** Ensure JUnit dependencies are always added when test files are generated - [July 31, 2025](july-31-2025.md): **`(fix):`** Fix javadoc compilation errors by using HTML entities for special characters in builder examples - [July 25, 2025](july-25-2025-3.md): **`(fix):`** Refactor builder extension pattern to use Template Method with dynamic generation. Configuration methods - [July 24, 2025](july-24-2025-2.md): **`(feat):`** Enable builder extensibility for generated SDK clients. Builders are no longer marked as final, allowin... - [July 23, 2025](july-23-2025-2.md): **`(fix):`** Fix byte array convenience methods to include all parameters when delegating to InputStream methods. - [July 21, 2025](july-21-2025-2.md): **`(fix):`** Add explicit type to pagination lambda parameters. - [July 18, 2025](july-18-2025-2.md): **`(chore):`** Remove internal OkHttp utility dependency and use a more robust file closing method. - [July 17, 2025](july-17-2025-3.md): **`(fix):`** Fix stream SSE test to use Java 8 compatible stream collection method. - [July 16, 2025](july-16-2025.md): **`(fix):`** Add reference.md generation for Java SDKs. - [July 9, 2025](july-9-2025-3.md): **`(fix):`** Fix java sdk readme generation to properly create maven shield. - [June 23, 2025](june-23-2025.md): **`(fix):`** Fix JavaDoc generation to properly escape dollar signs (\$) when using JavaPoet. - [June 16, 2025](june-16-2025-2.md): **`(fix):`** Remove Content-Type from headers when request has no body - [June 13, 2025](june-13-2025-2.md): **`(fix):`** Fix array query params are treated as exploded: true - [June 4, 2025](june-4-2025-3.md): **`(feat):`** Add support for generating a full project in filesystem mode. - [June 3, 2025](june-3-2025-3.md): **`(internal):`** Update the IR to v58. - [May 21, 2025](may-21-2025.md): **`(fix):`** Generates docs for method types. - [May 20, 2025](may-20-2025-3.md): **`(fix):`** Updates the generator to always commit changes, even if there are none, in self-hosted mode. This - [May 15, 2025](may-15-2025.md): **`(fix):`** Fix the generated README.md for the`maxRetries`configuration option, which is now - [May 13, 2025](may-13-2025-4.md): **`(fix):`** Add support for the custom introduction setting in the generated README.md. - [May 11, 2025](may-11-2025-2.md): **`(feat):`** Support sending requests with content type application/x-www-form-urlencoded. - [May 1, 2025](may-1-2025-3.md): **`(fix):`** Rerelease with the latest generator-cli. - [April 28, 2025](april-28-2025.md): **`(fix):`** (Corrected from 2.33.2) Use non-deprecated method to create request body - [April 25, 2025](april-25-2025-2.md): **`(fix):`** Use non-deprecated method to create request body - [April 24, 2025](april-24-2025-2.md): **`(fix):`** Fix inline overrides undoing allow-multiple parameterization - [April 23, 2025](april-23-2025-2.md): **`(fix):`** Support for literals in union types - [April 21, 2025](april-21-2025-2.md): **`(fix):`** Auth header prefix should prepend with a concatenation operator - [April 9, 2025](april-9-2025-2.md): **`(fix):`** Use safe name for version enum - [April 8, 2025](april-8-2025-3.md): **`(fix):`** Fix inlining forward-compatible enums - [April 1, 2025](april-1-2025-2.md): **`(fix):`** Fix typos in README generator - [March 31, 2025](march-31-2025.md): **`(fix):`** Fix pagination in raw clients - [March 29, 2025](march-29-2025.md): **`(feat):`** Generate snippet.json - [March 27, 2025](march-27-2025-2.md): **`(fix):`** Apply content type to request body creation - [March 26, 2025](march-26-2025.md): **`(feat):`** Expose response headers - [March 24, 2025](march-24-2025-2.md): **`(fix):`** Change method to`public static void main(String[] args)`in snippet generation - [March 21, 2025](march-21-2025.md): **`(feat):`** Support automatic README.md generation - [March 13, 2025](march-13-2025-3.md): **`(feat):`** Expose max retries for clients - [March 12, 2025](march-12-2025.md): **`(fix):`** Prevent put requests from generating without a request body - [March 11, 2025](march-11-2025.md): **`(fix):`** Add @JsonIgnore to non-serialization getters for nullables - [March 7, 2025](march-7-2025.md): **`(fix):`** Fix async client builder generation - [March 6, 2025](march-6-2025-3.md): **`(fix):`** Represent protobuf uint as int rather than long - [March 5, 2025](march-5-2025-2.md): **`(feat):`** Add support for explicit nulls in serialization - [March 4, 2025](march-4-2025.md): **`(feat):`** Add async clients - [March 2, 2025](march-2-2025.md): **`(fix):`** Fix type reference syntax in readValue calls - [February 27, 2025](february-27-2025.md): **`(fix):`** Fix collection serialization in multipart form body without form encoding - [February 26, 2025](february-26-2025.md): **`(feat):`** Enable overriding literal headers - [February 25, 2025](february-25-2025.md): **`(fix):`** Fix form body serialization - [February 24, 2025](february-24-2025.md): **`(feat):`** Support form-data with deep object query params - [February 20, 2025](february-20-2025-2.md): **`(chore):`** Upgrade IR version dependency to v55 - [February 19, 2025](february-19-2025.md): **`(feat):`** Add support for custom HTTP client in Java SDK - [February 18, 2025](february-18-2025.md): **`(feat):`** Flat package layout by setting`page-layout: flat` - [February 14, 2025](february-14-2025.md): **`(fix):`** Fix collision with variant type called "Value" and internal interface name. - [February 10, 2025](february-10-2025-2.md): **`(feat):`** Let users define custom headers in request options - [February 4, 2025](february-4-2025-2.md): **`(fix):`** Don't add a semicolon twice when rendering accept header - [February 3, 2025](february-3-2025.md): **`(fix):`** Add accept header if endpoint has errors - [January 29, 2025](january-29-2025.md): **`(feat):`** Add deep cursor path pagination support. - [January 23, 2025](january-23-2025-2.md): **`(fix):`** Fix wrapped requests without inline path parameters checking not rendering - [January 21, 2025](january-21-2025-2.md): **`(fix):`** Prevent accept header from being removed in wrapped requests - [January 19, 2025](january-19-2025.md): **`(fix):`** Fix potential NPE initializing client options with default version - [January 17, 2025](january-17-2025-2.md): **`(fix):`** Fix inlining unwrapped alias types. - [January 16, 2025](january-16-2025-2.md): **`(fix):`** Omit methods with inlined types from interface definitions. - [January 7, 2025](january-7-2025.md): **`(feat):`** Support version headers in request and client options. - [December 23, 2024](december-23-2024-2.md): **`(feat):`** Implement global timeout configuration for generated clients. - [December 20, 2024](december-20-2024-3.md): **`(feat):`** Generate inline request bodies with their path parameters in the object. - [December 11, 2024](december-11-2024-2.md): **`(feat):`** Apply Content-Type header from endpoint definition in SDK generator. - [December 10, 2024](december-10-2024.md): **`(fix):`** Don't generate pagination with nonempty path. Fixes pagination seed tests breaking. - [December 4, 2024](december-4-2024.md): **`(fix):`** The rootProject.name is now set in settings.gradle and ci.yml uses ./gradlew sonatypeCentralUpload for p... - [September 26, 2024](september-26-2024-3.md): **`(feat):`** We now provide endpoint methods for streaming byte array requests in addition to the previous methods a... - [September 11, 2024](september-11-2024-3.md): **`(feat):`** We no longer enforce non-null constraints for Object type properties in builders. - [September 5, 2024](september-5-2024-3.md): **`(break):`** The SDK generator is now on major version 2. To take this upgrade without any breaks, please add the b... - [September 4, 2024](september-4-2024-2.md): **`(feat):`** Public constructors can now be generated for all model types: - [July 26, 2024](july-26-2024-2.md): **`(fix):`** Fixed a bug where local generation custom config doesn't pick up some values, including exception naming. - [July 24, 2024](july-24-2024-2.md): **`(fix):`** Fixed a bug where OkHttp responses could be closed prematurely. - [July 23, 2024](july-23-2024-2.md): **`(feat):`** Generated builder methods for optional fields can now accept null directly. - [July 2, 2024](july-2-2024.md): **`(feat):`** The generator now adds a class-level`@JsonInclude(JsonInclude.Include.NON_ABSENT)`annotation to - [June 26, 2024](june-26-2024-3.md): **`(break):`** The Java SDK is now on major version 1. To take this upgrade without any breaks, please add the below - [June 13, 2024](june-13-2024-2.md): **`(feat):`** Add support for cursor and offset pagination. - [June 7, 2024](june-7-2024-3.md): **`(feat):`** The generator now supports BigInteger types. - [June 6, 2024](june-6-2024-2.md): **`(feat):`**`RequestOptions`are now generated with the`timeout`field initialized to`Optional.empty()`instead o... - [June 5, 2024](june-5-2024-3.md): **`(feat):`** The SDK generator now supports returning response properties from client methods rather than just the r... - [May 30, 2024](may-30-2024-3.md): **`(fix):`** Types without fields are now generated with builders. Previously, they were not, which made them impossi... - [May 23, 2024](may-23-2024-2.md): **`(feat):`** Generated SDK clients with an OAuth security scheme will now automatically refresh access tokens before... - [May 21, 2024](may-21-2024-3.md): **`(fix):`** Java 8 Compatibility. - [May 15, 2024](may-15-2024-3.md): **`(fix):`** Support OAuth without token refresh. Example of initializing a client with OAuth: - [May 13, 2024](may-13-2024-2.md): **`(internal):`** Bump intermediate representation to v42 - [May 8, 2024](may-8-2024.md): **`(fix):`** Corrects the fix in 0.8.10 to check null value as opposed to a .isPresent check, given the header is not... - [May 7, 2024](may-7-2024-2.md): **`(fix):`** Generated SDK clients now handle null response bodies and avoid NPEs when they receive error responses. - [March 21, 2024](march-21-2024.md): **`(feat):`** You can now specify publishing metadata to populate your POM on publish: - [March 20, 2024](march-20-2024.md): **`(fix):`** The SDK now generates RequestOptions functions for timeouts with IdempotentRequestOptions correctly, pre... - [March 18, 2024](march-18-2024-3.md): **`(feat):`** Add in publishing config that allows for signing published artifacts, this is required for publishing t... - [February 23, 2024](february-23-2024-3.md): **`(internal):`** Update docker image for Java SDK task runner. - [February 21, 2024](february-21-2024-3.md): **`(fix):`** File upload endpoints no longer fail to compile because the reference to - [February 14, 2024](february-14-2024-2.md): **`(feat):`** The RequestOptions object now supports configuring an optional timeout to apply per-request. - [February 11, 2024](february-11-2024-3.md): **`(feat):`** The SDK generator now supports whitelabelling. When this is turned on, - [February 4, 2024](february-4-2024.md): **`(feat):`** The SDK generator now supports idempotency headers. Users - [February 3, 2024](february-3-2024.md): **`(internal):`** Release version 0.6.1 - [.NET quickstart](net-quickstart.md): Generate a C#/.NET SDK with Fern's SDK generator. Follow step-by-step instructions to configure, build, and publish y... - [.NET configuration](net-configuration.md): Configure your C# .NET SDK generator with Fern. Customize client class names, namespaces, error handling, and paginat... - [Publishing to NuGet](publishing-to-nuget.md): Learn how to publish your Fern-generated C#/.NET SDK to NuGet registry with step-by-step configuration, API key setup... - [Adding custom code](adding-custom-code-6.md): Add custom logic and methods to your .NET SDK with Fern. Extend BaseClient, create custom helpers, and use .fernignor... - [.NET compatibility](net-compatibility.md): Learn about supported .NET Framework versions (net462, net472, net48) and Unity compatibility for Fern-generated SDKs. - [January 30, 2026](january-30-2026-2.md): **`(fix):`** Fix`useDefaultRequestParameterValues`to only apply defaults to query parameters and headers, not to in... - [January 29, 2026](january-29-2026-4.md): **`(fix):`** Wire test assertions now use JSON element comparison instead of object equality, resolving false failure... - [January 28, 2026](january-28-2026-2.md): **`(fix):`** Fix missing client-level headers for endpoints without endpoint-specific headers. - [January 27, 2026](january-27-2026-2.md): **`(feat):`** Add support for type-safe undiscriminated unions with the new`use-undiscriminated-unions`configuratio... - [January 26, 2026](january-26-2026-5.md): **`(fix):`** Fix test equality comparison for nested OneOf values in collections. - [January 23, 2026](january-23-2026-3.md): **`(fix):`** Fix mock server tests to exclude read-only properties from expected request JSON. - [January 22, 2026](january-22-2026-3.md): **`(feat):`** Add`QueryStringBuilder`class for building query strings with proper URL encoding. - [January 21, 2026](january-21-2026-4.md): **`(feat):`** Respect defaults set for request parameter values. - [January 20, 2026](january-20-2026-3.md): **`(feat):`** Add support for accessing raw HTTP response data alongside typed response objects using`.WithRawRespon... - [January 15, 2026](january-15-2026-2.md): **`(feat):`** Add support for explicit nullable/optional type handling with the new`Optional`type. - [January 13, 2026](january-13-2026-5.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 6, 2026](january-6-2026-4.md): **`(feat):`** Generate interfaces for all SDK clients to enable dependency injection and mocking for unit testing. - [January 5, 2026](january-5-2026-5.md): **`(chore):`** Update Dockerfile CVE patches to work with newer generator-cli package structures. - [December 18, 2025](december-18-2025-5.md): **`(chore):`** Add sdkVersion as a top-level field in the generated metadata.json file. - [December 13, 2025](december-13-2025.md): **`(fix):`** Don't use`required`keyword on properties that are read-only, since they're not supposed to be set by u... - [December 11, 2025](december-11-2025-4.md): **`(feat):`** Add support for inferred authentication scheme. This allows the SDK to automatically - [December 5, 2025](december-5-2025-4.md): **`(fix):`** Change core files to fully qualify references to`Attribute`and related types in case of name collision. - [December 3, 2025](december-3-2025-2.md): **`(feat):`** Add support for flexible`output-path`configuration that allows specifying different paths - [December 2, 2025](december-2-2025-4.md): **`(fix):`** Wire tests are now controlled entirely by the`enable-wire-tests`custom config option, - [November 27, 2025](november-27-2025-2.md): **`(fix):`** Fix readonly constant assertion message showing '\[object Object]' instead of property name. - [November 26, 2025](november-26-2025-5.md): **`(fix):`** Remove error on null config in README generation. - [November 21, 2025](november-21-2025-5.md): **`(fix):`** Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local work... - [November 19, 2025](november-19-2025-5.md): **`(chore):`** Bump generator CLI version to publish new Docker image. - [November 13, 2025](november-13-2025-4.md): **`(fix):`** Add check in test script to verify that .NET 10 is installed. - [November 12, 2025](november-12-2025-3.md): **`(feat):`** Upgrade C# SDK generator Docker images to use .NET 10 SDK base image. - [November 11, 2025](november-11-2025-5.md): **`(fix):`** Support enums in multipart-forms. - [November 10, 2025](november-10-2025-3.md): **`(fix):`** Refactor package dependencies in C# generation so Dynamic Snippets in the browser can work. - [November 5, 2025](november-5-2025-5.md): **`(fix):`** Synthesize simple values for dynamic snippets when the example is missing data. - [November 4, 2025](november-4-2025-5.md): **`(feat):`** Added Generation Metadata file to output - [October 31, 2025](october-31-2025-3.md): **`(feat):`** Significant improvements to class/property/namespace tracking, collisions reduced. - [October 24, 2025](october-24-2025-2.md): **`(feat):`** Generate section about forward-compatible enums in README.md - [October 20, 2025](october-20-2025-3.md): **`(fix):`** When sending the HTTP request, allow the response to start processing before the entire body is read. - [October 16, 2025](october-16-2025-3.md): **`(fix):`** Fix incomplete handling for boolean type. - [October 9, 2025](october-9-2025-3.md): **`(fix):`** Enabled SSE and JSON streaming to deserialize OneOf the same as WebSockets can. - [October 7, 2025](october-7-2025-2.md): **`(fix):`** Fix nullability issues in generated code. - [September 29, 2025](september-29-2025-5.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 26, 2025](september-26-2025-2.md): **`(internal):`** Bump IR to v60 - [September 17, 2025](september-17-2025-4.md): **`(feat):`** Add support for custom sections in the README.md via`customSections`config option. - [September 5, 2025](september-5-2025-3.md): **`(fix):`** Enable type disambiguation and renaming during code generation - [August 25, 2025](august-25-2025-3.md): **`(fix):`** Ensure dynamic snippet method calls can use literal values - [August 19, 2025](august-19-2025-2.md): **`(fix):`** Ensure`experimental-fully-qualified-namespaces`to have - [August 18, 2025](august-18-2025.md): **`(fix):`** Add support for configuration 'experimental-fully-qualified-namespaces' to - [August 11, 2025](august-11-2025.md): **`(fix):`** Generate reference.md file as long as there are some endpoints. - [August 4, 2025](august-4-2025-4.md): **`(fix):`** Improve generation so that all expected tests/samples correctly - [July 31, 2025](july-31-2025-2.md): **`(fix):`** Add test for RawClient.ts to test Query Parameter Escaping - [July 29, 2025](july-29-2025.md): **`(fix):`** uses fully qualified class name`System.IO.Stream`for downloads - [July 23, 2025](july-23-2025-3.md): **`(fix):`** Ensures that clients that have no endpoints are not generated. - [July 9, 2025](july-9-2025-4.md): **`(feat):`** Pass in custom pager context to the custom pager factory. The context contains the send request method,... - [June 27, 2025](june-27-2025-2.md): **`(fix):`** Improve auto-pagination logic to consider empty strings in response as null cursors and stop paging. - [June 24, 2025](june-24-2025-2.md): **`(fix):`** Fix a bug where strings with special characters would not be properly escaped when converted to C# strings. - [June 23, 2025](june-23-2025-2.md): **`(chore):`** The following configuration names have changed, but the old names will continue to work. - [June 17, 2025](june-17-2025.md): **`(fix):`** Add`[Serializable]`attribute to generated schema, request, and error classes. - [June 5, 2025](june-5-2025-3.md): **`(feat):`** Add support for HTTP HEAD method - [June 3, 2025](june-3-2025-4.md): **`(internal):`** Update the IR to v58. - [May 16, 2025](may-16-2025.md): **`(fix):`** Mock the OAuth endpoint for the wire tests. - [May 13, 2025](may-13-2025-5.md): **`(fix):`** Add support for the custom introduction setting in the generated README.md. - [May 4, 2025](may-4-2025.md): **`(chore):`** Self hosted github user defaults to`fern-api[bot]`. - [May 1, 2025](may-1-2025-4.md): **`(fix):`** Install the generator-cli at build time as a fallback if runtime installation fails. - [April 23, 2025](april-23-2025-3.md): **`(feat):`** Upgrade Csharpier formatter to`1.*`for faster and better formatting. - [April 22, 2025](april-22-2025-3.md): **`(feat):`** Add`root-client-class-access`configuration option to control the access modifier of the root client c... - [April 11, 2025](april-11-2025.md): **`(feat):`** Make minor improvements to the ReadOnlyAdditionalProperties and AdditionalProperties properties for int... - [April 10, 2025](april-10-2025-2.md): **`(feat):`** Add read-only and writeable additional properties for request and response types. - [April 7, 2025](april-7-2025-3.md): **`(fix):`** Fix issue where read-only list properties wouldn't deserialize correctly. - [April 1, 2025](april-1-2025-3.md): **`(chore):`** Mark`AdditionalProperties`property as experiment using XML docs. - [March 31, 2025](march-31-2025-2.md): **`(fix):`** Fallback from`init`to`set`on .NET Framework & .NET Standard 2.0 for public and protected properties. - [March 25, 2025](march-25-2025-2.md): **`(chore):`** Restructure internal HTTP classes to allow for more granular Fern ignoring. - [March 22, 2025](march-22-2025.md): **`(fix):`** Fix generated tests that fail because of types containing OneOf or ReadOnlyMemory properties. - [March 21, 2025](march-21-2025-2.md): **`(fix):`** Significantly improve performance of the generator itself by asynchronously formatting snippets in paral... - [March 19, 2025](march-19-2025-3.md): **`(fix):`** Make tests pass that compare JSON strings regardless of how it is formatted by ignoring whitespace. - [March 18, 2025](march-18-2025-3.md): **`(feat):`** Make`FileParameter`disposable. - [March 17, 2025](march-17-2025.md): **`(fix):`** If a Content-Type header does not include charset, make sure the charset is also not included in the HTT... - [March 14, 2025](march-14-2025-2.md): **`(fix):`** Escape summary node contents in XML doc comments to prevent XML parsing errors. - [March 13, 2025](march-13-2025-4.md): **`(fix):`** Fix issue a NullReferenceException for generated root clients with typed headers in client options. - [March 10, 2025](march-10-2025-2.md): **`(fix):`** Make the behavior between a wrapped request with body properties and normal body request consistent. - [March 9, 2025](march-9-2025.md): **`(fix):`** Generate snippets for unions when`use-discriminated-unions`is`true`in the generator configuration. - [March 7, 2025](march-7-2025-2.md): **`(feat):`** Add support for overriding literal global headers via the`ClientOptions`class. - [March 5, 2025](march-5-2025-3.md): **`(fix):`** Don't rely on the`FluentAssertions.Json`package to test serialization and deserialization. - [March 4, 2025](march-4-2025-2.md): **`(internal):`** Update the IR to v57. - [March 3, 2025](march-3-2025.md): **`(fix):`** Fix inline path parameters with pagination endpoints. - [March 2, 2025](march-2-2025-2.md): **`(feat):`** Add support for schema properties with write-only and read-only access. - [generators.yml](generatorsyml.md): - name: fern-api/fern-csharp-sdk - [February 28, 2025](february-28-2025.md): **`(feat):`** Add support for custom pagination. - [February 27, 2025](february-27-2025-2.md): **`(feat):`** Add support for the`inline-path-parameters`configuration option, which generates - [generators.yml](generatorsyml-2.md): - name: fern-api/fern-csharp-sdk - [February 26, 2025](february-26-2025-2.md): **`(feat):`** Add support for`exported-client-class-name`to allow you to export the client class name. - [February 24, 2025](february-24-2025-2.md): **`(fix):`** Upload C# snippets to the registry. - [February 15, 2025](february-15-2025.md): **`(fix):`** Use`global::System`instead of`System`to avoid conflicts when a type named`System`exists in the cur... - [February 14, 2025](february-14-2025-2.md): **`(fix):`** Fix the Protobuf mappers for enum and timestamp types. - [February 6, 2025](february-6-2025.md): **`(fix):`** Support literals in query parameters and headers. For example, if a field in a wrapped request has a lit... - [February 3, 2025](february-3-2025-2.md): **`(fix):`** Add support for nullable undiscriminated unions (`OneOf?`), and add tests for undiscriminated u... - [February 2, 2025](february-2-2025.md): **`(internal):`** Miscellaneous improvement for the C# generator - [January 22, 2025](january-22-2025-2.md): **`(fix):`** Change serialization logic for headers and querystring parameters: - [November 25, 2024](november-25-2024.md): **`(feat):`** Add two dependencies who previously were transitive dependencies to ensure the generated SDKs use the p... - [November 20, 2024](november-20-2024-4.md): **`(feat):`** Add partial`JsonOptions.ConfigureJsonSerializerOptions`method to allow SDK maintainers to configure t... - [November 19, 2024](november-19-2024-2.md): **`(feat):`** Add support for [Auto Pagination](https://buildwithfern.com/learn/sdks/features/auto-pagination). - [November 14, 2024](november-14-2024-3.md): **`(feat):`** Add support for [idempotency headers](https://buildwithfern.com/learn/sdks/capabilities/idempotency-hea... - [November 12, 2024](november-12-2024.md): **`(feat):`** Set Content-Type header for HTTP requests when specified in the API spec/definition. - [November 9, 2024](november-9-2024.md): **`(feat):`** Copy the csproj Version as the AssemblyVersion and FileVersion. - [November 8, 2024](november-8-2024-2.md): **`(feat):`** Generate a ProjectName.Test.Custom.props file for you to configure any MSBuild properties for your test... - [November 7, 2024](november-7-2024-2.md): **`(feat):`** Generate a ProjectName.Custom.props file for you to configure any MSBuild properties for your project. - [November 6, 2024](november-6-2024-2.md): **`(chore):`** Update`System.Text.Json`dependency from`8.0.4`to`8.0.5`because a security patch was released to ... - [November 5, 2024](november-5-2024.md): **`(feat):`** Add support for calling HTTP endpoints and gRPC endpoints within the same service. - [October 30, 2024](october-30-2024.md): **`(feat):`** Add forward-compatible enums. Set`experimental-enable-forward-compatible-enums`to`true`in the confi... - [October 28, 2024](october-28-2024.md): **`(fix):`** Make sure summary and code examples in XML code comments are XML encoded. - [October 8, 2024](october-8-2024-2.md): **`(fix):`** Fixes a bug where the`OauthTokenProvider.cs`was incorrectly referencing - [August 29, 2024](august-29-2024.md): **`(feat):`** Adds support for Client Credentials OAuth with token refresh. - [August 28, 2024](august-28-2024-2.md): **`(feat):`** Add support for service-level headers. - [August 26, 2024](august-26-2024-2.md): **`(internal):`** Generate a`Version`class which is used to reference the current version. - [August 22, 2024](august-22-2024.md): **`(internal):`** No changes. - [August 12, 2024](august-12-2024.md): **`(feat):`** Add support for Protobuf file dependencies to generate gRPC client stubs. - [August 11, 2024](august-11-2024.md): **`(fix):`** Error strings are correctly mapped to an appropriate exception. - [August 10, 2024](august-10-2024.md): **`(feat):`** Get better Unit Testing JSON comparison results by using`FluentAssertions`. - [August 9, 2024](august-9-2024-2.md): **`(internal):`** Mark internal files`internal`. - [August 7, 2024](august-7-2024-3.md): **`(fix):`** Fix a bug where conflicting class names and namespaces cause compile to fail. - [August 1, 2024](august-1-2024-3.md): **`(feat):`** Add the`base-api-exception-class-name`and`base-exception-class-name`generator configuration. These ... - [July 31, 2024](july-31-2024-3.md): **`(feat):`** Support text response types. - [July 30, 2024](july-30-2024.md): **`(feat):`** Add support for`uint`,`ulong`, and`float`types. - [July 29, 2024](july-29-2024-3.md): **`(feat):`** The C# generator now supports configuration to match namespaces to file paths. - [July 25, 2024](july-25-2024-2.md): **`(internal):`** Add header suppliers to`RawClient`constructor parameters. - [July 23, 2024](july-23-2024-3.md): **`(internal):`** More improvements to datetime serialization. - [July 22, 2024](july-22-2024-2.md): **`(fix):`** Fixed a bug with serializing datetimes. - [July 17, 2024](july-17-2024-2.md): **`(chore):`** Bump IR to 51. - [July 10, 2024](july-10-2024-3.md): **`(internal):`** Enable generating unions with up to 32 types by adding the OneOf.Extended package. - [July 9, 2024](july-9-2024-3.md): **`(feat):`** Add targets for .NET Standard 2.0 and .NET Framework 4.6.2. - [July 2, 2024](july-2-2024-2.md): **`(fix):`** Ensure base client requests are generated correctly. - [June 21, 2024](june-21-2024.md): **`(feat):`** Add support for specifying extra dependencies in the C# generator configuration. - [June 20, 2024](june-20-2024-3.md): **`(fix):`** The SDK now supports making requests with a Content-Type of`application/octet-stream`for byte data. - [June 19, 2024](june-19-2024-3.md): **`(fix):`** Query and header parameters with optional datetimes are now encoded in ISO 8601 format before making req... - [June 7, 2024](june-7-2024-4.md): **`(feat):`** The SDK is now compatible exclusively with .NET 6. This change reflects significant code adjustments ne... - [May 31, 2024](may-31-2024-3.md): **`(fix):`** Array and list fields are now generated as`IEnumerable`. - [May 29, 2024](may-29-2024-3.md): **`(internal):`** Enum serializers are now added directly to enum declarations. - [May 28, 2024](may-28-2024-2.md): **`(internal):`** Generated GitHub workflows now run on dotnet-version 8.x. - [May 23, 2024](may-23-2024-3.md): **`(fix):`** Miscellaneous fixes. - [May 22, 2024](may-22-2024-2.md): **`(feat):`** If a LICENSE is specified, the generator now packages the license in the .csproj file. - [May 20, 2024](may-20-2024-3.md): **`(feat):`** The C# generator now generates a proper`.csproj`file with version, GitHub URL, and a reference to the... - [May 15, 2024](may-15-2024-4.md): **`(feat):`** The generated SDK now publishes GitHub Actions to build and publish the generated package to NuGet. - [May 10, 2024](may-10-2024.md): **`(fix):`** When an inlined request body is entirely made up of request body properties, the entire request can now ... - [PHP quickstart](php-quickstart.md): Get started quickly with the Fern PHP SDK. - [PHP configuration](php-configuration.md): Configure your PHP SDK generator with Fern. Customize client names, namespaces, package settings, and composer.json f... - [Publishing to Packagist](publishing-to-packagist.md): How to publish the Fern PHP SDK to Packagist. - [Adding custom code](adding-custom-code-7.md): Learn how to add custom logic, methods, and dependencies to your PHP SDK. Step-by-step guide to extending Fern-genera... - [January 26, 2026](january-26-2026-6.md): **`(fix):`** Fix wire tests to start and stop the mock server once for all tests instead of per test class. Previousl... - [January 23, 2026](january-23-2026-4.md): **`(fix):`** Fix wire test generation for file upload endpoints. When file parameters are required but no example val... - [December 18, 2025](december-18-2025-6.md): **`(chore):`** Add sdkVersion as a top-level field in the generated metadata.json file. - [December 9, 2025](december-9-2025-4.md): **`(fix):`** Fix OAuth and InferredAuth token refresh to work on every request. Previously, tokens were fetched once ... - [December 3, 2025](december-3-2025-3.md): **`(feat):`** Add support for custom pagination in PHP SDK. The generator now handles custom pagination endpoints by ... - [December 2, 2025](december-2-2025-5.md): **`(fix):`** Fix getGitHubConfig to return RawGithubConfig with undefined values instead of throwing errors when publ... - [December 1, 2025](december-1-2025-2.md): **`(feat):`** Retries now check`Retry-After`and`X-RateLimit-Reset`response headers before defaulting to exponenti... - [November 27, 2025](november-27-2025-3.md): **`(fix):`** Fix DateTime formatting for optional and nullable query parameters. Previously, optional and nullable Da... - [November 26, 2025](november-26-2025-6.md): **`(fix):`** Remove error on null config in README generation. - [November 25, 2025](november-25-2025-3.md): **`(fix):`** Fix dynamic snippets to properly handle custom URLs in multi-URL environments. Custom URLs now correctly... - [November 21, 2025](november-21-2025-6.md): **`(fix):`** Fix environment passing in PHP SDK sub-clients for multi-URL environments. Sub-clients now properly rece... - [November 20, 2025](november-20-2025-4.md): **`(feat):`** Add support for multi-URL environments. Generated SDKs now use a class-based Environments with readonly... - [November 19, 2025](november-19-2025-6.md): **`(chore):`** Bump generator CLI version to publish new Docker image. - [November 4, 2025](november-4-2025-6.md): **`(feat):`** Added Generation Metadata file to output - [October 17, 2025](october-17-2025-3.md): **`(fix):`** Fix enum string escaping and PHP reserved keyword handling. - [September 29, 2025](september-29-2025-6.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 21, 2025](september-21-2025.md): **`(feat):`** Add support for custom sections in the README.md via`customSections`config option. - [September 19, 2025](september-19-2025-2.md): **`(fix):`** Boolean request values encoded as 'true' or 'false' instead of '1' or '0'. - [September 17, 2025](september-17-2025-5.md): **`(fix):`** Fixes an issue where the generated usage snippets in the README.md was not prioritizing - [August 27, 2025](august-27-2025-5.md): **`(fix):`** Fixed semver for changelog validation. - [August 8, 2025](august-8-2025.md): **`(fix):`** Support for apiVersion header. Default accept header to */*. - [July 10, 2025](july-10-2025-3.md): **`(fix):`** Fix duplicate array types in undiscriminated union properties. Previously, nested unions - [July 2, 2025](july-2-2025-2.md): **`(feat):`** Add documentation for using a custom client in the README. This makes it easier - [July 1, 2025](july-1-2025-3.md): **`(feat):`** Add documentation for pagination in the README, this uses the AST to build some human readable - [June 3, 2025](june-3-2025-5.md): **`(feat):`** Add documentation for retries and timeout parameters in the README, including examples of how - [April 29, 2025](april-29-2025-2.md): **`(feat):`** Support custom package path - [April 8, 2025](april-8-2025-4.md): **`(fix):`** This updates the PHP generator to better support undiscriminated unions that define one or more`optiona... - [March 4, 2025](march-4-2025-3.md): **`(internal):`** Upgrade to IRv57. - [February 13, 2025](february-13-2025.md): **`(feat):`** Support literal types - [February 12, 2025](february-12-2025-2.md): **`(feat):`** The SDK now supports a`bodyProperties`and`queryParameters`request option, which can be used to add ... - [February 11, 2025](february-11-2025.md): **`(feat):`** You can now modify the generated`composer.json`file by adding a`composerJson`property to your gener... - [February 9, 2025](february-9-2025.md): **`(feat):`** The SDK now supports inline path parameters in the generated request class like so: - [February 7, 2025](february-7-2025.md): **`(fix):`** Catch HTTP request exceptions and rethrow it as a FooApiException. - [February 5, 2025](february-5-2025-2.md): **`(feat):`** Retry HTTP requests on status codes 408, 429, 5XX. You can configure the maximum number of retries like... - [February 3, 2025](february-3-2025-3.md): **`(feat):`** Add support for customizing the package name, which is used in the`User-Agent`header. Users can confi... - [December 12, 2024](december-12-2024-2.md): **`(fix):`** Handle cross package type name deconfliction - [November 20, 2024](november-20-2024-5.md): **`(fix):`** Override escaped method names in the generated client. - [October 30, 2024](october-30-2024-2.md): **`(feat):`** Add support for multipart file uploads. - [October 3, 2024](october-3-2024.md): **`(fix):`** Add`null`to annotations for optional undiscriminated unions. - [September 25, 2024](september-25-2024.md): **`(feat):`** Represent enums in objects as strings. - [September 24, 2024](september-24-2024.md): **`(fix):`** The generated`.github/workflows/ci.yml`file now uses 'shivammathur/setup-php\@v2' to install`php`and... - [Ruby quickstart](ruby-quickstart.md): Learn how to generate a Ruby SDK with Fern. Step-by-step guide to configure generators.yml, run fern generate, and cr... - [Ruby configuration](ruby-configuration.md): Configuration options for the Fern Ruby SDK. - [Publishing to RubyGems](publishing-to-rubygems.md): Publish Ruby SDKs to RubyGems with Fern. Complete setup guide for package configuration, API key authentication, and ... - [Adding custom code](adding-custom-code-8.md): Augment your Ruby SDK with custom utilities - [January 28, 2026](january-28-2026-3.md): **`(fix):`** Fix detached HEAD error in publish workflow. When triggered by a tag push, the workflow - [January 27, 2026](january-27-2026-3.md): **`(feat):`** Implement HTTP status code-based retry logic with exponential backoff. The SDK now automatically - [January 16, 2026](january-16-2026.md): **`(feat):`** Add support for self-hosted mode. When enabled, the generator can clone the user's GitHub - [January 15, 2026](january-15-2026-3.md): **`(fix):`** Add support for clientModuleName config option to customize the root client class name. - [January 14, 2026](january-14-2026-5.md): **`(feat):`** Add support for additional\_query\_parameters in request options. Users can now pass - [January 13, 2026](january-13-2026-6.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 6, 2026](january-6-2026-5.md): **`(fix):`** Fix wire tests for paginated endpoints not triggering HTTP requests. - [January 5, 2026](january-5-2026-6.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [December 19, 2025](december-19-2025-3.md): **`(feat):`** Add opt-in`requirePaths`config option for auto-loading user-defined files when the gem - [December 18, 2025](december-18-2025-7.md): **`(fix):`** Fix endpoint header parameters being included in request body instead of HTTP headers. - [December 17, 2025](december-17-2025-5.md): **`(feat):`** Make the base\_url parameter optional in the main client.rb. The parameter now has a default - [December 16, 2025](december-16-2025-5.md): **`(chore):`** Improve wire test generation with client reuse and AST-level snippet handling. - [December 15, 2025](december-15-2025-5.md): **`(feat):`** Add RubyGems.org OIDC publishing workflow to generated CI: - [December 11, 2025](december-11-2025-5.md): **`(fix):`** Fix union type matching for Hash and Array type wrappers. The`type_matches?`method now - [December 10, 2025](december-10-2025-4.md): **`(chore):`** Improve reference.md generation for parity with TypeScript SDK generator: - [December 8, 2025](december-8-2025-4.md): **`(feat):`** Add support for discriminated unions, enums, and undiscriminated unions in dynamic snippets. - [December 5, 2025](december-5-2025-5.md): **`(fix):`** Move default environment resolution from request functions to root client instantiation. - [December 4, 2025](december-4-2025-4.md): **`(feat):`** Add wire test generation support for Ruby SDK. When enableWireTests is set to true in - [December 3, 2025](december-3-2025-4.md): **`(fix):`** Fix additional RuboCop warnings in generated SDK code: - [December 2, 2025](december-2-2025-6.md): **`(fix):`** Fix additional RuboCop warnings in generated SDK code: - [November 29, 2025](november-29-2025.md): **`(feat):`** Pass raw\_client to custom pager for pagination. This allows custom pager implementations - [November 28, 2025](november-28-2025-2.md): **`(fix):`** Added automatic redaction of sensitive fields in inspect output to prevent accidental exposure of creden... - [November 26, 2025](november-26-2025-7.md): **`(fix):`** Fix request\_options\[:base\_url] being ignored. - [November 24, 2025](november-24-2025-4.md): **`(fix):`** Fix missing path parameters in reference.md code snippets for endpoints with BodyRequest types. - [November 20, 2025](november-20-2025-5.md): **`(fix):`** Improve YARD documentation syntax in generated Ruby SDK code. - [November 19, 2025](november-19-2025-7.md): **`(feat):`** Add YARD documentation comments for method parameters in generated SDK code. - [November 17, 2025](november-17-2025-4.md): **`(fix):`** Validate that all required (non-optional) fields are present for undiscriminated union members. - [November 7, 2025](november-7-2025-5.md): **`(fix):`** Bump IR version which we are dependent on. - [November 6, 2025](november-6-2025-2.md): **`(fix):`** Fix the to\_h method to correctly serialize nested objects while respecting the api\_name parameter. - [November 4, 2025](november-4-2025-7.md): **`(feat):`** Add support for undiscriminated unions in Ruby v2 SDK generator. - [October 21, 2025](october-21-2025-4.md): **`(feat):`** Add support for custom Gemfiles. - [October 1, 2025](october-1-2025-4.md): **`(fix):`** Fix gem versioning when building an SDK locally. - [September 29, 2025](september-29-2025-7.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 21, 2025](september-21-2025-2.md): **`(feat):`** Add support for custom sections in the README.md via`customSections`config option. - [September 17, 2025](september-17-2025-6.md): **`(fix):`** Fixes an issue where the generated usage snippets in the README.md was not prioritizing user defined exa... - [September 16, 2025](september-16-2025-5.md): **`(fix):`** Fix reference to the default environment to use SCREAMING\_SNAKE\_CASE. - [September 15, 2025](september-15-2025-3.md): **`(fix):`** Fix project file to not import non ruby files. - [September 11, 2025](september-11-2025-2.md): **`(fix):`** Fix query parameter handling to support symbol keys in addition to string keys. - [August 29, 2025](august-29-2025-4.md): **`(chore):`** Removed circular dependency logs. - [August 26, 2025](august-26-2025-4.md): **`(feat):`** Updating Ruby build and configuration files, and adding custom test files. - [August 20, 2025](august-20-2025-3.md): **`(fix):`** Fix reference request methods. - [August 18, 2025](august-18-2025-2.md): **`(fix):`** Union types extend the Model class. - [August 13, 2025](august-13-2025-3.md): **`(feat):`** Always lazy load type references to handle circular dependencies and import order. - [August 5, 2024](august-5-2024-2.md): **`(fix):`** The generated endpoint functions no long include object utilities such as`_field_set`or`additional_pr... - [July 22, 2024](july-22-2024-3.md): **`(fix):`** Address serialization issues within iterable types - [July 3, 2024](july-3-2024-2.md): **`(fix):`** Date snippets now wrap their examples in quotation marks to correctly use`.parse` - [July 1, 2024](july-1-2024-2.md): **`(feat):`** allow users to specify additional dependencies and dev dependencies for Ruby SDKs. - [June 13, 2024](june-13-2024-3.md): **`(feat):`** Introduce automatic token refresh for OAuth credentials - [May 27, 2024](may-27-2024.md): **`(feat):`** Generated SDK snippets now leverage the full function module path. - [May 17, 2024](may-17-2024-4.md): **`(internal):`** The generator now uses the latest FDR SDK - [April 9, 2024](april-9-2024-2.md): **`(feat):`** The generated SDK now includes a rakefile to run any tests prefixed with`test_`in the`test`directory - [April 8, 2024](april-8-2024.md): **`(feat):`** additional fix for the same issue within 0.7.0-rc4 (regression introduced within the 0.7.0 RCs where th... - [March 22, 2024](march-22-2024-3.md): **`(internal):`** Leverage shared generator notification and config parsing logic. - [March 18, 2024](march-18-2024-4.md): **`(feat):`** type bytes requests to also take in IO types, indicating to users that they may pass in a stream of bytes - [March 12, 2024](march-12-2024-2.md): **`(fix):`** use strings instead of UUIDs, which are helper classes in Ruby - [February 27, 2024](february-27-2024-3.md): **`(fix):`** Generated yardoc now appropriately reflects the typehint of the value type in maps - [February 20, 2024](february-20-2024-2.md): **`(feat):`** Add support for idempotency headers - [February 15, 2024](february-15-2024-2.md): **`(internal):`** Ensure the Ruby generators do not have strict dependencies on the IR - [February 1, 2024](february-1-2024.md): **`(feat):`** Support client generation (async and sync) as well as most endpoint types (except streaming) - [January 30, 2024](january-30-2024-2.md): **`(internal):`** Initialize the changelog - [Swift quickstart](swift-quickstart.md): Learn how to generate a Swift SDK with Fern. Step-by-step guide to configure generators.yml and create client librari... - [Swift configuration](swift-configuration.md): Configure Swift SDK generator settings including clientClassName, moduleName, environmentEnumName, and nullableAsOpti... - [Publishing as a Swift package](publishing-as-a-swift-package.md): How to publish the Fern Swift SDK as a Swift package - [December 18, 2025](december-18-2025-8.md): **`(chore):`** Add sdkVersion as a top-level field in the generated metadata.json file. - [December 2, 2025](december-2-2025-7.md): **`(fix):`** Fix getGitHubConfig to return RawGithubConfig with undefined values instead of throwing errors when publ... - [November 26, 2025](november-26-2025-8.md): **`(fix):`** Remove error on null config in README generation. - [November 21, 2025](november-21-2025-7.md): **`(fix):`** Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local work... - [November 20, 2025](november-20-2025-6.md): **`(feat):`** Introduced a unified client error enum and structured`HTTPError`with a nested`ResponseBody`, and upd... - [November 19, 2025](november-19-2025-8.md): **`(chore):`** Bump generator CLI version to publish new Docker image. - [November 18, 2025](november-18-2025-4.md): **`(feat):`** Added support for cyclical type detection, rejecting infinite cycles and boxing legal recursive propert... - [November 16, 2025](november-16-2025.md): **`(fix):`** Fixed a bug where discriminated union variant properties that collided with the discriminant property we... - [November 7, 2025](november-7-2025-6.md): **`(fix):`** All static files within the SDK now use fully qualified type references. - [November 4, 2025](november-4-2025-8.md): **`(feat):`** Added Generation Metadata file to output. - [October 31, 2025](october-31-2025-4.md): **`(feat):`** Added generator config option`nullableAsOptional`(defaults to`false`) to decode nullable fields as`... - [October 29, 2025](october-29-2025-5.md): **`(fix):`** Integrates dynamic snippets with the graph-based symbol registry for scope-aware type resolution. - [October 26, 2025](october-26-2025.md): **`(feat):`** Migrated the generator to use the programmatic`generator-cli`API instead of invoking the CLI in a chi... - [October 23, 2025](october-23-2025-3.md): **`(feat):`** Replaced the flat symbol registry with a graph-backed, scope-aware naming system, delivering determinis... - [October 19, 2025](october-19-2025.md): **`(fix):`** Fixed a bug where nullable query parameters were not accessed correctly in endpoint methods. - [October 18, 2025](october-18-2025.md): **`(fix):`** Discriminated union variants with numeric or special character discriminant values now generate valid Sw... - [October 4, 2025](october-4-2025-2.md): **`(feat):`** Swift SDKs now include automatically generated wire tests via the`enableWireTests`option (defaults to... - [September 30, 2025](september-30-2025-4.md): **`(fix):`** Upgraded generator-cli dependency to fix local generation handling of .fernignore files. - [September 25, 2025](september-25-2025-5.md): **`(fix):`** Fixed incorrect handling of`self`keyword in struct property names. - [September 22, 2025](september-22-2025-3.md): **`(feat):`** Added`multipart/form-data`request support with autogenerated`fileUpload`request structs and automat... - [September 18, 2025](september-18-2025-5.md): **`(feat):`** Added support for custom sections in the README.md via`customSections`config option. - [September 17, 2025](september-17-2025-7.md): **`(feat):`** Added`reference.md`generation with endpoint method details and usage examples. - [September 14, 2025](september-14-2025.md): **`(feat):`** Autogenerated README now includes request types, additional headers, additional query string parameters... - [September 12, 2025](september-12-2025-4.md): **`(feat):`** Introduced`Nullable`container type and related extensions to support explicit nulls. - [September 9, 2025](september-9-2025-5.md): **`(fix):`** Fixed incorrect handling of schema`date`fields — now decoded into a new`CalendarDate`type. - [September 5, 2025](september-5-2025-4.md): **`(fix):`** Request headers in endpoint methods are now restricted to String types only. - [September 4, 2025](september-4-2025.md): **`(feat):`** Added autogenerated README for Swift SDKs with dynamic usage snippets. - [September 3, 2025](september-3-2025-3.md): **`(fix):`** Fixed release-mode compilation error in`Core/Networking/HTTPClient.swift`where a guard used preconditi... - [August 26, 2025](august-26-2025-5.md): **`(feat):`** Added`moduleName`generator config option to allow customizing the module name. - [August 24, 2025](august-24-2025.md): **`(feat):`** Namespaced inline request structs under a non-instantiable container enum to reduce the probability of ... - [August 19, 2025](august-19-2025-3.md): **`(feat):`** Added`clientClassName`and`environmentEnumName`generator config options for custom naming. - [August 18, 2025](august-18-2025-3.md): **`(feat):`** Added GitHub publishing support. - [August 16, 2025](august-16-2025.md): **`(feat):`** Added sanitization for literal enum values to generate valid and readable names. - [August 15, 2025](august-15-2025-3.md): **`(feat):`** Added 'fileDownload' response support. - [August 14, 2025](august-14-2025-2.md): **`(fix):`** Fixed an infinite recursion bug in Swift SDKs where convenience initializers without auth schemes could ... - [August 13, 2025](august-13-2025-4.md): **`(feat):`** Added support for string literal types. - [August 11, 2025](august-11-2025-2.md): **`(feat):`** Removed implicit Foundation import by deleting Prelude.swift and adding explicit imports to all source ... - [August 10, 2025](august-10-2025.md): **`(feat):`** Root client can now use an async token provider for bearer authentication. - [August 8, 2025](august-8-2025-2.md): **`(feat):`** Implements support for header, bearer and basic authentication schemes in the Swift SDK. - [August 6, 2025](august-6-2025-2.md): **`(feat):`** Initial beta release. - [Rust quickstart](rust-quickstart.md): Get started with the Fern Rust SDK. - [Rust configuration](rust-configuration.md): Configuration options for the Fern Rust SDK. - [Publishing to crates.io](publishing-to-cratesio.md): How to publish the Fern Rust SDK to crates.io. - [January 26, 2026](january-26-2026-7.md): **`(fix):`** Add serde helpers for base64 and BigInt types to properly serialize/deserialize these types - [January 22, 2026](january-22-2026-4.md): **`(feat):`** Add OAuthTokenProvider for automatic OAuth token management with caching and refresh support. - [January 21, 2026](january-21-2026-5.md): **`(feat):`** Add`packageLicenseFile`config option to support custom license files. When set, uses`license-file`i... - [January 13, 2026](january-13-2026-7.md): **`(chore):`** Update Dockerfile to use the latest generator-cli with improve reference.md generation. - [January 8, 2026](january-8-2026-4.md): **`(chore):`** Support complex dependency specs in extraDependencies and extraDevDependencies config. Dependencies ca... - [January 7, 2026](january-7-2026-3.md): **`(feat):`** Change default datetime type to`DateTime`with flexible parsing. This preserves original ... - [January 5, 2026](january-5-2026-7.md): **`(chore):`** Update Dockerfile CVE patches to work with newer generator-cli package structures. - [December 24, 2025](december-24-2025-2.md): **`(fix):`** Preserve parameter order in dynamic snippets to match API schema definition order. Struct fields in gene... - [December 22, 2025](december-22-2025-2.md): **`(fix):`** Fix wire test request type naming to use IR declaration names instead of synthetic endpoint-based names.... - [December 21, 2025](december-21-2025.md): **`(fix):`** dynamic snippets to match struct naming and default handling - [December 18, 2025](december-18-2025-9.md): **`(chore):`** Add sdkVersion as a top-level field in the generated metadata.json file. - [December 2, 2025](december-2-2025-8.md): **`(fix):`** Fix getGitHubConfig to return RawGithubConfig with undefined values instead of throwing errors when publ... - [November 26, 2025](november-26-2025-9.md): **`(fix):`** Remove error on null config in README generation. - [November 25, 2025](november-25-2025-4.md): **`(chore):`** add circular reference detection and Box wrapping for recursive types - [November 24, 2025](november-24-2025-5.md): **`(chore):`** improved docs.rs with module documentation and dynamic getting started snippets - [November 19, 2025](november-19-2025-9.md): **`(feat):`** enable custom Cargo features and conditional dependency management - [November 7, 2025](november-7-2025-7.md): **`(feat):`** add file upload multipart/form-data support - [November 4, 2025](november-4-2025-9.md): **`(feat):`** Added Generation Metadata file to output - [October 25, 2025](october-25-2025.md): **`(chore):`** add FileUploadRequestBody type generation support and sanitize queryparams fields name - [October 24, 2025](october-24-2025-3.md): **`(feat):`** Add Server-Sent Events (SSE) streaming support with SseStream type - [October 21, 2025](october-21-2025-5.md): **`(chore):`** resolve client name collisions in recursive subpackages and clean up unused imports - [October 20, 2025](october-20-2025-4.md): **`(chore):`** auto-generate publish workflow based on publishConfig - [October 17, 2025](october-17-2025-4.md): **`(feat):`** Add file download support with ByteStream - [October 15, 2025](october-15-2025.md): **`(chore):`** Upgraded to IR v61 and --version params support - [October 11, 2025](october-11-2025.md): **`(feat):`** add native crates.io publishing support for Rust SDKs - [October 7, 2025](october-7-2025-3.md): **`(feat):`** Add recursive type detection and Box wrapping for structs - [October 3, 2025](october-3-2025-3.md): **`(chore):`** Disable doctests and export root client in generator - [October 2, 2025](october-2-2025-4.md): **`(fix):`** use crate prelude::\* for single source of truth for imports, remove wildcard exports - [September 29, 2025](september-29-2025-8.md): **`(fix):`** Upgrade generator-cli dependency to fix local generation handling of .fernignore files. - [September 24, 2025](september-24-2025-4.md): **`(feat):`** Add documentation comments and remove warning for unused imports/exports - [September 23, 2025](september-23-2025-5.md): **`(chore):`** Add request parameter type generation support - [September 20, 2025](september-20-2025-2.md): **`(feat):`** Restructure Rust SDK to have correct support for sub-client folders and query builder pattern - [September 18, 2025](september-18-2025-6.md): **`(feat):`** base CI workflow - [September 17, 2025](september-17-2025-8.md): **`(fix):`** Fixes an issue where the generated usage snippets in the README.md was not prioritizing user defined exa... - [September 10, 2025](september-10-2025-4.md): **`(chore):`** enhanced error handling and rustfmt - [August 27, 2025](august-27-2025-6.md): **`(fix):`** Fixed semver for changelog validation. - [August 16, 2025](august-16-2025-2.md): **`(feat):`** Added pagination support - [August 13, 2025](august-13-2025-5.md): **`(chore):`** enable git and git config - [August 11, 2025](august-11-2025-3.md): **`(feat):`** Updated package name. - [July 25, 2025](july-25-2025-4.md): **`(feat):`** Initial beta release. - [Postman quickstart](postman-quickstart.md): Generate a postman collection full of example requests and responses - [Publishing to Postman](publishing-to-postman.md): Publish a Postman collection full of example requests and responses - [SDK user features](sdk-user-features.md): Learn about SDK user features in Fern-generated client libraries including installation, error handling, webhook veri... - [Customize README](customize-readme.md): Customize your SDK README with Fern's generators.yml configuration. Add custom sections, control example styles, and ... - [Customize method names](customize-method-names.md): Learn how to customize SDK method names in Fern to create intuitive, user-friendly code. Configure group names and me... - [Filter your endpoints (audiences)](filter-your-endpoints-audiences.md): Learn how to filter API endpoints using audiences in Fern SDKs. Generate tailored client libraries for internal teams... - [Configure global headers](configure-global-headers.md): Learn how to configure global headers in Fern SDKs. Set up API headers once as constructor parameters for automatic i... - [Dynamic authentication](dynamic-authentication-3.md): Implement dynamic auth in Fern SDKs with JWT signing, OAuth token refresh, and rotating API keys. Language-specific g... - [Configure auto pagination](configure-auto-pagination.md): Paginate through API responses easily with offset, cursor, and link-based pagination. - [Configure idempotency headers](configure-idempotency-headers.md): SDKs that safely support retrying requests - [Retries with backoff](retries-with-backoff.md): Learn how to configure automatic retries with exponential backoff in Fern SDKs. Control retry limits and customize re... - [Set up local SDK previews](set-up-local-sdk-previews.md): Learn how to set up local SDK previews with Fern's --preview flag. Test generated SDK code locally before publishing ... - [Preview SDK for a specific language](preview-sdk-for-a-specific-language.md): fern generate --group -sdk --preview - [Testing](testing.md): Fern automatically generates unit tests and mock server tests for SDKs to ensure quality before release - [Self-hosted SDKs](self-hosted-sdks.md): Fern supports self-hosting SDK generation so that you can run SDK generation on your own infrastructure. - [generators.yml configuration schema](generatorsyml-configuration-schema.md): Complete generators.yml configuration reference for Fern SDK generation. Configure authentication, publishing, GitHub... - [Fern Docs](fern-docs.md): Build beautiful, interactive documentation websites with Fern Docs. Create API references, custom components, and AI-... - [How Fern Docs work](how-fern-docs-work.md): Learn how Fern transforms your API specifications and documentation into a unified developer experience - [Quickstart](quickstart-2.md): Learn how to build beautiful developer documentation with Fern in under 5 minutes. Install CLI, add Markdown content,... - [Self-service setup](self-service-setup.md): Create a new Fern docs site using the guided self-service workflow in the Dashboard. - [Project structure](project-structure-2.md): An overview of the file and folder structure of a Fern Docs project - [January 30, 2026](january-30-2026-3.md): The``component enables client-side filtering for large tables. A search input appears above the ta... - [January 22, 2026](january-22-2026-5.md): The``component now supports a`showLineNumbers`prop that allows you to hide line numbers in the gutter.... - [January 17, 2026](january-17-2026.md): The``component now supports`products`and`versions`props, allowing you to conditionally show content based o... - [January 15, 2026](january-15-2026-4.md): The``component now supports a`languages`prop to control which languages appear in the dro... - [January 9, 2026](january-9-2026-3.md): The new``component displays different content based on version selection. Users can switch between versio... - [January 5, 2026](january-5-2026-8.md): The``component now supports a`collapsed`prop to control the initial display state. When set to ... - [December 20, 2025](december-20-2025.md): The Card and Icon components support relative paths to SVG files. Use a relative path like`./images/icon.svg`to dis... - [December 16, 2025](december-16-2025-6.md): You can now hide the header and footer from your documentation pages by adding`?embedded=true`to any URL. This make... - [December 15, 2025](december-15-2025-6.md): Define custom page action buttons with your own titles, icons, and URLs. Custom actions appear alongside the built-in... - [December 14, 2025](december-14-2025.md): Fern automatically generates realistic request and response examples for your API Reference using AI. Instead of plac... - [December 11, 2025](december-11-2025-6.md): You can now display custom text to the right of your logo image using the new`right-text`property in your logo conf... - [December 10, 2025](december-10-2025-5.md): The new``component displays type definitions from your API Reference as a JSON code block. Use it al... - [December 9, 2025](december-9-2025-5.md): You can now display a "Last updated" message in the page footer using the new`last-updated`frontmatter property. Th... - [December 3, 2025](december-3-2025-5.md): We've updated our platform to address a critical security vulnerability (CVE-2025-66478) in React Server Components. ... - [November 25, 2025](november-25-2025-5.md): You can now use OpenAPI tag descriptions as summary pages for API reference sections. When you set`tag-description-p... - [November 24, 2025](november-24-2025-6.md): Announcement banners can now be configured at multiple levels to target specific products or versions. - [Config-level announcement (fallback)](config-level-announcement-fallback.md): announcement: - [November 18, 2025](november-18-2025-5.md): New``and``tags let you provide additional context for AI assistants while keeping your do... - [November 14, 2025](november-14-2025-4.md): Control where links open with the`target`property. Available for product, tab, navbar, and page links. For typical ... - [November 11, 2025](november-11-2025-6.md): The API Explorer now supports multiple authentication schemes and combinations of authentication schemes for OpenAPI ... - [November 9, 2025](november-9-2025.md): The new``component creates visual file tree structures with expandable folders and nested files. Use it to s... - [November 8, 2025](november-8-2025-2.md): Reusable Markdown snippets support arbitrary parameters that can be used as variables in the snippet. This enables fl... - [November 5, 2025](november-5-2025-6.md): AI agents can now access authenticated documentation directly via HTTP API. This enables custom integrations and AI t... - [November 3, 2025](november-3-2025-3.md): Create multiple content variations within a single tab using the new variants feature. This allows you to show differ... - [November 2, 2025](november-2-2025.md): Group related links in your navbar with new dropdown menus. Organize resources, tools, or external links under a sing... - [October 17, 2025](october-17-2025-5.md): HTTP snippets are now enabled by default for all documentation sites, making it easier for developers to see cURL, Py... - [Turn off HTTP snippets](turn-off-http-snippets.md): settings: - [Or specify only certain languages](or-specify-only-certain-languages.md): settings: - [June 5, 2025](june-5-2025-4.md): Organize your docs by product so developers can find what they need quickly. Perfect for companies with multiple APIs... - [May 23, 2025](may-23-2025.md): We've added a`max-toc-depth`frontmatter option to control the depth of the table of contents. Use this to limit the... - [May 22, 2025](may-22-2025-2.md): We now have themed 404 pages for your docs, using your theme colors, fonts, and buttons. We also maintain the best-ef... - [May 20, 2025](may-20-2025-4.md): * feat: improvements to local preview mode, including support for custom javascript and bug fixes for reloading perfo... - [May 13, 2025](may-13-2025-6.md): * feat: allow response and request in playground to be selectable - [May 2, 2025](may-2-2025.md): * feat(cli): using`fern docs dev`on the latest CLI will now better reflect the docs in production - [April 29, 2025](april-29-2025-3.md): * fix(seo):`og`and`twitter`defined in the`docs.yml`config are now respected - [April 28, 2025](april-28-2025-2.md): * chore(local): beta local development mode now refreshes on file changes - [April 27, 2025](april-27-2025.md): * fix(openrpc): openrpc playground params are now an array - [February 4, 2025](february-4-2025-3.md): Starting today, when you select a programming language in any``or``, that preference will automa... - [January 21, 2025](january-21-2025-3.md): The accordion component has been upgraded so that you can now use your in-browser`cmd+f`search to look for text tha... - [January 14, 2025](january-14-2025-2.md): API Docs should be for LLMs and Agents too, not just people! - [December 30, 2024](december-30-2024.md): Added support for streaming audio directly within the API Explorer. This feature enables testing audio endpoints with... - [November 27, 2024](november-27-2024.md): Save developers the hassle of finding and copying their API key. When authenticated, their API credentials will be au... - [October 31, 2024](october-31-2024.md): Implemented automatic API key extraction from JWT tokens in the documentation playground. Users can now test authenti... - [September 2024](september-2024.md): Created an editable playground environment system for testing API endpoints. Users can now switch between different A... - [August 2024](august-2024.md): Redesigned anchor link handling for improved navigation within documentation pages. Links now account for fixed heade... - [July 2024](july-2024.md): Implemented comprehensive meta image support for better social sharing. Documentation pages now display properly when... - [June 2024](june-2024.md): Added support for RSS feeds to keep users updated on documentation changes. Teams can now offer automated notificatio... - [May 22, 2024](may-22-2024-3.md): Implemented a powerful redirects system supporting pattern matching and parameter preservation. Teams can now manage ... - [April 20, 2024](april-20-2024.md): Improved sidebar padding and visual hierarchy with refined spacing and typography. The documentation navigation now p... - [March 2024](march-2024.md): Implemented performance-optimized code rendering that handles large code blocks efficiently without impacting page pe... - [February 22, 2024](february-22-2024-2.md): Added real-time WebSocket testing capabilities to the API playground, enabling developers to test streaming and real-... - [January 24, 2024](january-24-2024.md): Enable interactive API testing directly in the documentation. - [Customize site-level settings using docs.yml](customize-site-level-settings-using-docsyml.md): Learn how to configure your Fern documentation site with the docs.yml file. Customize colors, typography, layout, ana... - [yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json](yaml-language-server-schemahttpsschemabuildwithferndevdocs-ymljson.md): This enables real-time schema validation and autocompletion based on our [complete schema](https://github.com/fern-ap... - [yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json](yaml-language-server-schemahttpsschemabuildwithferndevdocs-ymljson-2.md): title: Stripe API Documentation - [Configure your site navigation](configure-your-site-navigation.md): Set up the navigation for your documentation site built with Fern Docs using the docs.yml file, including tabs, secti... - [Tabs and tab variants](tabs-and-tab-variants.md): Learn how to configure tabs and tab variants in Fern documentation. Group content sections with custom icons and disp... - [Versioning](versioning.md): Learn how to add versioning to your Fern documentation. Configure multiple doc versions, customize version selectors,... - [Product switching](product-switching.md): Learn how to configure product switching in Fern Docs. Set up multiple products with custom navigation, versioning, a... - [Keep a Changelog](keep-a-changelog.md): Record the notable changes to your project - [Customize content using frontmatter](customize-content-using-frontmatter.md): Use frontmatter to set a variety of page properties and metadata. - [Markdown basics](markdown-basics.md): Use Markdown and MDX to add content to your Fern documentation site, including headers, components, and links. - [Rich media in Markdown](rich-media-in-markdown.md): Embed images, videos, PDFs, LaTeX equations, and diagrams in your Fern documentation. - [Components overview](components-overview.md): Complete guide to Fern documentation components. Build better docs with accordions, callouts, tables, tabs, and inter... - [Accordion](accordion.md): Add expandable Accordion sections to your Fern documentation. Perfect for FAQs, settings panels, and progressive cont... - [Anchor](anchor.md): Create linkable anchors for paragraphs, tables, and other content without headings - [Aside](aside.md): Use Fern's Aside component to add floating, sticky content to your documentation pages. Ideal for showcasing code exa... - [Badge](badge.md): Display small labels for status, versions, and metadata inline with your content. - [Button](button.md): Learn how to use the Button component in Fern docs. Create interactive buttons with custom styles, sizes, intents, an... - [Callout](callout.md): Learn how to use the Callout component to add warnings, tips, notes, and alerts to your documentation with custom ico... - [Card](card.md): Use cards to display content in a box - [Code block](code-block.md): Learn how to enhance your documentation with customizable code blocks featuring syntax highlighting, line highlightin... - [Copy](copy.md): Make text copyable with a click-to-copy button. - [Download](download.md): The Download component enables users to download PDFs and files from your documentation. Simple setup with custom fil... - [Endpoint request snippet](endpoint-request-snippet.md): Learn how to use EndpointRequestSnippet components in Fern to reference API endpoint requests in your documentation w... - [Endpoint response snippet](endpoint-response-snippet.md): Reference an endpoint response from your API Reference - [Endpoint schema snippet](endpoint-schema-snippet.md): Reference an endpoint schema from your API Reference - [Webhook payload snippet](webhook-payload-snippet.md): Reference a webhook payload from your API Reference to display example payloads in your documentation. - [Files](files.md): Display interactive file tree structures with expandable folders - [Frame](frame.md): Use Fern's Frame component to display images with captions in your docs. Includes subtle background variants and prop... - [Icon](icon.md): Learn how to add Font Awesome icons to your Fern documentation. Customize icon sizes, colors, and styles with the Ico... - [Indent](indent.md): Learn how to use the Indent component in Fern to add left indentation with vertical guide lines for nested parameters... - [Parameter field](parameter-field.md): Learn how to document API parameters with Fern's ParamField component. Format types, requirements, defaults, and desc... - [Runnable endpoint](runnable-endpoint.md): Add testable API endpoints to your docs with RunnableEndpoint. Support multiple environments, examples, and real-time... - [Step](step.md): Learn how to use the Steps component in Fern Docs to create sequential tutorials and walkthroughs with automatic numb... - [Table](table.md): Display data in rows and columns using markdown tables with optional sticky headers. - [Tab](tab.md): The Tabs component allows you to display related content in a tabbed view with support for language synchronization. - [Tooltip](tooltip.md): Learn how to add interactive tooltips to your documentation. Display contextual information on hover for text and cod... - [Versions](versions.md): The Versions component displays content that changes based on version selection, with a dropdown to switch between ve... - [Fern Editor](fern-editor.md): Update your documentation without learning Git or markdown. Fern Editor offers visual editing for non-technical teams... - [Reusable snippets](reusable-snippets.md): Single source your documentation with reusable, custom markdown snippets to keep content in sync. Edit once, update e... - [Custom React components](custom-react-components.md): Add custom React components to your Fern docs for interactive, server-rendered elements. Improve SEO, performance, an... - [AI features](ai-features.md): Fern AI features help users find answers instantly, automate content updates, and optimize documentation for AI tools... - [Fern Writer](fern-writer.md): A Slack-based technical writing agent that updates your documentation via GitHub pull requests - [AI-generated examples](ai-generated-examples.md): Automatically create realistic API examples with Fern's AI feature. Customize example styles or disable AI generation... - [llms.txt and llms-full.txt](llmstxt-and-llms-fulltxt.md): Fern automatically creates llms.txt files for AI developer tools. Filter by language, control visibility, and track a... - [Fern Docs](fern-docs-2.md): Build beautiful documentation websites with Fern. - [Overview](overview.md): Ask Fern is an AI search feature that indexes your documentation and helps users find answers instantly. Reduce suppo... - [Setup](setup.md): Configure where Ask Fern is available and what content it can access. - [Features](features.md): Ask Fern features including analytics, citations, insights, evaluation, and role-based access control. - [Guidance](guidance.md): Configure custom guidance to override Ask Fern AI responses for specific queries. Control sensitive content like bill... - [Additional content sources](additional-content-sources.md): Extend Ask Fern's knowledge with content from FAQs, support tickets, blogs, and other sources. - [Ask Fern Slack app](ask-fern-slack-app.md): Enable your customers to get instant answers to product questions directly in Slack using Ask Fern's AI-powered docum... - [Introduction](introduction.md): Welcome to the Fern API Reference. - [Post Chat Completion](post-chat-completion.md): POST - [Create Code Record](create-code-record.md): POST - [Batch Create Code Records](batch-create-code-records.md): POST - [Get Code Record By Id](get-code-record-by-id.md): GET - [Get Code Records](get-code-records.md): GET - [Delete Code Record By Id](delete-code-record-by-id.md): DELETE - [Delete All Code Records](delete-all-code-records.md): DELETE - [Get Conversation By Id](get-conversation-by-id.md): GET - [Create Discord Integration](create-discord-integration.md): POST - [Create Document](create-document.md): POST - [Batch Create Document](batch-create-document.md): POST - [Get Document By Id](get-document-by-id.md): GET - [Update Document](update-document.md): PATCH - [Delete Document By Id](delete-document-by-id.md): DELETE - [Batch Delete Document](batch-delete-document.md): DELETE - [Get Documents](get-documents.md): GET - [Delete All Documents](delete-all-documents.md): DELETE - [Create Guidance](create-guidance.md): POST - [Get Guidance By Id](get-guidance-by-id.md): GET - [Delete Guidance By Id](delete-guidance-by-id.md): DELETE - [Update](update.md): PATCH - [Get Guidances](get-guidances.md): GET - [Get Recent Queries](get-recent-queries.md): GET - [Get Slack Install Link](get-slack-install-link.md): GET - [Index Website](index-website.md): POST - [Get Website Status](get-website-status.md): GET - [Get Website By Id](get-website-by-id.md): GET - [Get Websites](get-websites.md): GET - [Reindex Website](reindex-website.md): POST - [Delete Website](delete-website.md): DELETE - [Delete All Websites](delete-all-websites.md): DELETE - [Preview changes](preview-changes.md): Learn how to preview documentation changes with Fern using local development servers and shareable preview links befo... - [Publishing your docs](publishing-your-docs.md): Publish your Fern docs to production and staging sites with automated workflows. Set up custom domains and manage dep... - [Bring your custom domain](bring-your-custom-domain.md): Learn how to set up your Fern-generated documentation site to use a custom subdomain or subpath. - [Add an announcement banner to your docs](add-an-announcement-banner-to-your-docs.md): Prominently highlight new features, updates, or important information - [Config-level announcement (fallback for all products/versions)](config-level-announcement-fallback-for-all-productsversions.md): announcement: - [Embedded mode](embedded-mode.md): Hide the header and footer when embedding docs in iframes or dashboards - [Hiding content in your site](hiding-content-in-your-site.md): To hide a section, page, or version, you can add`hidden: true`to its configuration. Hidden content is accessible by... - [Search configuration](search-configuration.md): Configure search for your Fern docs using Algolia DocSearch. Filter by versions, endpoints, guides, and changelogs fo... - [Collecting feedback and suggestions from users](collecting-feedback-and-suggestions-from-users.md): Fern offers a variety of ways to track feedback and suggested improvements from users. - [Fully customize your docs](fully-customize-your-docs.md): Learn how to add custom CSS, JavaScript, and UI components to your Fern documentation. Style your docs with custom cl... - [CSS selectors reference](css-selectors-reference.md): Reference guide for all CSS selectors available in Fern docs. Customize layouts, navigation, buttons, forms, accordio... - [Overview](overview-2.md): Discover the accessibility features in Fern documentation, including keyboard navigation, Web Content Accessibility G... - [Keyboard shortcuts](keyboard-shortcuts.md): Learn about keyboard shortcuts in Fern documentation, including navigation shortcuts, search commands, Ask AI panel c... - [Generate your API Reference](generate-your-api-reference.md): Use Fern Docs to generate your API Reference documentation from your API definition, using your choice of either Open... - [Display SDK snippets](display-sdk-snippets.md): Enable SDK code examples in TypeScript, Python, Go, and more from the request and response examples documented in you... - [Display HTTP snippets](display-http-snippets.md): Enable HTTP code examples using cURL, Python requests, TypeScript fetch, and more from the request examples documente... - [API Explorer](api-explorer.md): Reduce "time to 200" by allowing users to make real calls to your API from right within the API Reference. - [Autopopulate API keys](autopopulate-api-keys.md): Set up API key injection with JWT or OAuth authentication. Allow users to login and automatically populate their API ... - [Endpoint errors configuration](endpoint-errors-configuration.md): Enable errors to show up on the endpoint pages of your documentation, from the error names, codes, and objects return... - [Audiences](audiences.md): Use audiences to filter the endpoints, schemas, and properties that are displayed in your API Reference. - [Customize API Reference layout](customize-api-reference-layout.md): Customize your API reference layout with Fern. Order sections and endpoints, flatten navigation, hide endpoints, and ... - [Write Markdown content in your API Reference](write-markdown-content-in-your-api-reference.md): Write rich Markdown content in API documentation. Add descriptions to endpoints, create summary pages, and customize ... - [Generate your webhook reference](generate-your-webhook-reference.md): Use Fern Docs to generate your webhook reference documentation from your API definition, using your choice of either ... - [Multiple Server URLs](multiple-server-urls.md): Configure multiple server environments in your API Reference - [Generate WebSocket Reference](generate-websocket-reference.md): Learn how to generate and customize WebSocket API Reference documentation - [Generate OpenRPC Reference](generate-openrpc-reference.md): Learn how to generate and customize OpenRPC API Reference documentation - [Configure SEO metadata](configure-seo-metadata.md): Configure SEO metadata in Fern docs with page-level frontmatter and site-wide settings. Control titles, descriptions,... - [Customizing slugs within your site](customizing-slugs-within-your-site.md): Customize URL paths in your Fern documentation site. Rename slugs for pages, sections, tabs, landing pages, and subhe... - [Configure links and redirects for your site](configure-links-and-redirects-for-your-site.md): Learn how to configure redirects and external links in Fern Docs. Set up exact path redirects, regex patterns, and na... - [Overview of authentication options](overview-of-authentication-options.md): Understand the different authentication options Fern offers - [Role-based access control](role-based-access-control.md): Learn how to restrict access to your documentation using role-based access control (RBAC) - [Single Sign-On](single-sign-on.md): Fern SSO enables enterprise teams to access documentation securely using corporate credentials. Supports SAML 2.0 and... - [Password protection](password-protection.md): Protect your documentation site with a shared password for simple access control. - [Security](security.md): Learn how Fern's documentation platform secures your API docs with client-side authentication, API key injection, and... - [Self-hosted documentation](self-hosted-documentation.md): Fern supports self-hosting so that you can run your docs site on your own infrastructure. - [Set up self-hosted documentation](set-up-self-hosted-documentation.md): Learn how to set up self-hosted documentation on your own infrastructure. - [Health check endpoints](health-check-endpoints.md): Monitor your self-hosted container's health with built-in liveness and readiness probes. - [Analytics and integrations](analytics-and-integrations.md): Connect analytics and support tools to your Fern documentation. Set up PostHog, Segment, FullStory, Intercom, and Pos... - [Intercom](intercom.md): Learn how to integrate Intercom with Fern Docs! - [Google Analytics](google-analytics.md): Integrate Google Analytics 4 and Google Tag Manager with Fern Docs. Complete setup instructions for tracking website ... - [PostHog](posthog.md): Learn how to add PostHog analytics to your Fern documentation. Configure your PostHog API key and custom endpoint. - [Fullstory](fullstory.md): Integrate Fullstory with Fern docs to capture user sessions and interactions. Step-by-step instructions for adding yo... - [Segment](segment.md): Learn how to add Segment analytics to your Fern documentation. Step-by-step guide to configure your Segment writeKey. - [Mixpanel](mixpanel.md): Learn how to integrate Fern Docs with Mixpanel to track user behavior and analytics. - [Postman integration](postman-integration.md): Generate Postman collections from API definitions with Fern. Create example requests and responses for testing and ex... - [Orchestrate releases](orchestrate-releases.md): Automate docs releases based on GitHub repository releases. Set up workflows to trigger auto-merge PRs when features ... - [Auto-update last updated dates](auto-update-last-updated-dates.md): Use a GitHub Action to automatically update the last-updated frontmatter property when MDX files change. - [Trigger this workflow when PRs are opened or updated](trigger-this-workflow-when-prs-are-opened-or-updated.md): on: - [Cursor](cursor.md): [Cursor](https://www.cursor.com/) is a code editor that uses AI to assist in the code development process. - [Hosting with GitLab](hosting-with-gitlab.md): To host your Fern docs using GitLab, you will need to [add a Fern token to your repository variables](/learn/docs/dev... - [Using Vale](using-vale.md): Learn how to set up Vale to lint your Fern documentation and maintain consistent writing style across your docs. - [View Markdown](view-markdown.md): Learn how to view the Markdown underlying a documentation page, to help with tool integration and troubleshooting. - [JWT from Fern API key](jwt-from-fern-api-key.md): GET - [Algolia search credentials](algolia-search-credentials.md): GET - [Current user information](current-user-information.md): GET - [Get Fern Writer Install Link](get-fern-writer-install-link.md): GET - [Dashboard overview](dashboard-overview.md): Manage your Fern projects, settings, and team from a central dashboard. - [Member permissions](member-permissions.md): Manage Dashboard and CLI access for your organization. - [Connect a GitHub repository](connect-a-github-repository.md): Link your GitHub repository to your Fern project for automated deployments. - [Set up Single Sign-On (SSO)](set-up-single-sign-on-sso.md): Let teammates sign in to Fern with your IdP (SAML or OIDC) - [Set up a custom domain](set-up-a-custom-domain.md): Use the Fern Dashboard to configure your custom domain with DNS records for subdomain, subpath, or root domain hosting. - [January 20, 2026](january-20-2026-4.md): You can now assign roles to teammates in your organization to control who can publish to production and manage organi... - [January 7, 2026](january-7-2026-4.md): You can now configure custom domains for your documentation site directly in the [Fern Dashboard](https://dashboard.b... - [January 5, 2026](january-5-2026-9.md): The Fern Dashboard now includes a link checker that scans your published documentation for broken links, validating b... - [Overview](overview-3.md): Learn how to use the Fern CLI to manage API projects, validate definitions, preview changes, and publish docs and SDKs. - [Global options](global-options.md): Global options for the Fern CLI - [Commands](commands.md): Complete reference for all Fern CLI commands for generating SDKs and developer documentation. - [February 2, 2026](february-2-2026-2.md): **`(feat):`** Add support for`index.mdx`(or`index.md`) files as section overviews when using`folder`navigation. ... - [January 31, 2026](january-31-2026.md): **`(fix):`** Improve`fern docs diff`region detection with top-down and bottom-up scanning. The algorithm now finds ... - [January 30, 2026](january-30-2026-4.md): **`(fix):`** Fix default value for`switcher-placement`in docs.yml layout configuration. - [January 29, 2026](january-29-2026-5.md): **`(internal):`** Regenerate types for fern-definition, docs-yml, generators-yml, conjure-sdk, openapi-ir, and ir-typ... - [January 28, 2026](january-28-2026-4.md): **`(feat):`** Add support for`branch`property in pull-request GitHub mode. When specified, the PR will target this ... - [January 26, 2026](january-26-2026-8.md): **`(fix):`** Fix air-gapped environment support for`fern generate --docs`. Added airgapped detection to skip externa... - [January 23, 2026](january-23-2026-5.md): **`(fix):`** Fix`tag-description-pages`not matching OpenAPI tags with spaces or hyphens. The tag ID lookup now norm... - [January 22, 2026](january-22-2026-6.md): **`(fix):`** Fix ANY auth conversion to FDR multiAuth format. When the IR has`AuthSchemesRequirement.ANY`, the conve... - [January 21, 2026](january-21-2026-6.md): **`(fix):`** Fix OpenAPI example summary not appearing as tab titles in API reference docs. The`displayName`(derive... - [January 20, 2026](january-20-2026-5.md): **`(fix):`** Fix AsyncAPI query parameters with`$ref`types being incorrectly marked as required. - [January 19, 2026](january-19-2026.md): **`(fix):`** Fix AI example generation to filter path/query/header parameters from request bodies and omit empty requ... - [January 16, 2026](january-16-2026-2.md): **`(feat):`** Add edit this page launch target - [January 15, 2026](january-15-2026-5.md): **`(fix):`** Add air-gapped environment detection for AI example enhancement. The CLI now detects network availabilit... - [January 14, 2026](january-14-2026-6.md): **`(fix):`** Rename java-model generator to fern-java-model. - [January 13, 2026](january-13-2026-8.md): **`(feat):`** Add support for OpenAPI min/max validation keywords in the IR. This includes`minimum`,`maximum`,`exc... - [January 12, 2026](january-12-2026-3.md): **`(feat):`** Add support for parsing response headers from OpenAPI specs. Response headers defined on success respon... - [January 10, 2026](january-10-2026-2.md): **`(fix):`** Fix`security: []`handling in OpenAPI importer to correctly mark endpoints as not requiring authenticat... - [January 9, 2026](january-9-2026-4.md): **`(fix):`** Fix protobuf IR generation to support air-gapped environments. The CLI now uses a pre-cached`buf.lock`... - [January 8, 2026](january-8-2026-5.md): **`(chore):`** Add Excel file support (.xlsx) to the allowed file types for documentation uploads. This enables users... - [January 7, 2026](january-7-2026-5.md): **`(feat):`** The`fern init`command now automatically creates a`.gitignore`file inside the`fern/`folder with en... - [January 6, 2026](january-6-2026-6.md): **`(fix):`** Respect the`path-parameter-order`setting from`generators.yml`when importing OpenAPI specs, which is ... - [January 5, 2026](january-5-2026-10.md): **`(feat):`** Add`x-fern-parameter-name`extension support for AsyncAPI parameters. This allows customizing paramete... - [December 24, 2025](december-24-2025-3.md): **`(feat):`** Add`extends`field to dynamic IR ObjectType to expose inheritance information for generators that need... - [December 23, 2025](december-23-2025-3.md): **`(fix):`** Fix double JSON.stringify in dynamic IR upload, reducing memory usage and ensuring correct Content-Lengt... - [December 22, 2025](december-22-2025-3.md): **`(fix):`** Support`x-fern-base-path`extension in the OpenAPI v3 parser. - [December 21, 2025](december-21-2025-2.md): **`(chore):`** Adds a`product-switcher.toggle`theme option to the docs configuration. - [December 20, 2025](december-20-2025-2.md): **`(feat):`** Support using local icons in``and``components. - [December 19, 2025](december-19-2025-4.md): **`(feat):`** Add opt-in`pydantic_config.positional_single_property_constructors`to allow`Wrapper("value")` - [December 18, 2025](december-18-2025-10.md): **`(feat):`** Add`ENDPOINT_SECURITY`value to`AuthSchemesRequirement`enum in the IR. - [December 17, 2025](december-17-2025-6.md): **`(feat):`** Allow omitting the`fernapi/`prefix in generator names in`generators.yml`. The prefix is now inferred... - [December 16, 2025](december-16-2025-7.md): **`(fix):`** Fix discriminated unions with nullable object types to use samePropertiesAsObject instead of wrapping in... - [December 15, 2025](december-15-2025-7.md): **`(fix):`** Fix OpenAPI example parsing to preserve explicit`null`values. Previously, explicit`null`values in Op... - [OpenAPI 3.1+ allows $ref siblings like example/examples](openapi-31-allows-ref-siblings-like-exampleexamples.md): Company: - [December 14, 2025](december-14-2025-2.md): **`(feat):`** Add`explode`field to PathParameter and QueryParameter types in the IR for OpenAPI parameter serializa... - [December 13, 2025](december-13-2025-2.md): **`(fix):`** Revert regex parsing of``components. - [December 12, 2025](december-12-2025-4.md): **`(feat):`** Add`ai-example-style-instructions`field to docs.yml experimental config. This allows providing custom... - [December 11, 2025](december-11-2025-7.md): **`(fix):`** Improve dynamic IR generation for inferred auth. - [December 10, 2025](december-10-2025-6.md): **`(feat):`** Propagate webhook responses (e.g., 204, 400, 500 status codes) from OpenAPI specs to the IR. Webhook en... - [generators.yml](generatorsyml-3.md): api: - [December 9, 2025](december-9-2025-6.md): **`(feat):`** Add support for vendor-specific JSON content types in example validation. Content types like`applicati... - [December 8, 2025](december-8-2025-5.md): **`(fix):`** Fix parsing of``components with`for`attribute for synced tabs. The`for`attribute is now prop... - [December 6, 2025](december-6-2025-3.md): **`(fix):`** Fix`fern generate`crash when inheriting from a schema with top-level`nullable: true`via`allOf`. The... - [December 5, 2025](december-5-2025-6.md): **`(fix):`** Map error response headers from IR to FDR for docs display. - [December 4, 2025](december-4-2025-5.md): **`(fix):`** Add basic preprocessing of names in the IR parser; for starters,`[]`->`Array`. - [December 3, 2025](december-3-2025-6.md): **`(fix):`** Fix`substitute-env-vars`not applying to arrays in docs configuration. The`replaceEnvVariables`functi... - [December 2, 2025](december-2-2025-9.md): **`(fix):`** Gracefully handle null values in docs.yml structure. - [generators.yml](generatorsyml-4.md): aliases: - [December 1, 2025](december-1-2025-3.md): **`(feat):`** Log the pull request URL when an SDK is generated with self-hosted GitHub pull-request mode. - [November 27, 2025](november-27-2025-4.md): **`(feat):`** Allow all API settings to be overridden at the generator level in generators.yml. - [generators.yml](generatorsyml-5.md): api: - [generators.yml](generatorsyml-6.md): api: - [November 26, 2025](november-26-2025-10.md): **`(feat):`** When converting OpenAPI to Fern Definition, if all endpoints in a service have`auth: true`, set the`a... - [November 25, 2025](november-25-2025-6.md): **`(fix):`** Fix dynamic snippet property ordering for types with inheritance. Types that are extended by other types... - [generators.yml](generatorsyml-7.md): auth-schemes: - [November 24, 2025](november-24-2025-7.md): **`(feat):`** Support 4XX and 5XX patterns in OpenAPI specs for docs. - [November 23, 2025](november-23-2025-3.md): **`(fix):`** Update local development refresh behavior when updating the`sidebar-title`override, or a`slug`overri... - [November 21, 2025](november-21-2025-8.md): **`(chore):`** Revert "fix(openapi): handle situations where discriminated unions reference unknown variants" - [November 20, 2025](november-20-2025-7.md): **`(fix):`** Add messaging about AI example generation to the CLI. - [November 19, 2025](november-19-2025-10.md): **`(fix):`** Fix OpenAPI enum references being inlined instead of preserved as references. Enum schemas (type: string... - [November 18, 2025](november-18-2025-6.md): **`(fix):`** Support JSX titles in``components. - [November 17, 2025](november-17-2025-5.md): **`(feat):`** Add`fern self-update`command to update the globally installed Fern CLI. - [November 14, 2025](november-14-2025-5.md): **`(feat):`** Show AI example generation progress in the spinner line. When generating AI examples, the spinner displ... - [November 13, 2025](november-13-2025-5.md): **`(feat):`** Add`path-parameter-order`, which configures how path parameters are ordered in generated code. - [November 12, 2025](november-12-2025-4.md): **`(fix):`** Support adding arbitrary metadata to``components. Title and language are set by default, but c... - [November 11, 2025](november-11-2025-7.md): **`(fix):`** Retrieve package name from module.path configuration for Go SDK generator to support local generation wo... - [November 10, 2025](november-10-2025-4.md): **`(fix):`** Update markdown variable replacement to use double curly braces for variable interpolation. - [November 8, 2025](november-8-2025-3.md): **`(feat):`** Markdown snippets now support passing parameters to the markdown file. - [November 7, 2025](november-7-2025-8.md): **`(chore):`** CLI will send the correct IR version to latest Ruby generator. - [November 6, 2025](november-6-2025-3.md): **`(fix):`** Fix TypeScript SDK generator's local GitHub generation to match remote generation. - [November 5, 2025](november-5-2025-7.md): **`(fix):`** Implement variant ranking in anyOf/oneOf example generation to prefer variants that use provided example... - [November 4, 2025](november-4-2025-10.md): **`(fix):`** Perform fern docs dev validation in the background instead of foreground - [November 3, 2025](november-3-2025-4.md): **`(chore):`** Enables parsing of the language setting in docs. - [November 2, 2025](november-2-2025-2.md): **`(feat):`** Add a disable-analytics setting in docs.yml - [November 1, 2025](november-1-2025.md): **`(feat):`** Adds support for custom icons. - [October 31, 2025](october-31-2025-5.md): **`(feat):`** Add support for new IR property: GenerationMetadata. - [October 30, 2025](october-30-2025-3.md): **`(feat):`** Adds new`docs.yml`configurations: - [October 29, 2025](october-29-2025-6.md): **`(fix):`** Generate synthetic operationIds for OpenAPI callbacks that don't have an explicit operationId. This ensu... - [October 27, 2025](october-27-2025-3.md): **`(fix):`** Fix image rendering in docs preview after hot-reload. Images now maintain the /\_local prefix and render... - [October 25, 2025](october-25-2025-2.md): **`(fix):`** Reformat how docs fern check errors are displayed, and error on: - [October 24, 2025](october-24-2025-4.md): **`(fix):`** Re-enable excludeApis flag to skip bundling APIs with docs creation request. - [October 23, 2025](october-23-2025-4.md): **`(fix):`** Fixed bug in openapi-importer where file type params in multipart/form-data - [October 22, 2025](october-22-2025.md): **`(fix):`** Undo change to skip bundling APIs with docs creation request. - [October 20, 2025](october-20-2025-5.md): **`(fix):`** Upgrade fdr sdk to 0.139.33 - [October 15, 2025](october-15-2025-2.md): **`(feat):`** Turns HTTP snippets on by default in docs generation. - [this will only generate typescript and python snippets, no curl](this-will-only-generate-typescript-and-python-snippets-no-curl.md): settings: - [October 14, 2025](october-14-2025-2.md): **`(chore):`** Prevent accidental changes to doc sites by adding a confirmation prompt when generating docs for a pro... - [October 12, 2025](october-12-2025-2.md): **`(feat):`** Add`group-environments-by-host`setting for OpenAPI/AsyncAPI imports. When enabled, servers with the s... - [October 11, 2025](october-11-2025-2.md): **`(fix):`** Patches`metadata.canonical-host`to be passed through to the docs generation. - [October 10, 2025](october-10-2025-2.md): **`(fix):`** Use FDR instead of hardcoded values to determine which IR version to supply to the generator - [October 9, 2025](october-9-2025-4.md): **`(feat):`** Include`extra-properties`(aka`additionalProperties`) in object examples in IR. - [October 8, 2025](october-8-2025-4.md): **`(fix):`** Revert the change in 0.86.1 which caused request types to be generated in different packages - [October 6, 2025](october-6-2025-3.md): **`(fix):`** Fix: Enable v61 IR to support c# generator 2.4.0+ - [October 5, 2025](october-5-2025-2.md): **`(fix):`** Fix: Don't run spotlessApply if gradlew doesn't exist. - [October 4, 2025](october-4-2025-3.md): **`(fix):`** Fixed spotlessCheck in Java Dynamic Snippets Tests. - [October 3, 2025](october-3-2025-4.md): **`(fix):`** Fix whiteLabeled readme for remote generation. - [October 2, 2025](october-2-2025-5.md): **`(fix):`** Fix an issue where some optional properties were converted to required in the OpenAPI parser to Fern Def... - [After](after.md): prop: optional - [September 30, 2025](september-30-2025-5.md): **`(chore):`** Fail loud when no configuration files are found for either SDKs or docs. - [September 28, 2025](september-28-2025-2.md): **`(feat):`** Introduce`page-actions`configuration in the`docs.yml`so that users can choose which - [September 26, 2025](september-26-2025-3.md): **`(fix):`** Even when no success status codes are defined for the endpoint,`x-fern-streaming`responses are still r... - [September 25, 2025](september-25-2025-6.md): **`(fix):`** Ensure path parameters are parsed in the same order as they appear in the endpoint's URL. - [September 24, 2025](september-24-2025-5.md): **`(feat):`** Control how type references are wrapped when they refer to nullable schemas using the new`wrap-referen... - [September 23, 2025](september-23-2025-6.md): **`(fix):`** Warn user about unknown package names when using dynamic snippets. - [September 22, 2025](september-22-2025-4.md): **`(fix):`** Support`null`in an`enum`(functionality is delegated to`nullable<>`). - [September 21, 2025](september-21-2025-3.md): **`(fix):`** Update ir migration config to support v59 for latest ruby sdk generator version. - [September 18, 2025](september-18-2025-7.md): **`(feat):`** added`x-fern-retries`OpenAPI extension flag support in the OpenAPI-IR, Fern Definition, and IR. - [September 17, 2025](september-17-2025-9.md): **`(fix):`** Update ir migration config to support v59 for latest csharp sdk generator version. - [September 16, 2025](september-16-2025-6.md): **`(fix):`** Respect the \`x-fern-server-name\`\`flag at the endpoint level in the V3 OpenAPI parser - [September 15, 2025](september-15-2025-4.md): **`(fix):`** Support nested folders with x-fern-sdk-group-name in AsyncAPI parsing - [September 12, 2025](september-12-2025-5.md): **`(feat):`** Add customSections property to ReadmeConfig. - [September 11, 2025](september-11-2025-3.md): **`(fix):`** Handle OpenAPI parsing failures for security schemes gracefully. - [September 10, 2025](september-10-2025-5.md): **`(fix):`** Enable dynamic SDK snippets for PHP in docs. - [September 9, 2025](september-9-2025-6.md): **`(fix):`** If OpenAPI schema parsing throws an exception then coerce the schema to unknown to unblock SDK generation. - [September 8, 2025](september-8-2025.md): **`(feat):`** Autogenerated number examples now respect fields: minimum/maximum/exclusiveMinimum/exclusiveMaximum - [September 5, 2025](september-5-2025-5.md): **`(feat):`** Support tags for changelog entries. - [September 4, 2025](september-4-2025-2.md): **`(fix):`** Add names to octet-stream requests and ensure they are named differently - [September 3, 2025](september-3-2025-4.md): **`(fix):`** Don't fail SDK generation if a single schema fails to parse. Instead, warn and coerce to unknown. - [September 2, 2025](september-2-2025-3.md): **`(fix):`** Example generation ignores headers that don't exist in the channel instead of failing hard. - [August 31, 2025](august-31-2025.md): **`(feat):`** Update ir migration versions for java generators - [August 29, 2025](august-29-2025-5.md): **`(feat):`** Alpha testing: add support for HTTP proxies - [August 28, 2025](august-28-2025-2.md): **`(feat):`** Fern cli diff command recognizes availability. - [August 27, 2025](august-27-2025-7.md): **`(fix):`** Update docs workspace validator to skip file type validation when running in selfhosted mode - [August 26, 2025](august-26-2025-6.md): **`(fix):`** Fix readmeConfig.disabledSections type - change from set to list. - [August 25, 2025](august-25-2025-4.md): **`(chore):`** Handle object-style examples in OpenAPI spec - [August 22, 2025](august-22-2025-3.md): **`(feat):`** Add support for`const`JSON schema keyword, which parses to a single-valued enum. - [August 18, 2025](august-18-2025-4.md): **`(feat):`** Introduce an OpenAPI setting called`inline-all-of-schemas`which recursively - [August 16, 2025](august-16-2025-3.md): **`(chore):`** Support IR v59 in the Swift SDK generator. - [August 15, 2025](august-15-2025-4.md): **`(feat):`** Upload generator configuration with dynamic IR for SDK snippets in docs. - [August 14, 2025](august-14-2025-3.md): **`(feat):`** Split OpenAPI endpoints with multiple request bodies into multiple endpoints using`x-fern-sdk-method-n... - [August 13, 2025](august-13-2025-6.md): **`(fix):`** Specify generator metadata for Swift. - [August 12, 2025](august-12-2025-2.md): **`(fix):`** Upload dynamic IR JSON instead of upload URL. - [August 11, 2025](august-11-2025-4.md): **`(fix):`** Allow 'securityScheme.scheme' to be case-insensitive. - [August 8, 2025](august-8-2025-3.md): **`(feat):`** Add support for generating inferred auth in IR and expand bearer auth in Fern Definition for inference. - [August 5, 2025](august-5-2025-3.md): **`(feat):`** Fix: allow setting of PyPI package name and version in SDK generation with local docker (--local flag) - [August 4, 2025](august-4-2025-5.md): **`(feat):`** Fix in endpoint example gen: literal type headers should use the literal value for example - [August 1, 2025](august-1-2025-3.md): **`(feat):`** Escape $signs when converting from OpenAPI -> Fern Definition (for enums), because the Fern Definition ... - [July 31, 2025](july-31-2025-3.md): **`(feat):`** Add support for proxying IR generation from proto through protoc-gen-openapi. - [July 30, 2025](july-30-2025-2.md): **`(feat):`** IR parser: Extended the logic for flattening properties in oneOf schemas to anyOf schemas as well - [July 29, 2025](july-29-2025-2.md): **`(feat):`** Add support for multiple content types on requestBody - [July 28, 2025](july-28-2025.md): **`(fix):`** convertIrToFdrApi now passes the example name only when multiple examples with the same response status ... - [July 27, 2025](july-27-2025.md): **`(fix):`** Patch support for RBAC roles across products. - [July 26, 2025](july-26-2025.md): **`(feat):`** Support for`HEAD`operations in OpenAPI spec. - [July 25, 2025](july-25-2025-5.md): **`(feat):`** Fallback to`https`if no schemes are specified in a Swagger 2.0 spec. - [July 24, 2025](july-24-2025-3.md): **`(feat):`** Support example generation for multiple examples. - [July 23, 2025](july-23-2025-4.md): **`(feat):`** Support multiple 2XX responses on http endpoints part 2. - [July 22, 2025](july-22-2025-3.md): **`(feat):`** Support RBAC roles across products. - [July 21, 2025](july-21-2025-3.md): **`(fix):`**`fern docs dev`server connection should no longer require frequent refresh. - [July 18, 2025](july-18-2025-3.md): **`(feat):`** Added smart display naming for undiscriminated unions. - [July 16, 2025](july-16-2025-2.md): **`(feat):`** Add reference.md generation for Java SDKs. - [July 15, 2025](july-15-2025-3.md): **`(fix):`** Use the nested "value" field for OpenAPI examples if it exists. - [July 14, 2025](july-14-2025-2.md): **`(feat):`** Use service display name for grpc services. - [July 12, 2025](july-12-2025.md): **`(feat):`** The extension`x-fern-global-headers`now supports a type field that can point to - [July 11, 2025](july-11-2025-2.md): **`(feat):`** Convert relevant endpoints to GrpcNode type in ApiReferenceNodeConverter - [July 10, 2025](july-10-2025-4.md): **`(feat):`** Support date and date-time in v3 example generation. Change fallback string example to use "string" ins... - [July 9, 2025](july-9-2025-5.md): **`(feat):`** Support example generation for gRPC docs. - [July 8, 2025](july-8-2025-2.md): **`(fix):`** Previously if the OpenAPI parser v3 was enabled where the CLI would skip parsing any additional Fern Def... - [July 3, 2025](july-3-2025-3.md): **`(chore):`** Re-release changes from 0.65.0. - [July 2, 2025](july-2-2025-3.md): **`(fix):`** Remove default docs for well known types in gRPC. Add support for field-level docs. - [July 1, 2025](july-1-2025-4.md): **`(fix):`** Upgrade fdr and fdr-cjs dependencies to support grpc endpoints in convertIrToFdrApi. - [June 28, 2025](june-28-2025.md): **`(fix):`** Fixes the OpenAPI parser to correctly include query parameters in`Content-Type: application/octet-strea... - [June 27, 2025](june-27-2025-3.md): **`(feat):`** Remove all org-specific legacy preview pins. - [June 26, 2025](june-26-2025-2.md): **`(fix):`** When a part in a multipart form request has`Content-Type: application/json`in OpenAPI or Fern Definiti... - [June 25, 2025](june-25-2025-2.md): **`(fix):`** Global headers are now used to create endpoint examples. When building endpoint examples, global headers - [June 24, 2025](june-24-2025-3.md): **`(feat):`** Introduce`x-fern-discriminated`extension to configure oneOf union behavior in OpenAPI specs. - [Example usage in OpenAPI schema](example-usage-in-openapi-schema.md): oneOf: - [June 23, 2025](june-23-2025-3.md): **`(feat):`** - [June 21, 2025](june-21-2025.md): **`(fix):`** Fixed ExampleTypeFactory to ignore generating parameters in example when that parameter is both optional... - [June 19, 2025](june-19-2025-2.md): **`(fix):`** Separate nullable and optional property handling in IR conversion. - [June 18, 2025](june-18-2025-2.md): **`(feat):`** Add configuration option to preserve oneOfs with a single schema. - [June 17, 2025](june-17-2025-2.md): **`(fix):`** Fix handling of legacy webhook examples snippets. - [June 16, 2025](june-16-2025-3.md): **`(feat):`** Add configuration option to disable snippets in docs generation, speeding up generation time. - [June 14, 2025](june-14-2025.md): **`(fix):`** Support hot-reloading for changes to OpenRPC specs in local development mode. - [June 12, 2025](june-12-2025.md): **`(fix):`** Further support for docs with multiple custom subpaths - [June 11, 2025](june-11-2025-3.md): **`(fix):`** Don't use posthog when CLI is running from self-hosted container. - [June 10, 2025](june-10-2025.md): **`(feat):`** The OpenAPI v3 Parser will now be used on default for all docs generation codepaths. - [June 9, 2025](june-9-2025.md): **`(fix):`** Generate parameter examples for idempotency and global headers. - [June 6, 2025](june-6-2025.md): **`(feat):`** Don't hard fail on non-string \$ref values. - [June 5, 2025](june-5-2025-5.md): **`(feat):`** Add`openapi-parser-v3`to the docs config upon initialization. - [June 4, 2025](june-4-2025-4.md): **`(feat):`** Support endpoint-level servers in OpenRPC. - [June 3, 2025](june-3-2025-6.md): **`(fix):`** The v3 OpenAPI parser now appropriately creates inlined types for references to - [June 2, 2025](june-2-2025.md): **`(fix):`** Implicitly interpert a request body as a multipart-form if it contains a property with a file, list of f... - [May 30, 2025](may-30-2025.md): **`(fix):`** Remove trailing slashes from base environment URLs if they are not empty. - [May 29, 2025](may-29-2025.md): **`(fix):`**`allOf`schemas that share properties with the parent schema's required properties will now be parsed as... - [May 28, 2025](may-28-2025.md): **`(fix):`** Added support for`oneOf`within`allOf`schemas in OpenAPI conversion. When an`allOf`schema contains ... - [May 27, 2025](may-27-2025-2.md): **`(fix):`** Fix missing properties from base schemas in example generation. - [May 23, 2025](may-23-2025-2.md): **`(fix):`** Union variant names use 'display-name' for Fern definitions, and fallback to the type name for all others - [May 22, 2025](may-22-2025-3.md): **`(fix):`** Fix a bug where stream endpoint response types would not be stored in the IR. - [May 21, 2025](may-21-2025-2.md): **`(internal):`** Add support for overriding auth in generators.yml. You can now specify auth for a specific generato... - [May 20, 2025](may-20-2025-5.md): **`(fix):`** Support optional parameters in OpenRPC imports by properly handling the`required`field in parameter de... - [May 19, 2025](may-19-2025.md): **`(fix):`** Fix an issue where multiple auth schemes would not be converted during IR -> FDR conversion. - [May 17, 2025](may-17-2025.md): **`(fix):`** Add logging of filepaths when markdown parsing fails to help with debugging. This includes logging the - [May 16, 2025](may-16-2025-2.md): **`(fix):`** Correctly build paths for`x-fern-examples`when compiling v2 examples. - [May 15, 2025](may-15-2025-2.md): **`(fix):`** Fix docs preview server by properly killing the Next.js process on exit and setting - [May 14, 2025](may-14-2025-3.md): **`(fix):`** Fix a bug where the docs resolver would throw an error when encountering missing or duplicate endpoints. - [May 13, 2025](may-13-2025-7.md): **`(fix):`** Fix a bug where streaming response examples would not be rendered correctly in the API Reference. - [May 9, 2025](may-9-2025-2.md): **`(feat):`** Add support for`propertyAccess`in the IR -> FDR SDK conversion. - [May 8, 2025](may-8-2025-3.md): **`(fix):`** The v3 parser now supports filtering endpoints by audiences. - [May 7, 2025](may-7-2025.md): **`(chore):`** OpenAPI V3 parser handles converting converting schemas that have a singular non-object`allOf`. - [May 6, 2025](may-6-2025-2.md): **`(feat):`** Update subpackage naming to achieve parity with the v1 parser; update docs resolver to support both cam... - [May 5, 2025](may-5-2025-2.md): **`(fix):`** Rerelease the Fern CLI. - [May 3, 2025](may-3-2025-2.md): **`(feat):`** Add support for environment and auth overrides from generators.yml in the OpenAPI parser. When importin... - [May 2, 2025](may-2-2025-2.md): **`(feat):`** Add support for auth descriptions in generated documentation. Auth schemes can now include descriptive ... - [May 1, 2025](may-1-2025-5.md): **`(feat):`** Query parameter and path parameter generation in the new OpenAPI parser now respects the skipOptionalPr... - [April 30, 2025](april-30-2025-2.md): **`(fix):`** Enhance OpenAPI -> IR conversion to properly handle default values in schemas. The converter now correct... - [April 29, 2025](april-29-2025-4.md): **`(fix):`** Add ping/pong to keep websocket connection alive in local development mode. - [April 28, 2025](april-28-2025-3.md): **`(feat):`** Local development is now available in beta for all machines. - [April 27, 2025](april-27-2025-2.md): **`(feat):`** Enhance OpenAPI security scheme handling in the parser to support both global and endpoint-level securi... - [April 26, 2025](april-26-2025.md): **`(feat):`** Enhance example generation to consider default values when generating examples for primitive types. - [April 25, 2025](april-25-2025-3.md): **`(fix):`** Add support for OpenRPC example parsing and rendering realistic requests and responses. - [April 24, 2025](april-24-2025-3.md): **`(feat):`** Add support for the`x-fern-sdk-namespace`extension, which allows users to define schemas - [April 23, 2025](april-23-2025-4.md): **`(feat):`** Local development mode for app router is available in alpha for`fern`. - [April 22, 2025](april-22-2025-4.md): **`(feat):`** Improve OpenAPI response handling for 204 status codes by respecting schema definitions. - [April 21, 2025](april-21-2025-3.md): **`(feat):`** Objects use property schema examples when generating examples; request and response examples are genera... - [April 20, 2025](april-20-2025.md): **`(feat):`** Enable the`--from-openapi`flag for`fdr generate`to generate a FDR API definition from an OpenAPI spec. - [April 18, 2025](april-18-2025.md): **`(feat):`** The V3 OpenAPI parser now supports rendering user specified and autogenerated examples in Docs. - [April 17, 2025](april-17-2025.md): **`(fix):`** Correctly parse non-string enum values; remove dependency on Fern Definition for v3 Parser. - [April 14, 2025](april-14-2025-2.md): **`(fix):`** Parse schema-level examples in the v3 OpenAPI parser. - [April 12, 2025](april-12-2025.md): **`(fix):`** Fix an issue in the OpenAPI importer where discriminated unions with literal discriminant values in the ... - [April 11, 2025](april-11-2025-2.md): **`(fix):`** Correctly package webhooks in the`webhooks`section into IR groups. - [April 10, 2025](april-10-2025-3.md): **`(fix):`** Correctly parse schema-valued additionalProperties in the v3 OpenAPI parser. - [April 9, 2025](april-9-2025-3.md): **`(fix):`** Correctly parse primitive type arrays in the v3 OpenAPI parser. - [April 7, 2025](april-7-2025-4.md): **`(fix):`** Prevent combinatorial explosion of oneOf types when provided a nullable type array in the OpenAPI parser. - [April 3, 2025](april-3-2025-2.md): **`(fix):`** Fix an issue where environment URLs would be incorrectly remapped during the merge IR step. - [April 2, 2025](april-2-2025.md): **`(chore):`** Adds support for the`command-a`model in AI chat, while removing support for the`command-r-plus`model. - [April 1, 2025](april-1-2025-4.md): **`(chore):`** Updates parameter parsing in asyncapi-to-ir to correctly handle enum parameters, along with native sup... - [March 31, 2025](march-31-2025-3.md): **`(fix):`** Add support for`respect-forward-compatible-enums`configuration option to specify whether to respect fo... - [March 28, 2025](march-28-2025-2.md): **`(fix):`** Add support for reading common properties across all oneOf variants in the new OpenAPI parser. When a sc... - [March 27, 2025](march-27-2025-3.md): **`(fix):`** Fix an issue where endpoint ids were not globally unique because they didn't take into account namespace... - [March 26, 2025](march-26-2025-2.md): **`(feat):`** Add AI chat config block to docs.yml for model/system prompt customization. Example: - [March 25, 2025](march-25-2025-3.md): **`(fix):`** Parse inlined websocket message properties during Fern Definition -> IR. - [March 24, 2025](march-24-2025-3.md): **`(fix):`** Fix websocket session example generation for 3.x specs. - [March 23, 2025](march-23-2025.md): **`(feat):`** The default behavior of`fern generate`now excludes broken link checking by default. - [March 22, 2025](march-22-2025-2.md): **`(fix):`** Fix an edge case in the OpenAPI converter where unused types were being incorrectly added to the Fern de... - [March 20, 2025](march-20-2025.md): **`(fix):`** Remove Fern definition generation warnings when openapi-parser-v3 is enabled for docs dev. - [March 19, 2025](march-19-2025-4.md): **`(feat):`** The V2 Parser now handles environment merging across multiple OpenAPI specs. - [March 18, 2025](march-18-2025-4.md): **`(internal):`** The CLI now recognizes that the latest Python SDK uses IRv57. - [March 17, 2025](march-17-2025-2.md): **`(chore):`** Minor cleanup to simple type schema constructions. - [March 14, 2025](march-14-2025-3.md): **`(fix):`** Correctly evaluate SDK groupName for AsyncAPI channels. - [March 13, 2025](march-13-2025-5.md): **`(internal):`** Include examples by default for dynamic IR generation (replace dynamic-ir --include-examples option... - [March 11, 2025](march-11-2025-2.md): **`(fix):`** Revert only construct an enum when all parameter subtypes are literal string values. - [March 10, 2025](march-10-2025-3.md): **`(fix):`** Only construct an enum when all parameter subtypes are literal string values. - [March 6, 2025](march-6-2025-4.md): **`(fix):`** Correctly parse channel descriptions in AsyncAPI v2 and v3 specs. - [March 5, 2025](march-5-2025-4.md): **`(fix):`** Fix an issue where default values for query parameters would occasionally be omitted during parsing. - [March 4, 2025](march-4-2025-4.md): **`(internal):`** The CLI now recognizes that the latest C# SDK uses IRv57. - [March 3, 2025](march-3-2025-2.md): **`(fix):`** Re-releasing the Fern CLI to fix an issue with the published package. - [March 2, 2025](march-2-2025-3.md): **`(feat):`** If experimental.openapi-parser-v3 is enabled in docs.yml, OpenAPI documents will now be - [February 28, 2025](february-28-2025-2.md): **`(feat):`** You can now specify custom pagination on your API and endpoints. - [February 27, 2025](february-27-2025-3.md): **`(fix):`** Fix an issue where channel binding parameters with complex schemas were generated with conflicting names. - [February 26, 2025](february-26-2025-3.md): **`(feat):`** The Fern definition now supports specifying object properties as`read-only`or`write-only`. - [February 25, 2025](february-25-2025-2.md): **`(chore):`** Migrate generators.yml without any specs. - [February 22, 2025](february-22-2025.md): **`(fix):`** Improve generators.yml migration to`api.specs`syntax. - [February 21, 2025](february-21-2025.md): **`(feat):`** Bump`docs-resolvers`to`0.0.64`to fix an issue with endpoint-level server parsing. - [February 20, 2025](february-20-2025-3.md): **`(feat):`** Add the`x-fern-optional`extension to the AsyncAPI v3 parser to allow for optional channel parameters. - [February 19, 2025](february-19-2025-2.md): **`(fix):`** Resolve error where`fern docs dev`failed in Windows environments. - [February 18, 2025](february-18-2025-2.md): **`(fix):`** Fix an issue with the OpenAPI v2 parser where incorrect slugs were being generated. - [February 17, 2025](february-17-2025-2.md): **`(fix):`** Support validation schemas in detailed Union types. - [February 16, 2025](february-16-2025.md): **`(fix):`**`noindex`property in the frontmatter of a page is now implemented for site navigation +`llms.txt`. - [February 15, 2025](february-15-2025-2.md): **`(fix):`** The OpenAPI parser now prefers the`source`extension set in the OpenAPI spec, and only writes - [February 14, 2025](february-14-2025-3.md): **`(fix):`** The OpenAPI v2 parser now parses Server specifications with variables. - [generators.yml](generatorsyml-8.md): api: - [February 10, 2025](february-10-2025-3.md): **`(fix):`** Fixed handling of Windows filepaths in the docs generator by ensuring consistent path separators and pro... - [February 8, 2025](february-8-2025.md): **`(fix):`** Type reference example generation now handles extends and base properties correctly, as well as in-lined... - [February 7, 2025](february-7-2025-2.md): **`(fix):`** The cli will now respect examples with`null`values in OpenAPI specs. This will allow for null properti... - [February 6, 2025](february-6-2025-2.md): **`(fix):`** The Conjure Importer now handles replacing 'rid' types more safely by checking if an import alias starts... - [February 5, 2025](february-5-2025-3.md): **`(internal):`** The IR migrator now recognizes that the PHP SDK generator requires IR version 55. - [February 4, 2025](february-4-2025-4.md): **`(fix):`** Literal property values are now accepted as deep object query parameters. Previously, if a query paramet... - [February 3, 2025](february-3-2025-4.md): **`(fix):`** The OpenRPC parser now supports generating code snippets in the API Explorer. - [February 2, 2025](february-2-2025-2.md): **`(fix):`** The docs will now display errors by default. Previously, errors were hidden by default and needed to be ... - [January 31, 2025](january-31-2025.md): **`(fix):`** The OpenRPC parser now handles displaying parameters as object examples. - [January 30, 2025](january-30-2025.md): **`(fix):`** OpenAPI overrides now support resolving file references from the location of the - [January 29, 2025](january-29-2025-2.md): **`(fix):`** The OpenAPI parser generates response examples that are`{}`for 204 response types. - [January 27, 2025](january-27-2025.md): **`(fix):`** Added better error messages when markdown files reference non-existent MDX files, showing the relative path - [January 24, 2025](january-24-2025.md): **`(fix):`** Various improvements to the Mintlify and Readme importers, including better default styling - [January 23, 2025](january-23-2025-3.md): **`(fix):`** Improved error messages when docs.yml doesn't match schema by showing more specific - [January 22, 2025](january-22-2025-3.md): **`(fix):`** Fixed x-fern-resolutions to properly handle escaped forward slashes ("\~1") in schema references, - [January 21, 2025](january-21-2025-4.md): **`(fix):`** This PR improves the performance of`fern docs dev`: - [January 20, 2025](january-20-2025.md): **`(fix):`** Fixes a bug where`--log-level debug`does not include trace logs. - [January 19, 2025](january-19-2025-2.md): **`(fix):`** Increase undici timeouts to make sure that`fern generate --docs`completes. - [January 18, 2025](january-18-2025.md): **`(fix):`** An additional fix to the OpenRPC parser for respecting tags when - [January 17, 2025](january-17-2025-3.md): **`(fix):`** The broken link checker is updated to reduce false positives. - [January 16, 2025](january-16-2025-3.md): **`(fix):`** The Fern CLI is updated to create the organization if it doesn't exist when`fern token`is called. - [January 15, 2025](january-15-2025-2.md): **`(internal):`** Fixes an issue where optional, nullable properties resulted in a double optional in the - [January 14, 2025](january-14-2025-3.md): **`(feat):`** The OpenAPI importer now supports respecting nullable properties in schemas. When enabled, nullable pro... - [January 13, 2025](january-13-2025-2.md): **`(feat):`** The IR now pulls in additional request properties from the OAuth getToken endpoint to support custom OA... - [January 12, 2025](january-12-2025.md): **`(feat):`** Add the JSON schema to the generators.yml file for validation and autocomplete. - [January 10, 2025](january-10-2025.md): **`(feat):`** The CLI now supports checking for broken links in your docs. You will see warnings in`fern check`if y... - [January 9, 2025](january-9-2025-2.md): **`(feat):`** Fixes a bug where the OpenAPI parser stopped respecting the =`unions: v1`setting in your`generators.y... - [January 8, 2025](january-8-2025-2.md): **`(feat):`** The CLI now validates that method and group name overrides in OpenAPI settings are not duplicated. - [January 6, 2025](january-6-2025-3.md): **`(feat):`** Support configuration of Google Analytics and Google Tag Manager in API Docs. - [January 5, 2025](january-5-2025.md): **`(feat):`** The`fern init`command now supports a`--mintlify`option. You can pass in - [January 3, 2025](january-3-2025-2.md): **`(fix):`** If a schema in OpenAPI or AsyncAPI has`additionalProperties: true`then the Fern CLI will now respect b... - [December 30, 2024](december-30-2024-2.md): **`(fix):`** Support parsing string values for boolean defaults in OpenAPI schemas. - [December 28, 2024](december-28-2024.md): **`(fix):`** Improve parsing of OpenAPI schemas with an array in the`type`property. - [December 27, 2024](december-27-2024-2.md): **`(fix):`** Fixed issue where user specified examples would be omitted in favor of autogenerated examples. - [December 26, 2024](december-26-2024-2.md): **`(fix):`** Correctly omits readOnly query parameters during openapi to fern definition generation. - [December 23, 2024](december-23-2024-3.md): **`(fix):`** The CLI now handles parsing service level path parameters with descriptions. - [December 20, 2024](december-20-2024-4.md): **`(fix):`** Correctly support AdditionalProperties on object schemas. - [December 19, 2024](december-19-2024.md): **`(fix):`** The generated Fern Definition now properly supports default values for query parameters. - [December 17, 2024](december-17-2024-2.md): **`(fix):`** The OpenAPI parser now deduplicates headers that appear in both security schemes and - [December 16, 2024](december-16-2024-2.md): **`(fix):`** The generated SSE examples always have`data`and`event`keys so that they are correct. - [December 15, 2024](december-15-2024.md): **`(fix):`** The Fern CLI now supports generating examples for streaming SSE (server-sent-event) - [December 14, 2024](december-14-2024.md): **`(feat):`** The Fern CLI now supports parsing a`logo`option from your frontmatter. If - [December 12, 2024](december-12-2024-3.md): **`(fix):`** Add support for setting the`User-Agent`header value for Go generators. - [December 11, 2024](december-11-2024-3.md): **`(fix):`** \* Set`inline: true`for inline enums imported from OpenAPI. - [December 10, 2024](december-10-2024-2.md): **`(chore):`** Unknown schemas are no longer incorrectly marked as`additionalProperties: true`. - [December 9, 2024](december-9-2024.md): **`(fix):`** The CLI prompts the user to confirm output directory overwrites on fern generate. - [December 5, 2024](december-5-2024.md): **`(fix):`** Unknown schemas are no longer incorrectly marked as`additionalProperties: true`. - [December 3, 2024](december-3-2024-2.md): **`(fix):`** Example generation now respects read-only schemas when generating request examples. - [November 29, 2024](november-29-2024.md): **`(fix):`** Generate valid examples using spec validation information; respect`null`entries during example generat... - [November 27, 2024](november-27-2024-2.md): **`(internal):`** Add`inline`field to type declarations in the Fern definition and IR. - [November 23, 2024](november-23-2024-2.md): **`(internal):`** Several improvements to docs, conjure importer, and the cli. - [November 22, 2024](november-22-2024-2.md): **`(internal):`** Docs generation now preserves original model schema names. - [November 21, 2024](november-21-2024-3.md): **`(internal):`** Add support for the`smart-casing`flags in the IR commands. - [November 20, 2024](november-20-2024-6.md): **`(fix):`** Add 'list' to reserved keywords for use in PHP generator. - [November 19, 2024](november-19-2024-3.md): **`(feat):`** OAuth Client Credential Auth Scheme now supports the ability to optionally - [November 18, 2024](november-18-2024-3.md): **`(fix):`** The IR handles converting example unions that are aliases. - [November 14, 2024](november-14-2024-4.md): **`(fix):`** Update the IR's`ServiceTypeReferenceInfo`to include all transitive types - [November 13, 2024](november-13-2024-2.md): **`(fix):`** Support non-standard HTTP code 498; Validate`x-fern-examples`during schema parsing. - [November 12, 2024](november-12-2024-2.md): **`(fix):`** Log error message logging when encountering doc errors during preview server initiation. - [November 11, 2024](november-11-2024.md): **`(fix):`** The OpenAPI importer now supports correlating request and response examples by name. When an example nam... - [November 8, 2024](november-8-2024-3.md): **`(fix):`** The OpenAPI importer now supports respecting readonly properties in schemas. When enabled, readonly prop... - [November 7, 2024](november-7-2024-3.md): **`(internal):`** The CLI now recognizes the versions of the Go generator that require IRv53. - [November 6, 2024](november-6-2024-3.md): **`(feat):`** The Fern CLI now supports roles and viewers in your docs configuration, if you are on the enterprise pl... - [November 5, 2024](november-5-2024-2.md): **`(fix):`** The OpenAPI importer now supports reading endpoints that have application/x-www-form-urlencoded requests - [November 1, 2024](november-1-2024.md): **`(fix):`** The OpenAPI importer now parses webhook examples and generates examples for webhooks when none are provi... - [October 29, 2024](october-29-2024-2.md): **`(feat):`** The OpenAPI importer now skips headers in a case-insensitive way (e.g. both "Content-Type" and "content... - [October 26, 2024](october-26-2024.md): **`(internal):`** The Fern CLI temporarily does not support RBAC/Audiences (they will be added in again shortly). - [October 25, 2024](october-25-2024-2.md): **`(fix):`**`fern docs dev`now runs in Node 16 - Node 22 environments. - [October 24, 2024](october-24-2024.md): **`(feat):`** The Fern CLI now supports audiences in your docs configuration: - [all audiences must be declared at the top level](all-audiences-must-be-declared-at-the-top-level.md): audiences: - [October 23, 2024](october-23-2024.md): **`(fix):`** - Improved union example generation by increasing depth for better handling of recursive structures. - [October 22, 2024](october-22-2024.md): **`(fix):`** The Conjure importer now correctly imports base-path and docs from your conjure definition. - [October 21, 2024](october-21-2024-2.md): **`(fix):`** The Fern CLI now uses a longer timeout to make HTTP requests, which should fix some flakyness with the d... - [October 20, 2024](october-20-2024.md): **`(internal):`** Add`#!/usr/bin/env node`to the CLI to prevent runtime errors. - [October 19, 2024](october-19-2024.md): **`(feat):`** Introduce a new command`fern jsonschema --type` - [October 16, 2024](october-16-2024.md): **`(chore):`** SCIM has been added as a common initialism. - [October 11, 2024](october-11-2024-2.md): **`(fix):`** Numerous fixes to the Conjure API Importer such as reading in request bodies and query parameters. - [October 10, 2024](october-10-2024.md): **`(fix):`** The CLI now generates endpoint examples for undiscriminated unions that are recursive. - [October 9, 2024](october-9-2024.md): **`(fix):`** Several improvements to the conjure importer. - [October 7, 2024](october-7-2024.md): **`(fix):`** API update now supports consuming the API origin from spec V2 configurations. - [October 6, 2024](october-6-2024.md): **`(fix):`** The Fern Definition respects endpoint level base-path overrides when validating examples. - [October 5, 2024](october-5-2024.md): **`(feat):`** The OpenAPI importer used to try and coerce all enums into a literals. - [October 2, 2024](october-2-2024.md): **`(feat):`** The Fern CLI now supports parsing [Conjure](https://github.com/palantir/conjure), Palantir's - [September 30, 2024](september-30-2024.md): **`(fix):`** Any markdown files that have custom components are also pushed up to the Fern Docs - [September 28, 2024](september-28-2024-3.md): **`(fix):`** The`valid-markdown`rule has been updated to try and parse the markdown file into a - [September 27, 2024](september-27-2024.md): **`(fix):`** The OpenAPI importer now appropriately brings in responses that are under the`text/event-stream` - [September 26, 2024](september-26-2024-4.md): **`(fix):`** If you use the`x-fern-streaming`extension and want to provide different descriptions - [September 25, 2024](september-25-2024-2.md): **`(feat):`** The CLI now supports running OpenAPI generator 0.1.0 with IR version 53. - [September 24, 2024](september-24-2024-2.md): **`(feat):`** The CLI now recognizes the fern-php-sdk generator. - [September 23, 2024](september-23-2024-2.md): **`(internal):`** The documentation resolver now appropriately creates a unique identifier for changelog sections. Pr... - [September 21, 2024](september-21-2024.md): **`(fix):`** The OpenAPI importer now correctly propagates the title field on`oneof`schemas. - [September 20, 2024](september-20-2024-2.md): **`(fix):`** Example generation now intelligently truncates container examples, for example if the depth limit will b... - [September 19, 2024](september-19-2024.md): **`(fix):`** The API V2 configuration now supports disabling using titles as schema - [September 18, 2024](september-18-2024-2.md): **`(fix):`** The API V2 configuration (in beta) now supports global header overrides. - [September 17, 2024](september-17-2024-2.md): **`(fix):`** Make sure to check for optionality when parsing stdout and stderr in CLI. This - [September 16, 2024](september-16-2024-2.md): **`(feat):`** The Fern Definition now supports`conten-type`on multipart request properties. - [September 15, 2024](september-15-2024-2.md): **`(internal):`** Remove bang operator and fix eslint warning in`compatible-ir-versions.ts`. - [September 14, 2024](september-14-2024.md): **`(fix):`** The Fern CLI now safely handles a npx file exists error by retrying the command on failure. - [September 11, 2024](september-11-2024-4.md): **`(feat):`** Adds availability and display-names to discriminated union values. Now, in your docs, you can mark your... - [September 10, 2024](september-10-2024-2.md): **`(internal):`** Adds a`bundle-path`hidden parameter for`fern docs dev`for use with`fern-platform`testing. You... - [September 9, 2024](september-9-2024-2.md): **`(feat):`** The Fern generators.yml configuration now supports a new format for namespacing APIs for additional fle... - [September 8, 2024](september-8-2024-2.md): **`(fix):`** Previously we weren't always awaiting PostHog API calls directly. Now the CLI - [September 7, 2024](september-7-2024.md): **`(feat):`** The Fern Docs CLI now supports OAuth 2.0 Client Credentials injection in API playgrounds. - [September 6, 2024](september-6-2024-3.md): **`(fix):`** Fix an issue with non-deterministic file ordering when OpenAPI is used as input. - [September 5, 2024](september-5-2024-4.md): **`(fix):`** Fixes an issue introduced in`0.41.1`that ignored server urls for docs generation. - [September 4, 2024](september-4-2024-3.md): **`(feat):`** Adds a V2 configuration for the`api`block that is more flexible and allows - [September 3, 2024](september-3-2024.md): **`(fix):`** Fix an issue where some postman environment variables (e.g. API key) were not substituted - [September 2, 2024](september-2-2024-2.md): **`(break):`** Every fern folder that is using OpenAPI must configure an explicit location to the - [August 28, 2024](august-28-2024-3.md): **`(internal):`** Release IR v53.9.0 which includes a publishing configuration. - [August 25, 2024](august-25-2024.md): **`(fix):`** The OpenAPI importer now appropriately generates examples for circular`oneOf`schemas. - [August 23, 2024](august-23-2024.md): **`(fix):`** Produce IR v53.8.0 with raw datetime examples. - [August 22, 2024](august-22-2024-2.md): **`(chore):`** Support running 0.2.x versions of the Postman Generator with IR V53 or above. - [August 21, 2024](august-21-2024.md): **`(internal):`** Introduce`generator list`and`organization`commands to facilitate actions taken by`fern-bot` - [August 20, 2024](august-20-2024-2.md): **`(fix):`** The mock folder now includes source files, and the CLI no longer hard fails if it cannot resolve source ... - [August 19, 2024](august-19-2024-2.md): **`(chore):`** Release 0.39.10 - [August 18, 2024](august-18-2024.md): **`(chore):`** ## What's Changed - [August 16, 2024](august-16-2024-3.md): **`(chore):`** ## What's Changed - [August 15, 2024](august-15-2024.md): **`(chore):`** ## What's Changed - [August 14, 2024](august-14-2024-2.md): **`(chore):`** ## What's Changed - [August 13, 2024](august-13-2024-2.md): **`(chore):`** ## What's Changed - [August 12, 2024](august-12-2024-2.md): **`(chore):`** ## What's Changed - [August 9, 2024](august-9-2024-3.md): **`(chore):`** ## What's Changed - [August 8, 2024](august-8-2024-2.md): **`(chore):`** ## What's Changed - [August 7, 2024](august-7-2024-4.md): **`(chore):`** ## What's Changed - [August 6, 2024](august-6-2024.md): **`(chore):`** ## What's Changed - [August 2, 2024](august-2-2024-3.md): **`(chore):`** ## What's Changed - [August 1, 2024](august-1-2024-4.md): **`(chore):`** ## What's Changed - [July 31, 2024](july-31-2024-4.md): **`(chore):`** ## What's Changed - [July 29, 2024](july-29-2024-4.md): **`(chore):`** ## What's Changed - [July 26, 2024](july-26-2024-3.md): **`(chore):`** ## What's Changed - [July 25, 2024](july-25-2024-3.md): **`(chore):`** ## What's Changed - [July 24, 2024](july-24-2024-3.md): **`(chore):`** ## What's Changed - [July 23, 2024](july-23-2024-4.md): **`(chore):`** ## What's Changed - [July 22, 2024](july-22-2024-4.md): **`(chore):`** ## What's Changed - [July 21, 2024](july-21-2024.md): **`(chore):`** ## What's Changed - [July 19, 2024](july-19-2024.md): **`(chore):`** ## What's Changed - [July 17, 2024](july-17-2024-3.md): **`(chore):`** ## What's Changed - [July 16, 2024](july-16-2024-3.md): **`(chore):`** ## What's Changed - [July 12, 2024](july-12-2024-2.md): **`(chore):`** ## What's Changed - [July 11, 2024](july-11-2024-2.md): **`(chore):`** ## What's Changed - [July 10, 2024](july-10-2024-4.md): **`(chore):`** ## What's Changed - [July 9, 2024](july-9-2024-4.md): **`(chore):`** ## What's Changed - [July 5, 2024](july-5-2024.md): **`(chore):`** ## What's Changed - [July 4, 2024](july-4-2024-2.md): **`(chore):`** ## What's Changed - [July 3, 2024](july-3-2024-3.md): **`(chore):`** ## What's Changed - [July 1, 2024](july-1-2024-3.md): **`(chore):`** ## What's Changed - [June 28, 2024](june-28-2024.md): **`(chore):`** ## What's Changed - [June 27, 2024](june-27-2024-3.md): **`(chore):`** ## What's Changed - [June 26, 2024](june-26-2024-4.md): **`(chore):`** ## What's Changed - [June 24, 2024](june-24-2024.md): **`(chore):`** **Full Changelog**: [ - [June 22, 2024](june-22-2024.md): **`(chore):`** ## What's Changed - [June 20, 2024](june-20-2024-4.md): **`(chore):`** ## What's Changed - [June 19, 2024](june-19-2024-4.md): **`(chore):`** ## What's Changed - [June 18, 2024](june-18-2024-3.md): **`(chore):`** ## What's Changed - [June 14, 2024](june-14-2024-2.md): **`(chore):`** ## What's Changed - [June 13, 2024](june-13-2024-4.md): **`(chore):`** ## What's Changed - [June 11, 2024](june-11-2024-4.md): **`(chore):`** ## What's Changed - [June 10, 2024](june-10-2024-2.md): **`(chore):`** ## What's Changed - [June 7, 2024](june-7-2024-5.md): **`(chore):`** ## What's Changed - [June 6, 2024](june-6-2024-3.md): **`(chore):`** ## What's Changed - [June 3, 2024](june-3-2024-2.md): **`(chore):`** ## What's Changed - [May 31, 2024](may-31-2024-4.md): **`(chore):`** **Full Changelog**: [ - [May 30, 2024](may-30-2024-4.md): **`(chore):`** ## What's Changed - [May 29, 2024](may-29-2024-4.md): **`(chore):`** ## What's Changed - [May 28, 2024](may-28-2024-3.md): **`(chore):`** ## What's Changed - [May 24, 2024](may-24-2024-3.md): **`(chore):`** ## What's Changed - [May 22, 2024](may-22-2024-4.md): **`(chore):`** ## What's Changed - [May 21, 2024](may-21-2024-4.md): **`(chore):`** ## What's Changed - [May 20, 2024](may-20-2024-4.md): **`(chore):`** ## What's Changed - [May 19, 2024](may-19-2024.md): **`(chore):`** ## What's Changed - [May 17, 2024](may-17-2024-5.md): **`(chore):`** ## What's Changed - [May 15, 2024](may-15-2024-5.md): **`(chore):`** ## What's Changed - [May 14, 2024](may-14-2024-3.md): **`(chore):`** ## What's Changed - [May 13, 2024](may-13-2024-3.md): **`(chore):`** ## What's Changed - [May 9, 2024](may-9-2024-2.md): **`(chore):`** ## What's Changed - [May 8, 2024](may-8-2024-2.md): **`(chore):`** ## What's Changed - [May 7, 2024](may-7-2024-3.md): **`(chore):`** ## What's Changed - [May 6, 2024](may-6-2024-2.md): **`(chore):`** ## What's Changed - [May 2, 2024](may-2-2024-2.md): **`(chore):`** ## What's Changed - [May 1, 2024](may-1-2024-2.md): **`(chore):`** ## What's Changed - [April 30, 2024](april-30-2024-3.md): **`(chore):`** ## What's Changed - [April 26, 2024](april-26-2024-3.md): **`(chore):`** ## What's Changed - [April 25, 2024](april-25-2024-3.md): **`(chore):`** ## What's Changed - [April 23, 2024](april-23-2024-2.md): **`(chore):`** ## What's Changed - [April 19, 2024](april-19-2024-2.md): **`(chore):`** ## What's Changed - [April 15, 2024](april-15-2024-2.md): **`(chore):`** ## What's Changed - [April 10, 2024](april-10-2024-2.md): **`(chore):`** ## What's Changed - [April 5, 2024](april-5-2024.md): **`(chore):`** ## What's Changed - [April 3, 2024](april-3-2024-2.md): **`(chore):`** ## What's Changed - [April 2, 2024](april-2-2024-4.md): **`(chore):`** **Full Changelog**: [ - [April 1, 2024](april-1-2024.md): **`(chore):`** ## What's Changed - [March 29, 2024](march-29-2024.md): **`(chore):`** ## What's Changed - [March 28, 2024](march-28-2024-2.md): **`(chore):`** ## What's Changed - [March 27, 2024](march-27-2024.md): **`(chore):`** ## What's Changed - [March 25, 2024](march-25-2024-2.md): **`(chore):`** ## What's Changed - [March 23, 2024](march-23-2024.md): **`(chore):`** ## What's Changed - [March 22, 2024](march-22-2024-4.md): **`(chore):`** ## What's Changed - [March 21, 2024](march-21-2024-2.md): **`(chore):`** ## What's Changed - [March 19, 2024](march-19-2024-2.md): **`(chore):`** ## What's Changed - [March 18, 2024](march-18-2024-5.md): **`(chore):`** ## What's Changed - [March 15, 2024](march-15-2024.md): **`(chore):`** ## What's Changed - [March 13, 2024](march-13-2024.md): **`(chore):`** ## What's Changed - [March 10, 2024](march-10-2024.md): **`(chore):`** ## What's Changed - [March 9, 2024](march-9-2024.md): **`(chore):`** ## What's Changed - [March 8, 2024](march-8-2024-2.md): **`(chore):`** ## What's Changed - [March 7, 2024](march-7-2024.md): **`(chore):`** ## What's Changed - [March 5, 2024](march-5-2024.md): **`(chore):`** ## What's Changed - [February 27, 2024](february-27-2024-4.md): **`(chore):`** ## What's Changed - [February 26, 2024](february-26-2024-4.md): **`(chore):`** ## What's Changed - [February 22, 2024](february-22-2024-3.md): **`(chore):`** ## What's Changed - [February 21, 2024](february-21-2024-4.md): **`(chore):`** ## What's Changed - [February 16, 2024](february-16-2024.md): **`(chore):`** ## What's Changed - [February 14, 2024](february-14-2024-3.md): **`(chore):`** ## What's Changed - [February 13, 2024](february-13-2024-3.md): **`(chore):`** ## What's Changed - [February 11, 2024](february-11-2024-4.md): **`(chore):`** ## What's Changed - [February 9, 2024](february-9-2024-2.md): **`(chore):`** ## What's Changed - [February 8, 2024](february-8-2024.md): **`(chore):`** ## What's Changed - [February 7, 2024](february-7-2024-2.md): **`(chore):`** ## What's Changed - [February 6, 2024](february-6-2024-2.md): **`(chore):`** ## What's Changed - [February 4, 2024](february-4-2024-2.md): **`(chore):`** ## What's Changed - [February 1, 2024](february-1-2024-2.md): **`(chore):`** ## What's Changed - [January 29, 2024](january-29-2024-3.md): **`(chore):`** ## What's Changed - [January 26, 2024](january-26-2024-2.md): **`(chore):`** ## What's Changed - [January 25, 2024](january-25-2024-3.md): **`(chore):`** ## What's Changed - [January 19, 2024](january-19-2024.md): **`(chore):`** ## What's Changed - [January 18, 2024](january-18-2024.md): **`(chore):`** ## What's Changed - [January 17, 2024](january-17-2024.md): **`(chore):`** ## What's Changed - [January 15, 2024](january-15-2024.md): **`(chore):`** ## What's Changed - [January 13, 2024](january-13-2024.md): **`(chore):`** ## What's Changed - [January 12, 2024](january-12-2024.md): **`(chore):`** ## What's Changed - [January 11, 2024](january-11-2024.md): **`(chore):`** ## What's Changed - [January 10, 2024](january-10-2024-2.md): **`(chore):`** ## What's Changed - [January 9, 2024](january-9-2024.md): **`(chore):`** ## What's Changed - [January 1, 2024](january-1-2024.md): **`(chore):`** ## What's Changed - [December 29, 2023](december-29-2023.md): **`(chore):`** ## What's Changed - [December 23, 2023](december-23-2023.md): **`(chore):`** **Full Changelog**: [ - [December 22, 2023](december-22-2023.md): **`(chore):`** ## What's Changed - [December 21, 2023](december-21-2023.md): **`(chore):`** ## What's Changed - [December 20, 2023](december-20-2023.md): **`(chore):`** ## What's Changed - [December 18, 2023](december-18-2023.md): **`(chore):`** ## What's Changed - [December 17, 2023](december-17-2023.md): **`(chore):`** ## What's Changed - [December 14, 2023](december-14-2023.md): **`(chore):`** ## What's Changed - [December 13, 2023](december-13-2023.md): **`(chore):`** ## What's Changed - [December 11, 2023](december-11-2023.md): **`(chore):`** ## What's Changed - [December 10, 2023](december-10-2023.md): **`(chore):`** ## What's Changed - [December 8, 2023](december-8-2023.md): **`(chore):`** ## What's Changed - [December 7, 2023](december-7-2023.md): **`(chore):`** ## What's Changed - [December 6, 2023](december-6-2023.md): **`(chore):`** ## What's Changed - [December 4, 2023](december-4-2023-2.md): **`(chore):`** ## What's Changed - [November 30, 2023](november-30-2023-2.md): **`(chore):`** ## What's Changed - [November 28, 2023](november-28-2023.md): **`(chore):`** ## What's Changed - [November 27, 2023](november-27-2023.md): **`(chore):`** ## What's Changed - [November 21, 2023](november-21-2023.md): **`(chore):`** ## What's Changed - [November 20, 2023](november-20-2023.md): **`(chore):`** - **fix**: running`fern generate --local`with a`.fernignore`works in Github Actions (@dsinghvi) - [November 17, 2023](november-17-2023.md): **`(chore):`** ## What's Changed - [November 16, 2023](november-16-2023.md): **`(chore):`** ## What's Changed - [November 15, 2023](november-15-2023.md): **`(chore):`** ## What's Changed - [November 14, 2023](november-14-2023.md): **`(chore):`** - **feature**: mark`in-development`endpoints as`beta`in the generated docs - [November 9, 2023](november-9-2023.md): **`(chore):`** Release 0.15.0-rc74 - [November 8, 2023](november-8-2023-2.md): **`(chore):`** - Support a`x-fern-streaming`extension in the OpenAPI importer (@amckinney) - [November 3, 2023](november-3-2023.md): **`(chore):`** *No user facing changes* - [November 2, 2023](november-2-2023.md): **`(chore):`** *No user facing changes* - [November 1, 2023](november-1-2023.md): **`(chore):`** *No user facing changes* - [October 30, 2023](october-30-2023.md): **`(chore):`** - Retrigger latest release (@dsinghvi) - [October 28, 2023](october-28-2023.md): **`(chore):`** - **feature**: OpenAPI importer supports`x-fern-header-variable-name`to customize the header name in... - [October 27, 2023](october-27-2023.md): **`(chore):`** - **fix**: OpenAPI importer handles multiple header security schemes - [October 26, 2023](october-26-2023.md): **`(chore):`** - Not a user facing change: IR for`property-response`uses correct typeId (@dsinghvi) - [October 25, 2023](october-25-2023.md): **`(chore):`** - Improve logging when`.fernignore`is present in directory (@dsinghvi) - [October 24, 2023](october-24-2023.md): **`(chore):`** - Support`--custom fixture`in seed CLI for snapshot tests (@dsinghvi) - [October 20, 2023](october-20-2023.md): **`(chore):`** - Support literal examples (@dsinghvi) - [October 15, 2023](october-15-2023.md): **`(chore):`** - Support generating preview url when generating docs (@dsinghvi) - [October 13, 2023](october-13-2023.md): **`(chore):`** Release 0.15.0-rc40 - [October 11, 2023](october-11-2023.md): **`(chore):`** - Support generating python snippets for documentation - [October 10, 2023](october-10-2023.md): **`(chore):`** - Additional seed test definitions (@dsinghvi) - [October 8, 2023](october-8-2023.md): **`(chore):`** - **fix**: delete existing output on local generation (@dsinghvi) - [October 6, 2023](october-6-2023.md): **`(chore):`** - Fix: OpenAPI importer scans const fields when detecting discriminated unions (@dsinghvi) - [October 5, 2023](october-5-2023.md): **`(chore):`** - Fix discriminated union parsing in AsyncAPI import (@dsinghvi) - [October 1, 2023](october-1-2023.md): **`(chore):`** - Server side generators are tested with output mode local files (@dsinghvi) - [September 30, 2023](september-30-2023.md): **`(chore):`** -`--local`mode of the Fern CLI now correctly copies over generated typescript code (@dsinghvi) - [September 29, 2023](september-29-2023.md): **`(chore):`** - Bump generator versions to the latest (@amckinney) - [September 26, 2023](september-26-2023.md): **`(chore):`** - Support`go-fiber`generator (@connormahon34) - [September 25, 2023](september-25-2023.md): **`(chore):`** -`fern generate --docs`will no longer fail because of network timeout issues (@dsinghvi) - [September 20, 2023](september-20-2023.md): **`(chore):`** - Add test fern definitions with endpoint examples(@amckinney) - [September 19, 2023](september-19-2023.md): **`(chore):`** - Support reading AsyncAPI Schemas (@dsinghvi) - [September 18, 2023](september-18-2023.md): **`(chore):`** - Add test definitions that contain examples(@amckinney) - [September 17, 2023](september-17-2023.md): **`(chore):`** - Only set GA availability if explicitly defined in the API Definition (@dsinghvi) - [September 16, 2023](september-16-2023.md): **`(chore):`** - Set version slug override (@dsinghvi) - [September 13, 2023](september-13-2023.md): **`(chore):`** - docs.yml now supports showing API errors opt-in (@dsinghvi) - [September 10, 2023](september-10-2023.md): **`(chore):`** - Docs support tabs (@dsinghvi) - [September 9, 2023](september-9-2023.md): **`(chore):`** - Fix and make sure CLI adheres to`--api`flag when filtering API workspaces (@dsinghvi) - [September 6, 2023](september-6-2023.md): **`(chore):`** - Validate markdown for documentation (@dsinghvi) - [September 5, 2023](september-5-2023.md): **`(chore):`** - Support reading`description`on`$ref`fields in OpenAPI (@dsinghvi) - [September 4, 2023](september-4-2023.md): **`(chore):`** - Add test definitions for`response: text` - [August 31, 2023](august-31-2023.md): **`(chore):`** - OpenAPI Importer handles deduping undiscriminated union types (@dsinghvi) - [August 30, 2023](august-30-2023.md): **`(chore):`** - Support reading`default`key in OpenAPI to account for headers with literal value (@dsinghvi) - [August 25, 2023](august-25-2023.md): **`(chore):`** - Support reading webhooks from OpenAPI specs (@dsinghvi) - [August 23, 2023](august-23-2023.md): **`(chore):`** - Support uploading images with custom content types such as SVGs (@dsinghvi) - [August 18, 2023](august-18-2023.md): **`(chore):`** - Update discriminated union detection to handle referenced schemas (@dsinghvi) - [August 16, 2023](august-16-2023.md): **`(chore):`** - **Break**: The fern directory now has a top-level`apis`directory to handle apis and docs no longer... - [August 14, 2023](august-14-2023.md): **`(chore):`** Release 0.14.4-rc2 - [August 11, 2023](august-11-2023.md): **`(chore):`** CLI handles property names that start with numbers for code generation (@dsinghvi) - [August 8, 2023](august-8-2023.md): **`(chore):`** - When`docs`is missing, the CLI should nudge the user to run`fern add docs`(@dannysheridan) - [August 7, 2023](august-7-2023.md): **`(chore):`** - Rerelease`0.14.0` - [August 5, 2023](august-5-2023.md): **`(chore):`** - Handle`type: "null"`when importing OpenAPI oneOf (@dsinghvi) - [August 3, 2023](august-3-2023.md): **`(chore):`** - Java generators now require IR V20 (@dsinghvi) - [August 2, 2023](august-2-2023.md): **`(chore):`** - OpenAPI generator only includes current package as part of generated name (@dsinghvi) - [August 1, 2023](august-1-2023.md): **`(chore):`** \* Add`ServiceTypeReferenceInfo`to IR so that generators can recognize what types are referenced fro... - [July 29, 2023](july-29-2023.md): **`(chore):`** - Specify license in generators.yml (@amckinney) - [July 28, 2023](july-28-2023.md): **`(chore):`** - OpenAPI importer handles converting numbers formatted as time-delta (@dsinghvi) - [July 26, 2023](july-26-2023.md): **`(chore):`** - OpenAPI importer handles converting servers with`staging`and`production`descriptions (@dsinghvi) - [July 24, 2023](july-24-2023.md): **`(chore):`** - handles`x-ndjson`content-type in OpenAPI responses - [July 23, 2023](july-23-2023.md): **`(chore):`** Release 0.11.9-rc0 - [July 22, 2023](july-22-2023.md): **`(chore):`** Release 0.11.7-rc7 - [July 21, 2023](july-21-2023.md): **`(chore):`** - Hacky release with sleep 5s before running docker - [July 20, 2023](july-20-2023.md): **`(chore):`** Release 0.11.7-rc3 - [July 18, 2023](july-18-2023.md): **`(chore):`** - Pypi token is correctly read in for publishing - [July 14, 2023](july-14-2023.md): **`(chore):`** Release 0.11.7-rc1 - [July 13, 2023](july-13-2023.md): **`(chore):`** Release 0.11.7-rc0 - [July 11, 2023](july-11-2023.md): **`(chore):`** Release 0.11.6 - [July 10, 2023](july-10-2023.md): **`(chore):`** - Fixes [(... - [July 6, 2023](july-6-2023.md): **`(chore):`** Release 0.11.4 - [July 5, 2023](july-5-2023.md): **`(chore):`** Release 0.11.3-rc4 - [June 28, 2023](june-28-2023.md): **`(chore):`** Release 0.11.3-rc3 - [June 24, 2023](june-24-2023.md): **`(chore):`** Release 0.11.3-rc0 - [June 23, 2023](june-23-2023.md): **`(chore):`** Release 0.11.2 - [June 22, 2023](june-22-2023.md): **`(chore):`** Release 0.11.1-rc0 - [June 20, 2023](june-20-2023.md): **`(chore):`** Release 0.10.28 - [June 15, 2023](june-15-2023.md): **`(chore):`** Release 0.10.27-rc0 - [June 14, 2023](june-14-2023.md): **`(chore):`** Release 0.10.25-rc1 - [June 13, 2023](june-13-2023.md): **`(chore):`** Release 0.10.25-rc0 - [June 12, 2023](june-12-2023.md): **`(chore):`** Release 0.10.23-rc0 - [June 11, 2023](june-11-2023.md): **`(chore):`** Release 0.10.18 - [June 10, 2023](june-10-2023.md): **`(chore):`** Release 0.10.15 - [June 9, 2023](june-9-2023.md): **`(chore):`** Release 0.10.13 - [June 8, 2023](june-8-2023.md): **`(chore):`** Release 0.10.11-rc0 - [June 7, 2023](june-7-2023.md): **`(chore):`** Release 0.10.9 - [June 6, 2023](june-6-2023.md): **`(chore):`** Release 0.10.7 - [June 5, 2023](june-5-2023.md): **`(chore):`** Release 0.10.2 - [June 2, 2023](june-2-2023.md): **`(chore):`** Release 0.9.10 - [May 31, 2023](may-31-2023.md): **`(chore):`** Release 0.9.10-rc0 - [May 30, 2023](may-30-2023.md): **`(chore):`** Release 0.9.8 - [May 29, 2023](may-29-2023.md): **`(chore):`** Release 0.9.7-rc1 - [May 28, 2023](may-28-2023.md): **`(chore):`** Release 0.9.6-rc1 - [May 27, 2023](may-27-2023.md): **`(chore):`** Release 0.9.5 - [May 25, 2023](may-25-2023.md): **`(chore):`** Release 0.9.4-rc3 - [May 24, 2023](may-24-2023.md): **`(chore):`** Release 0.9.3 - [May 23, 2023](may-23-2023.md): **`(chore):`** Release 0.9.2-rc2 - [May 21, 2023](may-21-2023.md): **`(chore):`** Release 0.9.2-rc0 - [May 20, 2023](may-20-2023.md): **`(chore):`** Release 0.9.1 - [May 19, 2023](may-19-2023.md): **`(chore):`** Release 0.9.1-rc2 - [May 18, 2023](may-18-2023.md): **`(chore):`** Release 0.9.1-rc1 - [May 17, 2023](may-17-2023.md): **`(chore):`** Running`fern init --openapi`creates an OpenAPI workspace - [May 16, 2023](may-16-2023.md): **`(chore):`** Add`fern-go-model`generator identifier. - [May 13, 2023](may-13-2023.md): **`(chore):`** Release 0.8.23 - [May 12, 2023](may-12-2023.md): **`(chore):`** Release 0.8.20 - [May 11, 2023](may-11-2023.md): **`(chore):`** Release 0.8.20-rc2 - [May 10, 2023](may-10-2023.md): **`(chore):`** Release 0.8.19-rc7 - [May 8, 2023](may-8-2023.md): **`(chore):`** Release 0.8.18 - [May 7, 2023](may-7-2023.md): **`(chore):`** Release 0.8.16-rc4 - [May 6, 2023](may-6-2023.md): **`(chore):`** Release 0.8.13-rc0 - [May 5, 2023](may-5-2023.md): **`(chore):`** Release 0.8.12 - [May 4, 2023](may-4-2023.md): **`(chore):`** Release 0.8.9 - [May 3, 2023](may-3-2023.md): **`(chore):`** Release 0.8.6 - [May 2, 2023](may-2-2023.md): **`(chore):`** Release 0.8.1 - [May 1, 2023](may-1-2023.md): **`(chore):`** Release 0.7.5-rc9 - [April 30, 2023](april-30-2023.md): **`(chore):`** Release 0.7.5-rc6 - [April 28, 2023](april-28-2023.md): **`(chore):`** Release 0.7.5-rc0 - [April 23, 2023](april-23-2023.md): **`(chore):`** Release 0.7.4 - [April 21, 2023](april-21-2023.md): **`(chore):`** Release 0.7.0 - [April 19, 2023](april-19-2023.md): **`(chore):`** Release 0.6.12 - [April 17, 2023](april-17-2023.md): **`(chore):`** Release 0.6.11-rc2 - [April 4, 2023](april-4-2023.md): **`(chore):`** Release 0.6.10 - [April 3, 2023](april-3-2023.md): **`(chore):`** Release 0.6.10-rc4 - [April 2, 2023](april-2-2023.md): **`(chore):`** Release 0.6.10-rc1 - [April 1, 2023](april-1-2023.md): **`(chore):`** Release 0.6.7 - [March 31, 2023](march-31-2023.md): **`(chore):`** Release 0.6.6 - [March 30, 2023](march-30-2023.md): **`(chore):`** Release 0.6.5-rc0 - [March 29, 2023](march-29-2023.md): **`(chore):`** Release 0.6.2 - [March 28, 2023](march-28-2023.md): **`(chore):`** Release 0.6.2-rc0 - [March 26, 2023](march-26-2023.md): **`(chore):`** Release 0.5.4-rc3 - [March 24, 2023](march-24-2023.md): **`(chore):`** Release 0.5.4-rc2 - [March 20, 2023](march-20-2023.md): **`(chore):`** Release 0.5.3 - [March 19, 2023](march-19-2023.md): **`(chore):`** Release 0.5.3-rc5 - [March 13, 2023](march-13-2023.md): **`(chore):`** Release 0.5.3-rc3 - [March 11, 2023](march-11-2023.md): **`(chore):`** Release 0.5.3-rc1 - [March 10, 2023](march-10-2023.md): **`(chore):`** Release 0.5.2 - [March 9, 2023](march-9-2023.md): **`(chore):`** Release 0.5.1 - [March 8, 2023](march-8-2023.md): **`(chore):`** Release 0.4.33-rc5 - [March 7, 2023](march-7-2023.md): **`(chore):`** Release 0.4.33-rc0 - [March 6, 2023](march-6-2023.md): **`(chore):`** Release 0.4.32 - [March 5, 2023](march-5-2023.md): **`(chore):`** Release 0.4.32-rc0 - [March 4, 2023](march-4-2023.md): **`(chore):`** Release 0.4.31-rc3 - [March 3, 2023](march-3-2023.md): **`(chore):`** Release 0.4.30 - [March 2, 2023](march-2-2023.md): **`(chore):`** Release 0.4.28-rc2 - [March 1, 2023](march-1-2023.md): **`(chore):`** Release 0.4.27-rc0 - [February 25, 2023](february-25-2023.md): **`(chore):`** Release 0.4.26 - [February 23, 2023](february-23-2023.md): **`(chore):`** Release 0.4.24 - [February 21, 2023](february-21-2023.md): **`(chore):`** Release 0.4.24-rc1 - [February 20, 2023](february-20-2023.md): **`(chore):`** Release 0.4.24-rc0 - [February 16, 2023](february-16-2023.md): **`(chore):`** Release 0.4.23 - [February 12, 2023](february-12-2023.md): **`(chore):`** Release 0.4.22 - [February 9, 2023](february-9-2023.md): **`(chore):`** Release 0.4.20-rc1 - [February 7, 2023](february-7-2023.md): **`(chore):`** Release 0.4.18 - [February 6, 2023](february-6-2023.md): **`(chore):`** Release 0.4.17 - [February 5, 2023](february-5-2023.md): **`(chore):`** Release 0.4.14 - [February 4, 2023](february-4-2023.md): **`(chore):`** Release 0.4.13 - [February 2, 2023](february-2-2023.md): **`(chore):`** Release 0.4.12 - [February 1, 2023](february-1-2023.md): **`(chore):`** Release 0.4.9 - [January 31, 2023](january-31-2023.md): **`(chore):`** Release 0.4.5-rc4 - [January 30, 2023](january-30-2023.md): **`(chore):`** Release 0.4.5-rc2 - [January 29, 2023](january-29-2023.md): **`(chore):`** Release 0.4.1 - [January 28, 2023](january-28-2023.md): **`(chore):`** Release 0.3.23 - [January 27, 2023](january-27-2023.md): **`(chore):`** Release 0.3.20 - [January 24, 2023](january-24-2023.md): **`(chore):`** Release 0.3.19 - [January 23, 2023](january-23-2023.md): **`(chore):`** Release 0.3.18 - [January 22, 2023](january-22-2023.md): **`(chore):`** Release 0.3.17-rc2 - [January 21, 2023](january-21-2023.md): **`(chore):`** Release 0.3.17-rc1 - [January 20, 2023](january-20-2023.md): **`(chore):`** Release 0.3.16 - [January 19, 2023](january-19-2023.md): **`(chore):`** Release 0.3.16-rc2 - [January 18, 2023](january-18-2023.md): **`(chore):`** Release 0.3.16-rc1 - [January 17, 2023](january-17-2023.md): **`(chore):`** Release 0.3.12-rc9 - [January 15, 2023](january-15-2023.md): **`(chore):`** Release 0.3.12-rc7 - [January 13, 2023](january-13-2023.md): **`(chore):`** Release 0.3.12-rc3 - [January 12, 2023](january-12-2023.md): **`(chore):`** Release 0.3.12-rc0 - [January 11, 2023](january-11-2023.md): **`(chore):`** Release 0.3.10 - [January 9, 2023](january-9-2023.md): **`(chore):`** Release 0.3.8 - [January 8, 2023](january-8-2023.md): **`(chore):`** Release 0.3.7 - [January 6, 2023](january-6-2023.md): **`(chore):`** Release 0.3.6-rc1 - [December 28, 2022](december-28-2022.md): **`(chore):`** Release 0.3.5 - [December 24, 2022](december-24-2022.md): **`(chore):`** Release 0.3.0-rc12 - [December 23, 2022](december-23-2022.md): **`(chore):`** Release 0.3.0-rc11 - [December 16, 2022](december-16-2022.md): **`(chore):`** Release 0.3.0-rc9 - [December 15, 2022](december-15-2022.md): **`(chore):`** Release 0.3.0-rc0 - [December 14, 2022](december-14-2022.md): **`(chore):`** Release 0.2.0 - [December 13, 2022](december-13-2022.md): **`(chore):`** Release 0.1.3-rc7 - [What is an API definition?](what-is-an-api-definition.md): Describes the contract between the API provider and API consumer - [Project structure](project-structure-3.md): Describes the Fern folder structure - [Overrides](overrides.md): Customize your API definition using a separate overrides file. - [What is an OpenAPI specification?](what-is-an-openapi-specification.md): OpenAPI is a standard for documenting REST APIs - [Overlays](overlays.md): Use the OpenAPI Overlay Specification to customize your OpenAPI definition without modifying the original spec. - [Authentication](authentication.md): Model auth schemes such as bearer, basic, api key, and OAuth. - [Apply globally across all endpoints](apply-globally-across-all-endpoints.md): security: - [Servers](servers.md): Configure server URLs and environments to help users connect to your API. - [Sync your OpenAPI specification](sync-your-openapi-specification.md): Pull your latest OpenAPI Specification into your Fern Folder automatically. - [HTTP JSON Endpoints](http-json-endpoints.md): Document HTTP JSON APIs with the`application/json`content type - [Webhooks](webhooks.md): Learn how to define webhooks using OpenAPI 3.1 native support or Fern's extensions. Generate webhook docs and SDK ver... - [Multipart file upload](multipart-file-upload.md): Document endpoints with the`multipart/form-data`content type - [Server-sent events and streaming APIs](server-sent-events-and-streaming-apis.md): Use the`x-fern-streaming`extension to model streaming endpoints - [Extensions overview](extensions-overview.md): Learn about OpenAPI extensions in Fern. Customize authentication, SDK methods, versioning, and more for better API sp... - [API version](api-version.md): Configure API version schemes and headers using`x-fern-version`extension - [Use audiences to filter your API](use-audiences-to-filter-your-api.md): Learn how to use x-fern-audiences to filter OpenAPI endpoints, schemas, and properties for different API consumers li... - [Availability](availability.md): Mark API endpoint availability in OpenAPI with`x-fern-availability`. Set beta, deprecated, stable, etc. statuses for... - [Base path](base-path.md): Configure base paths in OpenAPI with`x-fern-base-path`. Set up endpoint prefixes like /v1 for your API definitions w... - [Enum descriptions and names](enum-descriptions-and-names.md): Add descriptions to OpenAPI enum values with`x-fern-enum`extension. Customize enum names for cleaner SDK code and b... - [Request + response examples](request-response-examples.md): Configure OpenAPI request and response examples with x-fern-examples. Associate path parameters, query parameters, an... - [API Explorer control](api-explorer-control.md): Enable or disable the API Explorer using`x-fern-explorer` - [Global headers](global-headers.md): Configure headers used across all endpoints using`x-fern-global-headers`extension - [Ignoring elements](ignoring-elements.md): Use x-fern-ignore to exclude endpoints, schemas, properties, or parameters from your OpenAPI spec. Control what Fern ... - [Customize SDK method names](customize-sdk-method-names.md): Use`x-fern-sdk-method-name`and`x-fern-sdk-group-name`to finetune SDK naming. - [SDK variables](sdk-variables.md): Use`x-fern-sdk-variables`to set common path parameters across all requests - [Tag display names](tag-display-names.md): Customize how tag names appear in your API Reference using the`x-displayName`extension - [Customize parameter names](customize-parameter-names.md): Use`x-fern-parameter-name`to customize query parameter, header and path parameter naming. - [Property names](property-names.md): Customize variable names for object properties using the`x-fern-property-name`extension - [Retry behavior](retry-behavior.md): Control API retry logic with x-fern-retries extension. Configure endpoint-level retry behavior and disable retries fo... - [Schema names](schema-names.md): Override auto-generated names for inline schemas using the`x-fern-type-name`extension - [Server names](server-names.md): Learn how to use the`x-fern-server-name`extension to name servers in your OpenAPI specification for better SDK gene... - [FastAPI Instrumentation](fastapi-instrumentation.md): Learn about best practices for creating rich OpenAPI Specifications when instrumenting FastAPI applications. - [This creates the following server object in your OpenAPI Specification:](this-creates-the-following-server-object-in-your-openapi-specification.md) - ["servers":[{"url":"http://prod.test.com","description":"Production server"}],](serversurlhttpprodtestcomdescriptionproduction-server.md): FastAPI allows you to add in extra OpenAPI configuration directly within your route, through the use of the`openapi_... - [OpenAPI generators.yml reference](openapi-generatorsyml-reference.md): Reference for configuring OpenAPI specifications in your generators.yml file - [What is an AsyncAPI specification?](what-is-an-asyncapi-specification.md): AsyncAPI is a standard for documenting event-driven APIs - [Authentication](authentication-2.md): Model auth schemes such as bearer, basic, and api key for your event-driven APIs. - [Servers](servers-2.md): Configure server URLs and protocols to help users connect to your event-driven API. - [Sync your AsyncAPI specification](sync-your-asyncapi-specification.md): Automatically sync your AsyncAPI spec changes to keep SDKs and docs up to date - [Publish/Subscribe Operations](publishsubscribe-operations.md): Define AsyncAPI publish/subscribe operations for event-driven APIs. Step-by-step tutorial with message examples and b... - [Message Formats](message-formats.md): Define message schemas, content types, and structure for event-driven communication - [Message Bindings](message-bindings.md): Configure protocol-specific settings for WebSocket, MQTT, Kafka, and other protocols - [Extensions overview](extensions-overview-2.md): Learn about Fern's AsyncAPI extensions for generating higher-quality SDKs - [Use audiences to filter your API](use-audiences-to-filter-your-api-2.md): Use`x-fern-audiences`to filter to relevant operations, channels and message schemas - [Availability](availability-2.md): Mark features as available in specific SDK versions using`x-fern-availability`extension - [Request + response examples](request-response-examples-2.md): Add message examples to AsyncAPI specs with`x-fern-examples`. Improve SDK documentation with real-world payload exam... - [Ignoring operations, channels, or schemas](ignoring-operations-channels-or-schemas.md): Learn how to use x-fern-ignore to exclude specific operations, channels, or schemas from AsyncAPI SDK generation. - [Server names](server-names-2.md): Configure custom server names in AsyncAPI specifications with`x-fern-server-name`extension. Set up production and s... - [What is an OpenRPC specification?](what-is-an-openrpc-specification.md): Learn how to use OpenRPC specifications with Fern to document JSON-RPC APIs. Set up your fern folder and configure Op... - [Authentication](authentication-3.md): Model auth schemes for JSON-RPC APIs including bearer, basic, and api key authentication - [Servers](servers-3.md): Configure server URLs and transports for your JSON-RPC API - [Sync your OpenRPC specification](sync-your-openrpc-specification.md): Automate OpenRPC spec syncing to keep SDKs and documentation current. Set up GitHub Actions, webhooks, and CI/CD inte... - [JSON-RPC Methods](json-rpc-methods.md): Document JSON-RPC methods with parameters, results, and error handling - [Extensions overview](extensions-overview-3.md): OpenRPC extensions guide for Fern. Use x-fern-ignore, x-fern-examples, x-fern-availability, and more to improve SDK g... - [Use audiences to filter your API](use-audiences-to-filter-your-api-3.md): Use`x-fern-audiences`to filter to relevant methods, parameters and schemas - [Availability](availability-3.md): Mark features as available in specific SDK versions using`x-fern-availability`extension - [Request + response examples](request-response-examples-3.md): Add multiple request and response examples to OpenRPC methods with x-fern-examples. Improve your SDK docs with real-w... - [Ignoring methods or schemas](ignoring-methods-or-schemas.md): Skip reading specific OpenRPC elements using`x-fern-ignore`extension - [SDK Method Names](sdk-method-names.md): Control SDK method names in OpenRPC specifications. Use`x-fern-sdk-method-name`to define intuitive, language-specif... - [SDK group names](sdk-group-names.md): Learn how to use x-fern-sdk-group-name in OpenRPC to organize related methods into logical groups for cleaner, more i... - [Server names](server-names-3.md): Specify custom names for servers using`x-fern-server-name`extension - [What is gRPC?](what-is-grpc.md): gRPC is a high-performance RPC framework that uses Protocol Buffers - [Authentication](authentication-4.md): Configure authentication for gRPC services including TLS, JWT, and custom auth - [TLS with JWT](tls-with-jwt.md): def create_authenticated_channel(server_address, jwt_token): - [API Key authentication](api-key-authentication.md): def create_api_key_channel(server_address, api_key): - [Servers](servers-4.md): Configure gRPC servers with TLS, load balancing, and deployment options - [Using a load balancer with multiple targets](using-a-load-balancer-with-multiple-targets.md): def create_multi_target_channel(): - [Prometheus metrics](prometheus-metrics.md): REQUEST_COUNT = Counter( - [Sync your gRPC specification](sync-your-grpc-specification.md): Automate gRPC specification syncing with Fern. Set up GitHub Actions, CI/CD pipelines, and scheduled updates for Prot... - [gRPC Services](grpc-services.md): Define gRPC services with RPCs, messages, and Protocol Buffer schemas - [Streaming](streaming.md): Learn how to implement server streaming, client streaming, and bidirectional streaming in gRPC for real-time communic... - [Error handling](error-handling.md): Implement robust error handling with gRPC status codes and custom error details - [Usage example](usage-example.md): class UserService(user_pb2_grpc.UserServiceServicer): - [Usage example](usage-example-2.md): def create_user_with_error_handling(stub, user_data): - [gRPC generators.yml reference](grpc-generatorsyml-reference.md): Complete gRPC generators.yml reference guide for Fern. Learn how to configure root, target, overrides, and local-gene... - [What is a Fern Definition?](what-is-a-fern-definition.md): Fern Definition is a YAML format for API specifications. Define your REST API endpoints, data models, and errors in o... - [Authentication](authentication-5.md): Configure API authentication in Fern Definition. Set up bearer tokens, basic auth, custom headers, and OAuth for your... - [Types in Fern Definition](types-in-fern-definition.md): Types describe the data model of your API. Fern has many built-in types and supports custom types, as well as extendi... - [Endpoints in Fern Definition](endpoints-in-fern-definition.md): Organize related API endpoints into a service in Fern Definition and define each endpoint's URL, HTTP method, request... - [HTTP JSON Endpoints](http-json-endpoints-2.md): Endpoints in Fern are defined underneath the`endpoints`key. Below is an example of defining - [Multipart file upload](multipart-file-upload-2.md): Document endpoints with the`multiform`content type. - [Binary data and files](binary-data-and-files.md): Use the`bytes`type to handle binary data in your API - [Server-sent events and streaming APIs](server-sent-events-and-streaming-apis-2.md): Use the`response-stream`key to model streaming endpoints - [Webhooks in the Fern Definition](webhooks-in-the-fern-definition.md): Learn how to define webhooks in the Fern Definition - [WebSockets in the Fern Definition](websockets-in-the-fern-definition.md): Learn how to define WebSockets in the Fern Definition - [Errors in Fern Definition](errors-in-fern-definition.md): Add errors representing failed responses from API endpoints in Fern Definition. - [Imports in Fern Definition](imports-in-fern-definition.md): Use imports to reference API types and errors from other Fern Definition files. - [Examples in Fern Definition](examples-in-fern-definition.md): Use Fern Definition to add API examples that are shown in comments of SDKs, API Reference documentation, and a Postma... - [Audiences in Fern Definition](audiences-in-fern-definition.md): Use audiences in your Fern Definition to segment your API for different groups of consumers. - [Availability in Fern Definition](availability-in-fern-definition.md): Add availability to Fern Definition API services, endpoints, types, or properties to indicate their release status. - [The api.yml configuration file](the-apiyml-configuration-file.md): The api.yml file contains general API configuration when using the Fern Definition format. - [Environments](environments.md): List environments like production, staging, and development. - [Global configuration](global-configuration.md): Specify global headers, path parameters or query parameters meant to be included on every request. - [Errors](errors.md): Specify error types and schemas - [Packages in Fern Definition](packages-in-fern-definition.md): Fern Definition enables the reuse of API type and error names across packages, and can configure the structure of you... - [Depending on other APIs](depending-on-other-apis.md): Import API Definitions to generate unified SDKs - [Export from Fern Definition to OpenAPI](export-from-fern-definition-to-openapi.md): Export Fern Definition to OpenAPI 3.1 format using the fern export command. Prevent vendor lock-in and convert your A...