Prevent deletion of objects that are used in Scenarios
The stability of our workloads is very important to us. We now have significant dependencies in our Dataiku platform so we are very sensitive to any changes that can impact our scheduled scenarios. After being burnt multiple times we have identified a series of user actions that can result in scenarios failing without the user being warned of the potential impact. In general these relate to users deleting a Dataiku object which is referenced somewhere else in Dataiku. While we understand that Dataiku does not provide an object integrity check when deleting objects we think certain situations warrant for integrity check to prevent users from hurting themselves and causing an undesired and unexpected scenario failure. This idea is to add an object integrity check to prevent the following actions:
- Deletion of a dataset when the dataset is used in a Dataset Change trigger
- Deletion of a dataset when the dataset is used in a Build step in a scenario
- Deletion of a scenario when the scenario is used in a Trigger after Scenario trigger
- Deletion of a connection when the connection is used on a SQL Query Change trigger
- Deletion of a messaging channel when the when the channel is used in a scenario
In the above cases the user or the API call should be prevented from doing the object deletion under all the references have been removed. This will prevent unexpected scenario failures and make our platform more stable.