Notification Types v1
Edition: SaaS Enterprise
IMPORTANT: Notification types are versioned but the content might change overtime. Changes within a version will not change in a backwards incompatible way. We might add more event types or new properties. Fields such as notificationLevel and notificationType could get more possible values. So make sure to that your implementation is able to ignore properties/values which cannot be recognized.
Supported notification types:
Notification Content
Field | Type | Notes |
---|---|---|
sourceId | UUID | Mandatory id generated on source side to make surrogate unique id for tracking event |
tenant | STRING | Identifier of the tenant the notification originated from. |
installation | STRING | Installation service name the notification originated from. |
environment | STRING | Environment name the notification originated from. |
notificationId | UUID | Identifier of the notification. |
notificationChannel | UUID | Identifier of the notification channel. |
notificationLevel | Severity of the notification. | |
notificationType | Type of the notification. | |
notificationTime | TIMESTAMP | Timestamp of the notification. |
notificationSource | STRING | Notification event source. |
contentText | STRING | Notification message in text format. |
contentType | STRING | Notification event type. |
contentLink | STRING | Link to the notified content. |
NOTIFICATION_LEVEL
Notification level describes how important/critical event is.
Value | Notes |
---|---|
INFO | Information level event. Usually normal operation without any kinds of problems. |
WARN | Warning level event. Usually there has not be real error but there is something that might look like potential problem. |
ERROR | Error level event. This indicates some problem which caused normal flow of process to fail. |
NOTIFICATION_TYPE
Notification type gives idea of what kind of notification it is about.
Value | Notes | Availability |
---|---|---|
OPERATIONAL | Operational event. E.g. event related to operation processes like workflow running start and end events. | Generally Available |
SECURITY | Security event. E.g. notifications related to security related findings/notifications etc. | Private Preview |
ADMINISTRATIVE | Administrative event. E.g. events related to admin level changes | Private Preview |
MAINTENANCE | Maintenance events. E.g. information of future or ongoing maintenance. | Private Preview |
AUDIT | Audit events. E.g. information which user has done which events to which objects | Private Preview |
DeploymentStart (Private Preview)
Event is triggered when deployment starts
Field | Type | Notes |
---|---|---|
deploymentId | UUID | Id of deployment |
deploymentUrl | STRING | Url pointing to designer deployment page |
deploymentCreateTime | TIMESTAMP | Creation time of deployment. E.g. when user started deploy in ui. |
deploymentStartTime | TIMESTAMP | Start time of deployment. When actual deploy process get started. This might be later than create time. |
deploymentCreateUser | STRING | Email of user who initiated/created deployment process. In case of autodeploy this user can be inherited from promotion/commit user |
deploymentInstanceId | UUID | Id of target instance |
deploymentInstanceName | STRING | Name of target instance |
deploymentType | Type of deployment | |
deploymentDescription | STRING | Description given to deployment |
DEPLOYMENT_TYPE
Deployment type tells how deployment has been triggered.
Value | Notes |
---|---|
AUTOMATIC | Auto deploy after promotion |
MANUAL | Manual deploy triggered by user |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "INFO",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/Deployment",
"contentText": "Deployment 294c875f-4e5a-46f8-b4b6-45da61b1d209 started for instance default by foo@bar.com",
"contentType": "DeploymentStart",
"contentLink": "<https://external.design.datahub.s1234567.saas.agiledataengine.com/modeler/deployments?environmentFilter\u003dRUNTIME\u0026instanceFilter\u003dbc43033e-fe37-494a-8b31-c160ce03bed6\u0026deploymentId\u003d294c875f-4e5a-46f8-b4b6-45da61b1d209>",
"content": {
"deploymentId": "3c5524ff-ef27-4daf-9976-7dc0748db32f",
"deploymentUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"deploymentCreateTime": "2022-01-13T12:50:05.358Z",
"deploymentStartTime": "2022-01-13T12:50:15.358Z",
"deploymentCreateUser": "deployer@foo.bar.fi",
"deploymentInstanceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"deploymentInstanceName": "default",
"deploymentType": "MANUAL",
"deploymentDescription": "Feature x is deployed"
}
}
DeploymentEnd (Private Preview)
Event is triggered when deployment finishes.
Field | Type | Notes |
---|---|---|
deploymentId | UUID | Id of deployment |
deploymentUrl | STRING | Url pointing to designer deployment page |
deploymentCreateTime | TIMESTAMP | Creation time of deployment. E.g. when user started deploy in ui. |
deploymentStartTime | TIMESTAMP | Start time of deployment. When actual deploy process get started. This might be later than create time. |
deploymentCreateUser | STRING | Email of user who initiated/created deployment process. In case of autodeploy this user can be inherited from promotion/commit user |
deploymentInstanceId | UUID | Id of target instance |
deploymentInstanceName | STRING | Name of target instance |
deploymentType | Type of deployment | |
deploymentDescription | STRING | Description given to deployment |
deploymentState | End state of deployment process | |
deploymentEndTime | TIMESTAMP | End time of deployment. When actual deploy process finished. |
deploymentResult | STRING | Textual result information of deployment process. |
DEPLOYMENT_TYPE
Deployment type tells how deployment has been triggered.
Value | Notes |
---|---|
AUTOMATIC | Auto deploy after promotion |
MANUAL | Manual deploy triggered by user |
DEPLOYMENT_STATE
Deployment state is differentiating how finished deployment ended.
Value | Notes |
---|---|
PARTIAL_SUCCESS | Deployment was partially successful. |
SUCCESS | Deployment was successful. |
SUCCESS_WITH_WARNINGS | Deployment was successful but there are some warnings which should be taken care. |
SKIPPED | Deployment was skipped because there is another deployment in queue which would anyway override this one. |
FAILED | Deployment failed. |
ABORTED | Deployment was aborted. Usually this happens if deployment process is somehow not proceeding correctly and/or underneath services has restarted. |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "INFO",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/Deployment",
"contentText": "Deployment 294c875f-4e5a-46f8-b4b6-45da61b1d209 ended for instance default with state SUCCESS by foo@bar.com",
"contentType": "DeploymentEnd",
"contentLink": "<https://external.design.datahub.s1234567.saas.agiledataengine.com/modeler/deployments?environmentFilter\u003dRUNTIME\u0026instanceFilter\u003dbc43033e-fe37-494a-8b31-c160ce03bed6\u0026deploymentId\u003d294c875f-4e5a-46f8-b4b6-45da61b1d209>",
"content": {
"deploymentId": "3c5524ff-ef27-4daf-9976-7dc0748db32f",
"deploymentUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"deploymentCreateTime": "2022-01-13T12:50:05.358Z",
"deploymentStartTime": "2022-01-13T12:50:15.358Z",
"deploymentCreateUser": "deployer@foo.bar.fi",
"deploymentInstanceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"deploymentInstanceName": "default",
"deploymentType": "MANUAL",
"deploymentDescription": "Feature x is deployed",
"deploymentState": "SUCCESS",
"deploymentEndTime": "2022-01-13T12:50:20.358Z",
"deploymentResult": "All ok."
}
}
WorkflowStart
Event is triggered when workflow run starts.
Field | Type | Notes |
---|---|---|
workflowName | STRING | Name of workflow/schedule |
workflowUrl | STRING | Url to dagger to this specific workflow run |
workflowStartTime | TIMESTAMP | Workflow start time |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "INFO",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/WorkflowOrchestration",
"contentText": "Workflow MY_DAG started",
"contentType": "WorkflowStart",
"contentLink": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"content": {
"workflowName": "MY_DAG",
"workflowUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"workflowStartTime": "2022-01-13T12:50:15.358Z"
}
}
WorkflowSuccess
Event is triggered when workflow run finish successfully.
Field | Type | Notes |
---|---|---|
workflowName | STRING | Name of workflow/schedule |
workflowUrl | STRING | Url to dagger to this specific workflow run |
workflowStartTime | TIMESTAMP | Workflow start time |
workflowEndTime | TIMESTAMP | Workflow end time |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "INFO",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/WorkflowOrchestration",
"contentText": "Workflow MY_DAG finished successfully",
"contentType": "WorkflowSuccess",
"contentLink": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"content": {
"workflowName": "MY_DAG",
"workflowUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"workflowStartTime": "2022-01-13T12:50:15.358Z",
"workflowEndTime": "2022-01-13T12:50:20.358Z"
}
}
WorkflowFailure
Event is triggered when workflow run fails.
Field | Type | Notes |
---|---|---|
workflowName | STRING | Name of workflow/schedule |
workflowUrl | STRING | Url to dagger to this specific workflow run |
workflowStartTime | TIMESTAMP | Workflow start time |
workflowEndTime | TIMESTAMP | Workflow end time |
workflowError | STRING | Textual error message |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "ERROR",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/WorkflowOrchestration",
"contentText": "Workflow MY_DAG failed",
"contentType": "WorkflowFailure",
"contentLink": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"content": {
"workflowName": "MY_DAG",
"workflowUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"workflowStartTime": "2022-01-13T12:50:15.358Z",
"workflowEndTime": "2022-01-13T12:50:20.358Z",
"workflowError": "Some problem..."
}
}
SmokeTestFailure
Event is triggered if smoke test fails during workflow run.
Field | Type | Notes |
---|---|---|
workflowName | STRING | Name of workflow/schedule |
workflowUrl | STRING | Url to dagger to this specific workflow run |
workflowStartTime | TIMESTAMP | Workflow start time |
loadName | STRING | Load name where smoke test was run |
smokeName | STRING | Smoke test name |
smokeTestFailureReason | STRING | Smoke test failure reason |
smokeType | Smoke test type | |
smokeStartTime | TIMESTAMP | Smoke test start time |
smokeEndTime | TIMESTAMP | Smoke test end time |
SMOKE_TYPE
Smoke type differentiates how smoke affects workflow run.
Value | Notes |
---|---|
BLACK | Black smoke test. This fails actual workflow run. |
GREY | Grey smoke test. This doesn't fail workflow run and is more like informative/warning. |
An example
{
"sourceId": "cff37c8d-7294-4480-95d8-1e1891536e9a",
"tenant": "s1234567",
"installation": "datahub",
"environment": "datahub",
"notificationId": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationChannel": "14c2bed2-c2e8-4e98-b623-ec4f9e0dc35d",
"notificationLevel": "ERROR",
"notificationType": "OPERATIONAL",
"notificationTime": "2022-01-13T12:50:05.358Z",
"notificationSource": "AdeCore/WorkflowOrchestration",
"contentText": "Test: assert_rows_in_stage - Type: SMOKE_BLACK, SmokeSQL: select 1 from integtest.integ_test_manifest having count(*) !\u003d 3",
"contentType": "SmokeTestFailure",
"contentLink": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"content": {
"workflowName": "MY_DAG",
"workflowUrl": "<https://external.runtime.datahub.s1234567.agiledataengine.com/dagger/graph?dag_id\u003dMY_DAG\u0026execution_date\u003d2022-01-12T10%3A16%3A58.119141%2B00%3A00>",
"workflowStartTime": "2022-01-13T12:50:15.358Z",
"loadName": "load_integ_test_manifest_from_source_entity_01",
"smokeName": "assert_rows_in_stage",
"smokeTestFailureReason": "Test: assert_rows_in_stage - Type: SMOKE_BLACK, SmokeSQL: select 1 from integtest.integ_test_manifest having count(*) !\u003d 3",
"smokeType": "BLACK",
"smokeStartTime": "2022-01-13T12:50:15.358Z",
"smokeEndTime": "2022-01-13T12:50:20.358Z"
}
}