released 2024-12-16
Version 16.0.0
is a breaking change release that contains some important housekeeping updates that put us in a better spot to support some exciting changes coming up in future versions. Here is a quick breakdown of the two main breaking changes:
1. The minimum supported version of Node.js is now v18.18. Weβve officially dropped support for Node.js v16.x, which has been designated end-of-life since September 2023.
2. Integrations using zapier-platform-core@16.0.0
and onwards will default to running on the ARM architecture in AWS Lambda. Note: If you believe your integrations have run into runtime incompatibilities due to this change, please reach out to our support team and we may be able to opt your integration out of running on ARM.
Here are the detailed release notes for this release (note that β denotes a breaking change):
- π¨ The
oclif
suite of packages have been upgraded to support the latestoclif
major version (v4) (#890).
-
β Node.js v16.x is no longer supported (#890)
-
β Integrations running on
zapier-platform-core
v16 and onwards will run on the ARM architecture by default. This means means they will run on AWS Graviton2 processors (previously, the AWS Lambda runtime was based on x86 architecture). For more details on what this means on a technical level, please check out: AWS Lambda on Graviton 2. -
β Due to changes in the underlying
dotenv
library (see changelog) (#926), when usingzapier.tools.env.inject()
, we always recommend "double quoting" your environment variable values. Please make sure to consider if the following cases would apply to your.env
files:SECRET_HASH=something-with-a-#-hash
: change it toSECRET_HASH="something-with-a-#-hash"
SECRET_BACKTICK=something-with-a-`-backtick
: change it toSECRET_BACKTICK="something-with-a-`-backtick"
- Add
skipEncodingChars
property typing for z.request object (#928)
- N/A
- π§ The
schema-to-ts
package is now part of the repository root "yarn workspaces" (#913)
- π¨ Dependency updates (#890, #926, #927)
- repo root
- Add
@eslint/eslintrc@^3.2.0
- Add
@eslint/js@^9.16.0
- Add
globals@^15.13.0
- Remove
eslint-plugin-standard
- Update
lerna
from 6.4.1 to 8.0.2 - Update
husky
from 7.0.4 to 9.1.7 - Update
mocha
from 10.8.2 to 11.0.1 - Update
eslint
from 8.32.0 to 9.16.0 - Update
eslint-plugin-import
from 2.27.5 to 2.31.0 - Update
eslint-plugin-mocha
from 9.0.0 to 10.5.0 - Update
eslint-plugin-n
from 15.6.1 to 17.14.0 - Update
eslint-plugin-promise
from 6.1.1 to 7.2.1 - Update
prettier
from 2.8.3 to 3.4.1
- Add
- cli
- Add
oclif@^4.15.1
- Add
@oclif/core@4.0.28
- Add
@oclif/plugin-version@2.2.15
- Remove
stdout-stderr
- Remove
oclif/dev-cli
- Remove
@oclif/command
- Remove
@oclif/config
- Update
archiver
5.3.1 to 7.0.1 - Update
gulp-prettier
from 4.0.0 to 5.0.0 - Update
marked
4.2.12 to 14.1.4 - Update
marked-terminal
from 5.2.0 to 7.2.1 - Update
read
from 2.1.0 to 4.0.0 - Update
fs-extra
from 11.1.1 to 11.2.0 - Update
yeoman-environment
from 3.3.0 to 3.19.3 - Update
semver
from 7.5.2 to 7.6.3 - Update
node-fetch
from 2.6.7 to 2.7.0 - Update
adm-zip
from 0.5.10 to 0.5.16 - Update
browserify
from 17.0.0 to 17.0.1 - Update
cli-table3
from 0.6.3 to 0.6.5 - Update
tmp
from 0.2.1 to 0.2.3 - Update
traverse
from 0.6.7 to 0.6.10 - Update prettier from 2.8.9 to 3.4.1
- Add
- core
- Update
dotenv
from 12.0.4 to 16.4.5 - Update
semver
from 7.5.2 to 7.6.3 - Update
node-fetch
from 2.6.7 to 2.7.0 - Update
form-data
from 4.0.0 to 4.0.1
- Update
- schema-to-ts
- Update
prettier
from 3.2.5 to 3.4.1
- Update
- repo root
released 2024-11-25
For optimal performance, an optional argument has been added to z.dehydrate to allow devs to control the cache duration on hydrators. The default cache duration for hydrators is unchanged (5 minutes).
Also, with the new optional meta
field object added to the FieldSchema object, devs now have a supported mechanism for storing field-specific context which may be obtained when constructing dynamic needs, and then making that context available during actual action execution in the perform method.
Lastly, the zapier scaffold now supports TypeScript (TS) applications. It automatically detects TS and JS projects if the --entry
flag isn't provided, so that it can generate and edit the right files in the right places, given TS projects tend to keep their files in ./src.
- π
Add support for TS on the
zapier scaffold
command (#884)
- π Add support for providing the cache expiration for hydrators (#918)
- π Add
timezone
andwithSearch
fields to thebundle.meta
object (#922) - π Update the
BeforeRequestMiddleware
typings to requireurl
in the request object (#924)
- π Add
meta
field support for theFieldSchema
(#883)
None!
- π¨ Bump elliptic from 6.5.7 to 6.6.0 (#911)
- π¨ Bump cross-spawn from 7.0.3 to 7.0.6 in /schema-to-ts (#919)
released 2024-11-01
- π Fix issue where
zapier invoke --debug
doesn't print HTTP logs for requests that aren't sent byz.request()
(#907)
- π Fix issue where HTTP logger can break aws-sdk v3 (and maybe other HTTP client libraries) intermittently (#905)
- π HTTP logging now works with native fetch (#908)
- π§ͺ Allow to not wait for event loop to be empty to fix a hanging issue (#904)
None!
released 2024-10-24
- π Fix a failing smoke test based on CLI package size (now that many docs are deleted) (#899)
- π Add OAuth2 to TypeScript
init
output (#894)
- π Adds
nx
argument toz.cache.set()
(#900) - π Force a
process.exit(1)
on catching anEMFILE
error insidecheckMemory()
(#901)
None!
- π Type
z.request
responses and deprecate.json
(#895)
- π Typo fixes and link changes (#885)
- π Add docs explaining why hidden triggers for dynamic dropdowns need to declare input fields (#887)
- π Migrate docs out of this monorepo (#893)
- π Updating doc links in
CHANGELOG
(#898)
released 2024-10-11
Introducing three major updates, with the first two aimed at improving your development experience:
- The
zapier invoke
command: This powerful new command enables you to emulate Zapier's production environment locally. Test triggers, actions, and authentication flows right from your terminal without deploying to Zapier. This is especially valuable for debugging, development, and quick testing iterations. Learn more about the command in the README or by typingzapier invoke --help
in your terminal. - Refreshed "typescript" project template: We've updated the "typescript" project template with the latest type definitions. Enjoy enhanced type safety, improved autocompletion, and a smoother coding experience overall.
- Although we've removed Node.js 16 from
zapier-platform-cli
's CI testing, it still works on Node.js 16, except for thezapier invoke auth start
command. But using Node.js 18 or later is recommended, as we'll be dropping support for Node.js 16 in an upcoming major release.
As usual, all other improvements and bug fixes are listed below.
- π Introduce
zapier invoke
command (#856, #872, #878) - π Update "typescript" project template and example with latest type definitions (#845)
- π Fix
zapier convert
command not writingbulkReads
to separate files (#881)
- π Retry on 5xx errors when calling RPC (#875)
- π
Add
ResponseError
type (#877) - π§ Bump mock-fs from 5.2.0 to 5.3.0 (#872)
None!
- π§ Drop Node.js 16 and add Node.js 20 from/to CI (#872)
released 2024-10-04
None!
- π Return a descriptive error when a filename cannot be uploaded (#874)
None!
- π Add
canary
command to docs (#870) - π Add instructions for installing the Zapier Platform development version to docs (#873)
released 2024-09-24
- π Introduce
zapier canary
command (#861)
None!
None!
- π¨ Bump vite from 5.3.3 to 5.4.7 in /schema-to-ts (#868)
- π¨ Bump rollup from 4.18.1 to 4.22.4 in /schema-to-ts (#867)
released 2024-09-18
This release introduces "Buffered Create Actions", currently only available for internal use. A Buffered Create allows you to create objects in bulk with a single or fewer API request(s). This is useful when you want to reduce the number of requests made to your server. When enabled, Zapier holds the data until the buffer reaches a size limit or a certain time has passed, then sends the buffered data using the performBuffer
function you define.
None!
- π§ͺ Add checks to support Buffered Create Actions (#832)
- π§ͺ Add
performBuffer
andbuffer
tooperation
schema to support Buffered Create Actions (#832)
released 2024-09-17
None!
- π Ensure censoring of OAuth1 tokens in HTTP logs (#864)
None!
None!
released 2024-09-12
None!
- π
Add
signal
to z.request options (#857)
None!
- π Add documentation around
inputFormat
field type (#858)
released 2024-08-28
None!
- π Add scopes as an option for zcache usage (#849)
None!
- π¨ Add
customOptions
field to z.request options (#846)
released 2024-08-21
None!
None!
- π Add configurable poll delay for HookToPoll (#844)
released 2024-08-16
- π
Introduce
zapier pull
command (#838) - π Handle subheadings when interpreting the changelog (#827)
- π Properly type HTTP Options, replacing generic
object
types (#840) - π Allow Async Middleware Functions Types (#826)
- π Correct casing on
bulk reads
action type (#831) - π Display the
bulk_reads
functional constraint (#829)
- π Simplify and correct Array types in Schema to TS conversion (#835)
- π Improve documentation accuracy regarding
primary: true
limitations (#836) - π Document limitations regarding
primary
inoutputFields
(#834) - π Document
bundle.meta.withSearch
(#823)
released 2024-07-19
- π Add base64 encoding before autostashing large payloads (#824)
None!
None!
released 2024-07-16
- π Fixed issue preventing standalone 'creates' in
extension
from colliding with resource keys inbase
(#819) - π
Bundle new TypeScript type declarations provided by the
schema-to-ts
tool (#818)
None!
None!
- π Introduced the Schema-to-TS compiler tool (#818)
- π Updated documentation to reference the schema-to-ts tool (#821)
released 2024-07-02
None!
- π Update extendAppRaw to override arrays as well as objects (#813)
- π Increase hydration payload limit (#816)
- π Add allowlist for specific content types to log HTTP response/response for in patched HTTP client (#810)
None!
released 2024-06-27
None!
- π Fix afterApp large response cacher bug (#814)
None!
released 2024-06-26
None!
None!
released 2024-06-13
- π Add docs for domain and subdomain validation as Authentication subheading (#797)
- π Document performResume default implementation (#806)
- π Throw error for HTTP redirect made to disallowed domains (#803)
- π§ͺ Add support for
retry
andfilter
at the root-level of the throttle configuration (#796) - π Update createsSchema to disallow additional properties (#798)
- π¨ Bump jquery from 2.1.4 to 3.5.0 in the legacy-scripting-runner (#790)
- π¨ Bump marked from 0.3.19 to 4.2.12 (#793)
- π¨ Bump braces from 3.0.2 to 3.0.3 (#805)
released 2024-05-27
- π Address
CVE-2024-27980
changes in Node.js by always passingshell: true
as an option forspawn()
in Windows OS environments (thanks to @jaydamani for the report!) (#788).
released 2024-05-08
- π Correct docs about
zapier migrate --user
(#779)
- π Censor set-cookie response header in logs (#780)
- π§ Dependency updates
released 2024-05-01
- π Add instruction to close resolved issues after promotion in the docs (#770)
- π Remove the note on
redirect_uri
change after publish in the docs (#774)
- π Fix
null
response content breaking the search for sensitive values (#772)
None!
- π Fix the legacy-scripting-runner's ErrorException invalid JSON data (#773)
- π¨ Bump tar from 6.1.0 to 6.2.1 (#771)
released 2024-04-09
- π Added missing 'to' in CLI docs (#767)
- π Raised max file size for upload streaming to 1GB (#768)
None!
released 2024-04-03
None!
- π Censor entire response content when refreshing or getting new auth token (#765)
None!
released 2024-03-28
- π Update document on the
primary
property inoutputFields
(#763) - π Update document on the throttle configuration to include
retry
in theoverrides
attributes (#761)
None!
- π§ͺ Add support for
retry
in theoverrides
object of the throttle configuration (#761)
- π§ Fix failing tests in dependabot's PRs (#762)
released 2024-03-26
- π Document
allowGetBody
option inz.request()
(#752) - π Update document on the throttle configuration to include
key
andoverrides
attributes, andaction
scope (#760)
- π§ Change trigger output check logic for the newly-added
primary
property inoutputFields
(#754)
- π Allow to set
primary
inoutputFields
to define the unique key for deduplication (#754) - π§ͺ Add support for
overrides
in the throttle configuration (#755) - π§ͺ Add support for
key
in the throttle configuration andaction
scope (#757)
released 2024-02-08
- π Fixed bug in
zapier validate
wherezapier-platform-core
was failing to import on version15.5.2
(#746)
released 2024-02-06
- π Fixed bug in
zapier convert
that crashes due to syntax error in user's code and should not replacesource
in sample (#730) - π Improved handling of broken symlinks while copying files to temp directory during the build process (#737)
- π Fixed bug in
zapier build
where it failed to run in npm workspaces (#738, #742) - π Fixed converting triggers breaking when trigger key starts with a number (#741)
- π§ Upgraded @oclif/plugin-help dependency, addressing security issue with sub-dependency (#739)
- π§ Updated the "custom-auth" sample to avoid a warning when running zapier validate (#724)
- π Updated TypeScript method types in RawHttpResponse (#735)
- π Use node-fetch TypeScript types in BaseHttpResponse (#736)
- π Updated rest hook tutorial to include content for expiring webhooks (#731)
- π Documenting 5 min cache behavior of hydration and how to workaround (#740)
released 2023-11-21
- π Update
zapier logs
documentation to mention default user target (#721)
- π Allow server to decide when to truncate log fields (#725)
None!
- π¨ Bump axios from 1.2.3 to 1.6.1 (#726)
released 2023-11-08
None!
None!
- π
Add
steadyState
property on the FieldSchema for steady state deduplication on trigger polls (#721)
- π¨ Bump browserify-sign from 4.0.4 to 4.2.2 (#719)
released 2023-11-01
- π Update
z.cursor
documentation for handling end of the result set (#703)
- π¨ Bump secret-scrubber-js to v1.0.8 (#717)
- π Correct the 'value' and 'sample' description in the 'FieldChoicesWithLabel' schema (#716)
- π¨ Bump @babel/traverse from 7.14.0 to 7.23.2 (#715)
- π Fix broken link in README-source.md (#714)
- π Fix broken link in readme.md (#713)
released 2023-10-06
None!
None!
- π Fixed throttle configuration not being allowed on triggers (#711)
None!
released 2023-10-06
None!
- π Added handling the use of non-string cursors in
z.cursor.set()
(#705)
- π Added support for throttle configuration (#709)
- π Fixed building of boilerplate having lingering old files from previous builds (#708)
- π¨ Bumped get-func-name version from 2.0.0 to 2.0.2 (#707)
released 2023-09-19
None!
None!
- π (Experimental) Extend Custom Auth to support OTP (#702)
- π Bring over paging cursor doc changes added in visual-builder repo (#701)
- π Updating example Github app unit tests (#700)
- π Update version mismatch (#699)
- π Fix legacy scripting runner test (#697)
released 2023-09-07
- π Removed the logic converting an empty array to undefined in changelog metadata (#690)
- π Integration title length must be at least 2 characters (#693)
None!
None!
- π Fixed a flaky test for legacy scripting runner (#697)
- π Added links to relevant support documentation (#692)
- π Fixed markdown formatting for backtick usage (#691)
- π Added detail on encoding defaults in the API documentation (#689)
- π Added detail on OAuth state parameter in the API documentation (#683)
- π Minor updates to CLI documentation and rebuild (#688)
- π Moved up template explanation in README (#682)
- π Added detail on the 'computed' flag in the API documentation (#686)
- π Added detail on callback URL parameter in the API documentation (#687)
- π Updated GitHub CLI tutorial app documentation (#679)
- π¨ Bumped word-wrap version from 1.2.3 to 1.2.4 (#680)
- π¨ Bumped cli, core, schema from 15.0.0 to 15.0.1 (#678)
released 2023-07-10
- π
zapier convert
now uses jest test template scaffold instead of mocha (#674)
None!
None!
- π Documentation update related to example apps (#675, #672, #671)
- π Documentation update related to outdated hyperlinks (#673)
- π Documentation update to match public platform docs (#670)
released 2023-06-30
Version 15.0.0
is a breaking change release that contains several important upgrades and deprecations. Here is a brief breakdown of the changes (β denotes a breaking change):
-
β Changelog is required for promotions. Prior to v15.0.0, providing a changelog was optional for promoting an app; this is now required. You can also append changelog metadata to help categorize whether the changes are related to bug fixes or a new feature.
-
β Remove
important
field from the schema. Theimportant
field was deprecated inv14.0.1
(#644) and now we are removing it in this release. -
β Apps can now use Node.js v18.x and Node.js v14.x is no longer supported. (a) Any integrations that depend on
zapier-platform-core@15.0.0
will now run on Node.js 18. (b) We are dropping support for Node.js 14, which has been designated end-of-life since 2023-04-30 (see the Node.js release schedule).
- π
zapier convert
now uses jest test template scaffold instead of mocha (#674) - π
zapier login --sso
points to the correct link for fetching Deploy Keys (#666) - π
zapier convert
should convertsource
fields (#660) - β Changelog is required for promotions (#653)
- β Apps can now use Node.js v18.x and Node.js v14.x is no longer supported (#665)
- β Remove
important
field from the schema (#662)
-
π Documentation update related to redirect caveat in public apps (#661)
-
π Documentation update related to supplement the "Output Fields" section (#654)
-
π¨ Dependency updates (#668, #665)
CLI
- Bump
@oclif/command@1.8.21
to@oclif/command@1.8.27
- Bump
@oclif/config@1.18.6
to@oclif/command@1.18.10
- Bump
fs-extra@10.0.0
to@oclif/command@11.1.1
- Bump
jscodeshift@0.14.0
tojscodeshift@0.15.0
- Bump
marked-terminal@5.1.1
tomarked-terminal@5.2.0
- Bump
prettier@2.8.3
toprettier@2.8.8
- Bump
read@2.0.0
toread@2.1.0
- Bump
semver@7.3.8
tosemvar@7.5.2
- Bump
yeoman-generator@5.7.0
toyeoman-generator@5.9.0
- Bump
nock@13.3.0
tonock@13.3.1
Core
- Bump
node-abort-controller@3.0.1
tonode-abort-controller@3.1.1
- Bump
semver@7.3.5
tosemvar@7.5.2
- Bump
aws-sdk@2.1300.0
toaws-sdk@2.1397.0
- Bump
fs-extra@10.0.0
tofs-extra@11.1.1
- Bump
@types/node@18.11.18
to@types/node@20.3.1
Legacy
- Bump
moment-timezone@0.5.35
tomoment-timezone@0.5.43
- Bump
aws-sdk@2.1300.0
toaws-sdk@2.1397.0
- Bump
nock@13.3.0
tonock@13.3.1
Schema
- Bump
jsonschema@1.2.2
tojsonschema@1.4.1
- Bump
fs-extra@10.0.0
tofs-extra@11.1.1
- Bump
released 2023-06-07
- π Improve docs related to expected behaviors for configuring OAuth2 with PKCE (#655)
- π Improve docs related to hydration payload limit(#656)
- π¨ Dependency updates
- Bump
typescript
in template generator from 4.2.4 to 4.9.4 (#657)
- Bump
- None!
- None!
- None!
released 2023-05-22
- π Fix duplicate authentication field keys being generated by the
zapier convert
command (#639) - π Fix missing
key
property in the.zapierapprc
file after running thezapier convert
command (#640) - π Improve docs related to expected behaviors for stale authentication (#647)
- None!
- π Deprecate the
important
key of theBasicDisplaySchema
. This property will be removed and hence a breaking change β in the next major version release. (#644)
- π¨ Dependency updates
released 2023-03-21
Version 14.0.0
is a breaking change release that contains several important upgrades and deprecations. Here is a brief breakdown of the changes (β denotes a breaking change):
-
β
altersDynamicFields
no longer defaults to true whendynamic
is set. You should now set the flag appropriately. If a dynamic dropdown (i.e. a field withdynamic
set) should refresh other input fields, you must setaltersDynamicFields
to true on v14.inputFields: [ { key: 'city', dynamic: 'city.id.name', altersDynamicFields: true // <- set this appropriately on v14 } ]
-
β Before v14, the Zap editor didn't really use
canPaginate
. Instead, it made two requests and compared them to determine if pagination is supported. Starting from v14,canPaginate
is required for the Zap editor to show the Load More button for pagination.triggers: { contact: { operation: { canPaginate: true // <- set this appropriately on v14 } } }
-
β Now you are required to provide meta information about your app, such as your intended audience and app category (if that information isn't already provided). If you are missing this information, you will be blocked from making updates to your integration (
zapier promote
,zapier upload
,zapier push
). Usezapier register
withzapier-platform-core@14.0.0
or go tohttps://developer.zapier.com/app/{app_id}/version/{version}/settings
to fill it out. -
On v14, OAuth2 implementation now supports PKCE! See our documentation for details.
Read on for a detailed set of release notes. Again, β are BREAKING CHANGEs.
- β Implement individual field flags for
register
command (#618) - β Block
promote
,upload
, andpush
for missing required app info (#612) - π Use uniform field names in check-missing-app-info util (#630)
- π Only require fields for private integrations via CLI (#628)
- π
Implement
--yes
flag forregister
command (#627) - π Improve documentation on throttling (#631)
- π Add documentation for PKCE OAuth2 (#629)
- π Add information about how to return line items (#620)
- π Fix 'integraiton' typo in CLI docs (#613)
- π¨ bump http-cache-semantics from 4.1.0 to 4.1.1 (#617)
- π Add
enablePkce
tooauth2Config
(#623) - π¨
searchAndCreates
andsearchOrCreates
can coexist to avoid search key collision (#624) - π Add clarity on role of
performList
for testing REST Hooks (#619)
- π Small followup improvement on GitHub issue templates (#625)
- π Replace issue templates with GitHub forms, update CODEOWNERS (#622)
The changelogs for older versions can be found in the changelog directory.