Commit Graph
6827 Commits
Author SHA1 Message Date
Mike Cao 450a48c23c Update dependencies and add security overrides 2026-09-11 20:39:58 -07:00
Mike Cao a3a7d4914b Harden API test Docker setup and stabilize coverage fixtures 2026-09-11 19:22:28 -07:00
Mike Cao 2a5ef9d9e8 Merge pull request #4528 from dongwonmoon/codex/session-activity-exists
Use correlated EXISTS for PostgreSQL session activity data
2026-09-10 22:49:02 -07:00
Mike Cao fe19a4fbb4 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-09-10 21:19:44 -07:00
Mike Cao 99faddbbb6 Publish MCP with versioned API client dependency 2026-09-10 21:19:31 -07:00
Mike Cao f718b8a0cf Merge pull request #4523 from dongwonmoon/codex/visitor-count-order
perf(postgres): avoid sorting rows for visitor counts
2026-09-10 20:39:09 -07:00
Mike Cao b7031eaa16 Merge pull request #4421 from bm1016bm-svg/codex/support-data-distinct-id
Support distinct ID tracker attribute
2026-09-10 20:30:50 -07:00
Mike Cao 411bebe6b2 Merge pull request #4444 from flamelin/add-twd-currency
Add TWD (New Taiwan Dollar) to the revenue currency list
2026-09-10 20:27:43 -07:00
Mike Cao 5e021558f6 Merge pull request #4516 from Alphapin/add-isk-currency
Add ISK (Icelandic Króna) to revenue currencies
2026-09-10 20:25:23 -07:00
Mike Cao d72fc216ea Merge pull request #4520 from jamalkamaladdin/feat/az-locale
Add Azerbaijani language names and locale strings
2026-09-10 20:22:09 -07:00
Mike Cao cd0f4fe2f4 Merge pull request #4496 from justadityaraj/fix/4489-preserve-regex-commas
Keep commas in search filter values
2026-09-10 20:20:23 -07:00
Mike Cao 97ba22623c Add MCP tools for funnels, goals, segments, annotations, and performance metrics 2026-09-09 23:36:55 -07:00
Mike Cao e0e60cbcb1 Add date range, event, and session analytics tools to MCP 2026-09-09 23:27:35 -07:00
Mike Cao 667d718047 Route legacy report APIs through compatibility handlers 2026-09-09 23:11:55 -07:00
Mike Cao 6c8d065e21 Make Umami MCP binary executable 2026-09-09 23:01:53 -07:00
Mike Cao ce4fe65457 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-09-09 22:58:33 -07:00
Mike Cao 06f8f37836 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-09-09 21:54:48 -07:00
Mike Cao 4fbaa5300d docs(api): deprecate report routes and document migration compatibility 2026-09-09 19:28:03 -07:00
Mike Cao 7c4406bad0 feat(api): publish feature contracts and migrate SDK and MCP 2026-09-09 19:23:21 -07:00
Mike Cao 007919b173 refactor(ui): use feature analytics and saved definition routes 2026-09-09 18:59:08 -07:00
Mike Cao e202b740a1 feat(api): split performance and UTM analytics datasets 2026-09-09 18:55:35 -07:00
Mike Cao 8c17658ac1 feat(api): add saved funnel and goal resources and stats 2026-09-09 18:54:05 -07:00
Mike Cao f28fb0108a feat(api): add website-scoped analytics GET routes 2026-09-09 18:53:22 -07:00
dongwonmoon 1faf55d72a Use correlated EXISTS for PostgreSQL session activity data 2026-09-10 10:49:35 +09:00
Mike Cao 1d7874b7d9 Remove obsolete OAuth migration files 2026-09-09 15:26:29 -07:00
Mike Cao 2b7eb29a0e Gate MCP endpoint behind MCP_ENABLED flag 2026-09-09 15:24:51 -07:00
Mike Cao b185837063 Remove OAuth authorization flows and use API key authentication for MCP 2026-09-09 15:22:15 -07:00
Francis Cao 819e1c7256 feat: require explicit opt-in for MCP and OAuth registration 2026-09-09 15:16:30 -07:00
Mike Cao 15a1f0918d Update dependencies and lockfile versions 2026-09-08 11:52:18 -07:00
Francis Cao 16acac5530 fix website select error and delete board website errors. 2026-09-08 10:28:54 -07:00
Francis Cao 4580cb6179 preserve tooltip css 2026-09-08 09:46:51 -07:00
dongwonmoon 1ee36860c4 Avoid sorting PostgreSQL visitor count queries 2026-09-08 15:35:49 +09:00
Mike Cao 9fb7bacee6 Rename package scripts to colon-based conventions and update build, seed, and API client references 2026-09-07 17:47:36 -07:00
Mike Cao 6156387251 Generate OpenAPI field descriptions and validate generated clients in CI 2026-09-07 17:30:56 -07:00
Mike Cao 9eef6f22c9 Prevent event details from wrapping in table rows 2026-09-07 10:37:22 -07:00
Mike Cao 9ff1ecb6dd Migrate UI styles to Zen theme tokens and preserve brand colors 2026-09-07 10:28:16 -07:00
Jamal db644ae2b7 Add Azerbaijani language names and locale strings 2026-09-07 12:05:47 +04:00
Mike Cao 0f187dcac1 Document API operations with concise endpoint descriptions 2026-09-06 23:36:53 -07:00
Mike Cao e2f7cd9488 Fix MCP CLI packaging and update React UI dependencies 2026-09-06 21:33:22 -07:00
Mike Cao 9c78131671 Update API version to 3.3.1 and replace classnames with cn 2026-09-06 20:58:02 -07:00
Mike Cao 8b9ba7cce9 Merge pull request #4519 from umami-software/testing
Add API integration test suite with Postgres and ClickHouse coverage
2026-09-06 20:49:39 -07:00
Mike Cao 7627c36642 Guard API tests against destructive non-loopback targets 2026-09-06 20:41:22 -07:00
Mike Cao 4e47e350bf Run API tests serially and support external targets without stale coverage logs 2026-09-06 20:11:15 -07:00
Mike Cao e18769e8cf Add API integration test suite with Postgres and ClickHouse coverage 2026-09-06 16:42:53 -07:00
Mike Cao 42c5a53650 Merge pull request #4490 from justadityaraj/fix/page-selector-dev
Keep typed page paths selectable in reports
2026-09-05 22:41:30 -07:00
Mike Cao d7bf253363 Merge pull request #4515 from umami-software/feat/mcp-api-client
Add OAuth-protected MCP server with generated API client and OpenAPI contracts
2026-09-05 19:41:58 -07:00
Mike Cao 162487eca1 Remove rate limiting from OAuth registration and MCP endpoints
Drop the per-IP registration limiter and the per-user MCP limiter along
with the shared in-memory/Redis helper. Request throttling is an
infrastructure concern (reverse proxy, CDN) rather than something each
endpoint should reimplement.
2026-09-05 19:20:56 -07:00
Mike Cao d2b4aa174e Rate limit dynamic client registration per source address
Replace the process-wide registration counter used without Redis with a
shared per-key fixed-window limiter, so one requester can no longer
exhaust the registration budget for every other client on the process.
The in-memory fallback is bounded (expired windows are swept, then the
oldest keys are shed) so memory stays constant under key churn.

Also fixes checkMcpRateLimit inverting redis.rateLimit's result: it
resolves true once the counter reaches its threshold, so with Redis the
MCP endpoint was denying requests below the limit and allowing those
above it. Both call sites now share the same limiter and semantics.
2026-09-05 17:57:20 -07:00
Mike Cao 67449d76ef Harden OAuth metadata fetching and make token rotation transactional 2026-09-05 14:09:33 -07:00
Magnús Bergsson 2cfd5421eb Add ISK (Icelandic Króna) to revenue currencies 2026-09-05 15:05:51 +00:00