released 0000-00-00
**TESTING ONLY - THIS IS NOT A REAL PLATFORM RELEASE ** https://github.com/iscorer/test-repo/edit/main/CHANGELOG.md
Version 14.0.1
is a FICTIONAL version created in a DUMMY CHANGELOG.md for TESTING purposes. Breaking change release that contains several important upgrades and deprecations. Here is a brief breakdown of the changes (❗ denotes a breaking change):
- ❗ 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)
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
with[email protected]
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)
released 2023-01-25
Version 13.0.0
is a breaking change release that contains several important upgrades and deprecations. Here is a brief breakdown of the most notable changes (see further below for a more detailed list of changes):
(a) Any integrations that depend on [email protected]
will now run on Node.js 16.
(b) We are dropping support for Node.js 12, which has been designated end-of-life since early 2022 (see the Node.js release schedule).
(c) As part of internal Zapier changes to the way we process trigger data, stricter type coercion for trigger parameters is now enabled by default for integrations running on [email protected]
. This is a good time to double check if your defined trigger parameter types are coherent with what your app expects at runtime.
(d) Web Builder conversion functionality has been removed. This change is only relevant for Legacy Web Builder apps.
Those are the breaking changes for this major version 13.0.0
release. We are also including some package version bumps, with the changes consisting mostly of dropping older Node versions. As always with any major release, make sure to thoroughly test your integrations after updating!
Detailed changelog below (❗ denotes a breaking change):
- ❗ Remove Web Builder conversion functionality. (#546)
- ❗ Make
--version
required onzapier convert
. (#546) - 🔨 Improved error handling in the convert command. (#546)
- 📜 Removed references to converting WB apps in the docs. (#546)
-
❗ Apps can now use Node.js v16.x and Node.js v12.x is no longer supported. (#603)
-
❗ Parameters for triggers now have strict type coercion. This means that if a parameter is defined as an integer and a string representation of an integer is provided, Zapier will now convert the value to an integer before it reaches the developer's code.
None!
- 🔨 Dependency updates (#608)
- Replaced
[email protected]
with[email protected]
- Bump
@oclif/command
from 1.8.0 to 1.8.21 - Bump
@oclif/config
from 1.17.0 to 1.18.6 - Bump
@oclif/dev-cli
from 13.0.11 to 13.3.0 - Bump
@types/node
from 14.14.35 to 18.11.18 - Bump
adm-zip
from 0.5.5 to 0.5.10 - Bump
archiver
from 5.3.0 to 5.3.1 - Bump
aws-sdk
from 2.905.0 to 2.1300.0 - Bump
cli-table3
from 0.6.0 to 0.6.3 - Bump
content-disposition
from 0.5.3 to 0.5.4 - Bump
debug
from 4.3.1 to 4.3.4 - Bump
dicer
from 0.3.0 to 0.3.1 - Bump
dotenv
from 9.0.2 to 12.0.4 - Bump
eslint
from 7.26.0 to 8.32.0 - Bump
eslint-config-prettier
from 8.3.0 to 8.6.0 - Bump
eslint-config-standard
from 16.0.2 to 17.0.0 - Bump
eslint-plugin-import
from 2.22.1 to 2.27.5 - Bump
eslint-plugin-mocha
from 8.1.0 to 9.0.0 - Bump
eslint-plugin-promise
from 5.1.0 to 6.1.1 - Bump
flat
from 5.0.1 to 5.0.2 - Bump
gulp-prettier
from 3.0.0 to 4.0.0 - Bump
husky
from 6.0.0 to 7.0.4 - Bump
inquirer
from 8.0.0 to 8.2.5 - Bump
nock
from 13.0.11 to 13.3.0 - Bump
prettier
from 2.3.0 to 2.8.3 - Bump
semver
from 7.3.5 to 7.3.8 - Bump
lint-staged
from 11.0.0 to 11.2.6 - Bump
ignore
from 5.1.8 to 5.2.4 - Bump
jscodeshift
from 0.12.0 to 0.14.0 - Bump
klaw
from 3.0.0 to 4.1.0 - Bump
lerna
from 4.0.0 to 6.4.1 - Bump
marked
from 4.0.10 to 4.2.12 - Bump
marked-terminal
from 4.1.1 to 5.1.1 - Bump
mime-types
from 2.1.34 to 2.1.35 - Bump
mocha
from 8.4.0 to 10.2.0 - Bump
read
from 1.0.7 to 2.0.0 - Bump
yeoman-generator
from 5.2.0 to 5.7.0
- Replaced
released 2023-01-18
- 📜 Improve docs about input field types (#585)
- 📜 Improve docs about OAuth2 fields (#589)
- 📜 More strongly recommend use of
z.dehydrateFile
for files (#590) - 📜 Update logging info (#591)
- 📜 Fix
zapier init
command (#594) - 📜 Fix typo (#593)
- 📜 Fix logo (#604)
- 🔨 Dependency updates
- None!
- 🧪 Relax schema on
searchUniqueInputToOutput
for upsert to support dynamic fields. EXPERIMENTAL: Currently an internal feature. Don't use it yet. (#602)
- 🔨 Dependency updates
- Bump qs from 6.5.2 to 6.5.3 (#598)
release 2022-10-27
- 💅 Now you don't have to install zapier-platform-core to run most of the commands (#579)
- 🔨 Dependency updates
- Bump secret-scrubber from 1.0.3 to 1.0.7 (#583)
- 🧪 "Upsert" feature: Now a search-or-create can include an
update
action that Zapier should call to update an existing object. EXPERIMENTAL: This is currently an internal feature and subject to change. Don't use it yet. (#584) - 📜 Clarify how fields accept
file
types (#582)
released 2022-09-29
We rolled out a change to "migrate-by-email" on 2022-09-28. Now zapier migrate --user
in CLI and "migrate-by-email" on UI only migrate Zaps that are private to the user. This change affects UI and all the CLI versions, not just 12.1.0. The old behavior was to migrate all the user's team members, which was inconsistent with the docs and often caused confusion. So we consider this change a bug fix instead of a breaking change. If you want the old behavior, use zapier migrate --account
.
- 💅 Add
--account
flag tomigrate
command (#574) - 💅 Add
--yes
flag topromote
command to suppress interactive prompts by assuming "yes" to all prompts (#576) - 💅 Print validation warnings at
build
time (#573) - 📜 Update Zapier logo in docs (#567)
- 📜 Provide additional information about the connection label in docs (#564)
- 🔨 Dependency updates
- Bump shell-quote from 1.7.2 to 1.7.3 (#560)
- 🐛 Fix another hanging issue by aborting logger connection early (#562)
- None!
released 2022-05-02
- None!
- 🐛 greatly improve secret-scrubbing speed in logger (#542)
- 🐛 ensure string content is parsed pre-logging in case it contains secrets (#525)
- 🐛 censor novel secrets in querystring (#526)
- None!
released 2022-03-30
- None
- 🐛 Fix regression where consecutive successful curly replacements wouldn't happen correctly (#522)
- None!
released 2022-03-24
- None
- 🐛 Fix regression where the global
skipThrowForStatus
incorrectly applied to shorthand requests. It's only intended to modify the behavior of requests made withz.request()
. The docs and changelog have been updated accordingly (#520)
- None!
released 2022-03-23
We're breaking slightly from our pattern of a single yearly major release. The 12.0.0
release contains some backwards-incompatible changes to how middleware and auth refreshes work. For the most part, you'll be able to upgrade to this version safely, but as always, it's worth re-running unit tests (especially those related to authentication).
In the coming months, we'll follow up with a 13.0.0
release that will bump the Node.js runtime and dependencies (ending support for Node.js 12 as it reaches End of Life). We're hoping that by separating these releases, the upgrade process will be easier for developers (only worrying about the public API or the runtime, but not both).
- None!
- ❗ calling
response.throwForStatus()
now always throws an error if the response status code is>= 400
. Previously it was a no-op whenresponse.skipThrowForStatus
wastrue
. Now, that flag only controls whether Zapier's built-in middleware callsthrowForStatus()
. This only affects you if you setskipThrowForStatus
and always call.throwForStatus()
, expecting it not to error. (#511) - ❗ re-add the built-in auto-refresh middleware for
oauth2
andsession
auths. This runs before your declaredafterResponse
, so you no longer have to account for stale credentials in your middleware (unless you want to). See the README for more info. (#512, #517)
- 💅 add app-wide skipThrowForStatus flag. This is helpful for backwards compatibility when migrating from
9.x
to12.x
, but probably won't be relevant for most developers. Note that this flag only affects requests made withz.request()
(#511)
released 2022-03-21
- 📜 Update README.md and add CONTRIBUTING.md (#506)
- 🐛 Fix another hanging issue where an action could be invoked multiple times (#513)
- None!
released 2022-03-01
- None!
- 💅
z.request()
now acceptsskipEncodingChars
option to skip percent-encoding specific characters (#497)
- 💅 Add
skipEncodingChars
toRequestSchema
(#497)
- 🔨 Improve build script (#496)
released 2022-02-23
- 🔨 Bump node-fetch to 2.6.7 (#493)
- 🐛 Fix hanging issue where an action could be invoked multiple times (#490)
- 🔨 Bump node-fetch to 2.6.7 (#493)
- 🔨 Bump node-fetch to 2.6.7 (#493)
released 2022-02-14
- 🎉 New command:
jobs
. Now you can usezapier jobs
to checkpromote
andmigrate
progress! (#484) - 🎉 Add support for pnpm package manager in
test
command (#476) - 🐛 Fix byte missing issue with
files
example (#465) - 💅 Update
promote
andmigrate
to use new endpoint (#480) - 📜 Clarify on OAuth2 refresh details (#482)
- 🔨 Dependency updates
- 🐛 Fix
value.replace is not a function
error when resolving missing curlies (#468) - 🐛 Handle case where
legacy.scriptingSource
is an empty string (#475) - 💅 Improve
z.console.log
and HTTP logging performance (#469)
- None!
- 🔨 Bump trim-off-newlines from 1.0.1 to 1.0.3 (#474)
released 2021-12-03
- 📜 Fix typos in docs (#431)
- 🐛 Fix backpressure issue when piping request bodies (#461)
- Rewrite
z.stashFile()
with various improvements and bugfixes (#454)- 💅
knownLength
is no longer required for any kinds of streams, includingz.request({ url, raw: true })
andfs.createReadStream()
- 💅 Detect file types more smartly
- 💅 Generate filenames more smartly
- 💅 Improve performance by making concurrent requests
- 🐛 Fix
MalformedPOSTRequest
error when the reponse is gzipped and has a smallerContent-Length
- 🔨 Better test coverage
- See #454 for more details
- 💅
- 💅 Allow apps to pass along throttled errors (#408)
- 🎉 Add support for hook-to-poll triggers (#432)
- 💅 Allow spaces and square brackets in
RefResourceSchema
(#455) - 💅 Add
code
type forinputField
s (#439)
released 2021-09-24
- none!
- none!
released 2021-08-05
- 🐛
convert
command should always generate async functions (#397) - 🐛
init
command - fix typos insession-auth
template (#388) - 📜 Add info about header format in
bundle.rawRequest
(#401) - 📜 An
afterResponse
middleware should return a response (#383)
- 🎉 Allow using
await
in inline function source (#396) - 🐛 Make sure all requests are logged (#387)
- 💅 Update app tester to support hook with
canPaginate
forperformList
(#402) - 💅 Add
bundle.meta.isBulkRead
TypeScript type (#400) - 💅 Allow app tester to run ad-hoc functions (#385)
- 🔨 Incorporate secret-scrubber package (#393)
- 💅 Add
canPaginate
toBasicHookOperationSchema
(#399)
- Dependency updates:
released 2021-05-28
- 🐛 Handle missing versions better in env command (#374)
- 📜 Fix incorrect snippet (#378)
- 📜 Update historical releases section to include v10 (#377)
- None!
- 🐛 skip checking keys on fields without the
key
property (fixes zapier-platform#375 via #376)
released 2021-05-12
Another spring, another SEMVER-MAJOR
release of the Zapier CLI tools. Now that Node.js 10 has reached its scheduled end of life, version 12 is the minimum supported version for each of these packages locally.
Additionally, any integrations that depend on [email protected]
will run on Node.js 14. Node versions are typically fairly compatible, but it's worth double-checking your unit tests during this upgrade (as always).
Read on for a detailed set of release notes, paying special attention to any ❗ BREAKING CHANGEs.
- ❗ Remove the
-g | --grep
and-t | --timeout
flags fromzapier test
(#348). You can now pass flags directly to yourtest
script by adding--
before them. To migrate existing scripts:- Add
--
before any existinggrep
andtimeout
flags zapier test -g 'cool' --timeout 5000
➡️zapier test -- -g 'cool' --timeout 5000
- Add
- ❗ Run apps using Node.js v14.x (#350)
- 🐛 Checks should properly handle possibly null values (#371)
- 🐛 StashFile no longer throws 'source.on' error when a request that uses await is passed in (#361)
- 🐛 Handle stashing files in resource create methods (#349)
- 🔨 Typescript target es2019 for node 12 (#358)
- 🔨 Typescript type of
inputData
for hydration function should be of type T as well (#357) - 📜 Fix typo in authentication.js (#356)
- ❗ add validation to ensure globally unique input fields (#347).
- Your integration's input fields wouldn't have worked correctly if they didn't comply with this check, but now we're more explicit about it
- No action should be needed for migration
- Many under-the-hood dependency updates:
released 2021-02-23
- 📜 add architecture files (#324)
- 📜 fix typos in README (#328)
- 📜 Make file stashing snippets copy-paste-able (#326)
- 📜 Fix broken README schema package link (#325)
- 🐛 ensure test files can be run out of the box with jest (#327)
None!
- 💅 Add ability to specify "code" param to OAuth2 schema (#333)
released 2021-02-09
- 🐛 Fix phrasing in
link
command (#316) - 💅 Add warning if user counts are still being calculated (#308)
- 📜 Mention
subscribeData
is available inperform
(#300) - 📜 Add debugging info (#318)
- 📜 Update readiness of UI → CLI conversion tool (#307, #311)
- 📜 Add details about when dynamic fields are loaded (#303)
- 📜 Change 90-day limit for callbacks to 30-day (#293)
- 📜 Fix typos in examples (#296, #297)
- 🐛
ResponseError
no longer fails when request israw
(#320) - 🐛 Redirecting from
https
tohttp
breaks when disabling SSL certificate checks (#313) - 🔨 Log
trigger_subscription_id
field (#317)
- 📜 Add reasons to anti-examples, update README, rearrange schema layout (#287)
released 2020-10-30
This release mostly has internal features, but also ships a lot of documentation updates and a few bumped dependencies.
- 💅 Improve logging for diagnostic info (#282)
- 📜 Document the
$HOIST$
directive (#273) - 📜 Update outdated command references (#274)
- 📜 Add docs for
callback_url
(#278) - 🔨 Add new example app,
callbacks
(#281) - 📜 Replace Slack link with one for Community (#286)
- 🐛 Add
callback_url
during testing (#280) - 💅 Relax type info for
response.json
to better match the actual TS definition (#261)
None!
released 2020-09-02
- 🐛
_zapier-build
should be optional (#265)
- 🐛 Don't censor safe URLs in logs (#266)
None!
released 2020-08-30
- 💅
build
command now accepts a custom build hook named_zapier-build
. See Using Transpilers for details. (#262)
- 📜 Remove legacy reference to
bundle.meta.zap
(#255) - 🔨 Increase max payload size for hydration (#257)
- None!
released 2020-07-20
- 🐛
convert
command now doesn't crash over an auth field name with special chars (#241) - 🐛 Fix missing
deasync
Node.js 10 binding (#244) - 🐛 Fix broken
oauth1-trello
project template (#246) - 💅 Update
oauth2
andsession-auth
project templates to reflect v10's recommended way to handle auth refresh (#246) - 📜 Fix missing
init
command in CLI reference (#243) - 🔨 Bump Lodash from 4.17.15 to 4.17.19 (#248)
- 🐛 Allow resource list methods to use cursors (#247)
- 💅 Improve types for
z.dehydrateFile
andz.stashFile
(#240) - 📜 Clarify v10 breaking change on auth refresh (#246)
- 🔨 Bump Lodash from 4.17.15 to 4.17.19 (#248)
- 🔨 Bump Lodash from 4.17.15 to 4.17.19 (#248)
released 2020-05-20
Another major release! We have some great improvements in this version but also have breaking changes. Please review the following to see if you need to change anything to upgrade zapier-platform-core
to v10.
(a) Zapier integrations that depend on the new Core v10 will run using Node.js 12. To upgrade, first you need install Node 12 if you haven't. You can install Node 12 using nvm
. Second, update your package.json
to depend on [email protected]
. Third, run npm install
. Finally, you may want to run unit tests on Node 12 before you push your code to production for further testing.
(b) z.request
now always calls response.throwForStatus
via a middleware by default. You no longer need to call response.throwForStatus
after z.request
, the built-in middleware will do that for you. See Error Response Handling for details.
(c) response.throwForStatus
now only throws an error if the status code is between 400 and 600 (inclusive). Before v10, it threw for status >= 300. So if your code rely on that old behavior, you should change your code to check response.status
explicitly instead of using response.throwForStatus
.
(d) Session and OAuth2 refresh now happens AFTER your afterResponse
. Before v10, the refresh happens before your afterResponse
. This is a breaking change if your afterResponse
captures 401 response status. See v10 Breaking Change: Auth Refresh for details.
(e) We now parse JSON and form-encoded response body by default. So no more z.JSON.parse(response.content)
! The parsed object is available as response.data
(response.json
will be still available for JSON body but less preferable). Before v10, we only parsed JSON for manual requests; parsed JSON and form-encoded body for shorthand requests. This change could be breaking if you have an afterResponse
that modifies response.content
, with the expectation for shorthand requests to pick up on that. In which case, you'll have to replace response.content = JSON.stringify(parsedOrTransformed)
with response.data = parsedOrTransformed
.
(f) We rewrote the CLI zapier init
command. Now the project templates are more up-to-date, with better coding practices. However, we've removed the following templates: babel
, create
, github
, middleware
, oauth1-tumblr
, oauth1-twitter
, onedrive
, resource
, rest-hooks
, trigger
. For trigger/create/search, use zapier scaffold
command instead. For babel
, look at typescript
template and replace the build step with the similar code from https://babeljs.io/setup#installation. For oauth1
, we now only keep oauth1-trello
for simplicity. If you ever need to look at the old templates, they're always available in the example-apps directory in the repo.
(g) zapier init
no longer uses the minimal
template by default. If you don't specify --template
, zapier init
will prompt you interactively. So if you're using zapier init
(without any arguments) in CI and expect it to use minimal
by default, you should replace the command with zapier init -t minimal
.
See below for a detailed changelog (❗ denotes a breaking change):
- ❗ We've improved and removed some templates from
init
command, see (e) above for a list of templates that were removed (#206) - 💅
build
command no longer needs login (#216) - 💅
promote
command becomes more receptive about the changelog format (#209) - 💅 Regenerate example apps using the new
init
command (#229) - 📜 Update and clean up docs (#222)
- 📜 Add some clarity around what we're sending for analytics (#215)
- 🔨 Mass dependency update and linting (#218, #220)
- ❗ Integrations now run on Node.js 12!
- ❗
z.request
now always callsresponse.throwForStatus
via a middleware by default (#210) - ❗ Session and OAuth2 refresh now happens AFTER your
afterResponse
(#210) - ❗
response.throwForStatus
now only throws for 400 ≤ status ≤ 600 (#192) - ❗ Introduce
response.data
with support for form-urlencoded and custom parsing (#211) - 🐛 Don't log request body when it's streaming data (#214)
- 🐛
z.request
'sallowGetBody
option shouldn't send empty body (#227) - 🔨 Mass dependency update and linting (#218, #220)
released 2022-03-21
- None!
- 🐛 Fix another hanging issue where an action could be invoked multiple times (#514)
- None!
released 2022-03-01
- None!
- 💅
z.request()
now acceptsskipEncodingChars
option to skip percent-encoding specific characters (#499)
- 💅 Add
skipEncodingChars
toRequestSchema
(#499)
- 🔨 Improve build script (#500)
released 2022-02-23
- 🔨 Bump node-fetch to 2.6.7 (#492)
- 🐛 Fix hanging issue where an action could be invoked multiple times (#491)
- 🔨 Bump node-fetch to 2.6.7 (#492)
- 🔨 Bump node-fetch to 2.6.7 (#492)
released 2022-02-14
- None!
- 🐛 Fix
value.replace is not a function
error when resolving missing curlies (#467) - 🐛 Handle case where
legacy.scriptingSource
is an empty string (#478) - 💅 Improve
z.console.log
and HTTP logging performance (#483)
- None!
released 2021-12-03
- None!
- 🐛 Fix backpressure issue when piping request bodies (#462)
- Rewrite
z.stashFile()
with various improvements and bugfixes (#453)- 💅
knownLength
is no longer required for any kinds of streams, includingz.request({ url, raw: true })
andfs.createReadStream()
- 💅 Detect file types more smartly
- 💅 Generate filenames more smartly
- 💅 Improve performance by making concurrent requests
- 🐛 Fix
MalformedPOSTRequest
error when the reponse is gzipped and has a smallerContent-Length
- 🔨 Better test coverage
- See #453 for more details
- 💅
- 💅 Allow spaces and sqaure brackets in
RefResourceSchema
(#456)
released 2021-07-02
- None!
- None!
- None!
- 🐛
ResponseError
no longer fails when request israw
(#320) - 🐛 Redirecting from
https
tohttp
breaks when disabling SSL certificate checks (#314)
- None!
- 💅
build
andpush
command now produces smaller zips (≈30% of the original size!) (#202)
- 💅
z.request
now has anallowGetBody
option that allows you to send a GET request with a body (#195) - 📜 Update examples to demonstrate
z.errors.Error
(#198) - 📜 Encourage use of
response.json
rather thanz.JSON.parse(response.content)
(#200) - 🔨 Include
User-Agent
header for internal calls (#204)
- No changes
- No changes
- 🎉 We have new error classes! Use them to help improve user-facing error messages. Read Error Handling in the docs for more. (#189)
- 💅 Show variable name when curlies have a type error (#188)
- 💅
RequestSchema
now has aserializeValueForCurlies
option, allowing to "reliably interpolate arrays or objects to a string" (#190)
- 🎉
scaffold
command was entirely rewritten. Now it generates better code and is more resilient. (#146) - 🐛 Fix
convert
command so it correctly handles a visual builder app converted from Web Builder (#159) - 🐛 Allow env variables containing equals (#179)
- 🐛 Fix SSO link in
login
command output (#157) - 🔨 Fix test circular dependency (#184)
- 🐛 Preserve non-empty values that include empty curlies in request objects (#162)
- 🐛 Improve
appTester
types and bump Node versions (#172) - 🔨 Fix smoke test circular dependency (#175, #185)
- 📜 Clarify
FieldSchema.list
when used ininputFields
vs.outputFields
(#143)
- 🎉 CLI now has brand new tab completion! Learn how to activate it in the doc. (#134)
- 💅 Make CLI text style more consistent (#132)
- 💅
validate
command now uses a language consistent with the UI (#132) - 🐛
validate
command no longer requires login (#119) - 🐛 Fix
convert
command crashing over a trailing comment (#147) - 🐛 Projects generated by
convert
command now defaults to Node 10 (#123) - 🔨
init
command now pulls examples from a tagged version (#127) - 🔨 Refactor
convert
command (#131) - 🔨 Refactor
describe
command (#129) - 🔨 Refactor
link
command (#128) - 🔨 Refactor
logs
command (#121) - 🔨 Refactor
register
command (#122) - 🔨 Finish oclif migration and clean up unused code (#133)
- 🐛 Fix broken digest auth since 8.3.0 (#153)
- 🐛 Basic auth now allows empty username or password (#130)
- 🔨 TypeScript definition fixes (#124)
- No changes
This is a big one! There are a few areas with breaking changes. At a high level:
- Zapier integrations that depend on the new Core v9 will run using
Node.js v10
- CLI had a lot of refactoring under the hood. A number of commands changed their args and/or name. Check out the CLI docs for the full rundown.
- All packages drop support for Node 6 (which has been EOL for a while, so hopefully this isn't news)
To successfully migrate to this version, you'll probably need to:
- install Node 10 using
nvm
. Lambda uses10.16.13
(source), but any will do. - Check the CLI changelog below and adjust any scripts that call the CLI accordingly
- Update your integration's
zapier-platform-core
dependency to9.0.0
. - Run unit tests on Node 10 if you haven't before
- Assuming your code works on Node 10, go through the regular push, promote, migrate flow. There aren't any other breaking changes from and end-user perspective.
As always, feel free to reach out if you've got any questions.
See below for a detailed changelog:
- ❗ Remove
--include-js-map
flag from thebuild
andpush
commands (#99) - ❗ remove watch command (#100)
- ❗ Refactor
env
command. It's nowenv:get
,env:set
andenv:unset
(docs) (#104) - ❗ Remove
invite
andcollaborate
commands. This functionality is now underusers
(docs) andteam
(docs) commands, respectively (#106) - ❗ Refactor
delete
intodelete:integration
anddelete:version
(docs) (#109) - ❗ Refactor
logout
command to only clear the local session, not all of them (#60) - ❗
scaffold
command errors if a file name already exists (#88) - ❗
validate
depends on having a validdeployKey
available (either in the environment or in the auth file,~/.zapierrc
). This is a regression and will be fixed in a later version. In the meantime, see Using CI for more info. - 🎉 Add saml support during
login
(#61) - Refactor the following commands to use the new CLI setup:
- build
- delete
- deprecate
- env
- history
- login
- logout
- migrate
- promote
- push
- scaffold
- test
- upload
- validate
- versions
- Deprecate
apps
command in favor ofintegrations
(#105) - Run validation during build against
/check
endpoint (#111) - chore: rebuild yarn.lock (#96)
- 🎉 Apps now run on Node.js
v10
- (docs) update CHANGELOG.md links to point to zapier-platform repository (#107)
- (fix) Make label & description optional for hidden actions (#69)
- (fix) Be more permissive with mutually exclusive properties in input fields (#91)
The only change of this release is we bumped Lodash to 4.17.15 (#95).
No more security warnings from npm audit
!
- (chore) Don't send analytics when running tests (#84)
- No changes
- (fix) Strip URL query parameters from error messages for security (#85)
- (chore) Don't send analytics when running tests (#86)
- 🎉 Added analytics to the CLI. These are vital for helping us improve our product. Read more about what we collect here.
- No changes
- No changes
The big change of this release is we started to maintain all the packages in a monorepo. It's more like an internal refactoring, so it shouldn't affect developer experience. Major work includes:
- (chore) Switch to use yarn (#1)
- (chore) Restructure and rename directories (#2)
- (chore) Adjust
zapier init
to pull from monorepo (#4) - (chore) Set up tests on Travis CI (#5)
- (chore) Publish from Travis CI (#33)
- (chore) Centralize husky code (#34)
- (chore) Move tooling to root (#46)
- (chore) Adopt oclif CLI framework, started with
zapier init
command (#43) - (chore) Bump adm-zip (#6)
- (docs) Update computed fields docs (#7)
None!
- (fix) Drop help text length requirement (#70)
None!
- 🎉 (feature) Convert visual apps to CLI. (#427)
- (feature) Add per app version helpers (#406)
- (chore) bump travis node version (#435)
- (chore) remove babel (#430)
- (chore) Add eslint-plugin-mocha (#429)
- (fix) Reduce minLength for BasicDisplaySchema to 1 (#69)
- (fix) Be more defensive when creating a buffer (#155)
- (fix) fix regression where env is ignored (#154)
- (fix) Prevent raw curies from being sent in a request. Allow removing empty… (#153)
- (fix) Censor sensitive numbers (#152)
- (fix) Add a better error message when uploading with a zip (#408)
- (chore) port logout command to async func (#419)
- (docs) Add code examples and scenarios to the dynamic dropdowns section of the Readme (#415)
- (docs) Add example for input fields with 'children' parameter (#413)
- (docs) Update signup link (#412)
- (docs) Update readme details for version number (#411)
- (docs) Misc improvements (#423)
- (improvement) Allow Godzilla to require modules in code mode (#145)
- (improvement) Add the ability to skip http patching (#150)
- (fix) Censor auth headers in edge cases (#151)
- (fix) Add meta to the bundle bank for resolving curlies. (#149)
- (fix) Pass correct storekey (#148)
- (fix) Add optional parameter to createAppTester to customize storeKey (#147)
- (fix) Fix individual types for removeMissingValuesFrom object (#146)
- (fix) Make removeMissing correctly optional (#143)
A quick bugfix to resolve a regression
None!
- (fix) actually return validator class (#64)
None!
This is a larger-than-normal release that coincides with the release of our new Visual Builder. It also includes a few breaking changes that you'll need to resolve in your code manually as you upgrade. Luckily, they're mostly find-and-replace.
We've changed the type of (the option formally known as) omitEmptyParams
to accommodate clearing data from the query params and/or the request body
// before
z.request({
url: 'https://site.com',
omitEmptyParams: true,
});
// after:
z.request({
url: 'https://site.com',
removeMissingValuesFrom: { params: true },
});
If you were using {{curlies}}
to render non-primatives (that is, arrays or objects) at runtime, they were getting coerced into strings. Now they correctly stay as their original data type, which is only an issue if you were working around it before.
We updated the key names in bundle.meta
to make them more clear. In most cases, they were simply renamed, but some unhelpful ones were removed. There's a conversion table that should make this an easy thing to change.
Below are all of the changes:
- (improvement) respect 2fa settings (#396)
- (doc) Add a Docker and Docker Compose section for native environments. (#397)
- (doc) update collaborator to admin (#403)
- (doc) update docs to use new meta (#393)
- (chore) refactor
zapier login
to async (#395) - (chore) make validate command async (#401)
- ❗ (improvement, breaking) Change omitEmptyParams to removeMissingValuesFrom (#63)
- 🎉 (improvement) attempt to hoist better errors (#62)
- (doc) Document that helpText supports markdown (#61)
- ❗ (improvement, breaking) Rename
omitEmptyParams
toremoveMissingValuesFrom
. In typescript, this is erroneously marked as required. In the next release, it will be optional. (#140) - ❗ (improvement, breaking) Resolve curlies to their original data type (#139)
- ❗ (improvement, breaking) Rename
bundle.meta
keys (server change, see CLI #393 for more info) - (improvement) preserve objects passed to inputData in the bundle bank (#141)
- (improvement) Resolve subscription related bundle fields (#138)
- (improvement) Prune unmatched tokens from request (#137)
- (chore) Resolving potential security vulnerability in lodash dependency (#136)
- (fix)
zapier push
doesn't stop on validation errors (#388) - (doc) Fix a typo in OAuth1 doc (#391, #392)
- (doc) Update the AWS Lambda supported Node.js links (#390)
- (doc) Update
outputFields
doc to reflect current reality (#386)
- (fix) Can't use unencrypted
https://
protocol when SSL checks are disabled (#135)
- (improvement)
zapier convert
command has been reworked and greatly improved. Now it generates code that is more likely to work out of the box! (#380) - (improvement) Refactor to use async/await in build command (#382)
- (fix) Don't add
searchOrCreates
if either is hidden (#134)
- (doc) Various doc improvements (#374)
- 🎉 (new) Add OAuth1 support. Read doc for detail. doc
- (doc) Be more clear about whether hook methods are required (#58)
- 🎉 (new) Add OAuth1 support. Read doc for detail. (#126)
- (fix) Make sure to censor URL-encoded values (#129)
- (fix) Cursor reading didn't work in tests (#125)
- (improvement) Shorthand HTTP requests now parse
x-www-form-urlencoded
response bodies as well. Your app could break if your application server returns a JSON response body but with aContent-Type: application/x-www-form-urlencoded
header. Switch toz.request
if that's the case. (#126)
- 🎉 (new) Add support for digest auth. Read doc for detail. (#123)
- (fix)
z.stashFile
doesn't pick up filename inContent-Disposition
(#124)
- (improvement) Add Dynamic Dropdown example app (#363)
- (improvement) Add smoke tests (#361, #362)
- (doc) Document
z.dehydrateFile
(#360) - (doc) Document
outputFields
(#365) - (doc) Update docs to reflect support for
async/await
(#359)
- 🎉 (new) Introduce
z.dehydrateFile
- a new recommended method to dehydrate a file. Read doc for detail. (#112, #120) - 🎉 (new) Add
omitEmptyParams
option to clean up empty request params automatically. Read doc for detail. (#121) - (fix) Fix null error handling (#117)
- (improvement) Add smoke tests (#116)
- (fix) Sign dehydrated payloads for better security (#111)
- (fix) Allow to disable SSL certificate check (#110)
- (fix) Include required binary in the build (#350)
- (fix) Add
copy
field type toFieldSchema
(#52) - (docs) Clarify
BasicDisplaySchema
directions description (#51)
- (improvement) Better
AppTester
typescript bindings (#103)
- (fix) Migrating by email shouldn't ask for promote (#341)
- (fix) Fix "epxeriencing" -> "experiencing" typo (#338)
- (fix) Fix failing Travis badge (#343)
- (improvement) Truncate
source_zip
in logs (#348) - (improvement) Migrate to cli-table3 (#327)
- (docs) Session auth should be using
authData
instead ofinputData
(#346)
- (improvement) Bump Node.js version to 8 (#328)
- (improvement) Ask for promote when fully migrating a public app (#326)
- (improvement) Add typescript example app (#329)
- (improvement) Reduce package size (#330)
- ❗ (improvement, breaking) Bump Node.js version to 8.10.0. Apps with dependency
zapier-platform-core >= 7.0.0
run only on Node.js 8.10.0 in AWS Lambda. If you need to continue running on Node.js 6.10.3, usezapier-platform-core <= 6.1.0
" (#94) - (fix) Add cursor to typings (#95)
- (improvement) Reduce package size (#97)
- (fix) Fix typo in
zapier register
text (#324) - (fix) Fix
npm audit
security warnings (#320) - (fix)
zapier convert
doesn't escape sample field labels (#313) - (docs) Remove Digest auth references (#323)
- (docs) Add cursor docs (#309)
- (fix) Fix
npm audit
security warnings (#46)
- 🎉 (new)
z.cursor
store (#76) - (fix) Fix missed logs (#91)
- (fix) Middleware isn't compiled (#90)
- (fix) Fix
npm audit
security warnings (#87) - (improvement) Add typings (#82)
- ❗ (improvement, breaking) JSON format only outputs valid JSON. This is only breaking if you were working around the formatting to process the JSON before (#260)
- (improvement) Better spinner (#260)
- ❗ (improvement, breaking) Fail validation if the top-level key doesn't match trigger/search/creates'
.key
. This fixes a bug where a trigger could be duplicated in the UI (#41) - (docs) Add doc annotation for hook type (#44)
- (docs) Make long examples more readable (#42)
- ❗ (improvement, breaking) Throw an error for key collisions between resources and standalone objects. This was previously a warning, so it shouldn't catch anyone by surprise (#73)
- ❗ (improvement, breaking) Remove
bundle.environment
. This has always been deprecated, but now it shouldn't show up in the bundle anymore. Given that it hasn't held data, this shouldn't cause a lot of friction (#72)
- 🎉 (new) Add option to
zapier logs
to show bundle logs (PR) - (fix) Fix
zapier build
from crashing on missing packages (PR) - (fix) Fix
zapier convert
from crashing on certain OAuth config (PR) - (fix) Fix
zapier convert
from crashing on a number in auth mapping (PR) - (improvement)
zapier build
prints any errors fromnpm install
(PR) - (docs) Add note about nested dynamic functions (PR)
- (docs) Add docs about
bundle.cleanedRequest
andbundle.rawRequest
(PR)
- (fix) Correctly invalidate field grandchildren (PR)
- (docs) More examples on functional constraints (PR)
- 🎉 (new) Add "did you mean" on unrecognized commands (PR)
- (fix) Fix hang issue when printing data on skinny terminal (PR)
- (fix) Server returns error when running
zapier logs --debug
(PR) - (fix) Exclude unwanted files when doing
zapier build --disable-dependency-detection
(PR) - (fix) Don't overwrite
.zapierapprc
completely (PR) - (fix) Fix "CUSTOM_FIELDS_URL is not defined" error for
zapier convert
(PR) - (improvement) Less nagging about updating packages (PR)
- (improvement) Add "github" and "search-or-create" example apps (PR, PR2)
- (improvement)
zapier promote
error messages now look better (PR) - (improvement) Remove unnecessary
.nvmrc
logic (PR) - (improvement)
zapier convert
supports static dropdown (PR) - (improvement)
zapier convert
supports auth mapping better (PR) - (improvement) Fix auth issue with full scripting methods for
zapier convert
(PR) - (improvement)
zapier convert
converts samples, too (PR) - (improvement)
zapier convert
respects auth field keys in test code (PR) - (improvement)
zapier convert
generates.env
instead of.environment
(PR) - (improvement)
zapier convert
includes input fields to test code (PR) - (improvement) Fix session auth environment variable name for
zapier convert
(PR) - (docs) FAQ about when to use placeholders or curlies (PR)
- (fix) Only require samples for non-hidden operations (PR)
- (fix) Correctly validate
children
as an array of fields (PR) - (fix) Doc rendering issue (PR)
- (docs) Add doc annotation (PR)
- (improvement) Bump Node version to 6.10.3 (PR)
- (improvement) Deprecate
.environment
in favor of.env
(PR) - (improvement) Support test framework other than Mocha (PR)
- (improvement)
z.console.log
also callsconsole.log
(PR) - (improvement) Check for object in create (PR)
- 🎉 (new) The CLI can now run, test, and build on any version of Node.js! (PR)
- 🎉 (new) Read deploy key from env if available (PR)
- (improvement) More specific error messages for invalid installs (PR)
- (fix)
zapier env
no longer throws an error on Node versions >=8.0 (PR) - (improvement)
zapier convert
creates a .gitignore for new apps (PR) - (improvement)
zapier convert
properly escapes labels and descriptions (PR, commit) - (improvement)
zapier convert
only sends a token when it exists, not before (PR) - (improvement)
zapier convert
generates .environment and gives hint about editting it (PR) - (improvement) Don't require an
id
field in tests generated byzapier convert
(PR) - (improvement)
zapier convert
adds track info to package.json (PR) - (docs) FAQ section in the README (PR)
- ❗ (improvement, breaking)
sample
is now a required field inBasicOperationSchema
and friends. See this doc for more info (PR) - ❗ (improvement, breaking)
order
has been removed fromBasicDisplaySchema
(PR)
- (improvement) Log when actions generated by a resource collide with manually defined ones (PR)
- (improvement) Properly log gzipped responses (PR)
- (Fix) Permission denied with
index.js
. - (Fix)
zapier convert
didn't escape line breaks in app description. - (Doc) Add FAQs section.
- Ensure users are authenticated before building or pushing.
- (New)
zapier convert
now supports custom auth mapping, searchOrCreates and "Send to Action Endpoint URL in JSON body" checkbox. - (New)
zapier scaffold
now also creates a test. - (New) Allow ordering static dropdowns.
- (Fix) Properly replace variables in URLs in
zapier convert
generated code. - (Fix) Fix TypeError in
http.request
patch. - (Doc) Clarify pushing doesn't reload browser automatically.
- Use working endpoints for scaffolds.
- Notify for update less often.
- Introduce Prettier into development process.
- Ensure all template code use z.JSON.parse.
- The first build made by Travis CI!
- (Fix) Repack zapier-platform-core to really fix bloated size
- (New)
zapier convert
now supports input and output custom fields. - (New) Prettify
zapier convert
generated code. - (Fix) Fix bloated size of zapier-platform-core 4.1.0 package.
- (Fix) Fix typos in docs.
- (Doc) Add 'Mocking Requests' section to docs.
- (Doc) Mark step 'order' as deprecated.
- (New)
zapier convert
now supports auth and search scripting methods. - (New) Allow to migrate users by email.
- (New) Accept changelog for app promotion.
- (Doc) Add explanation about uppercased env vars.
- Improve first promote message.
- (BREAKING) (Fix) Encode form requests with + instead of %20 by default
- (BREAKING) (Fix) Don't add content-type if there's one
- (Fix) Replace _.truncate, save memory.
- (Fix) fix: exit code 1 for only for errors
- (Fix)
zapier convert
: Escape special chars in field help text - (Fix)
zapier convert
: Normalize newlines in scripting - (New)
zapier convert
: Generate create code based on different scripting method combinations - (New)
zapier convert
: Ignore _pre_poll and _post_poll if _poll exists - (New) Customize update notification message
- (New) Allow to include a regexp of paths for the build file
- (New) Add example docs about computed fields.
- Log http(s) requests for non-client library
- Many improvements for
zapier convert
: Copy noun, Copy display label, Copy description, Copy important and hidden props, Add more tests, Converting more auths, Allowing deasync in build, Converting scripting for triggers, Support for dynamic dropdowns and search-powered fields, Adding a command for integrations test, Add basic tests for triggers, creates, and searches, Remove empty help text - Skip style check on invalid apps
- Add header to docs
- Add option to
--grep
onzapier test
- Allow invitations per version. Try
zapier help invite
for more details. - Added bundle.meta.zap.id for performSubscribe and performUnsubscribe.
- Allow modules to be objects in app definitions.
- Use "application" discrete-type instead of "binary" as default content type..
- Use un-obfuscated data when logging to stdout.
- Improved/fixed sample and scaffolding code in docs.
- Fixed typos in docs.
- Fixed node/npm dependency check for 3.x.
- Fixed URL base endpoint in docs.
- (BREAKING)
inputField
s will now start throwing errors in Schema validation if there are mutually-exclusive fields. - Added subdomain field support to CLI apps.
- Allowed file stashing within a create/action.
- Added style checks to
zapier build
. - Fixed
zapier build
on Windows.
- It's now possible to delete apps and app versions with
zapier delete
! - You'll now get a warning when doing
zapier push
orzapier upload
if your app'szapier-platform-core
version is not up-to-date. - It's now possible to skip validation when testing with
zapier test --skip-validate
! - Added docs around upgrading.
- Improved docs around authentication, migration, deprecation, and dehydration.
- Fixed
zapier logs --version=x.x.x
showingzapier --version
. - Improved error messages for some schema validation errors.
- Fixed Python error when a create, as part of a search or create, returned a list with one item (errors sooner, in core now, with a nicer message).
- Objects received via Hook triggers no longer require an
id
, and checks were improved. - Minor misc fixes.
- Connection Label is now available (
connectionLabel: '{{bundle.inputData.email}}'
insideauthentication
) - Locking is now available for
create
(shouldLock: true
inside.operation
) - Fix typos in docs
- Fix broken appTester on Windows OS.
- Require the exact version of zapier-platform-core in package.json.
- Document middleware's z object lacks z.request.
- Fix typo in session auth docs.
- (BREAKING) CLI 2.x apps run only on NodeJS
v6.10.2
in AWS Lambda. If you need to run on NodeJSv4.3.2
, use the CLI 1.x release. - (BREAKING) Delete property
searchOrCreate
from the properties of ResourceSchema. - Style checks run by default during
zapier validate
. - Validation is run during
zapier test
. - The CLI now uses update-notifier to let you know when there's a new version available.
- Rename
global
topublic
for consistency across Zapier platform.
zapier --validate
now includes the--include-style
flag to validate against style checks.- There are extra checks around return types from triggers, searches, and creates.
- Some doc typos were squashed.
- Added new Files example app with
zapier init . --template=files
. - Properly exit on node version mismatch while running
zapier test
. - Upgraded
node-fetch
incore
(fixes some edge-case issues formultipart/form-data
requests). zapier test
is now quiet by default.zapier test --debug
will output details.zapier logs --type=http --detailed
is more clearly exposed.- Fixes
searchOrCreate
schema validation error for resources withsearch
andcreate
.
- Functions in
app.afterResponse
will now get called. - Add check in middleware, to make sure creates return only 1 object.
- Fixes issue for deep object checking.
- Minor docs fixes.
z.stashFile
is no longer allowed outside ofhydrators
.- Adding analytics to the web-based documentation.
- Minor docs fixes.
- Improved
link
command UX on error/non-existing apps.
- Fixed
convert
command foroutputFields
. - Improvements on
validate-templates
andzapier test
(now supports--timeout=5000
). - Minor docs fixes.
- Use
ZAPIER_BASE_ENDPOINT
forpush
andconvert
. - Don't show command help on error.
- Minor docs fixes.
- Fix issues in Windows.
- Minor docs fixes.
- Fixes fatal error when
build
directory didn't exist. - Minor docs fixes.
- Support streamed non-ascii files in
z.stashFile
. - Minor docs fixes.
- Minor docs fixes.
- Removing beta "label".
- Minor docs fixes.
- Added
dict
property forinputFields
, to allow asking for a dictionary (key/value pair) input. - Added new REST Hooks example app with
zapier init . --template=rest-hooks
. - Fixed: Now correctly ask for line items when
children
is set.
- Added
search
property forinputFields
, to allow linking a search connector.
-
BREAKING CHANGE Removed
getResourceOperation
in creates/searches in favor ofperformGet
. -
Added support for
performList
in webhook triggers -
Fixed: Now correctly copy outputFields and samples to a trigger/search/create operation that links to a resource
- Added
performList
to hook operations.
- Documentation expanded:
- Updated
z.dehydrate()
/appTester()
/ examples to reflect the new arguments.z.dehydrate('someFunction')
must bez.dehydrate(App.hydrators.someFunction)
appTester('contact.list')
must beappTester(App.resources.contact.list.operation.perform)
- Documented fields, custom/dynamic fields, and dynamic dropdowns plus examples.
zapier env ... -remove
flag documented.
- Updated
zapier describe
now describes much more about the app - included auth info, redirect_uri, resources and all resource paths.- fixed
zapier scaffold
bug with undefinedINPUT_FIELDS
Initial release to public. Read docs here https://github.com/zapier/zapier-platform-cli.