Search…
Notifications
Notifications are used to subscribe to events in the platform and trigger the delivery of a message to an external delivery target.
Event
Description
Payload
Analysis failure
Emitted when an analysis fails
Analysis
Analysis success
Emitted when an analysis succeeds
Analysis
Base Job failure
Emitted when a Base job fails
BaseJob
Base Job success
Emitted when a Base job succeeeds
BaseJob
Data linked to project
Emitted when a file is linked to a project
ProjectData
Data transfer stalled
Emitted when data transfer hasn't progressed in the past 2 minutes
DataTransfer
Data transfer success
Emmitted when a data transfer is marked as Succeeded
DataTransfer
Data updates
Emitted when data transfer status changes
ProjectData
Data deleted
Emitted when data is deleted
ProjectData
Sample completed
Emitted when a sample is marked as completed
ProjectSample
Sample linked to a project
Emitted when a sample is linked to a project
ProjectSample
Delivery Target
Description
Value
Mail
E-mail delivery
E-mail Address
Sqs
AWS SQS Queue
AWS SQS Queue URL
Sns
AWS SNS Topic
AWS SNS Topic ARN
Http
Webhook (POST request)
URL

Filtering

Notification subscriptions will trigger for all events matching the configured event type. A filter may be configured on a subscription to limit the matching strategy to only those event payloads which match the filter.
The filter expressions leverage the JsonPath library for describing the matching pattern to be applied to event payloads. The filter must be in the format [?(<expression>)].

Example

The Analysis Success event delivers a JSON event payload matching the Analysis data model (as output from the API to retrieve a project analysis).
1
{
2
"id": "0c2ed19d-9452-4258-809b-0d676EXAMPLE",
3
"timeCreated": "2021-09-20T12:23:18Z",
4
"timeModified": "2021-09-20T12:43:02Z",
5
"ownerId": "15d51d71-b8a1-4b38-9e3d-74cdfEXAMPLE",
6
"tenantId": "022c9367-8fde-48fe-b129-741a4EXAMPLE",
7
"reference": "210920-1-CopyToolDev-9d78096d-35f4-47c9-b9b6-e0cbcEXAMPLE",
8
"userReference": "210920-1",
9
"pipeline": {
10
"id": "20261676-59ac-4ea0-97bd-8a684EXAMPLE",
11
"timeCreated": "2021-08-25T01:49:41Z",
12
"timeModified": "2021-08-25T01:49:41Z",
13
"ownerId": "15d51d71-b8a1-4b38-9e3d-74cdfEXAMPLE",
14
"tenantId": "022c9367-8fde-48fe-b129-741a4EXAMPLE",
15
"code": "CopyToolDev",
16
"description": "CopyToolDev",
17
"language": "CWL",
18
"pipelineTags": {
19
"technicalTags": ["Demo"]
20
}
21
},
22
"status": "SUCCEEDED",
23
"startDate": "2021-09-20T12:23:21Z",
24
"endDate": "2021-09-20T12:43:00Z",
25
"summary": "",
26
"finishedSteps": 0,
27
"totalSteps": 1,
28
"tags": {
29
"technicalTags": [],
30
"userTags": [],
31
"referenceTags": []
32
}
33
}
Copied!
The below examples demonstrate various filters operating on the above event payload:
  • Filter on a pipeline, with a code that starts with ‘Copy’. You’ll need a regex expression for this:
    [?($.pipeline.code =~ /Copy.*/)]
  • Filter on status (note that the Analysis success event is only emitted when the analysis is successful):
    [?($.status == 'SUCCEEDED')]
  • Filter on pipeline, having a technical tag “Demo":
    [?('Demo' in $.pipeline.pipelineTags.technicalTags)]
  • Combination of multiple expressions using &&. It's best practice to surround each individual expression with paranthees:
    [?(($.pipeline.code =~ /Copy.*/) && $.status == 'SUCCEEDED')]

Custom Events

Custom events enable triggering notification subscriptions using event types beyond the system-defined event types. When creating a custom subscription, a custom event code may be specified to use within the project. Events may then be sent to the specified event code using a POST API with the request body specifying the event payload.