There are ways in which you can call the authoring_api that leads the DB to be broken. For example, before we fixed it, you were able to:
- Create a container like a Unit
- Create a new ContainerVersion, but NOT a new UnitVersion
- Now, app code will see the ContainerVersion and assume it has a
.unit_version, causing a 500
- There's no way out of this state without modifying MySQL yourself
AC: Scan through authoring_api and ensure that any "invalid" operation raises an exception rather than putting the DB in a bad state.