> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useparagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Paragraph Release Notes

> Release notes for new versions of the Paragraph core libraries and CLI.

### Updating to the latest version

To update your Paragraph project to the latest version, run the following commands in your terminal:

```bash theme={null}
# Update the CLI
npm install -g @useparagon/cli
# Update the core libraries in your project
para install --sync-versions
```

## Release Notes

<Update label="v1.1.3">
  * Added support for the `pdf-lib` library in Function steps.
  * Fixed an issue where `para push` could override the **Apply field mapping** setting on HubSpot workflow trigger steps.
</Update>

<Update label="v1.1.2">
  * Pinned all dependency versions of Paragraph CLI.
</Update>

<Update label="v1.1.1">
  * Added `slug` field to Custom Integrations for consistent naming between the API and CLI. Renaming a Custom Integration's display name no longer affects directory or import paths in Paragraph:

      <Info>
        **Custom Integration identifiers are now immutable**

        Before API version [2026-04](/changelog/api#2026-04), changing the display name of a Custom Integration would result in a change in the integration identifier/slug (used in `paragon.connect`) and the integration source path (after a `para pull`).

        This identifier is now immutable and set at the time your Custom Integration is created.

        For existing Custom Integrations, the identifier is set immutably to the same value it currently has in your project. Upgrading to v1.1.1 will ensure that this immutability is correctly reflected in your Paragraph project.

        Learn more about these changes in the [API Changelog](/changelog/api#2026-04).
      </Info>
  * Fixed type errors with some available Function step libraries (e.g., `libphonenumber`, `ioredis`, `@aws-sdk/client-sqs`).
  * Fixed webhook trigger step output typing so that `triggerStep.output.result` is no longer typed as `unknown`, resolving TypeScript compilation errors in synced and exported code.
</Update>

<Update label="v1.1.0">
  * Added support for OAuth ROPC (Resource Owner Password Credentials) authentication and custom request options (`requestOptions`) in Custom Integrations.

      <Warning>
        **Change in defaults for auth URL parameters**

        Before v1.1.0, Custom Integrations using OAuth automatically included `access_type=offline` as part of the query parameters for the initial authorization URL. This query parameter is no longer included by default.

        If you need to add this parameter (notably, Google requires this parameter for refresh tokens), define it in `requestOptions.authorizationCodeOptions.configuration.queryParams`.

        <Accordion title="Code Example">
          ```ts theme={null}
          // In custom.[integration name]/config.ts
          requestOptions: {
            authorizationCodeOptions: {
              configuration: {
                queryParams: {
                  access_type: 'offline',
                },
              },
            },
          },
          ```
        </Accordion>
      </Warning>
  * Fixed `para pull` to include the "Add Basic Auth header" toggle under `requestOptions.accessTokenOptions` for OAuth-type Custom Integrations.
</Update>

<Update label="v1.0.31">
  * Added support for `paragonUtils` and field mapping object sources in Function steps.
  * Fixed an issue where referencing File variables in the "Raw" body option of a Request step could cause file data to incorrectly be stringified after pushing changes from Paragraph.
  * Updated Paragraph's `mysql2` and `form-data` dependencies for improved compatibility.
</Update>

<Update label="v1.0.30">
  * Added support for workflow execution source variables (`workflowExecutionId`, `projectId`, `workflowId`) that can be synced between Paragon and Paragraph using `para pull` and `para push`.
</Update>

<Update label="v1.0.29">
  * Adds support for "Include Client ID and Secret in Token Exchange" option for OAuth 2.0-type Resources.
  * Improves error messaging for deployment failures that occur during `para push`. Error messages will now include workflow and step names for clarity.
</Update>

<Update label="v1.0.28">
  * Adds support for using GraphQL body types in Request steps.
</Update>

<Update label="v1.0.26">
  * Adds support for custom cron expressions for Scheduler triggers.
  * Fixes an issue where using literal array values with `StringIsIn` operators could result in the following error:
    ```
    You can not perform string operation on non-string data type.
    ```
</Update>

<Update label="v1.0.25">
  * Fixes an issue where Request steps with query parameters in the URL and in the `params` object could cause conflicts that lead to parameters being removed after `para push`.
  * Improves variable referencing support by allowing for "bare" references.
    * Previously, variables would need to be interpolated as template strings:
      ```ts theme={null}
      const functionStep = new FunctionStep({
        parameters: {
          key: `${requestStep.output.body}`
        }
      });
      ```
    * Now, they can be referenced directly:
      ```ts theme={null}
      const functionStep = new FunctionStep({
        parameters: {
          key: requestStep.output.body
        }
      });
      ```
  * Adds a generic type parameter for `FunctionStep` to allow for customizable output types.
</Update>

<Update label="v1.0.24">
  * Fixes `Object literal may only specify known properties` errors when pulling a Paragon project that uses a combination dropdown input type in the Connect Portal User Settings.
  * Updates compilation error messaging to reveal more detailed information instead of the following generic errors:
    * `persona.meta.js is not found in project`
    * `Could not found [...]/dist/integrations/[...]/config.js.`
</Update>

<Update label="v1.0.23">
  * Fixes a compilation issue that could occur when using the `para pull` command in projects that have a Pipedrive integration.
  * Fixes an issue where pushing new projects initialized with Paragraph could result in a "Failed to get project comparison." error.
  * Fixes an issue where Request Step Pagination used in Custom Integrations could result in a compilation error.
  * Adds support for referencing combination inputs, such as the Azure DevOps State input.
  * Adds support for using numeric values in Custom Dropdown inputs defined in Paragraph projects.
</Update>

<Update label="v1.0.22">
  * Fixes an issue where nested step variables in a Request Step JSON body could create invalid references when pushing to a Paragon project.
  * Adds support for new Field Mapping input types, now supported for any integration. [Learn more here](/connect-portal/field-mapping).
</Update>

<Update label="v1.0.21">
  * Fixes an issue where `para pull` could fail if the workflow name contains a `/` character.
  * Adds support for Password-type inputs in the Connect Portal configuration.
</Update>

<Update label="v1.0.20">
  * Fixes an issue where Request steps without query parameters could cause an extra `?=` to be added to the URL after pulling/pushing.
</Update>

<Update label="v1.0.19">
  * Adds full support for pulling Resource Request steps.
  * Fixes type issues for App Event triggers using Field Mapping.
  * Fixes an issue where a nested object in the Request body could be pulled incorrectly as `[object Object]`.
</Update>
