The Tessa service was very useful back in the days before ActiveStorage, but now ActiveStorage is the Rails best practice way to do things and comes batteries-included with Rails 7.
Rework the Tessa gem so that it no longer uploads to the Tessa service, but rather uploads/downloads directly to s3 via ActiveStorage. Clients would no longer have Tessa username/password credentials, but rather AWS s3 access credentials.
Then kill the Tessa app in Heroku.
[x] 1. Rework the Tessa gem so that it acts as a wrapper around ActiveStorage for new uploads, w/ fallback to the Tessa service for missing images.
[x] 2. Run a migration in an ActiveRecord job on each downstream client app that creates ActiveStorage records in the client app's Postgres for all old tessa uploads
The Tessa service was very useful back in the days before ActiveStorage, but now ActiveStorage is the Rails best practice way to do things and comes batteries-included with Rails 7.
Rework the Tessa gem so that it no longer uploads to the Tessa service, but rather uploads/downloads directly to s3 via ActiveStorage. Clients would no longer have Tessa username/password credentials, but rather AWS s3 access credentials.
Then kill the Tessa app in Heroku.
[x] 1. Rework the Tessa gem so that it acts as a wrapper around ActiveStorage for new uploads, w/ fallback to the Tessa service for missing images.
[x] 2. Run a migration in an ActiveRecord job on each downstream client app that creates ActiveStorage records in the client app's Postgres for all old tessa uploads
Media Systemthis is unnecessary[x] 3. Remove fallback to Tessa service (perhaps by just removing the TESSA_URL env var?) and test that all old assets still resolve
[x] 4. Decommision Tessa
[ ] 5. Cleanup