Room Relay Endpoint v1¶
Source schema: doc/schemas/room-relay-endpoint.v1.schema.json
Durable, Agora-signed selection fact for a Room WSS relay. The fact carries no live payload and grants no authority by itself. sealed-sender-key-v1 is valid only with federation-service placement.
Governing Basis¶
Project Lineage¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
|
room/id |
yes |
ref: room.v1.schema.json#/$defs/room_id |
|
seq/no |
yes |
integer | |
relay/epoch |
yes |
integer | |
relay/subject |
yes |
ref: room.v1.schema.json#/$defs/subject |
|
relay/placement |
yes |
enum: requester, room-member, federation-service |
|
endpoint/url |
yes |
string | |
crypto/profile |
yes |
enum: member-visible-tls-v1, sealed-sender-key-v1 |
|
ordering/profile |
yes |
const: relay-total-order-v1 |
|
selection/evidence-refs |
yes |
array | |
issued-at |
yes |
string | |
expires-at |
yes |
string | |
authority/subject |
yes |
ref: room.v1.schema.json#/$defs/subject |
|
extensions |
no |
ref: room.v1.schema.json#/$defs/extensions |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"crypto/profile": {
"const": "sealed-sender-key-v1"
}
},
"required": [
"crypto/profile"
]
}
Then:
{
"properties": {
"relay/placement": {
"const": "federation-service"
}
}
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
room/id¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/room_id
seq/no¶
- Required:
yes - Shape: integer
relay/epoch¶
- Required:
yes - Shape: integer
relay/subject¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/subject
relay/placement¶
- Required:
yes - Shape: enum:
requester,room-member,federation-service
endpoint/url¶
- Required:
yes - Shape: string
crypto/profile¶
- Required:
yes - Shape: enum:
member-visible-tls-v1,sealed-sender-key-v1
ordering/profile¶
- Required:
yes - Shape: const:
relay-total-order-v1
selection/evidence-refs¶
- Required:
yes - Shape: array
issued-at¶
- Required:
yes - Shape: string
expires-at¶
- Required:
yes - Shape: string
authority/subject¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/subject
extensions¶
- Required:
no - Shape: ref:
room.v1.schema.json#/$defs/extensions