You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spec): DataEvent carries organizationId, the organization the record belongs to (#14635)
* feat(spec): DataEvent carries the organization the record belongs to
Adds the optional, non-empty organizationId member to DataEventSchema so a
tenant-scoped consumer (webhook fan-out, per-organization realtime
subscriber) can discriminate an event's tenant without reading the record
body. Absent = the record belongs to no organization (single posture, or an
organization-less row under a wall); present = exactly that organization.
No default, empty string refused: declared = enforced.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RbbUMnxkUnWhE4j94v8FE
* chore(spec): regenerate products for DataEvent.organizationId
gen:schema (authorable-surface/api.json) and gen:docs
(content/docs/references/api/events.mdx), as check:generated --fix proved
stale; api-surface and the JSON schema manifest were already current.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RbbUMnxkUnWhE4j94v8FE
---------
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/references/api/events.mdx
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,6 +57,7 @@ const result = BulkDataEventSchema.parse(data);
57
57
|**type**|`Enum<'data.record.created' \| 'data.record.updated' \| 'data.record.deleted'>`| ✅ | Event type |
58
58
|**object**|`string`| ✅ | Object name |
59
59
|**recordId**|`string`| ✅ | Record ID |
60
+
|**organizationId**|`string`| optional | Organization the record belongs to (its organization_id), so a tenant-scoped consumer can discriminate the event's tenant without reading the record body. Absent when the record belongs to no organization: every event on a single-posture deployment (no organization wall, nothing stamps the column), and a row that carries no organization under a walled posture (environment-wide, or an object outside the wall) — read absence as "not behind any organization wall", never as "unknown". Present = exactly that organization; never fabricated, and the empty string is refused. |
0 commit comments