The project repository aims to manage SaaS events from SaaS providers for ease of decoupled SaaS event testing.
Below shows a simple architecture diagram to listen SaaS events from SaaS providers(e.g. One Drive, Box, OAuth, etc):
Key Identifiers:
<Notification ID> ~ represents the unique identifier to subscribe to SaaS Service and fundamentatal as the identifier will be used to poll for events.
<Access Key> ~ represents the access key to Event Manager service for basic authentication.
Steps involved:
- Client service subscribes to SaaS Service with POST Event Manager Service callback url.
Example:
{
"callbackUrl" : "https://<hostname>/event/api/callback/<Notification ID>?key=<Access Key>"
}
- Client service starts polling for events to Event Manager Service via GET Event Manager Service Endpoint.
Example:
GET "https://<hostname>/event/api/callback/<Notification ID>?key=<Access Key>"
- SaaS Service received events from the desired call to action.
- SaaS Service will callback with the given POST Event Manager Service callback url.
Example:
{
"callbackUrl" : "https://<hostname>/event/api/callback/<Notification ID>?key=<Access Key>"
}
- Event Manager Service receives the SaaS event and adds into In-Memory Cache(entry expiry of 10 minutes) for usages.
- Client services will receive the SaaS event during the polling.