Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
52 lines
2.9 KiB
JavaScript
52 lines
2.9 KiB
JavaScript
'use strict';
|
|
|
|
const makeSchema = require('../utils/makeSchema');
|
|
|
|
module.exports = makeSchema({
|
|
id: '/AppFlagsSchema',
|
|
description: 'Codifies high-level options for your integration.',
|
|
type: 'object',
|
|
properties: {
|
|
skipHttpPatch: {
|
|
description:
|
|
"By default, Zapier patches the core `http` module so that all requests (including those from 3rd-party SDKs) can be logged. Set this to true if you're seeing issues using an SDK (such as AWS).",
|
|
type: 'boolean',
|
|
},
|
|
skipThrowForStatus: {
|
|
description:
|
|
'Starting in `core` version `10.0.0`, `response.throwForStatus()` was called by default. We introduced a per-request way to opt-out of this behavior. This flag takes that a step further and controls that behavior integration-wide **for requests made using `z.request()`**. Unless they specify otherwise (per-request, or via middleware), [Shorthand requests](https://github.com/zapier/zapier-platform/blob/main/packages/cli/README.md#shorthand-http-requests) _always_ call `throwForStatus()`. `z.request()` calls can also ignore this flag if they set `skipThrowForStatus` directly. It is important to note that for oauth2 or session auths with `authRefresh:true`, `401` status codes will throw a `RefreshAuthError` regardless of `skipThrowForStatus`, and will need to be handled manually if intervention is required.',
|
|
type: 'boolean',
|
|
},
|
|
throwForThrottlingEarly: {
|
|
description:
|
|
'Starting in `core` version `18.0.0`, 429 (throttling) responses throw a `ThrottledError` before `afterResponse` middleware runs by default. Set this flag to `true` to preserve the old behavior where `afterResponse` middleware can see and handle 429 responses. This flag can be overridden per-request by setting `throwForThrottlingEarly` directly on the request options.',
|
|
type: 'boolean',
|
|
},
|
|
cleanInputData: {
|
|
description:
|
|
'If true, Zapier removes empty strings, `null`, `undefined`, and empty Arrays or objects from `bundle.inputData` recursively before passing it to your `perform*` function. If you want to handle empty values yourself in your code, explicitly set this to false. This is a global flag that affects all the triggers and actions in your integration. The `cleanInputData` flag in `operation` takes precedence over this one.',
|
|
type: 'boolean',
|
|
},
|
|
},
|
|
additionalProperties: false,
|
|
examples: [
|
|
{
|
|
skipHttpPatch: true,
|
|
skipThrowForStatus: false,
|
|
throwForThrottlingEarly: true,
|
|
},
|
|
{
|
|
skipHttpPatch: false,
|
|
skipThrowForStatus: true,
|
|
throwForThrottlingEarly: false,
|
|
},
|
|
{ throwForThrottlingEarly: true },
|
|
{},
|
|
],
|
|
antiExamples: [
|
|
{ example: { foo: true }, reason: 'Invalid key.' },
|
|
{ example: { skipHttpPatch: 'yes' }, reason: 'Invalid value.' },
|
|
{ example: { skipThrowForStatus: 'no' }, reason: 'Invalid value.' },
|
|
{ example: { throwForThrottlingEarly: 'yes' }, reason: 'Invalid value.' },
|
|
],
|
|
});
|