-
Notifications
You must be signed in to change notification settings - Fork 0
🌿 ✨ [Scheduled] Upgrade Fern CLI #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
fern-api
wants to merge
1
commit into
main
Choose a base branch
from
fern/update/cli
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
74dc6d3 to
9ab1b08
Compare
9ab1b08 to
81d7741
Compare
81d7741 to
6fb12c3
Compare
6fb12c3 to
bad1006
Compare
bad1006 to
7643168
Compare
7643168 to
59308b8
Compare
59308b8 to
9621dd5
Compare
9621dd5 to
be20fed
Compare
be20fed to
6eb6193
Compare
6eb6193 to
01f9738
Compare
01f9738 to
a5c28ee
Compare
a5c28ee to
262de40
Compare
262de40 to
ad32211
Compare
ad32211 to
3e4f839
Compare
3e4f839 to
d637f5e
Compare
d637f5e to
cdeab01
Compare
cdeab01 to
bf26ad4
Compare
bf26ad4 to
2d8c763
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Upgrading from
0.30.7to0.53.17- Changelog0.53.17fix:Fix an issue with the OpenAPI v2 parser where recursive subpackage slugs would not generate correctly.0.53.16fix:Enablex-fern-sdk-group-nameextension in AsyncAPI v3 parser.0.53.15fix:Disable broken link checker until it is ready to release.0.53.14fix:Fixes an issue with the OpenAPI v2 parser where docs configs with no navigation structure would generate incorrect slugs.0.53.13fix:Resolve error wherefern docs devfailed in Windows environments.343 additional updates, see more
0.53.12fix:Dynamically deconflict AsyncAPI message names when generating Fern Definition Types to preserve original namingwherever possible.
0.53.11fix:Fix an issue with the OpenAPI v2 parser where schemas with single value arrays were being incorrectly parsed.0.53.10fix:Support differentiated server URLs in WebSocket channels and correctly generate multi-url environments.0.53.9fix:Fix an issue with the OpenAPI v2 parser where incorrect slugs were being generated.0.53.8fix:Fix noindex behavior for section overview pages.0.53.7fix:Regenerate changelog.0.53.6fix:Correctly parse out channel address for v3 AsyncAPI specs.0.53.5fix:Support validation schemas in detailed Union types.0.53.4fix:Improve error logging ondownloadLocalDocsBundlefailure.0.53.3fix:noindexproperty in the frontmatter of a page is now implemented for site navigation +llms.txt.0.53.2fix:The OpenAPI parser now prefers thesourceextension set in the OpenAPI spec, and only writesit if it is not already set.
0.53.1fix:The OpenAPI v2 parser now parses Server specifications with variables.0.53.0feat:Users can now specify theidiomatic-request-namesoption in thegenerators.ymlto adapt the behavior of theautogenerated request names. The verb is now in front of the noun (e.g.
UsersListRequestbecomesListUsersRequest).This is disabled by default (for backwards compatibility), and can be enabled with the following:
0.52.0fix:Introduce the AsyncAPI 3.0.0 parser, which enables conditional parsing of both 2.x and 3.x AsyncAPI specs.0.51.39fix:The OpenAPI v2 parser now respects object properties as optional, generates display names for undiscriminated union objecttypes, and fixes minor issues with docs dev when using specific navigation locators in docs.yml specification.
0.51.38fix:The OpenAPI v2 parser now ignores optional parameters when generating requests. It also improves upon generation withbetter fallback logic for sparse requests.
0.51.37fix:Fixed handling of Windows filepaths in the docs generator by ensuring consistent path separators and proper absolute path handling.0.51.36fix:Type reference example generation now handles extends and base properties correctly, as well as in-lined Alias types.0.51.35fix:The cli will now respect examples withnullvalues in OpenAPI specs. This will allow for null properties to show up when usingOpenAPI parser v2.
0.51.34fix:The IR generator now correctly handles exploded form parameters in the docs, ensuring that curl code snippetsaccurately reflect the expected request format. Previously, exploded parameters were not properly formatted in the documentation, which
could lead to incorrect API usage. This fix ensures that array parameters marked as "exploded" are properly expanded in the generated curl examples.
0.51.33fix:The OpenAPI parser v2 now handlesnullvalues in examples, parses request and response bodies as unions if multiple, handles requiredproperties for global headers and improves upon example generation for APIs.
0.51.32fix:The Conjure Importer now handles replacing 'rid' types more safely by checking if an import alias starts with 'rid'.Previously, it would replace any 'rid' text with 'string', which could incorrectly modify import aliases that happened to start with 'rid'.
Now it only replaces 'rid' when it appears as a standalone type or generic parameter.
0.51.31internal:The IR migrator now recognizes that the PHP SDK generator requires IR version 55.0.51.30fix:The OpenAPI v2 parser now provides better naming and more robust payloads for examples.0.51.29fix:The images will be rendered to browser in the format of image ID that matches FileV2.It ensure images will be displayed properly in dev environment.
0.51.28fix:The IR generator now optimizes SDK generation by skipping automatic example generation when manual examples are provided.Previously, it would generate additional examples even when manual examples were specified for an operation.
This change improves generation performance by avoiding unnecessary example generation work.
0.51.27fix:The OpenAPI parser now optimizes discriminated union example generation by using the first successful variant.Previously, it would continue trying other variants even after finding a valid one. Now it stops after finding
the first valid variant, making example generation more efficient.
0.51.26fix:The OpenAPI parser now correctly generates examples for discriminated unions where a variant may itself be a union.Previously, if a discriminated union variant was itself a union (e.g.
{ type: "foo", value: { type: "bar" } }),the example generation would skip. Now it recursively handles nested unions to generate valid examples.
0.51.25fix:Literal property values are now accepted as deep object query parameters. Previously, if a query parameter was a deep objectwith a literal property value (e.g.
{ type: "foo" }), the CLI would reject it as too complex. Now literal values areallowed since they can be safely serialized.
0.51.24fix:The OpenAPI parser now parses path parameters that are present in the URL but not explicitly declared in the OpenAPI spec.Previously, if a path parameter was used in the URL (e.g.
/users/{userId}) but not declared in theparameterssection,the parser would fail. Now it automatically adds these path parameters as required string parameters.
0.51.23fix:The CLI now considersfalseandtrueas keywords for the Java generators.0.51.22fix:The OpenAPI parser now ignores request bodies onGETrequests since Fern does not support that.This is not a breaking change, since previously the
fern checkwould just fail.0.51.21fix:Thefern initcommand now respects JSON formatting when parsing from an external URL.0.51.20fix:The OpenRPC parser now supports generating code snippets in the API Explorer.0.51.19fix:The OpenRPC parser now supports generating code snippets in the API Explorer.0.51.18fix:The docs will now display errors by default. Previously, errors were hidden by default and needed to be explicitlyenabled with
displayErrors: true.0.51.17fix:The OpenRPC parser now handles displaying parameters as object examples.0.51.16fix:The OpenRPC parser now handles displaying parameters as object examples.0.51.15fix:The OpenRPC parser now handles displaying optional parameters in the request.0.51.14fix:Updateswhatwgso that users eliminate punycode deprecation warning.0.51.13fix:OpenAPI overrides now support resolving file references from the location of theOpenAPI overrides file itself. Previously, relative paths were only resolved from
the OpenAPI source file.
Most users will experience no change, but this will enable a wider set of file
directory layouts depending on the user's preference.
0.51.12fix:The Fern Definition now allows you to declare status codes for the response without having a type.This is useful for
204response status codes.0.51.11fix:The OpenAPI parser generates response examples that are{}for 204 response types.0.51.10fix:The OpenAPI parser generates response examples that are{}for 204 response types.0.51.9fix:Fixed OpenAPI importer to properly handle response status codes in documentation by propagatingthe status code from the OpenAPI spec through the IR and FDR layers.
0.51.8fix:Fixed OpenAPI importer to properly handle response status codes in documentation by propagatingthe status code from the OpenAPI spec through the IR and FDR layers.
0.51.7fix:Added better error messages when markdown files reference non-existent MDX files, showing the relative pathto the missing file rather than just indicating an invalid reference.
0.51.6fix:Fixed OpenAPI importer to properly handle string enums that are specified as integers by coercing them to strings.0.51.5fix:Added a new rule to validate frontmatter parsing across markdown files, ensuring frontmatteris properly formatted and can be parsed without errors.
0.51.4fix:Various improvements to the Mintlify and Readme importers, including better default stylingand spec imports for Mintlify migrations.
0.51.3fix:The OpenAPI parser now prefers the JSON Content-Type variant overothers (e.g. application/x-www-form-urlencoded).
0.51.2fix:Improved error messages when docs.yml doesn't match schema by showing more specificvalidation errors and including the path where the error occurred.
0.51.1fix:Fixed x-fern-resolutions to properly handle escaped forward slashes ("~1") in schema references,correctly converting them to "/" when resolving references.
0.51.0feat:The CLI now supports a --readme flag pointing to the URL of a Readme generated docs site andmigrates existing documentation to a fern-compatible repository.
To use this feature:
0.50.17fix:Improve performance offern docs devby only reloading the markdown content whenonly markdown files are changed, avoiding unnecessary recompilation of the full docs.
0.50.16fix:This PR improves the performance offern docs dev:0.50.15fix:Move example generation failure logs to trace level since they are not relevantfor users and add noise to debug logs.
0.50.14fix:Fixes a bug where duplicate types in undiscriminated unions (oneOfin OpenAPI)were not being deduped, which could lead to invalid generated code.
0.50.13fix:Fixes a bug where--log-level debugdoes not include trace logs.0.50.12fix:Increase undici timeouts to make sure thatfern generate --docscompletes.0.50.11fix:The CLI now supports a--log-level traceoption to filter out noise from thedebug log level.
0.50.10fix:An addition to the broken link checker to further reduce false positives.0.50.9fix:The Fern CLI no longer logs the full API request when finishing docs registration,reducing unnecessary log output.
0.50.8fix:An additional fix to the OpenRPC parser for respecting tags whenorganizing methods in the API Reference.
0.50.7fix:The OpenRPC parser now respects method names as well as tags fororganization the navigation.
0.50.6fix:The broken link checker is updated to reduce false positives.0.50.5fix:The Fern CLI is updated to create the organization if it doesn't exist whenfern tokenis called.0.50.4internal:The docs.yml now supports a separate configuration forfeature-flagswhich allows Fern to renderpieces of content depending on whether or not certain feature flags are enabled for particular user.
This feature is in alpha stage; please contact support@buildwithfern.com to learn more!
0.50.3internal:Fixes an issue where optional, nullable properties resulted in a double optional in theIRv55 -> IRv54 migration.
0.50.2fix:The docs now includes alpha support for parsing openrpc specs. To leverage this feature,simply define an API section in your docs.yml and point at an openrpc spec.
0.50.1fix:Fixes an issue where nullable schemas were not coerced into optional values.fix:Fixes an issue wherefern checkwould fail for optional, nullable properties.0.50.0internal:The CLI is capable of migrating the latest TypeScript generator to IRv55.0.49.1fix:The OpenAPI v2 parser now supportsx-fern-global-headersand fixes an issue with generating webhook content.0.49.0feat:The OpenAPI importer now supports respecting nullable properties in schemas. When enabled, nullable properties willbe preserved in the generated SDK. By default (without this setting), nullable properties are treated as
optional.To enable this, configure the setting in your
generators.yml:0.48.1fix:The Mintlify docs importer now correctly generates the proper display-name key in the docs.yml file.0.48.0feat:Adds support for nullable types in the Fern definition, such as the following:0.47.6feat:The IR now pulls in additional request properties from the OAuth getToken endpoint to support custom OAuth schemas.0.47.5feat:Fixes an issue with broken link checking in the OpenAPI v2 parser.0.47.4feat:Allows for creating nullable types and pass formats on strings using the OpenAPI v2 parser.0.47.3feat:Add the JSON schema to the generators.yml file for validation and autocomplete.0.47.2feat:The CLI now supports checking for broken links in your docs. You will see warnings infern checkif your docs link to anypage that can't be resolved, and the
--strict-broken-linksoption will cause the command to fail (exit with a non-zero exit code) ifany broken links are found. You can also run the new command
fern docs broken-linksto only check for broken links (ignoringother possible errors), with the
--strictoption to cause the command to fail if any broken links are found.0.47.1feat:Fixes a bug where the OpenAPI parser stopped respecting the =unions: v1setting in yourgenerators.ymlwhich configures the parser to generate moreidiomatic discriminated unions.
0.47.0feat:The CLI now supports publishing docs using the improved OpenAPI v2 parser. You can setopenapi-parser-v2: truein your
docs.ymlto use the new parser.0.46.23feat:The CLI now validates that method and group name overrides in OpenAPI settings are not duplicated.0.46.22feat:Support configuration of Google Analytics and Google Tag Manager in API Docs.0.46.21fix:The CLI now supports theprefer-undiscriminated-unions-with-literalssetting in OpenAPI settings.0.46.20feat:Thefern initcommand now supports a--mintlifyoption. You can pass inthe path to your
mint.jsonand the Fern CLI will generate a fern documentationwebsite.
0.46.19fix:If a schema in OpenAPI or AsyncAPI hasadditionalProperties: truethen the Fern CLI will now respect bringing inexample properties that are not defined in the schema. Previously, the CLI would skip them.
0.46.18fix:If an object or request is annotated withextra-properties: truethen the user can provide an example that includesextra properties that are no longer in the schema.
For example, check out this fern definition
0.46.17fix:Support parsing string values for boolean defaults in OpenAPI schemas.0.46.16fix:Improve parsing of OpenAPI schemas with an array in thetypeproperty."null", it is interpreted as nullable, and removed from the array.unknown, but now the specified type is used.0.46.15fix:Fixed issue where user specified examples would be omitted in favor of autogenerated examples.0.46.14fix:Boolean default values are now propagated from the Fern Definition through to docs generation.0.46.13fix:Correctly omits readOnly query parameters during openapi to fern definition generation.0.46.12fix:The CLI now handles parsing service level path parameters with descriptions.This fixes a regression introduced in the CLI since versions 0.45.x.
0.46.11fix:Allow for configuring the depth of example generation in API Docs. For example,if you want to generate optional properties that are 5 levels deep, you can add
the following configuration in your
generators.yml0.46.10fix:Correctly support AdditionalProperties on object schemas.0.46.9fix:SDK generation no longer hard-fails on single example generation errors.0.46.8fix:The CLI now auto generates SSE and JSON Streaming examples even if those arenot provided in the OpenAPI Spec or Fern Definition.
0.46.7fix:The generated Fern Definition now properly supports default values for query parameters.0.46.6fix:The audiences property on WebSocket channels is now respected when filteringthe IR graph based on configured audiences.
0.46.5fix:The OpenAPI parser now deduplicates headers that appear in both security schemes andoperation-level headers to avoid duplicate header declarations.
0.46.4fix:The generated SSE examples always havedataandeventkeys so that they are correct.0.46.3fix:The Fern CLI now supports generating examples for streaming SSE (server-sent-event)endpoints.
0.46.2feat:The Fern CLI now supports parsing alogooption from your frontmatter. Ifyou would like to override logo on a specific page you can do so by adding
the following:
or
0.46.1fix:Add support for setting theUser-Agentheader value for Go generators.0.46.0internal:No changes; promote0.46.0-rc1release candidate to minor version.0.46.0-rc1fix:* Setinline: truefor inline enums imported from OpenAPI.inline: truefor maps generated from OpenAPI additionalProperties.0.46.0-rc0feat:The Fern Definition now supportsbytesas a response type.0.45.4fix:Defaults are no longer set on datetimes when converting to docs shapes.0.45.4-rc1chore:Unknown schemas are no longer incorrectly marked asadditionalProperties: true.0.45.4-rc0fix:The CLI prompts the user to confirm output directory overwrites on fern generate.0.45.3fix:Unknown schemas are no longer incorrectly marked asadditionalProperties: true.0.45.2fix:Example generation now respects read-only schemas when generating request examples.0.45.1internal:Addinlinefield to type declarations in the Fern definition and IR.Add support for importing inline types from OpenAPI into Fern definition and IR.
0.45.1-rc0fix:Generate valid examples using spec validation information; respectnullentries during example generation.0.45.0internal:Several improvements to docs, conjure importer, and the cli.0.45.0-rc55internal:Docs generation now preserves original model schema names.0.45.0-rc54internal:Removes errant minimum and maximums for 'float' types for docs.0.45.0-rc53internal:Add support for thesmart-casingflags in the IR commands.0.45.0-rc52fix:Fix bug where max length validation for strings were incorrectly plumbed.0.45.0-rc51feat:Add support for theinline-path-parameterssetting in the OpenAPIimporter.
0.45.0-rc50fix:Increase max recursive depth allowed for example validation.0.45.0-rc49fix:Add 'list' to reserved keywords for use in PHP generator.0.45.0-rc48feat:OAuth Client Credential Auth Scheme now supports the ability to optionallyset token header and prefix fields for use with docs playground.
0.45.0-rc47fix:Support SDK generation provided comma-delineated content-type values in OpenAPI specs.0.45.0-rc46fix:The IR handles converting example unions that are aliases.0.45.0-rc45fix:The IR handles converting example unions that are aliases.0.45.0-rc44fix:Update the IR'sServiceTypeReferenceInfoto include all transitive typesreferenced by a service.
0.45.0-rc43fix:Support non-standard HTTP code 498; Validatex-fern-examplesduring schema parsing.0.45.0-rc42fix:Log error message logging when encountering doc errors during preview server initiation.0.45.0-rc41fix:Fixes bug introduced in 0.45.0-rc33 where version slugs were not being generated correctly.0.45.0-rc40fix:Fixed bug in the Conjure importer where query parameters were overwritten during endpoint parameter parsing.0.45.0-rc39fix:The OpenAPI importer now supports correlating request and response examples by name. When an example name is sharedbetween a request body and response, they will be paired together in the generated Fern definition.
0.45.0-rc38fix:The OpenAPI importer now supports respecting readonly properties in schemas. When enabled, readonly properties will be excluded from request bodies forPOST/PUT/PATCH endpoints. To enable this, configure the setting in your
generators.yml:0.45.0-rc37internal:Support parsing alpha and beta version numbers of Fern generators0.45.0-rc36fix:The OpenAPI importer now supports importing deep object query parameters. To do this, you willneed to configure a setting in your
generators.yml0.45.0-rc35fix:The OpenAPI importer now supports importing deep object query parameters. To do this, you willneed to configure a setting in your
generators.yml0.45.0-rc34internal:The CLI now recognizes the versions of the Go generator that require IRv53.0.45.0-rc33feat:The Fern CLI now supports roles and viewers in your docs configuration, if you are on the enterprise plan for docs:0.45.0-rc32fix:The OpenAPI importer now supports reading endpoints that have application/x-www-form-urlencoded requests0.45.0-rc31fix:The OpenAPI importer now parses webhook examples and generates examples for webhooks when none are provided.0.45.0-rc30fix:The OpenAPI importer now parses theexamplesfield for primitive schema types likestring,number,arrayandboolean.0.45.0-rc29feat:The OpenAPI importer now parses theexamplesfield that may be present on OpenAPI 3.1 schemas.0.45.0-rc28feat:The OpenAPI importer now skips headers in a case-insensitive way (e.g. both "Content-Type" and "content-type" are skipped).0.45.0-rc27feat:The Conjure importer now brings in endpoint level descriptions.0.45.0-rc26feat:fern checkhandles validating unions that contain base properties.0.45.0-rc25internal:The Fern CLI temporarily does not support RBAC/Audiences (they will be added in again shortly).0.45.0-rc24fix:fern docs devnow runs in Node 16 - Node 22 environments.0.45.0-rc23fix:The docs dev server now correctly handles base paths.0.45.0-rc22fix:Fixes bug introduced in 0.45.0-rc20 where section children were dropped from the docs definition.0.45.0-rc21feat:The Fern CLI now supports orphaned pages in your docs configuration.fix:The RBAC config model is now renamed torolesandviewers:0.45.0-rc20feat:The Fern CLI now supports audiences in your docs configuration:0.45.0-rc19fix:- Respectx-fern-ignoreextension in OpenAPI parameters.0.45.0-rc18fix:- Add additional debug logging to the CLI when downloading docs preview bundle0.45.0-rc17fix:- Improved union example generation by increasing depth for better handling of recursive structures.0.45.0-rc16fix:The Conjure importer now correctly keys the union subvariant by the property of the discriminant.is equal to the following Fern Definition:
0.45.0-rc15fix:The Conjure importer now correctly imports base-path and docs from your conjure definition.0.45.0-rc14fix:The Fern CLI now uses a longer timeout to make HTTP requests, which should fix some flakyness with the docs registration process.0.45.0-rc13fix:The Fern CLI now uses a longer timeout to make HTTP requests, which should fix some flakyness with the docs registration process.0.45.0-rc12fix:Undiscriminated unions are now represented usinganyOfin the generated JSON SchemaNullable properties are now correctly propagated to the JSON Schema
0.45.0-rc11fix:Improved JSON Schema generation for object inheritance:allOffor representing object extensions0.45.0-rc10fix:Added support foradditionalPropertieson export to JSON Schema.0.45.0-rc9fix:Improved JSON Schema generation for object extensions and const values:allOfin the JSON Schemaconstin the JSON Schema0.45.0-rc8internal:Add#!/usr/bin/env nodeto the CLI to prevent runtime errors.0.45.0-rc7internal:Stop minifying the CLI to prevent javascript runtime errors.0.45.0-rc6fix:Update the CLI package.json to include the correct files.0.45.0-rc5feat:Introduce a new commandfern jsonschema <output-file> --type <type-name>that outputs the JSON Schema for a given type in your Fern Definition.
0.45.0-rc4chore:SCIM has been added as a common initialism.0.45.0-rc3fix:Numerous fixes to the Conjure API Importer such as reading in request bodies and query parameters.0.45.0-rc2fix:The CLI now generates endpoint examples for undiscriminated unions that are recursive.0.45.0-rc1fix:The OpenAPI importer now generates streaming examples based on OpenAPI examples.0.45.0-rc0fix:The Docs now support renderingadditionalPropertiesin the API Playground so that users can send out arbitrary key,value pairs.0.44.11fix:Several improvements to the conjure importer.0.44.10fix:API update now supports consuming the API origin from spec V2 configurations.0.44.9feat:The fern definition now supports descriptions supplied on request and response bodies.You can enable this by simply supplying
docsin your fern definition, ordescriptionin your OpenAPI spec.
0.44.8fix:API Configuration V2 schema now takes inoriginas well, allowingfern api updateto function as expected in the new config.0.44.7internal:The Fern CLI commandfern generator listnow accepts filters for the output mode, for example, you may now specifyfern generator list --excluded-modes local-file-systemin order to filter any generators from the list that are outputting locally.
0.44.6fix:The Fern Definition respects endpoint level base-path overrides when validating examples.0.44.5feat:The Fern Definition now supports overridingbase-pathat the endpoint level.This is useful if you have subset of endpoints that do not live at the
configured base-path.
0.44.4fix:Fern's OpenAPI importer will now handle generating examples for declarederrors so that they show up in the generated documentation.
0.44.3feat:Fern's OpenAPI importer can now handlereadOnlyproperties in the top levelrequest schema. Note that Fern does not handle nested
readOnlypropertiesjust yet; please file a GitHub issue if this is important!
0.44.2fix:Fern's OpenAPI importer can now handle multiple error schemas for thesame status code.
0.44.1feat:The OpenAPI importer used to try and coerce all enums into a literals.In some cases this is not desirable, so we now expose an option called
coerce-enums-to-literalsin your generators.yml.0.44.0-rc0feat:The Fern CLI now supports parsing Conjure, Palantir'shome-grown API Definition format.
If you know a company that is using Conjure that wants API Docs + SDKs, send them our way!
0.43.8fix:Any markdown files that have custom components are also pushed up to the Fern Docsplatform.
0.43.7fix:Thevalid-markdownrule has been updated to try and parse the markdown file into avalid AST. If the file fails to parse,
fern checkwill log an error as wellas the path to the markdown.
0.43.6fix:The OpenAPI importer now appropriately brings in responses that are under thetext/event-streamContent-Type if your endpoint is annotated with
x-fern-streaming.If your endpoint is not annotated with
x-fern-streaming, then the response will be ignored.0.43.5fix:If you use thex-fern-streamingextension and want to provide different descriptionsfor the streaming endpoint, then you can now specify
streaming-description.0.43.4fix:The OpenAPI parser now respects the content type in your OpenAPI spec, instead of always sendingapplication/json. With this upgrade, your SDKs will also start to send the correct content type.0.43.3chore:The CLI now passes in the API definition ID once again, this is necessary so that generated snippet templatesmay reference schemas within the API. This was a regression that was recently introduced.
0.43.2fix:The CLI now prints which API cannot be registered iffern generate --docsfails.0.43.1feat:The CLI now supports running OpenAPI generator 0.1.0 with IR version 53.0.43.0feat:The CLI now recognizes the fern-php-sdk generator.0.42.15internal:The documentation resolver now appropriately creates a unique identifier for changelog sections. Previously, if you had multiplechangelogs within the same section, despite their title and slug being different, they would be treated as the same section since the ID
only took into account the parents' slug, appended the word "changelog" and that was all.
As a result previously all changelogs within the same section would get highlighted when one was selected, now only the selected changelog
is highlighted.
0.42.14fix:The OpenAPI importer now correctly propagates the title field ononeofschemas.0.42.13fix:Example generation now intelligently truncates container examples, for example if the depth limit will be reached on a list of objects,the list will be returned as an empty list, as opposed the previous behavior where an unknown object would be created.
0.42.12fix:Previously, deploying docs from Windows machines led to bad asset paths.Now, the CLI respects Windows paths during run and web paths for retrieving
assets.
0.42.11fix:The API V2 configuration now supports disabling using titles as schemanames. You may want to disable this flag if your OpenAPI adds the same
title to multiple schemas.
0.42.10fix:Previously, the OpenAPI converter would bring overtitleon everysingle property. This field is extraneous, so now we ignore it.
0.42.9fix:Previously, the OpenAPI importer would ignore skip parsing arbitrarycontent types "/". Now it treats this content type as application/json.
0.42.8fix:The API V2 configuration (in beta) now supports global header overrides.This fixes a bug where those header overrides were getting dropped in
certain cases.
0.42.7feat:The API V2 configuration (in beta) now supports global headeroverrides. To specify global headers that are not in your
OpenAPI spec, simply add the following block in your
generators.yml:0.42.6fix:Removes extraneous conditional error within namespacing configuration0.42.5feat:Adds additional metadata retrievable byfern generator getso you can now get the language and the target repo.0.42.4fix:Namespaced APIs now:x-fern-sdk-group-nameannotation for endpoints0.42.3fix:The OpenAPI importer now supports handling encoding on multipart requests.Previously, the generators would not respect the
contentTypefield foreach form input. But, now they do.
fix:The OpenAPI importer now correctly parses descriptions of multipartform requests. Previously these descriptions would be ignored.
For example, previously the description
The file to uploadwould beignored in the example below.
0.42.2fix:Error bodies are now appropriately namespaced as well!0.42.1fix:Make sure to check for optionality when parsing stdout and stderr in CLI. Thisremoves the error:
Cannot read properties of undefined (reading 'includes').0.42.0fix:If you merge multiple OpenAPI specs with namespaces,fern checkwill no longercomplain about duplicate schema names across namespaces.
In the example below, both OpenAPI specs can have duplicative schema names and
that is okay.
0.42.0-rc0feat:The Fern Definition now supportsconten-typeon multipart request properties.For example, to specify an
application/octet-streamandapplication/jsoncontnet types, use the snippet below:
service: endpoints: upload: request: body: properties: file: type: file content-type: application/octet-stream metadata: type: unknown content-type: application/json0.41.16fix:Previously the OpenAPI converter would incorrectly markthe values of
additionalPropertiesas optional. Now, we haveintroduced a feature flag to turn this behavior off.
The feature flag can be configured in generators.yml:
0.41.15internal:Performance improvements for stringifiying large Intermediate Representations. Ifyou have a large OpenAPI spec or Fern Definition, this can potentially shave off
minutes from
fern generate.0.41.14-rc2internal:Remove bang operator and fix eslint warning incompatible-ir-versions.ts.0.41.14-rc1feat:Runningfern checkwill now check to confirm that the generator versions you are running are compatible with your Fern CLI version.Each version of SDK generators depends on a version of a library that is exported by the Fern CLI, and as a result, each generator has a minimum
compatible version of the Fern CLI. As an example, if you were to run
fern checkwhile leveragingfernapi/fern-python-sdkversion2.0.0, on CLI version0.1.3, you'd receive the following error:The generator fernapi/fern-python-sdk requires CLI version 0.23.0-rc4 or later (current version: 0.1.3-rc0).Indicating that you must upgrade your CLI in order to leverage the current generator.
0.41.14-rc0fix:The Fern CLI now safely handles a npx file exists error by retrying the command on failure.This error typically happens when two or more instances of the Fern CLI are running
npxat the same time.
0.41.13fix:fern generate --localno longer crashes on large API Definitions because westream the JSON to file instead of calling
JSON.stringify. See PR 4640.0.41.12feat:Adds availability to inlined properties for HTTP Requests, Webhooks, and WebSockets for Fern Definition and OpenAPI.You can add availability like so:
Fern Definition:
OpenAPI:
0.41.11feat:Adds availability and display-names to discriminated union values. Now, in your docs, you can mark your union valueswith custom names and show their availability. You can do so by adding the following to your API definition:
0.41.10feat:Adds availability and display-names to discriminated union values. Now, in your docs, you can mark your union valueswith custom names and show their availability. You can do so by adding the following to your API definition:
0.41.9internal:Adds abundle-pathhidden parameter forfern docs devfor use withfern-platformtesting. You can pass thepath on the command line as an optional parameter.
0.41.8feat:The Fern generators.yml configuration now supports a new format for namespacing APIs for additional flexibility:Through namespacing your API, you can have multiple objects and endpoints with the same name across different namespaces. You can think of them
as the equivalent to Python modules or TypeScript packages.
0.41.7fix:Previously we weren't always awaiting PostHog API calls directly. Now the CLIawaits these calls so that we can ensure that events are sent.
0.41.6feat:The Fern Docs CLI now supports OAuth 2.0 Client Credentials injection in API playgrounds.To enable this feature, you can define the OAuth Authorization Scheme in your API configuration,
and enable the feature in your docs configuration.
API configuration:
More Information
Docs configuration:
More Information
0.41.5fix:Fix an issue with non-deterministic file ordering when OpenAPI is used as input.0.41.4feat:The Fern OpenAPI importer now handles importing an array for thetypekey.0.41.3feat:Allow referencing by method and path. For example, when configuring anoauth scheme you can now do:
0.41.2fix:Fixes an issue introduced in0.41.1that ignored server urls for docs generation.feat:Adds aauth-schemesandauthblock where you can override auth for an existing spec.See below:
0.41.1feat:Adds a V2 configuration for theapiblock that is more flexible and allowsOpenAPI users to consume Fern Definition features.
For example, now you can override environments directly in the api configuration:
If you want to define, multi-url environments, those can be done by configuring the following generators.yml:
Note that you will need to use the
x-fern-server-nameannotation on each endpoint to assign it to a relevant server. For example,0.41.0feat:Adds generic object declarations to the fern definition. Now we can define generics anduse them in alias declarations to minimize code duplication:
More information can be found here: https://buildwithfern.com/learn/api-definition/fern/types#generics.
0.41.0-rc1fix:Fix an issue where some postman environment variables (e.g. API key) were not substitutedwhen running fern generate.
0.41.0-rc0break:Every fern folder that is using OpenAPI must configure an explicit location to theOpenAPI spec. The location can be configured in your
generators.yml:If you run fern upgrade, the CLI will automatically run a migration for you to
ensure that you are compliant!
0.40.4fix:fern checkallows the service base-path to be a slash. For example, the followingwould be valid:
0.40.3fix:Nowfern generator upgraderespects the--groupflag and only upgrades generators within a particular group.0.40.2internal:Release IR v53.9.0 which includes a publishing configuration.0.40.1feat:Enable specifying whether redirect in docs.yml is permanent or temporary.0.40.0feat:Update thefern generator upgradecommand to leverage the Generator registry API as opposed to Docker and dockerode.0.39.19fix:The OpenAPI importer now appropriately generates examples for circularoneOfschemas.0.39.18fix:Produce IR v53.8.0 with raw datetime examples.0.39.17fix:object declarations with extends and no properties now has examples propagating in the Docs and SDKs0.39.16chore:Support running 0.2.x versions of the Postman Generator with IR V53 or above.0.39.15internal:Introducegenerator listandorganizationcommands to facilitate actions taken byfern-bot0.39.14fix:Format validation is enforced ondatefields that are specified in examples specified in an api defintion.0.39.13fix:Generated examples in the Intermediate Representation not respect root level path parameter examples.0.39.12fix:The mock folder now includes source files, and the CLI no longer hard fails if it cannot resolve source files that are of OpenAPI type.0.39.11fix:The Fern CLI now handles parsingx-fern-parameter-nameon path parameters in an OpenAPI spec.0.39.10chore:Release 0.39.100.39.9chore:Release 0.39.90.39.7chore:## What's ChangedFull Changelog: fern-api/fern@0.39.6...0.39.7
0.39.6chore:## What's ChangedFull Changelog: fern-api/fern@0.39.5...0.39.6
0.39.5chore:## What's ChangedFull Changelog: fern-api/fern@0.39.4...0.39.5
0.39.4chore:## What's ChangedFull Changelog: fern-api/fern@0.39.3...0.39.4
0.39.3chore:## What's ChangedFull Changelog: fern-api/fern@0.39.2...0.39.3