Releases: rameerez/footprinted
v0.3.1
v0.3.0
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
Full Changelog: v0.2.1...v0.3.0
v0.2.1
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
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:
TrackableActivity→Footprint, table renamed tofootprints - Event types:
event_typecolumn 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
performerreference 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 needinghas_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_activitiestofootprints— run the new generator and migrate - Model renamed from
Footprinted::TrackableActivitytoFootprinted::Footprint has_trackablenow createstrack_<singular>(ip:)methods instead of the old API- Requires
trackdown ~> 0.3
Upgrade guide
- Update your Gemfile:
gem "footprinted", "~> 0.2" - Run
rails generate footprinted:installto create the new migration - Run
rails db:migrate - Replace
Footprinted::TrackableActivitywithFootprinted::Footprintin your code - 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