Skip to content

v0.7.0

Latest

Choose a tag to compare

@rdmurphy rdmurphy released this 09 Mar 23:00
· 38 commits to main since this release

Klaxon lives

This release updates Klaxon's entire stack and completely rebuilds the bookmarklet to avoid CSP errors. In spite of all of this no changes to the database schema have been made. This new release is already live on The Marshall Project's Klaxon instance. If you were running successfully on v0.6.0 like us, your database should be happy with v0.7.0.

Framework & runtime upgrades

  • Ruby: 3.1.4 → 3.4.8
  • Rails: 7.0 → 8.1
  • All gems updated; many unused ones removed

Bookmarklet rewrite

The bookmarklet has been completely rebuilt. The old iframe-based approach was broken for years due to CSP restrictions. It has been replaced with a new implementation that lets users pick an element on the page with visual feedback, then redirects to Klaxon to finish. The selection logic has been vastly improved as well, resulting in shorter/more-optimal selectors when possible.

However, there is one major caveat: Users will need to re-install the bookmarklet after upgrading. It was impossible to make this change backwards-compatible due to how the legacy bookmarklet loaded.

Docker images

Klaxon now automatically builds and publishes Docker images to the GitHub Container Registry (GHCR). Images are built and pushed on every push to main (tagged latest) and on published releases (tagged with the semver version). Images are available at ghcr.io/themarshallproject/klaxon and provide a ready-to-run option.

Klaxon is still BYO database and configuration, however! You will need to prepare an environment to run this Docker image.

Still on Heroku? Read this!

If your Heroku app was created before this release, you need to add the Node.js buildpack once before your next deploy so Heroku can generate the bookmarklet. In Heroku’s Settings tab, add heroku/nodejs above heroku/ruby in the Buildpacks section (or run heroku buildpacks:add --index 1 heroku/nodejs from the CLI). New apps created from the Deploy button already get both buildpacks via app.json.