| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- $schema: 'http://json-schema.org/draft-07/schema#'
- $id: 'https://safe.threema.ch/schema/1.json'
- description: Threema Safe backup format
- type: object
- properties:
- info:
- type: object
- properties:
- version:
- type: integer
- description: Currently always `1`
- enum:
- - 1
- device:
- type: string
- description: A string with device information
- examples:
- - 1.2.3/de_DE
- required:
- - version
- user:
- type: object
- properties:
- privatekey:
- type: string
- description: The private key, 32 bytes base64 encoded
- examples:
- - ZWNob2VjaG9lY2hvZWNob2VjaG9lY2hvZWNob2VjaG8=
- nickname:
- type: string
- description: The public nickname
- examples:
- - julia
- profilePic:
- type: string
- description: |-
- Base64 encoded byte array. Image format: JPEG, q=60, maxsize=400x400,
- no metadata.
- profilePicRelease:
- type: array
- description: |-
- Array of Threema IDs. If profile picture distribution is disabled, the
- array should contain a single `null` value. If the profile picture
- should be distributed to everyone, the array should contain a single
- `"*"` value.
- items:
- type:
- - string
- - 'null'
- minLength: 1
- maxLength: 8
- pattern: '^([0-9A-Z\*][0-9A-Z]{7}|\*)$'
- examples:
- - ECHOECHO
- - '*'
- - null
- minItems: 1
- links:
- type: array
- description: Linked contact details (e.g. phone number or email)
- items:
- type: object
- properties:
- type:
- type: string
- description: The link type
- enum:
- - mobile
- - email
- name:
- type: string
- description: A link description, e.g. "private" or "office".
- value:
- type: string
- description: |-
- The email or phone number (in E.164 format without leading +).
- examples:
- - '41704567890'
- - hello@example.com
- required:
- - type
- - value
- required:
- - privatekey
- contacts:
- type: array
- description: Contacts
- items:
- type: object
- properties:
- identity:
- type: string
- description: Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- publickey:
- type: string
- description: |-
- Base64 encoded public key. Required for contacts with a verification
- level 2 and for revoked contacts.
- examples:
- - ZWNob2VjaG9lY2hvZWNob2VjaG9lY2hvZWNob2VjaG8=
- createdAt:
- type: integer
- description: |-
- When this contact was added, unix-ish timestamp in milliseconds.
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1524489122916
- verification:
- type: integer
- description: |-
- The verification level. 0 = unverified, 1 = server verified, 2 =
- fully verified.
- enum:
- - 0
- - 1
- - 2
- workVerified:
- type: boolean
- description:
- Whether this contact was verified by the Threema Work admin
- default: false
- hidden:
- type: boolean
- description: |-
- Whether the contact is directly acquainted and should be visible
- (false) or the contact was introduced by a group and should be
- hidden until a direct conversation has been initiated (true)
- default: false
- firstname:
- type: string
- description: First name
- default: ''
- examples:
- - Peter
- lastname:
- type: string
- description: Last name
- default: ''
- examples:
- - Muster
- nickname:
- type: string
- description: Nickname without ~ prefix
- default: ''
- examples:
- - pete
- lastUpdate:
- type:
- - integer
- - 'null'
- description: |-
- When the conversation with this contact was last updated, unix-ish
- timestamp in milliseconds (or null)
- default: null
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1524489122916
- - null
- private:
- type: boolean
- description: |-
- Whether the conversation with this contact should be protected
- (_private chat_)
- default: 'false'
- readReceipts:
- type: integer
- description: |-
- Whether to send read receipts. 0 = use default, 1 = send, 2 = don't
- send.
- enum:
- - 0
- - 1
- - 2
- typingIndicators:
- type: integer
- description: |-
- Whether to send typing indicators. 0 = use default, 1 = send, 2 =
- don't send.
- enum:
- - 0
- - 1
- - 2
- required:
- - identity
- - verification
- groups:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- description: |-
- Unique group identity (8 bytes represented as a lowercase hex
- string)
- examples:
- - 0123456789abcdef
- creator:
- type: string
- description: The group creator's Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- groupname:
- type: string
- description: Group name
- examples:
- - Foodies
- createdAt:
- type: integer
- description: |-
- When the group has been created locally, unix-ish timestamp in
- milliseconds
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1459269133488
- members:
- type: array
- description: |-
- Group members. If the list does not include the user itself, the
- group is marked as _left_. Should be empty if `deleted=true`.
- items:
- type: string
- description: Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- deleted:
- type: boolean
- description: |-
- Whether the group has been deleted. In case this is set to `true`,
- the list of members must be ignored.
- lastUpdate:
- type:
- - integer
- - 'null'
- description: |-
- When the conversation with this group was last updated, unix-ish
- timestamp in milliseconds (or null)
- default: null
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1524489122916
- - null
- private:
- type: boolean
- description: |-
- Whether the conversation with this group should be protected
- (_private chat_)
- default: 'false'
- required:
- - id
- - creator
- - members
- - deleted
- distributionlists:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- description: |-
- Unique ID of the distribution list (8 bytes represented as a
- lowercase hex string)
- examples:
- - 0102030405060708
- name:
- type: string
- description: Distribution list name
- examples:
- - Friends
- createdAt:
- type: integer
- description: |-
- When the distribution list has been created locally, unix-ish
- timestamp in milliseconds
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1459269133488
- members:
- type: array
- description: Distribution list members
- items:
- type: string
- description: Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- lastUpdate:
- type:
- - integer
- - 'null'
- description: |-
- When the conversation with this distribution list was last updated,
- unix-ish timestamp in milliseconds (or null)
- default: null
- minimum: 0
- maximum: 18446744073709552000
- examples:
- - 1524489122916
- - null
- private:
- type: boolean
- description: |-
- Whether the conversation of this distribution list should be
- protected (_private chat_)
- default: 'false'
- required:
- - name
- - members
- settings:
- type: object
- properties:
- syncContacts:
- type: boolean
- default: false
- blockUnknown:
- type: boolean
- default: false
- readReceipts:
- type: boolean
- default: true
- sendTyping:
- type: boolean
- default: true
- threemaCalls:
- type: boolean
- default: true
- relayThreemaCalls:
- type: boolean
- default: false
- disableScreenshots:
- type: boolean
- default: false
- incognitoKeyboard:
- type: boolean
- default: false
- blockedContacts:
- type: array
- description: Array of blocked Threema IDs
- items:
- type: string
- description: Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- syncExcludedIds:
- type: array
- description: Array of Threema IDs excluded from synchronization
- items:
- type: string
- description: Threema ID
- minLength: 8
- maxLength: 8
- pattern: '[0-9A-Z\*][0-9A-Z]{7}'
- examples:
- - ECHOECHO
- recentEmojis:
- type: array
- description: Array of recently used emoji (UTF8 encoded)
- items:
- type: string
- description: Emoji bytes
- examples:
- - 🐱
- required:
- - syncContacts
- required:
- - info
- - user
- - settings
|