forked from adobe/xdm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eventenvelope.schema.json
47 lines (47 loc) · 2.38 KB
/
eventenvelope.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
"meta:license": [
"Copyright 2017 Adobe Systems Incorporated. All rights reserved.",
"This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license",
"you may not use this file except in compliance with the License. You may obtain a copy",
"of the License at https://creativecommons.org/licenses/by/4.0/"
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://ns.adobe.com/xdm/common/eventenvelope",
"title": "EventEnvelope",
"meta:extends":
"https://ns.adobe.com/xdm/external/activity-streams-2/activity",
"description":
"An `EventEnvelope` is a type of `Activity` (in the sense of [W3C Activity Streams 2.0](https://www.w3.org/TR/activitystreams-core/) that applies to digital experiences in general, and to entities of the Experience Data Model in particular. It is being used to track or audit changes to core entities like assets, pages, or campaigns, but also to track observed interactions of consumers of digital experiences. These observed interactions can range from simple technical loading, to passive consumption, to active engagement. Through the `EventEnvelope`, a varied set of observable entities can be tracked in a common way, enabling the establishment of publish-subscribe or event bus systems that dispatch `EventEnvelopes` based on the metadata that is part of the envelope, without having to inspect the payload `object`.",
"definitions": {
"extra-properties": {
"properties": {
"xdm:objectType": {
"description":
"This is the type of the `object` that has been emitting this event. The value of this field MUST be exactly same as the value of the `object.type` field. Making the type available in the event envelope allows routing systems to dispatch events based on the object type without inspecting the object itself.",
"$ref":
"https://ns.adobe.com/xdm/external/activity-streams-2/type#/definitions/type"
}
}
}
},
"meta:extensible": true,
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/external/activity-streams-2/activity"
},
{
"$ref": "#/definitions/extra-properties"
},
{
"required": [
"@id",
"@type",
"activitystreams:published",
"xdm:objectType",
"activitystreams:object"
]
}
],
"meta:status": "experimental"
}