{"slug": "additive-vercel-4-new-request-properties", "title": "[Additive] Vercel: 4 new request properties", "summary": "Vercel expanded the set of values returned by its request properties, adding new event types such as \"ai-security-review\", \"firewall-conditional-bypass-updated\", \"integration-secret-rotated\", \"messageboard-channel-created\" and \"response_code\", plus new project-git-credential attestation events. The change touches 18 locations, including the condition type fields under GET /v1/security/firewall/config and GET /v1/security/firewall/config/{configVersion}, and Vercel labels it additive even though it breaks exhaustive switches, strict parsers and generated client enums that lack a branch for the new values. The new \"response_code\" condition type appears in firewall config condition groups, so code with a default branch that throws on unexpected types will fail until it handles the added values.", "body_md": "Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.\n\ncan 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\"\n\nProducer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.\n\ncan now return \"project-git-credential-attestation-created\", \"project-git-credential-attestation-deleted\", \"project-git-credential-grant-attestation-revoked\", \"project-git-credential-grant-attested\"\n\nProducer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.\n\ncan now return \"messageboard-private-project-granted\", \"messageboard-private-project-revoked\", \"messageboard-project-granted\", \"messageboard-project-revoked\"\n\nProducer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.\n\ncan now return \"messageboard-channel-created\", \"messageboard-channel-updated\", \"messageboard-private-channel-created\", \"messageboard-private-channel-updated\"\n\nProducer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.\n\ncan now return \"response_code\"\n\n18 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\n\nCode that breaks\n\n```\nswitch (response.active.rules[0].conditionGroup[0].conditions[0].type) {\n  // existing branches …\n  // no branch for \"response_code\"\n  default:\n    throw new Error(\"unexpected type\");\n}\n```\n\nBreakingdirection flip: their tools call this safe", "url": "https://wpnews.pro/news/additive-vercel-4-new-request-properties", "canonical_source": "https://driftwatch.et/apis/vercel#cmvze3jmq08w90dlu0tzw69yw-request-fields", "published_at": "2026-11-01 05:15:19+00:00", "updated_at": "2026-11-02 15:23:56.027234+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents"], "entities": ["Vercel"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/additive-vercel-4-new-request-properties", "markdown": "https://wpnews.pro/news/additive-vercel-4-new-request-properties.md", "text": "https://wpnews.pro/news/additive-vercel-4-new-request-properties.txt", "jsonld": "https://wpnews.pro/news/additive-vercel-4-new-request-properties.jsonld"}}