[0.3.0] - 2026-07-24
Fixed
- Username/password authentication against self-hosted instances actually works now. Since the connection memoization was introduced,
authenticatebuilt (and memoized) the Faraday connection in order to POST/api/auth/login— before@access_tokenexisted. Faraday bakes headers in at connection build time, so every request after a successful login went out without anAuthorizationheader and failed with 401. The token-based flow was unaffected, which is how this survived: docs and tests exercised logins, never "login then call an endpoint".authenticatenow drops the memoized connection after storing the token so the next request rebuilds it with the Bearer header, and the newtest/integration/authentication_flow_test.rbpins the full lifecycle (login → authorized request → connection reuse without re-login). authenticateraisesUmami::AuthenticationErrorwhen the login response is a 200 without atokenfield, instead of leaving a client that 401s on every call with no hint why.
Changed
- HTTP 401 and 403 responses now raise
Umami::AuthenticationErrorinstead of the undifferentiatedUmami::ClientError, giving long-lived clients a re-authentication signal (expired/revoked token, insufficient permissions). To keep existingrescue Umami::APIErrorhandlers working — they used to catch these asClientError—AuthenticationErroris now a subclass ofUmami::APIError(previously it subclassedUmami::Errordirectly). Code matchingUmami::ClientErrorspecifically for 401/403 must switch toUmami::AuthenticationError.
[0.2.0] - 2026-02-02
Added
New Endpoint Categories:
- Me endpoints:
me,my_teams,my_websites- Get current user info and resources - Admin endpoints:
admin_users,admin_websites,admin_teams- Admin-only endpoints for self-hosted - Sessions endpoints (8 new methods):
website_sessions- Get sessions within a time rangewebsite_sessions_stats- Get summarized session statisticswebsite_sessions_weekly- Get session counts by hour of weekdaywebsite_session- Get individual session detailswebsite_session_activity- Get session activitywebsite_session_properties- Get session propertieswebsite_session_data_properties- Get session data property countswebsite_session_data_values- Get session data value counts
- Realtime endpoint:
realtime- Get live stats for last 30 minutes - Links endpoints:
links,link,update_link,delete_link - Pixels endpoints:
pixels,pixel,update_pixel,delete_pixel - Reports endpoints (13 new methods):
- CRUD:
reports,create_report,report,update_report,delete_report - Specialized:
report_attribution,report_breakdown,report_funnel,report_goals,report_journey,report_retention,report_revenue,report_utm
- CRUD:
- Website stats endpoints:
website_events_series- Get events series with time bucketingwebsite_metrics_expanded- Get detailed metrics with engagement data
- Events endpoints:
website_events_list- Get paginated event detailswebsite_event_data- Get data for individual eventwebsite_event_data_events- Get event data names and countswebsite_event_data_fields- Get event data fieldswebsite_event_data_properties- Get event propertieswebsite_event_data_values- Get event data valueswebsite_event_data_stats- Get aggregated event stats
Configuration:
request_timeout=setter - users can now customize timeout viaUmami.configureblock- New
UMAMI_CLOUD_SEND_URLconstant for the Cloud send endpoint URL - Optional
user_agent:parameter tosend_eventmethod for custom User-Agent strings
Documentation:
- Configuration Options table in README with all available options and defaults
- Report Types reference table in README
Test Suite:
- Comprehensive Minitest test suite with 152 tests
- VCR cassettes for all read API endpoints (33 cassettes)
- CI workflow for Ruby 3.3, 3.4, 4.0
- ~72% line and branch coverage
Changed
- Updated
website_metricsdocumentation with all current metric types - Updated user role documentation to include
view-onlyoption - Updated team role documentation with
team-manager,team-member,team-view-onlyroles - Updated
send_eventdocumentation withtagandidparameters - Improved filter parameter documentation across all endpoints
- Added optional
idparameter tocreate_userfor UUID control - Report endpoints use
startDate/endDate(ISO 8601) instead ofstartAt/endAt(timestamps) - Added
windowparameter toreport_funnelfor days between steps - Added
timezoneparameter (required) toreport_retention - Updated
unitparameter to includeminuteoption - Made
timezonerequired forwebsite_sessions_weekly - Made
startAt/endAtrequired forwebsite_session_activity
Fixed
- Critical: Fixed
send_eventto use correct Umami Cloud URL (https://cloud.umami.is/api/send) - Critical: Added mandatory
User-Agentheader tosend_eventrequests (fixes #2) - Fixed
send_eventto not send unnecessaryAuthorizationheader - Fixed event data endpoint paths from
/api/event-data/...to/api/websites/:websiteId/event-data/... - Fixed
verify_tokento use POST method instead of GET - Fixed
website_event_data_statsreturn type documentation
Deprecated
event_data_events- Usewebsite_event_data_eventsinsteadevent_data_fields- Usewebsite_event_data_fieldsinsteadevent_data_stats- Usewebsite_event_data_statsinsteadusers- Useadmin_usersinstead
[0.1.3] - 2025-02-19
- Bug fixes and improvements
[0.1.0] - 2024-07-22
- Initial release