The main change here is finally moving to an actual database (Postgres in this case) instead of writing objects to the filesystem. This allows us to more easily inspect the data in the case of issues and makes use of some of our existing database infrastructure.
JDBI is used to provide a fairly light and friendlier API around JDBC, primarily using Extensions and its declarative API. Flyway is used for migrations which are run on startup, though the plugin is also loaded in gradle.
Just as a note, the gradle migrations run as alttextbot-migrator
and the app migrations run as alttextbot
which is the same user running all queries. This is used by us for controlling access rights between one-off migration runs and the core app queries and statements in case of exploits. You can feel free to use alttextbot
for the sake of simplicity since you have to worry less then about access grants.
All database files were migrated to postgres with the use of a one-off executed during the update to 1.3.0 so no alt-texting should be lost!
Full Changelog: 1.2.2...1.3.0