umami-compass 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -9
- package/SECURITY.md +2 -2
- package/dist/api/client.d.ts +1 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +76 -19
- package/dist/api/client.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -6
- package/dist/config.js.map +1 -1
- package/dist/mcp/insights-utils.d.ts +206 -0
- package/dist/mcp/insights-utils.d.ts.map +1 -0
- package/dist/mcp/insights-utils.js +505 -0
- package/dist/mcp/insights-utils.js.map +1 -0
- package/dist/mcp/modules/core.d.ts.map +1 -1
- package/dist/mcp/modules/core.js +14 -6
- package/dist/mcp/modules/core.js.map +1 -1
- package/dist/mcp/modules/events.d.ts.map +1 -1
- package/dist/mcp/modules/events.js +3 -3
- package/dist/mcp/modules/events.js.map +1 -1
- package/dist/mcp/modules/heatmaps.d.ts.map +1 -1
- package/dist/mcp/modules/heatmaps.js +3 -2
- package/dist/mcp/modules/heatmaps.js.map +1 -1
- package/dist/mcp/modules/insights.d.ts +3 -0
- package/dist/mcp/modules/insights.d.ts.map +1 -0
- package/dist/mcp/modules/insights.js +963 -0
- package/dist/mcp/modules/insights.js.map +1 -0
- package/dist/mcp/modules/performance.d.ts.map +1 -1
- package/dist/mcp/modules/performance.js +5 -3
- package/dist/mcp/modules/performance.js.map +1 -1
- package/dist/mcp/modules/replay.d.ts.map +1 -1
- package/dist/mcp/modules/replay.js +3 -2
- package/dist/mcp/modules/replay.js.map +1 -1
- package/dist/mcp/modules/reports.d.ts.map +1 -1
- package/dist/mcp/modules/reports.js +71 -19
- package/dist/mcp/modules/reports.js.map +1 -1
- package/dist/mcp/modules/revenue.d.ts.map +1 -1
- package/dist/mcp/modules/revenue.js +2 -2
- package/dist/mcp/modules/revenue.js.map +1 -1
- package/dist/mcp/modules/sessions.d.ts.map +1 -1
- package/dist/mcp/modules/sessions.js +4 -4
- package/dist/mcp/modules/sessions.js.map +1 -1
- package/dist/mcp/report-utils.d.ts.map +1 -1
- package/dist/mcp/report-utils.js +2 -1
- package/dist/mcp/report-utils.js.map +1 -1
- package/dist/mcp/result.d.ts +13 -1
- package/dist/mcp/result.d.ts.map +1 -1
- package/dist/mcp/result.js +88 -2
- package/dist/mcp/result.js.map +1 -1
- package/dist/mcp/schemas.d.ts +1185 -20
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +182 -21
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/traffic-segmentation.d.ts +82 -0
- package/dist/mcp/traffic-segmentation.d.ts.map +1 -0
- package/dist/mcp/traffic-segmentation.js +256 -0
- package/dist/mcp/traffic-segmentation.js.map +1 -0
- package/dist/server-info.d.ts +32 -0
- package/dist/server-info.d.ts.map +1 -0
- package/dist/server-info.js +34 -0
- package/dist/server-info.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +152 -31
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/server.json +9 -4
package/README.md
CHANGED
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
**Open-source MCP server for Umami Analytics — Cloud and self-hosted.**
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|
|
|
7
7
|
[](https://github.com/webcredo/umami-compass/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/umami-compass)
|
|
9
9
|
[](LICENSE)
|
|
10
|
+
[](https://ko-fi.com/P5Z8234QNW)
|
|
10
11
|
|
|
11
12
|
**Distribution:** [`umami-compass` on npm](https://www.npmjs.com/package/umami-compass) · [`io.github.webcredo/umami-compass` in the official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.webcredo%2Fumami-compass)
|
|
12
13
|
|
|
13
14
|
Umami Compass is a secure, read-only [Model Context Protocol](https://modelcontextprotocol.io/) server for [Umami Analytics](https://umami.is/). It gives MCP clients accurate Umami 3.2 analytics without exposing a database or allowing arbitrary network requests.
|
|
14
15
|
|
|
15
|
-
Version `0.
|
|
16
|
+
Version `0.3.0` is the current source release. See [Compatibility](#compatibility) before using it with older Umami versions.
|
|
16
17
|
|
|
17
18
|
> The `npx` examples follow the stable npm release channel and check it whenever the MCP process starts. For source-based evaluation, clone this repository, run `pnpm install --frozen-lockfile && pnpm build`, and use `node /absolute/path/to/umami-compass/dist/cli.js` as the MCP command.
|
|
18
19
|
|
|
@@ -23,8 +24,9 @@ Existing Umami MCP servers each cover part of the problem, but our July 2026 rev
|
|
|
23
24
|
- Correct auth for both products: `x-umami-api-key` for Umami Cloud and Bearer/login auth for self-hosted instances.
|
|
24
25
|
- Umami 3.2-aware responses, including both `pageviews` and `sessions`, Core Web Vitals, funnels, journeys, attribution, retention, revenue, bounded heatmaps, and replay metadata.
|
|
25
26
|
- Read-only by construction: every tool declares MCP safety annotations; no create, update, delete, raw HTML, or arbitrary URL tool exists.
|
|
26
|
-
- Defense in depth: fixed upstream origin, HTTPS policy, website
|
|
27
|
-
-
|
|
27
|
+
- Defense in depth: fixed upstream origin, HTTPS policy, website and team allowlists, range/page/response-byte caps, request timeout, cancellation propagation, and redacted errors.
|
|
28
|
+
- Decision-ready insights: bounded portfolio overviews, traffic-change evidence, release-impact analysis, tracking-health audits, and website resolution without arbitrary API access.
|
|
29
|
+
- Agent-friendly output: machine-readable `structuredContent`, a common status/range/truncation envelope, two resources, and six guided prompts.
|
|
28
30
|
- Contributor-friendly architecture: endpoint modules, dependency-injected HTTP, a central access policy, ADRs, and real MCP integration tests.
|
|
29
31
|
|
|
30
32
|
See the dated [landscape review](docs/research/umami-mcp-landscape-2026-07.md) for the evidence and methodology.
|
|
@@ -41,7 +43,7 @@ npx --yes --prefer-online umami-compass@latest
|
|
|
41
43
|
|
|
42
44
|
`@latest` selects the stable npm channel and `--prefer-online` makes npm check the registry even when package metadata is cached. npm still reuses the cached package when that exact release is already present. Updates take effect the next time the MCP process starts; an already running local server cannot replace itself.
|
|
43
45
|
|
|
44
|
-
Use `umami-compass@next` instead to opt into preview releases. For reproducible CI or centrally managed environments, pin an exact release and omit the online check, for example `npx --yes umami-compass@0.
|
|
46
|
+
Use `umami-compass@next` instead to opt into preview releases. For reproducible CI or centrally managed environments, pin an exact release and omit the online check, for example `npx --yes umami-compass@0.3.0`. Never use the preview channel for an unattended production setup.
|
|
45
47
|
|
|
46
48
|
### Umami Cloud
|
|
47
49
|
|
|
@@ -84,15 +86,18 @@ With `UMAMI_API_KEY` and no URL, the API root defaults to `https://api.umami.is/
|
|
|
84
86
|
|
|
85
87
|
`UMAMI_WEBSITE_IDS` is an optional safety allowlist, not a credential. Replace the example UUID with a website ID from Umami (or from `list_websites`), separate multiple IDs with commas, or remove the variable to discover every website visible directly or through a team membership.
|
|
86
88
|
|
|
89
|
+
`UMAMI_TEAM_IDS` is a strict team boundary for discovery and direct website/report access. When it is set, user-owned websites without one of the selected team IDs are excluded. If `UMAMI_WEBSITE_IDS` is also set, a website must pass both allowlists.
|
|
90
|
+
|
|
87
91
|
Do not commit real credentials. Prefer a dedicated view-only Umami account and the client/OS secret store when available.
|
|
88
92
|
|
|
89
93
|
## Tools
|
|
90
94
|
|
|
91
|
-
The least-privilege default `core
|
|
95
|
+
The least-privilege default enables `core,insights`: eight primitive aggregate tools plus six decision-ready aggregate workflows. Row-level events, sessions, replay, heatmaps, and other more sensitive modules remain opt-in.
|
|
92
96
|
|
|
93
97
|
| Toolset | Tools | Default |
|
|
94
98
|
| --- | --- | --- |
|
|
95
|
-
| `core` | `list_websites`, `get_website`, `get_website_stats`, `get_pageviews`, `get_metrics`, `get_active_visitors`, `get_website_date_range` | Yes |
|
|
99
|
+
| `core` | `get_server_info`, `list_websites`, `get_website`, `get_website_stats`, `get_pageviews`, `get_metrics`, `get_active_visitors`, `get_website_date_range` | Yes |
|
|
100
|
+
| `insights` | `resolve_website`, `get_portfolio_overview`, `explain_traffic_change`, `compare_traffic_series`, `analyze_release_impact`, `tracking_health_check` | Yes |
|
|
96
101
|
| `events` | `list_events`, `get_event_stats`, `get_event_series` | No |
|
|
97
102
|
| `sessions` | `list_sessions`, `get_session_stats`, `get_session`, `get_session_activity` | No |
|
|
98
103
|
| `performance` | `get_web_vitals`, `get_performance_breakdown` for LCP, INP, CLS, FCP, and TTFB | No |
|
|
@@ -101,7 +106,30 @@ The least-privilege default `core` set exposes seven aggregate tools. Row-level
|
|
|
101
106
|
| `replay` | `list_replays` (metadata only; never raw rrweb payloads) | No |
|
|
102
107
|
| `heatmaps` | `get_heatmap` (click/scroll pages and bounded detail points) | No |
|
|
103
108
|
|
|
104
|
-
Set `UMAMI_TOOLSETS=all` or a comma-separated subset. The default has
|
|
109
|
+
Set `UMAMI_TOOLSETS=all` or a comma-separated subset. The default has 14 aggregate tools; `all` has 37. Multi-website insights are bounded to 50 websites with four concurrent website workers. High-cardinality report, performance, heatmap, channel fan-out, and activity results carry explicit limits and truncation metadata.
|
|
110
|
+
|
|
111
|
+
Successful tool responses preserve the existing `data` field and add a common `meta` envelope. Depending on the request it includes `dataStatus`, `emptyReason`, `websiteId`, `requestedRange`, `timezone`, and `truncated`, allowing clients to distinguish a valid empty range from a disabled feature or a truncated result.
|
|
112
|
+
|
|
113
|
+
The server exposes `umami://websites` and the sanitized `umami://capabilities` resource. `get_server_info` returns the same local version, enabled toolsets, limits, and feature flags as a tool. Guided prompts cover an analytics report, weekly portfolio briefing, traffic investigation, release impact, tracking health, and conversion audit; each prompt is registered only when its required toolset is enabled. Scheduling a recurring briefing remains the MCP client's responsibility; the local stdio server does not run a background scheduler or send messages.
|
|
114
|
+
|
|
115
|
+
### Filters, direct traffic, channels, and traffic quality
|
|
116
|
+
|
|
117
|
+
Plain string filters remain compatible. Structured filters add `equals`, `not_equals`, `contains`, `not_contains`, `regex`, `not_regex`, `is_empty`, and `is_not_empty`. Equality operators accept an array for native `IN` or `NOT IN` behavior:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"filters": {
|
|
122
|
+
"referrer": { "operator": "is_empty" },
|
|
123
|
+
"path": { "operator": "not_equals", "value": ["/admin", "/internal"] }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
For compatibility, `{"referrer": ""}` also isolates direct rows. Compass uses Umami's neutral referrer-domain column for structured and empty referrer filters so direct/internal traffic is not accidentally removed by Umami's external-referrer behavior.
|
|
129
|
+
|
|
130
|
+
`explain_traffic_change`, `analyze_release_impact`, and `run_breakdown_report` accept `filters.channel`, including `direct`. `run_breakdown_report` also accepts `channel` as a field, so requests such as `channel × device` work. Umami 3.2 does not natively expose channel as a filter or breakdown field; Compass derives these results through bounded expanded-metric fan-out and reports candidate coverage, omitted rows, request count, and truncation under `dataQuality`.
|
|
131
|
+
|
|
132
|
+
Traffic-change, release-impact, comparison-series, and breakdown results conservatively flag referral-spam candidates using the combined pattern of a generated-looking domain, very high bounce rate, near-zero visit duration, and minimum traffic. Set `trafficSegment` to `human` to exclude only those candidates with native negative filters. The preset fails closed when both periods cannot be assessed. Findings remain heuristics, not a definitive bot classification, and include their evidence and thresholds.
|
|
105
133
|
|
|
106
134
|
## Configuration
|
|
107
135
|
|
|
@@ -120,7 +148,8 @@ Authentication variables have no default. Configure only one of the three modes
|
|
|
120
148
|
- `UMAMI_URL` — self-hosted instance origin; `/api` is appended. With API-key auth and no URL, the default is the Umami Cloud API root.
|
|
121
149
|
- `UMAMI_API_URL` — exact API root; takes the place of `UMAMI_URL`. No default.
|
|
122
150
|
- `UMAMI_WEBSITE_IDS` — comma-separated website UUID allowlist. Defaults to every site visible directly or through a team membership.
|
|
123
|
-
- `
|
|
151
|
+
- `UMAMI_TEAM_IDS` — comma-separated strict team UUID allowlist for discovery and direct website/report access; at most 25 IDs. User-owned websites are excluded while it is set, and `UMAMI_WEBSITE_IDS` is intersected when both are configured.
|
|
152
|
+
- `UMAMI_TOOLSETS` — comma-separated toolsets or `all`. Available values are `core`, `insights`, `events`, `sessions`, `performance`, `reports`, `revenue`, `replay`, and `heatmaps`. Defaults to `core,insights`.
|
|
124
153
|
|
|
125
154
|
### Safety limits
|
|
126
155
|
|
|
@@ -308,6 +337,12 @@ Analytics, session metadata, revenue, and replay metadata can be sensitive. Use
|
|
|
308
337
|
|
|
309
338
|
Umami Compass is an independent community project and is not affiliated with Umami Software.
|
|
310
339
|
|
|
340
|
+
## Support the project
|
|
341
|
+
|
|
342
|
+
Umami Compass is free and open source. If it saves you time or improves your analytics workflow, you can support the project by buying me a coffee on Ko-fi.
|
|
343
|
+
|
|
344
|
+
[](https://ko-fi.com/P5Z8234QNW)
|
|
345
|
+
|
|
311
346
|
## License
|
|
312
347
|
|
|
313
348
|
[MIT](LICENSE) © 2026 webcredo and Umami Compass contributors.
|
package/SECURITY.md
CHANGED
|
@@ -15,12 +15,12 @@ You should receive an acknowledgement within 72 hours. We aim to provide an init
|
|
|
15
15
|
Umami Compass is a local stdio process. It connects only to the single Umami API root configured at process start.
|
|
16
16
|
|
|
17
17
|
- No tool accepts an upstream URL, fetches arbitrary HTML, or changes the API root.
|
|
18
|
-
- No mutation tool is shipped in `v0.
|
|
18
|
+
- No mutation tool is shipped in `v0.2`.
|
|
19
19
|
- API keys, access tokens, usernames, and passwords are never returned or intentionally logged.
|
|
20
20
|
- Upstream response bodies are not copied into errors.
|
|
21
21
|
- Redirects are rejected to prevent credentials from being forwarded to another origin.
|
|
22
22
|
- Non-loopback HTTP is rejected unless explicitly allowed.
|
|
23
|
-
- Website allowlists, bounded pages/date ranges/decoded response bodies, request timeouts, and MCP cancellation limit access and resource use.
|
|
23
|
+
- Website and team allowlists, bounded pages/date ranges/decoded response bodies, request timeouts, and MCP cancellation limit access and resource use.
|
|
24
24
|
- Raw session replay event streams are excluded because they can be large and privacy-sensitive.
|
|
25
25
|
|
|
26
26
|
The MCP host is part of the trust boundary: it launches the process, supplies secrets, chooses which model receives results, and may log tool calls. Use a trusted host and a dedicated read-only Umami identity.
|
package/dist/api/client.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare class UmamiClient {
|
|
|
6
6
|
constructor(config: UmamiCompassConfig, fetchImplementation?: Fetch);
|
|
7
7
|
isWebsiteAllowed(websiteId: string): boolean;
|
|
8
8
|
assertWebsiteAllowed(websiteId: string): void;
|
|
9
|
+
assertWebsiteAccessible(websiteId: string, signal?: AbortSignal): Promise<void>;
|
|
9
10
|
listWebsites(query: Query, signal?: AbortSignal): Promise<PagedResponse<Website> | unknown>;
|
|
10
11
|
getWebsite(websiteId: string, signal?: AbortSignal): Promise<Website>;
|
|
11
12
|
get<T = unknown>(path: string, query?: Query, signal?: AbortSignal): Promise<T>;
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,KAAK,EACV,oBAAoB,EAEpB,aAAa,EACb,KAAK,EACL,qBAAqB,EAErB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AA8L5C,qBAAa,WAAW;;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,KAAK,EACV,oBAAoB,EAEpB,aAAa,EACb,KAAK,EACL,qBAAqB,EAErB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AA8L5C,qBAAa,WAAW;;IAQtB,YAAY,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,GAAE,KAAwB,EAGpF;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3C;IAED,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAO5C;IAEK,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEK,YAAY,CAChB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAY3C;IAkGK,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAU1E;IAEK,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAMpF;IAEK,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAChC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;IAEK,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB7F;CAyJF"}
|
package/dist/api/client.js
CHANGED
|
@@ -135,6 +135,7 @@ export class UmamiClient {
|
|
|
135
135
|
#loginGeneration = 0;
|
|
136
136
|
#loginPromise;
|
|
137
137
|
#loginToken;
|
|
138
|
+
#teamWebsiteIdsPromise;
|
|
138
139
|
constructor(config, fetchImplementation = globalThis.fetch) {
|
|
139
140
|
this.#config = config;
|
|
140
141
|
this.#fetch = fetchImplementation;
|
|
@@ -147,21 +148,53 @@ export class UmamiClient {
|
|
|
147
148
|
throw new UmamiError("FORBIDDEN", "This website is outside the configured UMAMI_WEBSITE_IDS allowlist.");
|
|
148
149
|
}
|
|
149
150
|
}
|
|
151
|
+
async assertWebsiteAccessible(websiteId, signal) {
|
|
152
|
+
this.assertWebsiteAllowed(websiteId);
|
|
153
|
+
await this.#assertTeamWebsiteAllowed(websiteId, signal);
|
|
154
|
+
}
|
|
150
155
|
async listWebsites(query, signal) {
|
|
151
156
|
const requestedPage = typeof query.page === "number" ? query.page : 1;
|
|
152
157
|
const requestedPageSize = typeof query.pageSize === "number" ? query.pageSize : 20;
|
|
153
158
|
const search = typeof query.search === "string" ? query.search : undefined;
|
|
159
|
+
const visible = await this.#discoverWebsites(search, signal);
|
|
160
|
+
const start = (requestedPage - 1) * requestedPageSize;
|
|
161
|
+
return {
|
|
162
|
+
data: visible.slice(start, start + requestedPageSize),
|
|
163
|
+
count: visible.length,
|
|
164
|
+
page: requestedPage,
|
|
165
|
+
pageSize: requestedPageSize,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
async #discoverWebsites(search, signal) {
|
|
154
169
|
const budget = { websitePages: 0 };
|
|
155
|
-
const websites =
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
170
|
+
const websites = this.#config.teamIds
|
|
171
|
+
? []
|
|
172
|
+
: await this.#listAllWebsitePages("websites", {
|
|
173
|
+
includeTeams: true,
|
|
174
|
+
page: 1,
|
|
175
|
+
pageSize: DISCOVERY_PAGE_SIZE,
|
|
176
|
+
search,
|
|
177
|
+
}, budget, signal);
|
|
178
|
+
let teams;
|
|
179
|
+
if (this.#config.teamIds) {
|
|
180
|
+
teams = [...this.#config.teamIds].map((id) => ({ id }));
|
|
159
181
|
}
|
|
160
|
-
|
|
161
|
-
|
|
182
|
+
else {
|
|
183
|
+
const teamPage = requireTeamPage(await this.get("teams", { page: 1, pageSize: DISCOVERY_PAGE_SIZE }, signal));
|
|
184
|
+
if (teamPage.count > MAX_DISCOVERY_TEAMS) {
|
|
185
|
+
throw new UmamiError("VALIDATION_ERROR", `The account belongs to more than ${MAX_DISCOVERY_TEAMS} teams, so website discovery was stopped safely. Use UMAMI_TEAM_IDS, UMAMI_WEBSITE_IDS, or a more limited Umami identity.`);
|
|
186
|
+
}
|
|
187
|
+
if (teamPage.data.length < teamPage.count) {
|
|
188
|
+
throw new UmamiError("INVALID_RESPONSE", "Umami returned an incomplete team list.");
|
|
189
|
+
}
|
|
190
|
+
teams = teamPage.data;
|
|
162
191
|
}
|
|
163
|
-
for (const team of
|
|
164
|
-
|
|
192
|
+
for (const team of teams) {
|
|
193
|
+
const teamWebsites = await this.#listAllWebsitePages(`teams/${encodeURIComponent(team.id)}/websites`, { page: 1, pageSize: DISCOVERY_PAGE_SIZE, search }, budget, signal);
|
|
194
|
+
websites.push(...teamWebsites.map((website) => ({
|
|
195
|
+
...website,
|
|
196
|
+
teamId: website.teamId ?? team.id,
|
|
197
|
+
})));
|
|
165
198
|
}
|
|
166
199
|
const unique = new Map();
|
|
167
200
|
for (const website of websites) {
|
|
@@ -169,14 +202,12 @@ export class UmamiClient {
|
|
|
169
202
|
if (!unique.has(key))
|
|
170
203
|
unique.set(key, website);
|
|
171
204
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
pageSize: requestedPageSize,
|
|
179
|
-
};
|
|
205
|
+
return [...unique.values()].filter((website) => {
|
|
206
|
+
const websiteAllowed = !this.#config.websiteIds || this.#config.websiteIds.has(website.id.toLowerCase());
|
|
207
|
+
const teamAllowed = !this.#config.teamIds ||
|
|
208
|
+
(website.teamId != null && this.#config.teamIds.has(website.teamId.toLowerCase()));
|
|
209
|
+
return websiteAllowed && teamAllowed;
|
|
210
|
+
});
|
|
180
211
|
}
|
|
181
212
|
async #listAllWebsitePages(path, query, budget, signal) {
|
|
182
213
|
this.#reserveDiscoveryPages(budget, 1);
|
|
@@ -198,10 +229,14 @@ export class UmamiClient {
|
|
|
198
229
|
}
|
|
199
230
|
async getWebsite(websiteId, signal) {
|
|
200
231
|
const normalizedWebsiteId = websiteId.toLowerCase();
|
|
201
|
-
this.
|
|
202
|
-
return requireWebsite(await this
|
|
232
|
+
await this.assertWebsiteAccessible(normalizedWebsiteId, signal);
|
|
233
|
+
return requireWebsite(await this.#request(`websites/${encodeURIComponent(normalizedWebsiteId)}`, { method: "GET", signal }, true));
|
|
203
234
|
}
|
|
204
235
|
async get(path, query, signal) {
|
|
236
|
+
const websiteMatch = /^websites\/([0-9a-f-]{36})(?:\/|$)/i.exec(path);
|
|
237
|
+
if (websiteMatch?.[1]) {
|
|
238
|
+
await this.assertWebsiteAccessible(websiteMatch[1], signal);
|
|
239
|
+
}
|
|
205
240
|
return this.#request(path, { method: "GET", query, signal }, true);
|
|
206
241
|
}
|
|
207
242
|
async getHeatmapReport(request, signal) {
|
|
@@ -222,9 +257,31 @@ export class UmamiClient {
|
|
|
222
257
|
if (!allowedTypes.has(request.type)) {
|
|
223
258
|
throw new UmamiError("CONFIGURATION_ERROR", "Unsupported read-only Umami report type.");
|
|
224
259
|
}
|
|
225
|
-
this.
|
|
260
|
+
await this.assertWebsiteAccessible(request.websiteId, signal);
|
|
226
261
|
return this.#request(`reports/${request.type}`, { body: request, method: "POST", signal }, true);
|
|
227
262
|
}
|
|
263
|
+
async #assertTeamWebsiteAllowed(websiteId, signal) {
|
|
264
|
+
if (!this.#config.teamIds)
|
|
265
|
+
return;
|
|
266
|
+
const normalizedWebsiteId = websiteId.toLowerCase();
|
|
267
|
+
let discovery = this.#teamWebsiteIdsPromise;
|
|
268
|
+
if (!discovery) {
|
|
269
|
+
discovery = this.#discoverWebsites(undefined, signal).then((websites) => new Set(websites.map((website) => website.id.toLowerCase())));
|
|
270
|
+
this.#teamWebsiteIdsPromise = discovery;
|
|
271
|
+
}
|
|
272
|
+
let allowedIds;
|
|
273
|
+
try {
|
|
274
|
+
allowedIds = await discovery;
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
if (this.#teamWebsiteIdsPromise === discovery)
|
|
278
|
+
this.#teamWebsiteIdsPromise = undefined;
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
if (!allowedIds.has(normalizedWebsiteId)) {
|
|
282
|
+
throw new UmamiError("FORBIDDEN", "This website is outside the configured UMAMI_TEAM_IDS allowlist.");
|
|
283
|
+
}
|
|
284
|
+
}
|
|
228
285
|
async #request(path, options, retryLogin) {
|
|
229
286
|
const url = resolveApiPath(this.#config.apiUrl, path);
|
|
230
287
|
appendQuery(url, options.query);
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const TOOLSETS: readonly ["core", "events", "sessions", "performance", "reports", "revenue", "replay", "heatmaps"];
|
|
1
|
+
export declare const TOOLSETS: readonly ["core", "insights", "events", "sessions", "performance", "reports", "revenue", "replay", "heatmaps"];
|
|
2
2
|
export type Toolset = (typeof TOOLSETS)[number];
|
|
3
3
|
export type UmamiAuth = {
|
|
4
4
|
type: "apiKey";
|
|
@@ -19,6 +19,7 @@ export interface UmamiCompassConfig {
|
|
|
19
19
|
maxResponseBytes: number;
|
|
20
20
|
requestTimeoutMs: number;
|
|
21
21
|
toolsets: ReadonlySet<Toolset>;
|
|
22
|
+
teamIds?: ReadonlySet<string>;
|
|
22
23
|
websiteIds?: ReadonlySet<string>;
|
|
23
24
|
}
|
|
24
25
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): UmamiCompassConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,YACnB,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,CACF,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,YACnB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,CACF,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;AA4JD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CAiCnF"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { UmamiError } from "./api/errors.js";
|
|
2
2
|
export const TOOLSETS = [
|
|
3
3
|
"core",
|
|
4
|
+
"insights",
|
|
4
5
|
"events",
|
|
5
6
|
"sessions",
|
|
6
7
|
"performance",
|
|
@@ -91,7 +92,7 @@ function parseAuth(env) {
|
|
|
91
92
|
}
|
|
92
93
|
function parseToolsets(value) {
|
|
93
94
|
if (!value)
|
|
94
|
-
return new Set(["core"]);
|
|
95
|
+
return new Set(["core", "insights"]);
|
|
95
96
|
const names = value
|
|
96
97
|
.split(",")
|
|
97
98
|
.map((item) => item.trim())
|
|
@@ -108,7 +109,7 @@ function parseToolsets(value) {
|
|
|
108
109
|
}
|
|
109
110
|
return new Set(names);
|
|
110
111
|
}
|
|
111
|
-
function
|
|
112
|
+
function parseUuidAllowlist(value, key, maximum) {
|
|
112
113
|
if (!value)
|
|
113
114
|
return undefined;
|
|
114
115
|
const ids = value
|
|
@@ -117,12 +118,12 @@ function parseWebsiteIds(value) {
|
|
|
117
118
|
.filter(Boolean);
|
|
118
119
|
if (ids.length === 0)
|
|
119
120
|
return undefined;
|
|
120
|
-
if (ids.length >
|
|
121
|
-
throw new UmamiError("CONFIGURATION_ERROR",
|
|
121
|
+
if (ids.length > maximum) {
|
|
122
|
+
throw new UmamiError("CONFIGURATION_ERROR", `${key} cannot contain more than ${maximum} IDs.`);
|
|
122
123
|
}
|
|
123
124
|
const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
124
125
|
if (ids.some((id) => !uuid.test(id))) {
|
|
125
|
-
throw new UmamiError("CONFIGURATION_ERROR",
|
|
126
|
+
throw new UmamiError("CONFIGURATION_ERROR", `${key} must be a comma-separated list of UUIDs.`);
|
|
126
127
|
}
|
|
127
128
|
return new Set(ids.map((id) => id.toLowerCase()));
|
|
128
129
|
}
|
|
@@ -142,7 +143,8 @@ export function loadConfig(env = process.env) {
|
|
|
142
143
|
maxResponseBytes: parseInteger(optional(env, "UMAMI_MAX_RESPONSE_BYTES"), "UMAMI_MAX_RESPONSE_BYTES", 10_485_760, { min: 102_400, max: 52_428_800 }),
|
|
143
144
|
requestTimeoutMs: parseInteger(optional(env, "UMAMI_REQUEST_TIMEOUT_MS"), "UMAMI_REQUEST_TIMEOUT_MS", 30_000, { min: 1_000, max: 120_000 }),
|
|
144
145
|
toolsets: parseToolsets(optional(env, "UMAMI_TOOLSETS")),
|
|
145
|
-
|
|
146
|
+
teamIds: parseUuidAllowlist(optional(env, "UMAMI_TEAM_IDS"), "UMAMI_TEAM_IDS", 25),
|
|
147
|
+
websiteIds: parseUuidAllowlist(optional(env, "UMAMI_WEBSITE_IDS"), "UMAMI_WEBSITE_IDS", 100),
|
|
146
148
|
};
|
|
147
149
|
}
|
|
148
150
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,aAAa;IACb,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|