LTD Keeper needs to purge Fastly when an Edition is rebuilt. Currently the surrogate-key for the build is also used to cover editions. This means that the key needed to purge an edition is the same as that for an build. Hence purging an edition means that the system needs to purge the surrogate key of the previous build.
We're seeing situations where the surrogate key that Keeper is purging is not the one that needs to be purged. A more robust configuration would be for each edition to have a stable surrogate-key that can be unambiguously purged.
This ticket covers the following work:
- Diagnose the issue.
- Enable Alembic migrations for Flask (Flask-Migrate)
- Add a surrogate-key column to the Edition model
- Change the S3 copy rebuild code to change the surrogate-key header
- Change the rebuild code to purge based on the edition's surrogate-key.