synapse.federation.units module — Synapse 1.0 documentation

# synapse.federation.units module

Defines the JSON structure of the protocol units used by the server to server protocol.

class `synapse.federation.units.` `Edu`(**kwargs)

  Bases: `synapse.util.jsonobject.JsonEncodedObject`

  An Edu represents a piece of data sent from one homeserver to another.

  In comparison to Pdus, Edus are not persisted for a long time on disk, are not meaningful beyond a given pair of homeservers, and don’t have an internal ID or previous references graph.

  `internal_keys` = ['origin', 'destination']
  `required_keys` = ['edu_type']
  `valid_keys` = ['origin', 'destination', 'edu_type', 'content']

class `synapse.federation.units.` `Transaction`(transaction_id=None, pdus=[], **kwargs)

  Bases: `synapse.util.jsonobject.JsonEncodedObject`

  A transaction is a list of Pdus and Edus to be sent to a remote home server with some extra metadata.

  Example transaction:

      {
          "origin": "foo",
          "prev_ids": ["abc", "def"],
          "pdus": [
              ...
          ],
      }

  static `create_new`(pdus, **kwargs)

    Used to create a new transaction. Will auto fill out transaction_id and origin_server_ts keys.

  `internal_keys` = ['transaction_id', 'destination']
  `required_keys` = ['transaction_id', 'origin', 'destination', 'origin_server_ts', 'pdus']
  `valid_keys` = ['transaction_id', 'origin', 'destination', 'origin_server_ts', 'previous_ids', 'pdus', 'edus']