Skip to content

Releases: rameerez/footprinted

v0.3.1

24 Feb 16:15

Choose a tag to compare

What's New

  • Handle geo-lookup failures gracefully — footprints are still created without geo data if Trackdown.locate fails (e.g., private IPs, network errors)

What's Changed

  • Handle geo-lookup failures gracefully in async mode by @rameerez in #7

Full Changelog: v0.3.0...v0.3.1

v0.3.0

16 Feb 00:05
c67c043

Choose a tag to compare

What's New

Async mode now extracts geo data at enqueue time when request: is passed.

  • Cloudflare headers are captured before the job is enqueued
  • Background jobs no longer need MaxMind to get geo data
  • Falls back to MaxMind lookup in the job if request: wasn't passed
  • Added debug logging for geo extraction

No breaking changes — existing code works unchanged.

See CHANGELOG.md for details.

What's Changed

  • Extract geo data at enqueue time in async mode by @rameerez in #6

Full Changelog: v0.2.1...v0.3.0

v0.2.1

09 Feb 05:25

Choose a tag to compare

Summary

Fixes config.async = true which was broken since v0.2.0 — Footprinted::TrackJob was never autoloaded because the gem used a Railtie instead of an Engine. Rails only adds a gem's app/ directory to the autoload paths for Engines, not Railties.

This is a one-line fix (Railtie → Engine) with no behavior change beyond making the async mode actually work.

What's Changed

  • Add Claude Code GitHub Workflow by @rameerez in #4
  • Change Railtie to Engine so app/jobs is autoloaded by @rameerez in #5

Full Changelog: v0.2.0...v0.2.1

v0.2.0

08 Feb 23:37

Choose a tag to compare

Full rewrite of footprinted to make the gem a more generalistic event tracking gem with support for arbitrary metadata.

Warning

This release contains many breaking changes from v0.1.0.

What's new

  • New model & table: TrackableActivityFootprint, table renamed to footprints
  • Event types: event_type column categorizes events — no more one-association-per-type
  • JSONB metadata: Store arbitrary data with every event, with GIN index for containment queries
  • Performer tracking: Polymorphic performer reference to record who triggered the event
  • Extended geolocation: Region, continent, timezone, latitude, longitude (via trackdown 0.3+)
  • Generic track() method: Ad-hoc event types without needing has_trackable
  • Scopes: by_event, by_country, recent, last_days, between, performed_by
  • Async mode: Background footprint creation via Footprinted::TrackJob (ActiveJob)
  • Performance docs: JSONB query performance at scale, column promotion pattern, database compatibility (PostgreSQL / MySQL / SQLite)

Breaking changes

  • Table renamed from trackable_activities to footprints — run the new generator and migrate
  • Model renamed from Footprinted::TrackableActivity to Footprinted::Footprint
  • has_trackable now creates track_<singular>(ip:) methods instead of the old API
  • Requires trackdown ~> 0.3

Upgrade guide

  1. Update your Gemfile: gem "footprinted", "~> 0.2"
  2. Run rails generate footprinted:install to create the new migration
  3. Run rails db:migrate
  4. Replace Footprinted::TrackableActivity with Footprinted::Footprint in your code
  5. Update any direct association references to use the new table/model names

What's Changed

  • Rewrite gem: TrackableActivity -> Footprint (v0.2.0) by @rameerez in #2
  • Revamp README and gemspec for v0.2.1 by @rameerez in #3

New Contributors

Full Changelog: https://github.com/rameerez/footprinted/commits/v0.2.0