id.sifa.meeting
Schema Diff
+7 -2
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#externalRecordRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.meeting:body.event" }
- AddedEdge AddedEdge { src: "id.sifa.meeting:body", tgt: "id.sifa.meeting:body.event", kind: "prop", name: Some("event") }
- AddedEdge AddedEdge { src: "id.sifa.meeting:body.event", tgt: "id.sifa.defs#externalRecordRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.defs#externalRecordRef" }AddedVertex { vertex_id: "id.sifa.meeting:body.event" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.meeting:body", tgt: "id.sifa.meeting:body.event", kind: "prop", name: Some("event") }
- Non-breaking: AddedEdge { src: "id.sifa.meeting:body.event", tgt: "id.sifa.defs#externalRecordRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Attestation of a face-to-face meeting with another user. Both participants create this record in their own PDS. The meeting is only displayed when both records exist (mutual confirmation). Either party can delete their record to remove the meeting.",
5
+
"description": "Attestation of a face-to-face meeting with another user. Both participants create this record in their own PDS. The meeting is only displayed when both records exist (mutual confirmation). Either party can delete their record to remove the meeting. Like every record in a repository, it is public, including the optional event.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"createdAt": {
10
10
"format": "datetime",
11
11
"type": "string"
12
12
},
13
+
"event": {
14
+
"description": "Optional reference to the community.lexicon.calendar.event where the meeting took place. Each participant decides whether their own record carries it, so consumers show the event only when both records reference the same event AT-URI. Resolve and match by AT-URI; the CID is an optional integrity hint, since organizers can edit event records. The event is chosen when the meeting code is shown and committed to in meetingToken: consumers that can verify the token ignore an event that does not match it. Omit the field to record the meeting without an event.",
15
+
"ref": "id.sifa.defs#externalRecordRef",
16
+
"type": "ref"
17
+
},
13
18
"meetingToken": {
14
-
"description": "Server-issued JWT proving both parties were authenticated at the time of meeting. Contains both DIDs, timestamp, and server signature.",
19
+
"description": "Server-issued JWT proving both parties were authenticated at the time of meeting. Contains both DIDs, timestamp, and server signature. When the meeting code was shown for an event, the token also commits to that event.",
15
20
"maxLength": 512,
16
21
"type": "string"
17
22
},
18
23
"subject": {
19
24
"description": "DID of the other participant in the meeting.",
20
25
"format": "did",
21
26
"type": "string"
22
27
}
23
28
},
24
29
"required": [
25
30
"subject",
26
31
"meetingToken",
27
32
"createdAt"
28
33
],
29
34
"type": "object"
30
35
},
31
36
"type": "record"
32
37
}
33
38
},
34
39
"description": "Attestation of a verified face-to-face meeting between two users, requiring mutual confirmation.",
35
40
"id": "id.sifa.meeting",
36
41
"lexicon": 1
37
42
}