Skip to content

🌿 ✨ [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
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

fern-api[bot]
Copy link

@fern-api fern-api bot commented Oct 21, 2024

Upgrading from 0.30.7 to 0.53.17 - Changelog

    0.53.17
  • fix: Fix an issue with the OpenAPI v2 parser where recursive subpackage slugs would not generate correctly.

  • 0.53.16

  • fix: Enable x-fern-sdk-group-name extension in AsyncAPI v3 parser.

  • 0.53.15

  • fix: Disable broken link checker until it is ready to release.

  • 0.53.14

  • fix: Fixes an issue with the OpenAPI v2 parser where docs configs with no navigation structure would generate incorrect slugs.

  • 0.53.13

  • fix: Resolve error where fern docs dev failed in Windows environments.

  • 343 additional updates, see more

    0.53.12

  • fix: Dynamically deconflict AsyncAPI message names when generating Fern Definition Types to preserve original naming
    wherever possible.

  • 0.53.11

  • fix: Fix an issue with the OpenAPI v2 parser where schemas with single value arrays were being incorrectly parsed.

  • 0.53.10

  • fix: Support differentiated server URLs in WebSocket channels and correctly generate multi-url environments.

  • 0.53.9

  • fix: Fix an issue with the OpenAPI v2 parser where incorrect slugs were being generated.

  • 0.53.8

  • fix: Fix noindex behavior for section overview pages.

  • 0.53.7

  • fix: Regenerate changelog.

  • 0.53.6

  • fix: Correctly parse out channel address for v3 AsyncAPI specs.

  • 0.53.5

  • fix: Support validation schemas in detailed Union types.

  • 0.53.4

  • fix: Improve error logging on downloadLocalDocsBundle failure.

  • 0.53.3

  • fix: noindex property in the frontmatter of a page is now implemented for site navigation + llms.txt.

  • 0.53.2

  • fix: The OpenAPI parser now prefers the source extension set in the OpenAPI spec, and only writes
    it if it is not already set.

  • 0.53.1

  • fix: The OpenAPI v2 parser now parses Server specifications with variables.

  • 0.53.0

  • feat: Users can now specify the idiomatic-request-names option in the generators.yml to adapt the behavior of the
    autogenerated request names. The verb is now in front of the noun (e.g. UsersListRequest becomes ListUsersRequest).

    This is disabled by default (for backwards compatibility), and can be enabled with the following:

    # generators.yml
    api:
      specs:
        - openapi: ./openapi/openapi.json
          settings:
            idiomatic-request-names: true
  • 0.52.0

  • fix: Introduce the AsyncAPI 3.0.0 parser, which enables conditional parsing of both 2.x and 3.x AsyncAPI specs.

  • 0.51.39

  • fix: The OpenAPI v2 parser now respects object properties as optional, generates display names for undiscriminated union object
    types, and fixes minor issues with docs dev when using specific navigation locators in docs.yml specification.

  • 0.51.38

  • fix: The OpenAPI v2 parser now ignores optional parameters when generating requests. It also improves upon generation with
    better fallback logic for sparse requests.

  • 0.51.37

  • fix: Fixed handling of Windows filepaths in the docs generator by ensuring consistent path separators and proper absolute path handling.

  • 0.51.36

  • fix: Type reference example generation now handles extends and base properties correctly, as well as in-lined Alias types.

  • 0.51.35

  • fix: The cli will now respect examples with null values in OpenAPI specs. This will allow for null properties to show up when using
    OpenAPI parser v2.

  • 0.51.34

  • fix: The IR generator now correctly handles exploded form parameters in the docs, ensuring that curl code snippets
    accurately 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.33

  • fix: The OpenAPI parser v2 now handles null values in examples, parses request and response bodies as unions if multiple, handles required
    properties for global headers and improves upon example generation for APIs.

  • 0.51.32

  • fix: 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.31

  • internal: The IR migrator now recognizes that the PHP SDK generator requires IR version 55.

  • 0.51.30

  • fix: The OpenAPI v2 parser now provides better naming and more robust payloads for examples.

  • 0.51.29

  • fix: 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.28

  • fix: 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.27

  • fix: 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.26

  • fix: 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.25

  • fix: Literal property values are now accepted as deep object query parameters. Previously, if a query parameter was a deep object
    with a literal property value (e.g. { type: "foo" }), the CLI would reject it as too complex. Now literal values are
    allowed since they can be safely serialized.

  • 0.51.24

  • fix: 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 the parameters section,
    the parser would fail. Now it automatically adds these path parameters as required string parameters.

  • 0.51.23

  • fix: The CLI now considers false and true as keywords for the Java generators.

  • 0.51.22

  • fix: The OpenAPI parser now ignores request bodies on GET requests since Fern does not support that.
    This is not a breaking change, since previously the fern check would just fail.

  • 0.51.21

  • fix: The fern init command now respects JSON formatting when parsing from an external URL.

  • 0.51.20

  • fix: The OpenRPC parser now supports generating code snippets in the API Explorer.

  • 0.51.19

  • fix: The OpenRPC parser now supports generating code snippets in the API Explorer.

  • 0.51.18

  • fix: The docs will now display errors by default. Previously, errors were hidden by default and needed to be explicitly
    enabled with displayErrors: true.

  • 0.51.17

  • fix: The OpenRPC parser now handles displaying parameters as object examples.

  • 0.51.16

  • fix: The OpenRPC parser now handles displaying parameters as object examples.

  • 0.51.15

  • fix: The OpenRPC parser now handles displaying optional parameters in the request.

  • 0.51.14

  • fix: Updates whatwg so that users eliminate punycode deprecation warning.

  • 0.51.13

  • fix: OpenAPI overrides now support resolving file references from the location of the
    OpenAPI 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.12

  • fix: The Fern Definition now allows you to declare status codes for the response without having a type.
    This is useful for 204 response status codes.

    service:
      auth: false
      base-path: /users
      endpoints:
        update:
          path: ""
          response:
            status-code: 204
  • 0.51.11

  • fix: The OpenAPI parser generates response examples that are {} for 204 response types.

  • 0.51.10

  • fix: The OpenAPI parser generates response examples that are {} for 204 response types.

  • 0.51.9

  • fix: Fixed OpenAPI importer to properly handle response status codes in documentation by propagating
    the status code from the OpenAPI spec through the IR and FDR layers.

  • 0.51.8

  • fix: Fixed OpenAPI importer to properly handle response status codes in documentation by propagating
    the status code from the OpenAPI spec through the IR and FDR layers.

  • 0.51.7

  • fix: Added better error messages when markdown files reference non-existent MDX files, showing the relative path
    to the missing file rather than just indicating an invalid reference.

  • 0.51.6

  • fix: Fixed OpenAPI importer to properly handle string enums that are specified as integers by coercing them to strings.

  • 0.51.5

  • fix: Added a new rule to validate frontmatter parsing across markdown files, ensuring frontmatter
    is properly formatted and can be parsed without errors.

  • 0.51.4

  • fix: Various improvements to the Mintlify and Readme importers, including better default styling
    and spec imports for Mintlify migrations.

  • 0.51.3

  • fix: The OpenAPI parser now prefers the JSON Content-Type variant over
    others (e.g. application/x-www-form-urlencoded).

  • 0.51.2

  • fix: Improved error messages when docs.yml doesn't match schema by showing more specific
    validation errors and including the path where the error occurred.

  • 0.51.1

  • fix: Fixed x-fern-resolutions to properly handle escaped forward slashes ("~1") in schema references,
    correctly converting them to "/" when resolving references.

  • 0.51.0

  • feat: The CLI now supports a --readme flag pointing to the URL of a Readme generated docs site and
    migrates existing documentation to a fern-compatible repository.

    To use this feature:

    fern init --readme https://url-to-readme-docs.com
  • 0.50.17

  • fix: Improve performance of fern docs dev by only reloading the markdown content when
    only markdown files are changed, avoiding unnecessary recompilation of the full docs.

  • 0.50.16

  • fix: This PR improves the performance of fern docs dev:

    • Fern does not generate examples if the user has provided them to us
    • Temporarily comment out broken link checker until we make it faster
  • 0.50.15

  • fix: Move example generation failure logs to trace level since they are not relevant
    for users and add noise to debug logs.

  • 0.50.14

  • fix: Fixes a bug where duplicate types in undiscriminated unions (oneOf in OpenAPI)
    were not being deduped, which could lead to invalid generated code.

  • 0.50.13

  • fix: Fixes a bug where --log-level debug does not include trace logs.

  • 0.50.12

  • fix: Increase undici timeouts to make sure that fern generate --docs completes.

  • 0.50.11

  • fix: The CLI now supports a --log-level trace option to filter out noise from the
    debug log level.

  • 0.50.10

  • fix: An addition to the broken link checker to further reduce false positives.

  • 0.50.9

  • fix: The Fern CLI no longer logs the full API request when finishing docs registration,
    reducing unnecessary log output.

  • 0.50.8

  • fix: An additional fix to the OpenRPC parser for respecting tags when
    organizing methods in the API Reference.

  • 0.50.7

  • fix: The OpenRPC parser now respects method names as well as tags for
    organization the navigation.

  • 0.50.6

  • fix: The broken link checker is updated to reduce false positives.

  • 0.50.5

  • fix: The Fern CLI is updated to create the organization if it doesn't exist when fern token is called.

  • 0.50.4

  • internal: The docs.yml now supports a separate configuration for feature-flags which allows Fern to render
    pieces 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!

    navigation:
      - page: Page 1
        feature-flag: my-feature-flag-a # single boolean flag
      - page: Page 2
        feature: # multiple boolean flags
          - flag: my-feature-flag-a
          - flag: my-feature-flag-b
      - section: Section Title
        viewers: role-a
        feature-flag: # configurable match
          flag: my-feature-flag-a
          fallback-value: "ga"
          match: "beta"
        layout: []
  • 0.50.3

  • internal: Fixes an issue where optional, nullable properties resulted in a double optional in the
    IRv55 -> IRv54 migration.

  • 0.50.2

  • fix: 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.

    navigation:
      - api: API Reference
        openrpc: <path to openrpc file>
  • 0.50.1

  • fix: Fixes an issue where nullable schemas were not coerced into optional values.

  • fix: Fixes an issue where fern check would fail for optional, nullable properties.

  • 0.50.0

  • internal: The CLI is capable of migrating the latest TypeScript generator to IRv55.

  • 0.49.1

  • fix: The OpenAPI v2 parser now supports x-fern-global-headers and fixes an issue with generating webhook content.

  • 0.49.0

  • feat: The OpenAPI importer now supports respecting nullable properties in schemas. When enabled, nullable properties will
    be 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:

    api:
     specs:
       - openapi: ./path/to/openapi.yml
         settings:
           respect-nullable-schemas: true
  • 0.48.1

  • fix: The Mintlify docs importer now correctly generates the proper display-name key in the docs.yml file.

  • 0.48.0

  • feat: Adds support for nullable types in the Fern definition, such as the following:

    types:
      User:
        properties:
          name: string
          email: nullable<string>
  • 0.47.6

  • feat: The IR now pulls in additional request properties from the OAuth getToken endpoint to support custom OAuth schemas.

  • 0.47.5

  • feat: Fixes an issue with broken link checking in the OpenAPI v2 parser.

  • 0.47.4

  • feat: Allows for creating nullable types and pass formats on strings using the OpenAPI v2 parser.

  • 0.47.3

  • feat: Add the JSON schema to the generators.yml file for validation and autocomplete.

  • 0.47.2

  • feat: The CLI now supports checking for broken links in your docs. You will see warnings in fern check if your docs link to any
    page that can't be resolved, and the --strict-broken-links option will cause the command to fail (exit with a non-zero exit code) if
    any broken links are found. You can also run the new command fern docs broken-links to only check for broken links (ignoring
    other possible errors), with the --strict option to cause the command to fail if any broken links are found.

  • 0.47.1

  • feat: Fixes a bug where the OpenAPI parser stopped respecting the =unions: v1 setting in your generators.yml which configures the parser to generate more
    idiomatic discriminated unions.

    api:
      specs:
        - openapi: ./path/to/openapi.yml
          settings:
            unions: v1
  • 0.47.0

  • feat: The CLI now supports publishing docs using the improved OpenAPI v2 parser. You can set openapi-parser-v2: true
    in your docs.yml to use the new parser.

  • 0.46.23

  • feat: The CLI now validates that method and group name overrides in OpenAPI settings are not duplicated.

  • 0.46.22

  • feat: Support configuration of Google Analytics and Google Tag Manager in API Docs.

  • 0.46.21

  • fix: The CLI now supports the prefer-undiscriminated-unions-with-literals setting in OpenAPI settings.

  • 0.46.20

  • feat: The fern init command now supports a --mintlify option. You can pass in
    the path to your mint.json and the Fern CLI will generate a fern documentation
    website.

  • 0.46.19

  • fix: If a schema in OpenAPI or AsyncAPI has additionalProperties: true then the Fern CLI will now respect bringing in
    example properties that are not defined in the schema. Previously, the CLI would skip them.

  • 0.46.18

  • fix: If an object or request is annotated with extra-properties: true then the user can provide an example that includes
    extra properties that are no longer in the schema.

    For example, check out this fern definition

    types:
      Item:
        extra-properties: true
        properties:
          id: string
    
    
    service:
      auth: false
      base-path: ""
      endpoints:
        create:
          method: POST
          path: /item
          request:
            name: CreateItemRequest
            body:
              extra-properties: true
              properties:
                id: string
          response:
            type: Item
          examples:
            - name: "Item"
              request:
                id: "123"
                foo: "bar" # extra property in the example
              response:
                body:
                  id: "123"
                  foo: "bar" # extra property in the example
  • 0.46.17

  • fix: Support parsing string values for boolean defaults in OpenAPI schemas.

    • String values like "true" and "false" are now correctly parsed as boolean defaults.
  • 0.46.16

  • fix: Improve parsing of OpenAPI schemas with an array in the type property.

    • If the array contains "null", it is interpreted as nullable, and removed from the array.
    • If there is only a single item in the array (after removing "null"), it previously defaulted to unknown, but now the specified type is used.
  • 0.46.15

  • fix: Fixed issue where user specified examples would be omitted in favor of autogenerated examples.

  • 0.46.14

  • fix: Boolean default values are now propagated from the Fern Definition through to docs generation.

  • 0.46.13

  • fix: Correctly omits readOnly query parameters during openapi to fern definition generation.

  • 0.46.12

  • fix: 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.11

  • fix: 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.yml

    api:
      specs:
        - openapi: ./openapi.json
          settings:
            example-generation:
              response:
                max-depth: 10
  • 0.46.10

  • fix: Correctly support AdditionalProperties on object schemas.

  • 0.46.9

  • fix: SDK generation no longer hard-fails on single example generation errors.

  • 0.46.8

  • fix: The CLI now auto generates SSE and JSON Streaming examples even if those are
    not provided in the OpenAPI Spec or Fern Definition.

  • 0.46.7

  • fix: The generated Fern Definition now properly supports default values for query parameters.

  • 0.46.6

  • fix: The audiences property on WebSocket channels is now respected when filtering
    the IR graph based on configured audiences.

  • 0.46.5

  • fix: The OpenAPI parser now deduplicates headers that appear in both security schemes and
    operation-level headers to avoid duplicate header declarations.

  • 0.46.4

  • fix: The generated SSE examples always have data and event keys so that they are correct.

  • 0.46.3

  • fix: The Fern CLI now supports generating examples for streaming SSE (server-sent-event)
    endpoints.

  • 0.46.2

  • feat: The Fern CLI now supports parsing a logo option from your frontmatter. If
    you would like to override logo on a specific page you can do so by adding
    the following:

    ---
    logo: /path/to/my/logo
    ---

    or

    ---
    logo:
      light: /path/to/my/light/logo
      dark: /path/to/my/dark/logo
    ---
  • 0.46.1

  • fix: Add support for setting the User-Agent header value for Go generators.

  • 0.46.0

  • internal: No changes; promote 0.46.0-rc1 release candidate to minor version.

  • 0.46.0-rc1

  • fix: * Set inline: true for inline enums imported from OpenAPI.

    • Set inline: true for maps generated from OpenAPI additionalProperties.
  • 0.46.0-rc0

  • feat: The Fern Definition now supports bytes as a response type.

      endpoints:
        download:
          response: bytes
  • 0.45.4

  • fix: Defaults are no longer set on datetimes when converting to docs shapes.

  • 0.45.4-rc1

  • chore: Unknown schemas are no longer incorrectly marked as additionalProperties: true.

  • 0.45.4-rc0

  • fix: The CLI prompts the user to confirm output directory overwrites on fern generate.

  • 0.45.3

  • fix: Unknown schemas are no longer incorrectly marked as additionalProperties: true.

  • 0.45.2

  • fix: Example generation now respects read-only schemas when generating request examples.

  • 0.45.1

  • internal: Add inline 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; respect null entries during example generation.

  • 0.45.0

  • internal: Several improvements to docs, conjure importer, and the cli.

  • 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 the smart-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 the inline-path-parameters setting in the OpenAPI
    importer.

  • 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 optionally
    set token header and prefix fields for use with docs playground.

    auth-schemes:
      OAuth:
        scheme: oauth
        type: client-credentials
        token-header: Fern-Authorization
        token-prefix: Fern-Bearer
        ...
  • 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's ServiceTypeReferenceInfo to include all transitive types
    referenced by a service.

  • 0.45.0-rc43

  • fix: Support non-standard HTTP code 498; Validate x-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 shared
    between 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 for
    POST/PUT/PATCH endpoints. To enable this, configure the setting in your generators.yml:

    api:
     specs:
       - openapi: ./path/to/openapi.yml
         settings:
           respect-readonly-schemas: true
  • 0.45.0-rc37

  • internal: Support parsing alpha and beta version numbers of Fern generators

  • 0.45.0-rc36

  • fix: The OpenAPI importer now supports importing deep object query parameters. To do this, you will
    need to configure a setting in your generators.yml

    api:
     specs:
       - openapi: ./path/to/openapi.yml
         settings:
           object-query-paramaters: true
  • 0.45.0-rc35

  • fix: The OpenAPI importer now supports importing deep object query parameters. To do this, you will
    need to configure a setting in your generators.yml

    api: 
     specs: 
       - openapi: ./path/to/openapi.yml
         settings: 
           object-query-paramaters: true
  • 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 enterprise plan for docs:

    roles:
      - internal
      - beta-users
      - enterprise-users
    
    navigation:
      - section: Internal Section
        viewers:
          - internal
        contents:
          - page: Internal Page
            path: ./internal/page.mdx
  • 0.45.0-rc32

  • fix: The OpenAPI importer now supports reading endpoints that have application/x-www-form-urlencoded requests

  • 0.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 the examples field for primitive schema types like string, number, array and boolean.

  • 0.45.0-rc29

  • feat: The OpenAPI importer now parses the examples 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 to roles and viewers:

    roles:
      - internal
    
    navigation:
      - section: Internal Section
        viewers:
          - internal
        contents:
          - page: Internal Page
            path: ./internal/page.mdx
  • 0.45.0-rc20

  • feat: The Fern CLI now supports audiences in your docs configuration:

    # all audiences must be declared at the top level
    audiences:
      - internal
    
    navigation:
      - section: Internal Section
        audience: internal # audience is optional
        contents:
          - page: Internal Page
            path: ./internal/page.mdx
  • 0.45.0-rc19

  • fix: - Respect x-fern-ignore extension in OpenAPI parameters.

  • 0.45.0-rc18

  • fix: - Add additional debug logging to the CLI when downloading docs preview bundle

  • 0.45.0-rc17

  • fix: - Improved union example generation by increasing depth for better handling of recursive structures.

    • Updated Conjure importer to represent binary types as bytes for requests and file for responses in Fern.
    • Added detailed error messages when 'fern docs dev' fails, accessible with --log-level debug.
  • 0.45.0-rc16

  • fix: The Conjure importer now correctly keys the union subvariant by the property of the discriminant.

    union:
      discriminant: type
      union:
        square: Square
        circle: Circle
    

    is equal to the following Fern Definition:

    union:
      discriminant: type
      types:
        square:
          type: Square
          key: square
        circle:
          type: Circle
          key: circle
  • 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 using anyOf in the generated JSON Schema
    Nullable properties are now correctly propagated to the JSON Schema

  • 0.45.0-rc11

  • fix: Improved JSON Schema generation for object inheritance:

    • Removed the use of allOf for representing object extensions
    • Properties from parent objects are now directly added to the child object in the JSON Schema
  • 0.45.0-rc10

  • fix: Added support for additionalProperties on export to JSON Schema.

  • 0.45.0-rc9

  • fix: Improved JSON Schema generation for object extensions and const values:

    • Object extensions are now properly represented using allOf in the JSON Schema
    • Literal values (string and boolean) are now correctly represented using const in the JSON Schema
  • 0.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 command fern jsonschema <output-file> --type <type-name>
    that outputs the JSON Schema for a given type in your Fern Definition.

    fern jsonschema ./schema.json --type MyType
  • 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 recursive.

  • 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 rendering additionalProperties 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, or description
    in your OpenAPI spec.

  • 0.44.8

  • fix: API Configuration V2 schema now takes in origin as well, allowing fern api update to function as expected in the new config.

  • 0.44.7

  • internal: The Fern CLI command fern generator list now accepts filters for the output mode, for example, you may now specify fern 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 overriding base-path at the endpoint level.
    This is useful if you have subset of endpoints that do not live at the
    configured base-path.

    service:
      endpoints:
        getMovie:
          method: POST
          base-path: "latest/" # overrides the base-path configured in api.yml
          path: "movies/{movieId}"
  • 0.44.4

  • fix: Fern's OpenAPI importer will now handle generating examples for declared
    errors so that they show up in the generated documentation.

  • 0.44.3

  • feat: Fern's OpenAPI importer can now handle readOnly properties in the top level
    request schema. Note that Fern does not handle nested readOnly properties
    just 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 the
    same 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.

    api:
      specs:
        - openapi: ../openapi.json
          overrides: ../openapi-overrides.yml
          settings:
            title-as-schema-name: false
            coerce-enums-to-literals: false
  • 0.44.0-rc0

  • feat: The Fern CLI now supports parsing Conjure, Palantir's
    home-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 Docs
    platform.

  • 0.43.7

  • fix: The valid-markdown rule has been updated to try and parse the markdown file into a
    valid AST. If the file fails to parse, fern check will log an error as well
    as the path to the markdown.

  • 0.43.6

  • fix: The OpenAPI importer now appropriately brings in responses that are under the text/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 the x-fern-streaming extension and want to provide different descriptions
    for the streaming endpoint, then you can now specify streaming-description.

    x-fern-streaming:
      stream-condition: $request.stream
      stream-description: The streaming version of this endpoint returns a series of chunks ...
      response:
        $ref: #/components/schemas/Response
      stream-response:
        $ref: #/components/schemas/ResponseChunk
  • 0.43.4

  • fix: The OpenAPI parser now respects the content type in your OpenAPI spec, instead of always sending
    application/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 templates
    may 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 if fern 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 appropriately creates a unique identifier for changelog sections. Previously, if you had multiple
    changelogs 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 on oneof 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 schema
    names. You may want to disable this flag if your OpenAPI adds the same
    title to multiple schemas.

    api:
      specs:
        - openapi: /path/to/openapi
          settings:
            use-title-as-schema-name: false
    
  • 0.42.10

  • fix: Previously, the OpenAPI converter would bring over title on every
    single property. This field is extraneous, so now we ignore it.

  • 0.42.9

  • fix: Previously, the OpenAPI importer would ignore skip parsing arbitrary
    content types "/". Now it treats this content type as application/json.

    "responses": {
      "200": {
        "description": "Success reply",
        "content": {
          "*/*": {
  • 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.

    api:
      headers:
        X-API-VERSION: string
      specs:
        - openapi: /path/to/openapi
          overrides: /path/to/overrides
  • 0.42.7

  • feat: The API V2 configuration (in beta) now supports global header
    overrides. To specify global headers that are not in your
    OpenAPI spec, simply add the following block in your generators.yml:

    api:
      headers:
        X-API-VERSION: string
      specs:
        - openapi: /path/to/openapi
          overrides: /path/to/overrides
  • 0.42.6

  • fix: Removes extraneous conditional error within namespacing configuration

  • 0.42.5

  • feat: Adds additional metadata retrievable by fern generator get so you can now get the language and the target repo.

  • 0.42.4

  • fix: Namespaced APIs now:

    • No longer contain duplicative nesting of some endpoint within another package of the same name as the namespace
    • Respect the x-fern-sdk-group-name annotation for endpoints
  • 0.42.3

  • fix: The OpenAPI importer now supports handling encoding on multipart requests.
    Previously, the generators would not respect the contentType field for
    each form input. But, now they do.

    requestBody:
      content:
        multipart/form-data:
          schema:
            type: object
            properties:
              file:
                type: string
                format: binary
                description: The file to upload
          encoding:
            file:
              contentType: "application/octet-stream"
  • fix: The OpenAPI importer now correctly parses descriptions of multipart
    form requests. Previously these descriptions would be ignored.

    For example, previously the description The file to upload would be
    ignored in the example below.

    requestBody:
      content:
        multipart/form-data:
          schema:
            type: object
            properties:
              file:
                type: string
                format: binary
                description: The file to upload
  • 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. This
    removes 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 longer
    complain about duplicate schema names across namespaces.
    In the example below, both OpenAPI specs can have duplicative schema names and
    that is okay.

    api:
      specs:
        - openapi: openapi-bar.yml
          namespace: bar
        - openapi: openapi-foo.yml
          namespace: foo
  • 0.42.0-rc0

  • feat: The Fern Definition now supports conten-type on multipart request properties.
    For example, to specify an application/octet-stream and application/json
    contnet 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/json
  • 0.41.16

  • fix: Previously the OpenAPI converter would incorrectly mark
    the values of additionalProperties as optional. Now, we have
    introduced a feature flag to turn this behavior off.

    The feature flag can be configured in generators.yml:

    api:
      specs:
        - openapi: /path/to/openapi
          settings:
            optional-additional-properties: false
  • 0.41.15

  • internal: Performance improvements for stringifiying large Intermediate Representations. If
    you 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 in compatible-ir-versions.ts.

  • 0.41.14-rc1

  • feat: Running fern 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 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 check while leveraging fernapi/fern-python-sdk version 2.0.0, on CLI version 0.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 we
    stream 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:

    Request:
      name: InlineRequest
      properties:
        random:
          type: string
          availability: pre-release

    OpenAPI:

    requestBody:
    content:
      application/json:
        schema:
          type: object
          properties:
            random:
              type: string
              x-fern-availability: beta
  • 0.41.11

  • feat: Adds availability and display-names to discriminated union values. Now, in your docs, you can mark your union values
    with custom names and show their availability. You can do so by adding the following to your API definition:

    MyUnionType:
      union:
        UnionValue1:
          docs: The first union value
          type: string
          display-name: Union Value One
          availability: beta
        UnionValue2:
          docs: The second union value
          type: integer
          display-name: Union Value Two
          availability: deprecated
  • 0.41.10

  • feat: Adds availability and display-names to discriminated union values. Now, in your docs, you can mark your union values
    with custom names and show their availability. You can do so by adding the following to your API definition:

    MyUnionType:
      union:
        UnionValue1:
          docs: The first union value
          type: string
          display-name: Union Value One
          availability: beta
        UnionValue2:
          docs: The second union value
          type: integer
          display-name: Union Value Two
          availability: deprecated
  • 0.41.9

  • internal: Adds a bundle-path hidden parameter for fern docs dev for use with fern-platform testing. You can pass the
    path 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:

    api:
      specs:
        - openapi: path/to/v1/openapi
          overrides: path/to/v1/overrides
          namespace: v1
        - openapi: path/to/v2/openapi
          overrides: path/to/v2/overrides
          namespace: v2

    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 CLI
    awaits 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:

    api:
      auth-schemes:
        OAuth:
          scheme: oauth
          type: client-credentials
          get-token:
            endpoint: endpoint.authorization

    More Information

    Docs configuration:

    navigation:
      section: API Reference
        playground:
          oauth: true

    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 the type key.

    User:
      properties:
        name:
          type: ["string"]
        id:
          type: ["string", "number"]
    
  • 0.41.3

  • feat: Allow referencing by method and path. For example, when configuring an
    oauth scheme you can now do:

    auth-schemes:
      OAuth:
        scheme: oauth
        type: client-credentials
        get-token:
          endpoint: POST /oauth/token
    api:
      auth: OAuth
  • 0.41.2

  • fix: Fixes an issue introduced in 0.41.1 that ignored server urls for docs generation.

  • feat: Adds a auth-schemes and auth block where you can override auth for an existing spec.
    See below:

    auth-schemes:
      Oauth:
        scheme: oauth
        type: client-credentials
        get-token:
          endpoint: auth.get-token
    api:
      auth: Oauth # overrides auth scheme
      specs:
        - openapi: path/to/openapi
  • 0.41.1

  • feat: Adds a V2 configuration for the api block that is more flexible and allows
    OpenAPI users to consume Fern Definition features.

    For example, now you can override environments directly in the api configuration:

    api:
      environments:
        Production: https://prod.com
        Staging: https://staging.com
      specs:
        - openapi: path/to/openapi
          overrides: path/to/overrides

    If you want to define, multi-url environments, those can be done by configuring the following generators.yml:

    api:
      environments:
        Production:
          urls:
            api: https://api.com
            auth: https://auth.com
        Staging:
            api: https://stagingapi.com
            auth: https://stagingauth.com
      specs:
        - openapi: path/to/openapi
          overrides: path/to/overrides

    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,

    paths:
      /api/users/:
        get:
          x-fern-server-name: api
      /token:
        post:
          x-fern-server-name: auth
  • 0.41.0

  • feat: Adds generic object declarations to the fern definition. Now we can define generics and
    use them in alias declarations to minimize code duplication:

    types:
      GenericTest<T>:
        properties:
          value: T
          other-value: string
    
      GenericApplication:
        type: GenericTest<string>

    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 substituted
    when running fern generate.

  • 0.41.0-rc0

  • break: Every fern folder that is using OpenAPI must configure an explicit location to the
    OpenAPI spec. The location can be configured in your generators.yml:

    api:
      path: path/to/openapi.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 following
    would be valid:

    service:
      base-path: "/"
  • 0.40.3

  • fix: Now fern 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 the fern 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 circular oneOf 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 SDKs

  • 0.39.16

  • chore: Support running 0.2.x versions of the Postman Generator with IR V53 or above.

  • 0.39.15

  • internal: Introduce generator list and organization commands to facilitate actions taken by fern-bot

  • 0.39.14

  • fix: Format validation is enforced on date 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 parsing x-fern-parameter-name on path parameters in an OpenAPI spec.

  • 0.39.10

  • chore: Release 0.39.10

  • 0.39.9

  • chore: Release 0.39.9

  • 0.39.7

  • chore: ## What's Changed

    Full Changelog: fern-api/fern@0.39.6...0.39.7

  • 0.39.6

  • chore: ## What's Changed

    Full Changelog: fern-api/fern@0.39.5...0.39.6

  • 0.39.5

  • chore: ## What's Changed

    Full Changelog: fern-api/fern@0.39.4...0.39.5

  • 0.39.4

  • chore: ## What's Changed

    Full Changelog: fern-api/fern@0.39.3...0.39.4

  • 0.39.3

  • chore: ## What's Changed

    Full Changelog: fern-api/fern@0.39.2...0.39.3

Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 74dc6d3 to 9ab1b08 Compare October 28, 2024 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 9ab1b08 to 81d7741 Compare November 4, 2024 00:04
Copy link

github-actions bot commented Nov 4, 2024

@fern-api fern-api bot force-pushed the fern/update/cli branch from 81d7741 to 6fb12c3 Compare November 11, 2024 00:05
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 6fb12c3 to bad1006 Compare November 18, 2024 00:05
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from bad1006 to 7643168 Compare November 25, 2024 00:05
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 7643168 to 59308b8 Compare December 2, 2024 00:06
Copy link

github-actions bot commented Dec 2, 2024

@fern-api fern-api bot force-pushed the fern/update/cli branch from 59308b8 to 9621dd5 Compare December 9, 2024 00:06
Copy link

github-actions bot commented Dec 9, 2024

@fern-api fern-api bot force-pushed the fern/update/cli branch from 9621dd5 to be20fed Compare December 16, 2024 00:07
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from be20fed to 6eb6193 Compare December 23, 2024 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 6eb6193 to 01f9738 Compare December 30, 2024 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 01f9738 to a5c28ee Compare January 6, 2025 00:04
Copy link

github-actions bot commented Jan 6, 2025

@fern-api fern-api bot force-pushed the fern/update/cli branch from a5c28ee to 262de40 Compare January 13, 2025 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 262de40 to ad32211 Compare January 20, 2025 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from ad32211 to 3e4f839 Compare January 27, 2025 00:04
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from 3e4f839 to d637f5e Compare February 3, 2025 00:04
Copy link

github-actions bot commented Feb 3, 2025

@fern-api fern-api bot force-pushed the fern/update/cli branch from d637f5e to cdeab01 Compare February 10, 2025 00:05
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from cdeab01 to bf26ad4 Compare February 17, 2025 00:05
Copy link

@fern-api fern-api bot force-pushed the fern/update/cli branch from bf26ad4 to 2d8c763 Compare February 24, 2025 00:05
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants