Skip to main content

Integration Events

As described in Architecture Overview holi uses Google Cloud Pub/Sub to communicate asynchronously and reliably between applications.

Event Types

Currently, the following events are emitted by holi-okuna:

Event NameDescription
UserNameUpdatedEmitted when a user updates their username.
UserEmailUpdatedEmitted when a user updates their email address.
UserDeletedEmitted when a user deletes their account.
SpaceCreatedEmitted when a user creates a space.
SpaceUpdatedEmitted when a user updates a spaces attributes (e.g. name/slug)
SpaceUserAddedEmitted when a user joins a space.
SpaceUserLeftEmitted when a user leaves a space.
SpaceUserRemovedEmitted when a user is removed from a space by a space administrator.
SpaceDeletedEmitted when a space is deleted.

Currently, the only consumer of these events is holi-ocis-integration which ensures that users, their names and attributes and their rights and roles are in sync between holi (Okuna / Ory) and OwnCloud.

Event Payloads

Messages on Google Cloud Pub/Sub follow this (exemplary) structure:

{
"message": {
"data": "<BASE64_ENCODED_PAYLOAD>",
"attributes": {
"eventType": "SpaceCreated",
"eventVersion": "1.0.0"
}
},
"subscription": "projects/MY-PROJECT/subscriptions/MY-SUB"
}

For every event emitted by a holi emitter two key/value pairs are to be added to the attributes object:

  • eventType: name of the event
  • eventVersion: version of the event (uses semantic versioning)

At this point of time, there's no dedicated documentation for the data field of the event (which varies depending on eventType). Please refer to

to learn more about the payloads.

Publish/Subscribe Topics

Currently, topics are separated per environment only: okuna_$ENVIRONMENT (in which $ENVIRONMENT is either staging or production).