213 строки
5.0 KiB
JSON
213 строки
5.0 KiB
JSON
{
|
|
"title":"FxA Push Payload schema",
|
|
"description":"This schema defines what is acceptable to send as a payload data with the Push API from the FxA servers to a device connected to FxA",
|
|
"$schema":"http://json-schema.org/draft-04/schema#",
|
|
"type":"object",
|
|
"anyOf":[
|
|
{ "$ref":"#/definitions/deviceConnected" },
|
|
{ "$ref":"#/definitions/deviceDisconnected" },
|
|
{ "$ref":"#/definitions/profileUpdated" },
|
|
{ "$ref":"#/definitions/collectionsChanged" },
|
|
{ "$ref":"#/definitions/passwordChanged" },
|
|
{ "$ref":"#/definitions/passwordReset" },
|
|
{ "$ref":"#/definitions/accountDestroyed" }
|
|
],
|
|
"definitions":{
|
|
"deviceConnected":{
|
|
"required":[
|
|
"version",
|
|
"command",
|
|
"data"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer",
|
|
"description":"The version of this push payload data instance. Bump this if you make changes to any part of this schema."
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"description":"Helps the receiving device discriminate payloads",
|
|
"enum":[
|
|
"fxaccounts:device_connected"
|
|
]
|
|
},
|
|
"data":{
|
|
"type":"object",
|
|
"required":[
|
|
"deviceName"
|
|
],
|
|
"properties":{
|
|
"deviceName":{
|
|
"type":"string",
|
|
"description":"The name of the device who joined this account"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"deviceDisconnected":{
|
|
"required":[
|
|
"version",
|
|
"command",
|
|
"data"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"fxaccounts:device_disconnected"
|
|
]
|
|
},
|
|
"data":{
|
|
"type":"object",
|
|
"required":[
|
|
"id"
|
|
],
|
|
"properties":{
|
|
"id":{
|
|
"type":"string",
|
|
"description":"The id of the device who was disconnected remotely"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"profileUpdated":{
|
|
"required":[
|
|
"version",
|
|
"command"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"fxaccounts:profile_updated"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"collectionsChanged":{
|
|
"required":[
|
|
"version",
|
|
"command",
|
|
"data"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"sync:collection_changed"
|
|
]
|
|
},
|
|
"data":{
|
|
"type":"object",
|
|
"required":[
|
|
"collections"
|
|
],
|
|
"properties":{
|
|
"collections":{
|
|
"type":"array",
|
|
"minItems":1,
|
|
"uniqueItems":true,
|
|
"description":"A list of collections that were changed",
|
|
"items":{
|
|
"enum":[ "addons", "bookmarks", "history", "forms", "prefs",
|
|
"tabs", "passwords", "clients" ]
|
|
}
|
|
},
|
|
"reason":{
|
|
"type":"string",
|
|
"enum":["sendtab", "firstsync"],
|
|
"description":"Event that lead to this push notification"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"passwordChanged":{
|
|
"required":[
|
|
"version",
|
|
"command"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"fxaccounts:password_changed"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"passwordReset":{
|
|
"required":[
|
|
"version",
|
|
"command"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"fxaccounts:password_reset"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"accountDestroyed":{
|
|
"required":[
|
|
"version",
|
|
"command",
|
|
"data"
|
|
],
|
|
"properties":{
|
|
"version":{
|
|
"type":"integer"
|
|
},
|
|
"command":{
|
|
"type":"string",
|
|
"enum":[
|
|
"fxaccounts:account_destroyed"
|
|
]
|
|
},
|
|
"data":{
|
|
"type":"object",
|
|
"required":[
|
|
"uid"
|
|
],
|
|
"properties":{
|
|
"uid":{
|
|
"type":"string",
|
|
"description":"The UID of the account which was destroyed"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|