# [Additive] Vercel: 4 new request properties

> Source: <https://driftwatch.et/apis/vercel#cmvze3jmq08w90dlu0tzw69yw-request-fields>
> Published: 2026-11-01 05:15:19+00:00

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

can now return "ai-security-review", "firewall-conditional-bypass-updated", "integration-previous-secret-revoked", "integration-secret-rotated", "team-runtime-cache-updated", "vercel-agent-security-finding-created"

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

can now return "project-git-credential-attestation-created", "project-git-credential-attestation-deleted", "project-git-credential-grant-attestation-revoked", "project-git-credential-grant-attested"

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

can now return "messageboard-private-project-granted", "messageboard-private-project-revoked", "messageboard-project-granted", "messageboard-project-revoked"

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

can now return "messageboard-channel-created", "messageboard-channel-updated", "messageboard-private-channel-created", "messageboard-private-channel-updated"

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

can now return "response_code"

18 places: GET /v1/security/firewall/config · active.rules[].conditionGroup[].conditions[].type, GET /v1/security/firewall/config · active.rulesets[].conditionGroup[].conditions[].type, GET /v1/security/firewall/config · draft.rulesets[].conditionGroup[].conditions[].type, GET /v1/security/firewall/config · versions[].rules[].conditionGroup[].conditions[].type, GET /v1/security/firewall/config · versions[].rulesets[].conditionGroup[].conditions[].type, GET /v1/security/firewall/config/{configVersion} · conditions[].conditionGroup[].conditions[].type +12 more

Code that breaks

```
switch (response.active.rules[0].conditionGroup[0].conditions[0].type) {
  // existing branches …
  // no branch for "response_code"
  default:
    throw new Error("unexpected type");
}
```

Breakingdirection flip: their tools call this safe
