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.37.0
to0.45.3
- Changelog0.45.3
fix:
Unknown schemas are no longer incorrectly marked asadditionalProperties: true
.0.45.2
fix:
Example generation now respects read-only schemas when generating request examples.0.45.1
internal:
Addinline
field 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-rc0
fix:
Generate valid examples using spec validation information; respectnull
entries during example generation.0.45.0
internal:
Several improvements to docs, conjure importer, and the cli.159 additional updates, see more
0.45.0-rc55
internal:
Docs generation now preserves original model schema names.0.45.0-rc54
internal:
Removes errant minimum and maximums for 'float' types for docs.0.45.0-rc53
internal:
Add support for thesmart-casing
flags in the IR commands.0.45.0-rc52
fix:
Fix bug where max length validation for strings were incorrectly plumbed.0.45.0-rc51
feat:
Add support for theinline-path-parameters
setting in the OpenAPIimporter.
0.45.0-rc50
fix:
Increase max recursive depth allowed for example validation.0.45.0-rc49
fix:
Add 'list' to reserved keywords for use in PHP generator.0.45.0-rc48
feat:
OAuth Client Credential Auth Scheme now supports the ability to optionallyset token header and prefix fields for use with docs playground.
0.45.0-rc47
fix:
Support SDK generation provided comma-delineated content-type values in OpenAPI specs.0.45.0-rc46
fix:
The IR handles converting example unions that are aliases.0.45.0-rc45
fix:
The IR handles converting example unions that are aliases.0.45.0-rc44
fix:
Update the IR'sServiceTypeReferenceInfo
to include all transitive typesreferenced by a service.
0.45.0-rc43
fix:
Support non-standard HTTP code 498; Validatex-fern-examples
during schema parsing.0.45.0-rc42
fix:
Log error message logging when encountering doc errors during preview server initiation.0.45.0-rc41
fix:
Fixes bug introduced in 0.45.0-rc33 where version slugs were not being generated correctly.0.45.0-rc40
fix:
Fixed bug in the Conjure importer where query parameters were overwritten during endpoint parameter parsing.0.45.0-rc39
fix:
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-rc38
fix:
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-rc37
internal:
Support parsing alpha and beta version numbers of Fern generators0.45.0-rc36
fix:
The OpenAPI importer now supports importing deep object query parameters. To do this, you willneed to configure a setting in your
generators.yml
0.45.0-rc35
fix:
The OpenAPI importer now supports importing deep object query parameters. To do this, you willneed to configure a setting in your
generators.yml
0.45.0-rc34
internal:
The CLI now recognizes the versions of the Go generator that require IRv53.0.45.0-rc33
feat:
The Fern CLI now supports roles and viewers in your docs configuration, if you are on the enteprise plan for docs:0.45.0-rc32
fix:
The OpenAPI importer now supports reading endpoints that have application/x-www-form-urlencoded requests0.45.0-rc31
fix:
The OpenAPI importer now parses webhook examples and generates examples for webhooks when none are provided.0.45.0-rc30
fix:
The OpenAPI importer now parses theexamples
field for primitive schema types likestring
,number
,array
andboolean
.0.45.0-rc29
feat:
The OpenAPI importer now parses theexamples
field that may be present on OpenAPI 3.1 schemas.0.45.0-rc28
feat:
The OpenAPI importer now skips headers in a case-insensitive way (e.g. both "Content-Type" and "content-type" are skipped).0.45.0-rc27
feat:
The Conjure importer now brings in endpoint level descriptions.0.45.0-rc26
feat:
fern check
handles validating unions that contain base properties.0.45.0-rc25
internal:
The Fern CLI temporarily does not support RBAC/Audiences (they will be added in again shortly).0.45.0-rc24
fix:
fern docs dev
now runs in Node 16 - Node 22 environments.0.45.0-rc23
fix:
The docs dev server now correctly handles base paths.0.45.0-rc22
fix:
Fixes bug introduced in 0.45.0-rc20 where section children were dropped from the docs definition.0.45.0-rc21
feat:
The Fern CLI now supports orphaned pages in your docs configuration.fix:
The RBAC config model is now renamed toroles
andviewers
:0.45.0-rc20
feat:
The Fern CLI now supports audiences in your docs configuration:0.45.0-rc19
fix:
- Respectx-fern-ignore
extension in OpenAPI parameters.0.45.0-rc18
fix:
- Add additional debug logging to the CLI when downloading docs preview bundle0.45.0-rc17
fix:
- Improved union example generation by increasing depth for better handling of recursive structures.0.45.0-rc16
fix:
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-rc15
fix:
The Conjure importer now correctly imports base-path and docs from your conjure definition.0.45.0-rc14
fix:
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-rc13
fix:
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-rc12
fix:
Undiscriminated unions are now represented usinganyOf
in the generated JSON SchemaNullable properties are now correctly propagated to the JSON Schema
0.45.0-rc11
fix:
Improved JSON Schema generation for object inheritance:allOf
for representing object extensions0.45.0-rc10
fix:
Added support foradditionalProperties
on export to JSON Schema.0.45.0-rc9
fix:
Improved JSON Schema generation for object extensions and const values:allOf
in the JSON Schemaconst
in the JSON Schema0.45.0-rc8
internal:
Add#!/usr/bin/env node
to the CLI to prevent runtime errors.0.45.0-rc7
internal:
Stop minifying the CLI to prevent javascript runtime errors.0.45.0-rc6
fix:
Update the CLI package.json to include the correct files.0.45.0-rc5
feat:
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-rc4
chore:
SCIM has been added as a common initialism.0.45.0-rc3
fix:
Numerous fixes to the Conjure API Importer such as reading in request bodies and query parameters.0.45.0-rc2
fix:
The CLI now generates endpoint examples for undiscriminated unions that are recusive.0.45.0-rc1
fix:
The OpenAPI importer now generates streaming examples based on OpenAPI examples.0.45.0-rc0
fix:
The Docs now support renderingadditionalProperties
in the API Playground so that users can send out arbitrary key,value pairs.0.44.11
fix:
Several improvements to the conjure importer.0.44.10
fix:
API update now supports consuming the API origin from spec V2 configurations.0.44.9
feat:
The fern definition now supports descriptions supplied on request and response bodies.You can enable this by simply supplying
docs
in your fern definition, ordescription
in your OpenAPI spec.
0.44.8
fix:
API Configuration V2 schema now takes inorigin
as well, allowingfern api update
to function as expected in the new config.0.44.7
internal:
The Fern CLI commandfern generator list
now accepts filters for the output mode, for example, you may now specifyfern generator list --excluded-modes local-file-system
in order to filter any generators from the list that are outputting locally.
0.44.6
fix:
The Fern Definition respects endpoint level base-path overrides when validating examples.0.44.5
feat:
The Fern Definition now supports overridingbase-path
at the endpoint level.This is useful if you have subset of endpoints that do not live at the
configured base-path.
0.44.4
fix:
Fern's OpenAPI importer will now handle generating examples for declarederrors so that they show up in the generated documentation.
0.44.3
feat:
Fern's OpenAPI importer can now handlereadOnly
properties in the top levelrequest schema. Note that Fern does not handle nested
readOnly
propertiesjust yet; please file a GitHub issue if this is important!
0.44.2
fix:
Fern's OpenAPI importer can now handle multiple error schemas for thesame status code.
0.44.1
feat:
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-literals
in your generators.yml.0.44.0-rc0
feat:
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.8
fix:
Any markdown files that have custom components are also pushed up to the Fern Docsplatform.
0.43.7
fix:
Thevalid-markdown
rule has been updated to try and parse the markdown file into avalid AST. If the file fails to parse,
fern check
will log an error as wellas the path to the markdown.
0.43.6
fix:
The OpenAPI importer now appropriately brings in responses that are under thetext/event-stream
Content-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.5
fix:
If you use thex-fern-streaming
extension and want to provide different descriptionsfor the streaming endpoint, then you can now specify
streaming-description
.0.43.4
fix:
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.3
chore:
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.2
fix:
The CLI now prints which API cannot be registered iffern generate --docs
fails.0.43.1
feat:
The CLI now supports running OpenAPI generator 0.1.0 with IR version 53.0.43.0
feat:
The CLI now recognizes the fern-php-sdk generator.0.42.15
internal:
The documentation resolver now approrpiately 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.14
fix:
The OpenAPI importer now correctly propagates the title field ononeof
schemas.0.42.13
fix:
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.12
fix:
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.11
fix:
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.10
fix:
Previously, the OpenAPI converter would bring overtitle
on everysingle property. This field is extraneous, so now we ignore it.
0.42.9
fix:
Previously, the OpenAPI importer would ignore skip parsing arbitrarycontent types "/". Now it treats this content type as application/json.
0.42.8
fix:
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.7
feat:
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.6
fix:
Removes extraneous conditional error within namespacing configuration0.42.5
feat:
Adds additional metadata retrievable byfern generator get
so you can now get the langauage and the target repo.0.42.4
fix:
Namespaced APIs now:x-fern-sdk-group-name
annotation for endpoints0.42.3
fix:
The OpenAPI importer now supports handling encoding on multipart requests.Previously, the generators would not respect the
contentType
field 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 upload
would beignored in the example below.
0.42.2
fix:
Error bodies are now appropriately namespaced as well!0.42.1
fix:
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.0
fix:
If you merge multiple OpenAPI specs with namespaces,fern check
will 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-rc0
feat:
The Fern Definition now supportsconten-type
on multipart request properties.For example, to specify an
application/octet-stream
andapplication/json
contnet types, use the snippet below:
0.41.16
fix:
Previously the OpenAPI converter would incorrectly markthe values of
additionalProperties
as optional. Now, we haveintroduced a feature flag to turn this behavior off.
The feature flag can be configured in generators.yml:
0.41.15
internal:
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-rc2
internal:
Remove bang operator and fix eslint warning incompatible-ir-versions.ts
.0.41.14-rc1
feat:
Runningfern check
will 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 libary 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 check
while leveragingfernapi/fern-python-sdk
version2.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-rc0
fix:
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
npx
at the same time.
0.41.13
fix:
fern generate --local
no longer crashes on large API Definitions because westream the JSON to file instead of calling
JSON.stringify
. See PR 4640.0.41.12
feat:
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.11
feat:
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.10
feat:
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.9
internal:
Adds abundle-path
hidden parameter forfern docs dev
for use withfern-platform
testing. You can pass thepath on the command line as an optional parameter.
0.41.8
feat:
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.7
fix:
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.6
feat:
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.5
fix:
Fix an issue with non-deterministic file ordering when OpenAPI is used as input.0.41.4
feat:
The Fern OpenAPI importer now handles importing an array for thetype
key.0.41.3
feat:
Allow referencing by method and path. For example, when configuring anoauth scheme you can now do:
0.41.2
fix:
Fixes an issue introduced in0.41.1
that ignored server urls for docs generation.feat:
Adds aauth-schemes
andauth
block where you can override auth for an existing spec.See below:
0.41.1
feat:
Adds a V2 configuration for theapi
block 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-name
annotation on each endpoint to assign it to a relevant server. For example,0.41.0
feat:
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-rc1
fix:
Fix an issue where some postman environment variables (e.g. API key) were not substitutedwhen running fern generate.
0.41.0-rc0
break:
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.4
fix:
fern check
allows the service base-path to be a slash. For example, the followingwould be valid:
0.40.3
fix:
Nowfern generator upgrade
respects the--group
flag and only upgrades generators within a particular group.0.40.2
internal:
Release IR v53.9.0 which includes a publishing configuration.0.40.1
feat:
Enable specifying whether redirect in docs.yml is permanent or temporary.0.40.0
feat:
Update thefern generator upgrade
command to leverage the Generator registry API as opposed to Docker and dockerode.0.39.19
fix:
The OpenAPI importer now appropriately generates examples for circularoneOf
schemas.0.39.18
fix:
Produce IR v53.8.0 with raw datetime examples.0.39.17
fix:
object declarations with extends and no properties now has examples propagating in the Docs and SDKs0.39.16
chore:
Support running 0.2.x versions of the Postman Generator with IR V53 or above.0.39.15
internal:
Introducegenerator list
andorganization
commands to faciliate actions taken byfern-bot
0.39.14
fix:
Format validation is enforced ondate
fields that are specified in examples specified in an api defintion.0.39.13
fix:
Generated examples in the Intermediate Representation not respect root level path parameter examples.0.39.12
fix:
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.11
fix:
The Fern CLI now handles parsingx-fern-parameter-name
on path parameters in an OpenAPI spec.0.39.10
chore:
Release 0.39.100.39.9
chore:
Release 0.39.90.39.7
chore:
## What's ChangedFull Changelog: fern-api/fern@0.39.6...0.39.7
0.39.6
chore:
## What's ChangedFull Changelog: fern-api/fern@0.39.5...0.39.6
0.39.5
chore:
## What's ChangedFull Changelog: fern-api/fern@0.39.4...0.39.5
0.39.4
chore:
## What's ChangedFull Changelog: fern-api/fern@0.39.3...0.39.4
0.39.3
chore:
## What's ChangedFull Changelog: fern-api/fern@0.39.2...0.39.3
0.39.2
chore:
## What's Changed.dict
speed by limiting dict calls by @armandobelardo in improvement: improve.dict
speed by limiting dict calls fern-api/fern#4302New Contributors
Full Changelog: fern-api/fern@0.39.1...0.39.2
0.39.1
chore:
## What's ChangedFull Changelog: fern-api/fern@0.38.1...0.39.1
0.38.1
chore:
## What's Changedapi.yml
and environment audiences by @dsinghvi in (feat, docs): add docs onapi.yml
and environment audiences fern-api/fern#4292Full Changelog: fern-api/fern@0.38.0...0.38.1
0.38.0
chore:
## What's ChangedFull Changelog: fern-api/fern@0.38.0-rc1...0.38.0
0.38.0-rc1
chore:
## What's ChangedhasNextPage
property for offset pagination by @dsinghvi in (feat, typescript): supporthasNextPage
property for offset pagination fern-api/fern#4288Full Changelog: fern-api/fern@0.38.0-rc0...0.38.0-rc1
0.38.0-rc0
chore:
## What's Changedhas-next-page
property to IR by @dsinghvi in (feat, cli): addhas-next-page
property to IR fern-api/fern#4241fern check
by @dsinghvi in (feat): refactor how pagination properties are checked infern check
fern-api/fern#4250internal
+ client classespartial
by @dcb6 in c#, improvements: small improvements including marking filesinternal
+ client classespartial
fern-api/fern#4248FluentAssertions
in unit tests by @dcb6 in c#, improvement: UseFluentAssertions
in unit tests fern-api/fern#4254pnpm
migration by @dsinghvi in (internal):pnpm
migration fern-api/fern#4261shape
toExampleQueryParameter
by @dcb6 in ir: addshape
toExampleQueryParameter
fern-api/fern#4222Full Changelog: fern-api/fern@0.37.16...0.38.0-rc0
0.37.16
chore:
## What's ChangedNew Contributors
Full Changelog: fern-api/fern@0.37.15...0.37.16
0.37.15
chore:
## What's Changed.proto
inputs by @amckinney in (feature): Add support for.proto
inputs fern-api/fern#4223Full Changelog: fern-api/fern@0.37.14...0.37.15
0.37.14
chore:
## What's Changed<package>/<version>
by @dsinghvi in (feat, typescript): send user agent header<package>/<version>
fern-api/fern#4234Full Changelog: fern-api/fern@0.37.13...0.37.14
0.37.14-rc0
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.13...0.37.14-rc0
0.37.13
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.12...0.37.13
0.37.12
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.11...0.37.12
0.37.11
chore:
## What's ChangedNew Contributors
Full Changelog: fern-api/fern@0.37.10...0.37.11
0.37.10
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.9...0.37.10
0.37.9
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.8...0.37.9
0.37.8
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.7...0.37.8
0.37.7
chore:
## What's Changedurl
field of auto-generatedEndpointExampleCall
s by @dcb6 in fix, ir-generation: put fully substituted path inurl
field of auto-generatedEndpointExampleCall
s fern-api/fern#4211Full Changelog: fern-api/fern@0.37.6...0.37.7
0.37.6
chore:
## What's ChangednoScripts
into a PersistedProject and introduce a test by @dsinghvi in (fix, typescript): wirenoScripts
into a PersistedProject and introduce a test fern-api/fern#4185Full Changelog: fern-api/fern@0.37.5...0.37.6
0.37.5
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.4...0.37.5
0.37.4
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.3...0.37.4
0.37.3
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.2...0.37.3
0.37.2
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.1...0.37.2
0.37.1
chore:
## What's ChangedFull Changelog: fern-api/fern@0.37.0...0.37.1