Callbacks

Developers can optionally define callbacks for events happening related to installation of their app. When a lifecycle event is fired, a POST request is made to the appropriate URL registered for the event.

Five particulars events (Install, Uninstall, Enable, Disable, Upgrade) can be registered to a callback under the callback section in App Registration. Each URL must use HTTPS to ensure data is sent securely.

πŸ“˜

Authentication

Apps can verify that the request came from Seismic using the x-seismic-signature request header, which is set with all life-cycle requests.

Validation

🚧

Signing secret

All apps using callbacks should generate a signing secret for their app.

Additional details on signing secrets can be found here .

❗️

Acknowledgement

If callbacks are utilized, a response is required within 3 seconds with a 202. Failure to respond for any reason will block the action/event from occurring.

The five events that are available include:

EventDescription
InstallOccurs when an app is installed from the app catalog by a Seismic adming.
UninstallOccurs when a Seismic admin removes an app from their tenant.
EnableOccurs when a Seismic admin enables an app. Until an app is enabled its features will be inactive -
API client
Event subscription
* Extensions
DisableOccurs when a Seismic admin disables an app. Disabling an app will deactivate all app functionality for a given tenant.
UpgradeOccurs when a Seismic admin upgrades an app.

Sample payloads

{
	"appId": "04bd6eda-4b04-4572-a744-7233ccc077cd",
	"appName": "my test app",
	"tenantId": "bd6eda-4b04-4572-a744-7233ccc077cd04",
	"tenant": "seismicapps",
	"userId": "e6f77acb-6f11-482c-822b-5dbdcc002a20",
	"userEmail": "[email protected]",
	"requestId": "de680a3a-2b96-45d8-a0f7-f6c11659e4f5",
	"version": "0.1.4",
	"type": "install",
	"timestamp": "2020-09-01T08:45:42Z"
}
{
	"appId": "04bd6eda-4b04-4572-a744-7233ccc077cd",
	"appName": "my test app",
	"tenantId": "bd6eda-4b04-4572-a744-7233ccc077cd04",
	"tenant": "seismicapps",
	"userId": "e6f77acb-6f11-482c-822b-5dbdcc002a20",
	"userEmail": "[email protected]",
	"requestId": "de680a3a-2b96-45d8-a0f7-f6c11659e4f5",
	"version": "0.1.4",
	"type": "uninstall",
	"timestamp": "2020-09-01T08:45:42Z"
}
{
	"appId": "04bd6eda-4b04-4572-a744-7233ccc077cd",
	"appName": "my test app",
	"tenantId": "bd6eda-4b04-4572-a744-7233ccc077cd04",
	"tenant": "seismicapps",
	"userId": "e6f77acb-6f11-482c-822b-5dbdcc002a20",
	"userEmail": "[email protected]",
	"requestId": "de680a3a-2b96-45d8-a0f7-f6c11659e4f5",
	"version": "0.1.4",
	"type": "enable",
	"timestamp": "2020-09-01T08:45:42Z"
}
{
	"appId": "04bd6eda-4b04-4572-a744-7233ccc077cd",
	"appName": "my test app",
	"tenantId": "bd6eda-4b04-4572-a744-7233ccc077cd04",
	"tenant": "seismicapps",
	"userId": "e6f77acb-6f11-482c-822b-5dbdcc002a20",
	"userEmail": "[email protected]",
	"requestId": "de680a3a-2b96-45d8-a0f7-f6c11659e4f5",
	"version": "0.1.4",
	"type": "disable",
	"timestamp": "2020-09-01T08:45:42Z"
}
{
	"appId": "04bd6eda-4b04-4572-a744-7233ccc077cd",
	"appName": "my test app",
	"tenantId": "bd6eda-4b04-4572-a744-7233ccc077cd04",
	"tenant": "seismicapps",
	"userId": "e6f77acb-6f11-482c-822b-5dbdcc002a20",
	"userEmail": "[email protected]",
	"requestId": "de680a3a-2b96-45d8-a0f7-f6c11659e4f5",
	"version": "0.1.4",
	"priorVersion": "0.1.2",
	"type": "upgrade",
	"timestamp": "2020-09-01T08:45:42Z"
}