salesforce_core_pubsubapi 0.16.0

Generated Salesforce Pub/Sub API gRPC client (used by salesforce_core)
Documentation
# Pub/Sub API Examples - Utility Code


## ChangeEventHeaderUtility.py
Because the Pub/Sub API is a binary API, delivered events are formatted as raw
Avro binary and sometimes contain fields that are not plaintext-readable. This
manifests in Change Data Capture events, causing them to look different from
how they are delivered when subscribing via Streaming API. 

For example, a Change Data Capture  event received via Pub/Sub API might look
like this:

```
{'ChangeEventHeader': 
	{
		...
		'nulledFields': [],
		'diffFields': [],
		'changedFields': ['0x650004E0']
	},
 ...
}
```

In this example, `changedFields` is encoded as a bitmap string. This method is
more space efficient than using a list of field names. A bit set to 1 in the
`changedFields` bitmap value indicates that the field at the corresponding
position in the Avro schema was changed. More information about bitmap fields
can be found in [Event Deserialization Considerations](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/event-deserialization-considerations.html) in the Pub/Sub API documentation.

We have provided this example to demonstrate how bitmap values can be decoded
so that they are human-readable and you can process the event by using the
values in the bitmap fields.